一个半路出家程序猿的领悟

我是一个半路出家的猿类,编码搬砖这种行为非我所愿,但搬砖久了猿类的思维已深入我心。我本工科出身,本可以安安静静做个思考者,做点高大上的实验,点亮人类某一丝科技之光。但在读研的时候,因为机缘巧合,我被带入了计算机这个学无止境的深坑。

没有学过操作系统,没有学过数据结构,没有学过数据库等一切计算机核心课程的我完全懵圈了。命运有时真会开玩笑,苦笑几声之后,只能面对现实。唯一的欣慰是当年因为程序设计的老师是个女老师,所以谭浩强版C语言我还是学得不错。我开始了一面听老师讲各种计算机高级课程,一面吃力自学各种基础课程的痛苦之路。好在功夫不负苦心人,我竟然以专一第一的成绩顺利拿到硕士学位(此处应有掌声)。研究生三年学习算是拜了祖师爷,入了门,但给我留下了“要想当好猿类,吃苦是必须”这点深刻感悟。

学习期间有幸碰到好导师和好师兄,我在一边学习计算机理论的同时,也有幸在师兄的带领下参与导师申请的软件项目。理论说得天花乱坠,不会动手编写程序的猿类也是然并卵。就冲着做项目每月有点零花钱补贴自己喝酒吃肉,我跟师兄后面学习编码搬砖。编程就像搭积木,项目做多了,对各个积木属性和方法就熟悉了,剩下的就是重复劳动。程序功能实现了,但由于半路出家和科班出身的猿类在编写代码上会有显著的风格差异,因此我没少被人鄙视。原来,半路出家的猿类,比如我,放荡不羁,我心自由,代码写得随意潇洒,时间久了自己都看不懂。科班出身的猿类讲究江湖规矩,代码整整齐齐,什么变量命名有含义啊,注释要齐全啊,一套一套。我想既然走向了猿类这条康庄大道,那就专业点吧,开始学习各种语言编码规范,争取自己装逼装得更完美些。通过修炼,我得到了入行第二个感悟:动手能力是学习计算机的根本,在动手中学,在动手中找差距并提高。

工作以后,逐渐发现要成为一个猿类中的高手的路还很艰辛。原来按编程规范,只会拷贝粘贴代码,并遇到问题,切解决过各种bug,还是一个低端劳作者,所谓行家一出手,就知有没有,懂得设计模式,并能得心应手的使用,才能脱离低级趣味,走向软件设计、系统设计的高层。 怎么办呢,学习吧。学会了程序设计,本以为可以歇歇,又发现现实工作中解决问题的核心往往是算法。随着Alpha 狗大肆虐各种人类围棋高手后,人工智能兴起,计算机作为工具,通过编写各种算法在大数据中进行机器学习才是未来的方向。人工智能说到底又是数学,决策树,贝叶斯估计,模式识别,神经网络等等,对我都是新鲜知识,怎么办,还是硬着头皮学吧。通过不断得学习我有了第三个感悟:当个优秀的猿类好累啊,必须紧跟时代发展步伐,终身学习!

也许感觉心累,也许是命运眷顾,又一个机缘巧合的机会,我告别程序猿队伍,开启了新的职业。新的工作不需要我天天编码搬砖,但往往遇到问题还是需要计算机作为工具来解决,而且感谢我有那几年程序猿的经历,让我看待和思考问题的角度更加程序化和实用化。原来计算机一直就没有离开过我,因为这个社会的发展离不开计算机。回顾这十年来程序猿的经历,从最开始的什么都不懂,到后来一知半解,觉得自己懂了,拿着锤子到处找钉子,以为老子做技术天下第一,同行相轻,再到后来发现自己咋又有不懂的,还有那么多知识需要学习…如此循环递归,永无止境,直到自己随着岁月的增长,阅历的沉积,并经过高人点拨,才真正顿悟。原来计算机学习的三重境界和禅宗对人生的三重境界的划分有异曲同工之妙,那就是:第一重界:看山是山,看水是水。第二重界:看山不是山,看水不是水。第三重界:看山还是山,看水还是水。

图片发自App

你可能感兴趣的:(一个半路出家程序猿的领悟)