写给即将面临毕业的程序猿们

  转眼间已经毕业了将近快一个月了,实习也结束了,近期预计就要与公司签一个长达三年的合同。从去年十月份開始在这个公司实习,已经实习了八个多月了,在这个公司学习到的东西,在某种意义上来说可能比我在大学四年期间学到的东西还要多。可是这和大学期间看过非常多编程思想的书也是分不开的,在这里能够说在原来的基础上学到了很多其它更加前沿性的技术,比如:mysql的瓶颈,在达到瓶颈之后MySQL的性能到底怎样,查询速度怎么优化,另一些图形数据库,让我印象最为深刻的就是neo4j这个图形数据库,当数据达到一定量时他的速度变的将是非常慢,可是当你第二次,再又一次查询这些数据时,它居然变得飞快,这是由于Neo4j採用了Lucene作为索引。然后又学习了BDB,SSDB(作为radise的一个替代品)这些数据库都是以KV对的形式存在的,他们的瓶颈往往不在于数据库本身,而在于自己的硬件自身。另一些Hadoop和hbase之类的技术。事实上我最为开心的还是学会了JAVA这门面向对象的编程语言,为什么近年来面向对象的语言这么流行,我们先不说面向对象的语言使开发周期缩短,减少了成本,就是当中Java封装了大量的类库,使我们开发变得更加简单开心(只是我觉得Java还不是一种纯面向对象的语言)。

我之所以说很开心学会了Java这门面向对象的语言,我是说,我在大学期间以前学过C和C++ 可是当使用C进行编程序时,当一个项目变得特别大时,使得项目难以管理和控制,所以说我学的实在不怎么样,仅仅会使用C写一些很easy的算法之类的程序,我在学C++时,由于懂C++ 的人预计都知道,要想学好C++一定要玩转指针的奥秘,这个东西我至今都很有兴趣去研究它,作为在大学期间学的这2门语言我都没有学好,所以说我的大学上的是很失败的,大三那年,想着预计快要工作了,听学长们说Java这门语言特别easy学习,有时一个月都easy上手了,可是很不幸的是我天分过低,学了将近有6个月左右吧,才干刚刚開始能可以熟练的使用和掌握Java API中一些类库的使用,当时这个时间好像是在13年10月份左右吧,就是对于一般的程序都可以编出来,即使一时不会,通过查询一些类库,还是有个差点儿相同,只是当时编程序和如今时很不一样的,当时也不懂设计模式之类的东西,更不懂得对自己的代码进行重构调优的处理了,长编大论一直往下写,当时的目标就是仅仅要能写出来执行成功就行了。当时想着预计快要找工作了,听说一些用人单位对struts,hibernate,Spring三大框架之类的东西要求比較高,没有办法,当时就到官方站点上把对应的一些文档给下载下来,硬生生的把它们看了遍,只是当时应用,好像也仅仅限于会简单使用一些配置文件之类的东西,那时对hibernate中ORM还不是太懂,貌似当时对Struts中的拦截器又是过滤器之类的东西原理一直没搞懂(当时还不知道实际上就是使用了一个责任链的设计模式而已),对Spring AOP甚是搞不懂(实际上这个地方也是使用了代理模式)。后来就是通过自己学的这些皮毛,到外面吹嘘了一下找了一份如今正在干的工作。

在干工作初期,当时进去之后好像没有太久吧,就接手了一个比較老的project,这个project存在一些问题,因为比較简单,由我自己进行负责重写(在这里很感谢当时的那个老大对我的赏识和信任)还记得我当时敲代码是很逗得,还像曾经学校编程那样一边想一边写,最后写完了,发现代码是很之长(当时这个东西我自己大概三个月独立完毕的)以至于根本无法维护,因为和数据库有交互,当数据大的时间,出现故障时,我自己写的程序,当出现bug时,我自己都头大,更别提当加入一个新功能时,自己有时找了半天都不知道这段代码应该放在什么地方最合适。(后来老大看了我的代码之后硬性的要求我看了设计模式和重构改善既有代码的设计这2本书,对这些代码进行了一次又一次组织)。

