一个游走在技术边缘的菜鸡程序员的实习总结

       本人男,坐标天津,一名即将要毕业的大四实习生,趁着周末的闲隙时光,打算记录一下这小半年的实习经历。希望此文可以给当初像我一样处在毕业的交界点并对未来深感迷茫的同学一点小小的建议。
大学念的是天津某普通一本院校,自动化专业。因为不喜欢自己的专业再加上高中养成的不爱学习的习惯,整个大学基本上没有完整的听过一节课。课下就是和当时的女朋友聊天,大部分时间都是呆在宿舍打游戏看视频或者睡觉。偶尔也看看书,去健身房溜达溜达,写写自己喜欢的东西。写这段话的目的是为了告诉现在正看到这篇博客的你,本人起点很低,不是那种踏着七彩祥云的盖世英雄,如果你和我一样在这个毕业的节点觉得自己不具备任何外在优势那么你可以继续看下去,如果不是,那就没有必要浪费时间。

       时间节点来到2017年春节,和女朋友分手以后才开始想自己未来要做什么,既然对本专业已经不抱任何期待了,那么自己到底应该去做点什么呢?而这个问题恰恰就是让我们深感迷茫的根源所在。如果现在的你还没有想明白这个问题,那么你可以参考一下我的思路。我首先回顾了一下大学四年的课程,迅速捕捉到了自己的兴趣所在C语言,并不是因为我这门课学的多好,实事求是的讲我压根就没听过课,期末考也是前一晚上看的蒙了个七十五分。如果打游戏和写C程序让我选我会毫不犹豫的选择前者,但是如果不打游戏我发现我最愿意选择的还是写C程序。所以找到自己的兴趣很重要。但是发现自己的兴趣是什么对很多人来说依旧是一个很迷茫的问题,可能很多人心里会想,我要是知道自己的兴趣是什么我还来博客里找答案,这不扯淡吗?。对于有这样想法的人我特别能够感同身受,因为我当初也是这样想的,这样的文章我觉得就是废话,我要是知道自己的兴趣是什么我还会在高考志愿栏上填上自动化这个专业吗?所以对于那些连自己兴趣都不知道的同学,可以换个思路想,你希望自己未来的工作环境是什么样的?你工作的目的是什么?你自身的优势是什么,劣势又是什么?以我自己为例,我希望在写字楼里上班,我工作的目的是既可以干自己喜欢的事又可以赚到钱,我不善于交际但是我有较强的学习能力,表达能力,写作能力和逻辑思维能力,所以我首先排除的就是那些可能更多的靠嘴的职业,比如销售。毅然而然的选择了IT行业,做一个程序员,靠技术吃饭,可以尽可能地在表现自己优势的同时降低自己的劣势所带来的成本花销。所以我一直觉得这是最适合我的职业。
由于我是一名java程序员,所以我接下来要讲的可能更多的是和java相关的,我会尽量把我从一个小白到现在可以独立设计开发一个模块的心路历程都写下来。如果你也是刚打算从事互联网行业的小白,那么我建议你继续看下去,如果你有了工作经验那么就没有必要再看下去了。

语言的选择

2017年春节后回到学校便开始学C语言,在学了两个月并成功写出一个贪吃蛇小程序后我突然又迷茫了,我学的这个C语言在企业中到底有什么用?我到底要使用这个语言去做什么样的系统?最主要的就是我到底要学到什么程度才能达到企业的用人标准?对此我一无所知,当我意识到这些的时候学习的积极性瞬间下降到了冰点。为了解决这些困惑,我特意去下了七八个招聘软件,但是更让我失望的是在岗位搜索里能搜到的C语言开发岗位寥寥无几,而且岗位要求里罗列的很多东西听都没听过。于是我果断放弃了C语言,毕竟觉得风险太大,学都不一定学的会而且机会还那么少,这不是一句学好了你以后就会很吃香的说辞就能让我一条道走到黑的,于是我就开始关注当下的热门语言排行榜,很自然的java就开始进入了我的世界,市场占有率高,简单易上手,而且不愁找不到对象,实在不行可以自己new一个,我反正觉得很好,于是我就决定了学java,并且告诉自己,不管怎么样,这次一定要一条道走到黑。所以如果你是一个小白,完全没有接触过编程语言,这里还是建议你选择时下最热门的,毕竟机会多就业也有保障。



