能写出改变世界的程序的人才是真正厉害的人
在完成毕业设计的这几个月的时间里,我对目前流行的技术有了一个全新的认识,在当前软件领域,有非常多的流行且实用的前后端框架,比如说是Twitter的Bootstrap,Facebook的React,Google的AngularJS,国人尤雨溪开发的Vue.js都是当前非常流行的主流JS框架,在后端程序中Spring社区的Spring Mvc,Spring Boot都是非常主流的企业级框架,在中国软件市场占据了非常巨大的一个使用比例。
在学习这些流行的技术的时候时间成本和精力成本无疑是非常巨大的,每学一个新的技术都需要耗费自己相当大的心血,当你在想从事程序员这个行业的时候,你是否已经准备好了要放弃自己90%以上的业余生活了呢?
在做这个课题的过程中,我一直在思考一个问题“程序员是一个什么样职业?”我觉得我现在可以给出这样一个答案,我觉得程序员本质上来说是工匠。
在传统木匠行业里,每名木匠学徒在很年轻的时候就得和木头打交道,他们会发挥他们的奇思妙想,通过自己的双手拿着不同类型的小刀,把木头雕刻成自己喜欢的样子。在这里有三个比较关键的因素“双手”、“不同类型的小刀”和“雕塑品”,如果类比到我们程序员行业来说,“双手”对应了我们所学习的“基础编程知识”,比如说是Java基础语法、Js基础语法等等,只有掌握了那些基础知识我们才能够自己控制住这双“无形的双手”;而“不同类型的小刀”我觉得是“不同的框架”,在github上面开源的框架每个流行的框架都有自己的特点,我们使用不同的框架就像木匠在用不同的雕刻刀一样,而我们学习不同框架的目的就是为了“锋利我们手中的武器”;而“雕塑品”就是我们用“无形的双手”操作着“相应的框架”写出来的“程序”。我觉得我们提倡的不应该是“学习各种框架”的这个过程,不应该觉得掌握越多的知识就越厉害,如果掌握的知识很多却不能够利用起来那将毫无意义。我觉得值得所赞颂的应该是设计程序艺术品的过程,能写出改变世界的程序的人才是真正厉害的人。我们所有学的知识,所有锋利手中武器的过程,都只是为设计出那个程序而服务的。
当思考过这些问题以后,我觉得我对程序员这个职业又有了一个新的认识,我好像不太会去畏惧一个新的技术了,我所畏惧或者说应该去真正钻研的是整个行业的那些创新点,那些可能能够创新的地方,而不是被一个没见过的技术而吓到,所有的技术都应该只是成为我们手中武器的一个存在。
通过毕业之前的两次实习经历,加上这次毕业设计的制作,我越发觉得程序员这个职业的道路无比艰难,就像我上面所说的,你必须抛弃你大量的业余时间来跟上这个时代的步伐,你需要不断地更新自己的知识,你需要有大量的信息进入你的脑袋而且你的脑袋还必须有能力做分类,做吸收,做总结,做复盘。在这个信息爆炸的时代,所有你不能消化的知识都不是你的知识,大多数时候你都仅仅只是看起来接受了很多外来的信息,但是你一样都没有内化下来,最可怕的是这个过程会浪费你大量的时间而你自己却没有发觉。
勤奋我觉得只是一个程序员最基础的品质,但是是否勤奋仅仅是你能否入行的一个门槛,它决定不了任何东西,因为行业里的人大多勤奋。如果你是一个非常勤奋的人,那么恭喜你刚刚好能跨入到这个门槛当中,其他决定不了任何事情。还有另外一个更重要的品质我觉得是“智慧”,一种由内而外散发的一种“智慧”。每个人都能拥有“勤奋”,但不是每个人都能拥有“智慧”,它是一种说不清道不明的东西,它需要一个人非常长期的一个积累和高频率的复盘才可能拥有。这种智慧我觉得一定程度上是对市场的一种独特的敏感程度,这不是短期能从哪里学来的,这是一种嵌入到你骨子里的一种敏感程度,拥有这种敏感程度的人在市场波动期,往往会表现出独特的创新能力,这是他们成功很关键的一点。
以上是我在写论文的时候,对这个行业的一些思考。行业是否成熟、经济形势是否良好这些都不是我们能够决定的,我觉得只有保持住自己的勤奋、专注和高频度的复盘和改变,才能够去适应目前这样一个很浮躁的社会环境。虽然程序员是一个发展还不到一百年的年轻的职业,但是我相信只要我们能够不断从传统行业汲取其中的精神和营养,这个行业逐渐地就能够成熟起来了。对于我个人而言,我要求自己坚守自己的工匠精神,专注而勤奋是我对自己最基本的要求。