走在校园里的时候,还不知道此刻的生活是多么的轻松和安逸,更拥有着这辈子最大的自由。
程序员这条路真心不好走,从大四的时候实习开始,也算在这个代码的世界里耕耘了快两年了。想起在中学的时候学习QBasic的时候,在Windows命令处理程序里打印出一个兔子的形状时是多么的开心。也是因为当初的喜欢这种亲手创造的乐趣,毅然决然的选择了程序员这条道路。
大学里,我们一起放荡的自由着,似乎一所好的大学能让我更接近梦想。但是梦想却倒在了无趣的大学课程中,当我的程序只是几个Class文件堆砌起来的时候,当我写程序总是出现不知所谓的错误时……
大学里,想想对工作最有用的课程应该是 《编译原理》吧,在工作时,遇见的好多底层的问题时,总喜欢用这门知识去揣测原因,总会得到一些看似正常的答案。就像我们去怀疑程序语言不够完美时,总会想起“机器是离散的,而现实是连续的,所以机器不能完美的解决现实问题”。正如我们的浏览器引擎去计算十个0.1相加等于多少时得到的答案。
console.info(0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1);
为了混口饭吃,毕业后参加了工作。也从那时起开始了没日没夜的编码工作。各种各样的通宵加起来等于一直的疲倦。各种各样知识学习起来喂不饱贪食的狼。永远不知道自己会些什么,也不知道自己的前途在何方,只是疲惫。有时候真心没有时间总结知识,只是将以前学习的东西粘贴出来放起来,却永远没时间在去看。
我那时候不知道自己丢掉了什么,其实那才是真正的财富吧。如果放进包裹,相信这写东西可以伴随我们一生。整理一下快两年的时间到底学会了什么吧。
1.基本的需求开发的流程,以及各种文档的编辑。大学里学到的软件生命周期之类的东西会在这里用到,需求分析和设计是整个项目的灵魂指导,它出错了,你写代码写得再好都是错误。所以程序员需要明白的第一点就是“我们要去做什么”。
2.交流的态度。我们总是谦虚的,这种谦虚来自我们对技术的认真。我们作为工匠,总希望自己手里诞生的作品是优秀的,被人认可的。也许我们没有那么多的美学和艺术,但是我可以替你制作出你心中所想的作品。因为我会交流。
3.第一门后台语言java,与第一个框架SSH。男人也有第一次,实习的时候制作的第一个作品诞生于此,简单的登录与员工管理功能实现,很简单的增删查改的数据库操作。简单的同时也是最有价值的。
4.第一门前台语言JavaScript,jQuery。前台还是蛮有意思的,比起后台的各种业务逻辑,前台比较清凉。同时jQuery也算是比较新的技术,能在工作的第一个项目就接触到新技术还是很令人高兴的。不让人高兴的是,前后台加上数据库维护为啥都是我一个人写呢?后来才懂了,原来项目就我一个人啊,老员工都走了。
5.传说中的Oracle和MySQL。确实Oracle比MySQL厉害的多,但Oracle也比MySQL贵的多。我主要用的是Oracle,也是在入职半年时开始写存储过程和触发器之类的东西,记得当初很兴奋呢。现在没那么兴奋了,说到底,数据库就是管理数据的,当我们踩这各种坑爬上来的时候,也就学会了怎么样的数据库语句才是高效的,至于其他高大上的东西,还没时间研究。
6.传说中的MongoDB。不知道啥时候开始流行NoSql了,好像是伴着大数据时代这股热风刮起来的吧。MongoDB确实很好用,当初项目里用了Oracle和MongoDB两个数据库,MongoDB数据库主要用来缓存数据,以及做一些不太紧急的数据操作,确实很赞的说,后来项目结束后,还在自己电脑上安装了一个MongoDB数据库玩。我对这个MongoDB很有爱的说。
7.说到MongoDB,顺便想起了NodeJS(https://cnodejs.org/)。一门很神奇的后台Js语言。搭建小型的网站会有很赞的效率的说。而且新技术嘛,总是惹人怜爱的。而且NodeJs和MongoDB蛮搭调,所以顺便也爱了。
8.各种各样的编程思想。大学的世界里,似乎只有面向对象和面向过程两个思想吧,记不清了,不过现在接触多了,这个世界并不是面向对象的天下,还有各种各样的思想让人怜爱非常。比如Spring的面向切面AOP。
9.那些很奇特的想法。我们在前台感受到了Ajax异步调用的神奇魔力,也在后台接触到了NodeJs的事务驱动编程和异步带来的超高并发,一起神奇的RequireJs让Js语言模块化更深入人心。只能说聪明的人类让大爱无言。
10.Mybatis。传说中的数据持久层。这个也很赞的说。以前用Oracle数据库时一直用这个Mybatis,因为有有个生成相关文件的工具,开发的时候只要配置下就能直接生成代码,好省力的说。后来用MySQL时,发现代码生成工具不好用了,于是乎,通宵修改之,终成,笑傲之。
11.社区的艺术。我们可能花费好长的时间写一段代码,然后运行之,错误很多。但如果你常光顾社区的话,会有很多惊喜的发现,其实好多功能都已经被开发出来并发布维护了,我们只需要拿来主义,不称心的顺手修改之即可,此所谓开源的力量。
程序员开始是个体力活,如何将这个体力活做成一个智力活,才是程序员思考的出路。对于这个行业,老板喜欢勤奋的人,也喜欢会偷懒的人。比如你做了个开发工具,让大家写代码更快速更统一更快速,那么恭喜你加薪了。