如何去学一门语言

当确定了要学java以后,紧接着又会有一个新的疑问,我要学什么,怎么学,从哪开始?这三个问题无形之中又让我陷入了深深的迷茫,突然发现下定决心要学java语言时的信心和气势瞬间垮了不少。当出现这这种情绪的时候你一定要在心理暗示自己这是正常的,你打算去做一件事,遇到问题是必然的。最关键在于你是怎么解决问题的。首先我要搞明白课程体系是什么?其次我要知道学习编程是最好是看书还是看视频或者去报个培训班什么的?入门书籍是从头看到尾还是挑重点学?我相信一个想变好的你跟我一样人生中还没有哪一个时刻比现在更希望自己身旁有一个大牛可以指导下自己。毕竟当时我也是一头雾水深感绝望。这也是我写这篇博客的动力所在,我当时搜博客真是搜的很绝望,类似的文章有很多但是看了以后还是觉得不踏实,因为那些文章基本上没有站在一个小白的角度去讲,没有把一个初学者的困惑描述出来,看完了以后没有让一个小白把自己刚接触一门陌生语言内心产生的那种对一个未知领域的恐惧感清除。所以我将尽可能地站在这个角度去说。首先是怎么学的问题,如果你没有就业压力,那么建议你自学,采取看书和看视频相结合的方式,前期模仿着写,保证每天的代码量,编程这个东西主要还是要多练。如果你有就业压力或者感觉自己学习能力很弱或者总是克服不了内心的那种不踏实的感觉,那么我建议你去报班,培训机构是可以学到东西的,但是重实践不重理论,最主要的是价格昂贵与课程价值不匹配,所以不到万不得已我还是建议不要选择培训机构,因为你会发现在培训机构学和自己买视频学基本没有任何区别。

java要学什么