以上这些都是大学加上工作,一直到13年末发生的事情吧,想想自己大学四年,大一时当时高中时学习的热乎劲还没有过去坚持学了一年吧,当时收货不大,最大的收货莫过于学好了英文和数学吧。大二那年由于长大了,也開始发情了,也学习别人一样開始谈恋爱了(这一年所实用来玩了,差点儿非常少学习上课之类的),只是这一年给我造成的一些影响也是非常大的,可能是书上永远都学不到的,人吗,就要去多经历一些事情,反正我一直都这样觉得,在这里我也建议一些还没有毕业的学弟学妹们,打个比方说,假设你曾经从来没有使用支付宝或者银行卡在淘宝上买过东西,然后你就应该尝试着去做一下,感觉这样进步是非常大的。反正就应该去大胆尝试自己没有做过的东西,这样才干进步。在学习上也一样。有时自己在编程序时别人给我提出意见,比方说:你这里应该使用数据库连接池,这样才干为多个数据源服务,有利于扩展。别人可能再提出来时特别简单,由于这时有可能你没实用过这些东西,感觉非常不适应,可是这时你不应该害怕,要大胆到网上去查找文档,最后你会发现,不就是一段配置文件吗,人家在文档里写的特别清楚,直接拿过来就用了,一点都不难。所以说你要大胆的去做一些事情,当你做过了你就发现实际上根本没什么,特别简单。大三那年吧,就是简单的去上上课,做了一份兼职。然后会会朋友,下学期吧好像当时读了thinking in Java这本书,另一些算法之类书,还有数据库原理之类的只是这本没有读的太懂,大四十月份左右吧,招聘会特别多,就找了如今的工作干到如今。

在这里算是对大学四年的一个总结吧。在这里我仅仅是建议。仅仅是建议(由于我也不够努力,不敢要求别人这样做)。一定要培养自己的爱好和性格,一个人的性格对自己的影响乃至一生都是很大的,多去经历一些事情,不要看到别人干什么,你就去干什么,当你感觉实在没有事的时候,当你还没有大量的资金去旅游,去追求你喜欢的事情时,那你最好安下心来看书。(人家不说吗,这一辈子一定要有一次说谈就谈的恋爱,和一次说走就走的旅行,可是最重要的一点是    说的都给不要钱似得)你能够去读去学习你感兴趣的书,等你毕业时可能你会发现这些事情会影响你对待生活的态度。

假设你对计算机编程之类的感兴趣话,我感觉编程序最重要的是兴趣,仅仅要有兴趣,没有什么是干不成的事情。你最好去读一些编程思想之类的书,语言仅仅是一门语法而已,非常快就能够掌握了。然后能够去研究一下算法  不是太多,这时灵魂所在。最后我建议你能够去读读设计模式之类的书,使你的代码更加easy维护。在这期间你都能够去学习一下关系型数据库,这些太经常使用了,以及经常使用的一些语句。学习一下搜索引擎。这些原理都非常重要。实际上仅仅要这些你都能够掌握了,平时我们遇到的一些框架之类的东西都是非常easy了。包含我们以后可能会学一些mapreduce或者hdfs,hbase非常快都能上手,千万不要相信一些培训机构说的零基础培训大数据,根本不可能,仅仅要你基础好了,根本自己看看用用  差点儿就上手了。

另一点,我想澄清一下,实际上程序猿的生活也不是多么的枯燥和乏味。当你看到你做出来产品,别人都在使用和夸赞时,你的嘴角也会微微扬起。这些算是我发发牢骚吧。希望有志编程序的同学一起交流技术和生活上的问题。

原文地址:https://www.cnblogs.com/lcchuguo/p/4011545.html