至于从哪开始学,当然先从基本语法开始了,至于入门书籍这里建议选择《java核心技术卷1》,如果你是打算从事java web方向,那么里面的很多章节是可以不用学的,比如图形程序设计,事件处理等等,这个书里写的很详细。学完了基本语法以后心里要对java有一个整体感知意识,对面向对象的特性要说的上来,封装,继承,多肽要张口就能答得上,不然就是理解还不够深刻。当学完了基本语法以后,对于java一些常用的API要记熟练熟,像字符串啊,日期啊,包装类,Object类啊这些都要特别清楚,因为这些东西都是在实际开发中应用的最多的。至于IO啊,多线程啊,文件操作啊,TCP通信啊这些暂时停留在了解的层次上基本就够了,就是说你得知道常见的概念,常用的写法,不要人家一问你使用IO要注意什么啊,你连关流都答不上来,人家问你多线程的状态有几种,常见的创建方式是什么这些最基本的东西如果都不会的话那也是不过关的,虽然实际开发中用的很少或者说的准确一点是你刚开始工作基本接触不到这些东西但是你也得了解不然容易给人知识面太窄的感觉。至于java中的集合,异常体系这也是要必须清楚的,因为面试基本是必问的。对于算法和数据结构这些东西如果会那是优势不会也没什么,虽然有的面试官喜欢问但只是为了想压低你的工资罢了,你要清楚一点你出去实习拿个四千块钱你是不配知道这么多的,如果你知道这么多并且在工作中用到了那你就不可能只拿四千了。所以自己划重点。当这些东西你都会了以后,那么你就要开始学习数据库的东西了,学习数据库要先学SQL,SQL也是一门语言,学名叫结构化查询语言,是运行在关系型数据库上的标准语言,学SQL要掌握到什么程度呢?CURD如果没有问题的话也基本就可以了,当然实际上远比这要复杂的多,这里不想赘述,因为有了前面java的学习经历以后我相信你内心对编程语言的学习也有了一定的意识,当然这种意识是建立在大量的编码实践上。当SQL学会以后,对于Oracle,MySQL的一些可视化工具也要会使用,不要再工作的时候项目经理让你建个表,改个字段啥的也不会那就很不好了,可能你学SQL的时候会学到用SQL建表改表,但是我可以负责任的告诉你在实际开发中都是用工具的,当然这也不是说让你就不要学用SQL怎么建表改表了,还是要学的。当数据库你也会了,那么你接下来要学的就是JDBC技术了,什么是JDBC技术呢?JDBC就是让你的java和你的数据库建立联系的技术。当JDBC你也学会了,那么就是时候学习Servlet了,学习Servlet的时候必然会接触到一个叫服务器的东西,这个东西大概是你听过很多次但当你见到的时候你会大吃一惊的,印象里的服务器总感觉是一个主机一样的东西,为啥这个时候让你给你的开发工具配置一个服务器的时候居然是让你去tomcat官网下了一个文件,哈哈哈到时候你会觉得很意外的,至于服务器,通常就是要求会tomcat就行了,知道怎么配置,它的运行原理,项目是怎么部署到上面去的基本就过关了。Servlet也是一项很老的技术了,现在的企业基本不会用了,除非是一些陈年老项目,但是学习这个是极其有必要的,因为这不仅让你初见web项目的雏形也有助于后期你对一些框架的理解,基本上可以说学到这你就明白了一个web项目的结构了,但是还不足以开发一个属于自己的网站。因为你发现你还不会写页面,页面就属于前端的范畴了,作为一个后端程序员,对前端的知识处于一个了解的层次就够了,你要知道html的常用标签,css的常用样式,javaScript,JQuery,Ajax技术看的懂基本就行了,因为在实际工作中,这个活有专门的人干。当对前端的技术有了一定的了解以后,你应该会立即接触到一个叫JSP的东西,学这个基本要会常用的EL表达式,JSTL,如果这你都学会了,那么恭喜你,你已经可以称自己为一个java程序员了,这个时候你就可以开发属于自己的网站了,但并不意味着这个时候你就达到了企业的用人标准,要想真正入职,你还必须掌握几个框架,Spring,Spring MVC,Mybatis,最好是能够达到自己可以搭一个架构的水平,当然不会也没关系,因为刚入职,这种事情也基本不会让你做,至此,对于一个初级程序员,要掌握的基本技术基本就说完了。


实习期间要学什么

实习了五个多月,作为一个实习生在这段时间我认为最重要的并不是学习新技术,而是尽快地适应身份的转变,适应工作岗位并在人际交往中发现自己的性格缺陷。体会实际开发与自己写demo的不同之处,要学会看别人的代码,拿到一套系统要尽快的看明白别人的架构方式,封装思想,以及代码开发规范。要学会团队开发必须要掌握的一些版本管理工具。要尽快找到自己身边的大牛虚心请教一切你想知道的东西。一旦步入开发岗位,就意味着你进入了一个快速成长期,在这段时间你务必要强迫自己养成一些好的习惯,对自己的代码质量要有一定要求,尽快培养起来自己独立设计开发一个模块的能力,从点到线,慢慢地扩大自己的知识面。由于每个公司用的技术有所差别,每个人能学到的东西也不一样,但是只要踏踏实实,多专研,你一定会越来越厉害。个人认为作为一个程序员,必须要有良好的逻辑思维能力,这将直接影响你解决问题的能力,思路清晰,目标明确,效率才会高。还有就是经验不是靠时间堆积起来的,唯有总结过的东西才能够称之为经验。所以多做总结对你是一定有好处的。最后就是你要记住一句话,只要你有技术,永远别怕赚不到钱。


       综上所述只是个人观点,如果可以给你带来帮助,那我深感荣幸,如果你觉得都是糟粕之言,也请你不要生气,这说到底只是个人观点,不必放在心上。

猜你喜欢

转载自blog.csdn.net/weixin_40655220/article/details/80293646