其实目前的程序员有点像运动员,从事生产的主力都是年富力强同时又经验丰富的人。当你光剩下经验丰富时,你得退位成为“教练”。但是比较悲剧的是,程序员没有像运动员一样有一套成熟的培养、成长体系,也没有一套像运动员选拔一样的相对标准的水平考核机制。更多的是靠比较随机的学习,谁也不会给你定一个模板,然后给你一个成长学习路线。那程序员的成长路线应该是怎么样的呢?程序员的水平又要怎么样判断呢?
类比一下运动员,运动员的水平分为两个部分,一个是基础的能力,比如跳高、短途冲刺、运球跑、往返跑、投篮命中率。第二个就是实战能力,比如传球视野、时机把握、团队配合、战术领悟力。基本上NBA这样的球队都能比较准确的评估一个的能力,甚至在游戏里面还给每个运动员一个能力值。
程序员应该也是可以分成这么两个部分的,基础能力方面,就是算法、数据结构、一门语言的熟练程度、操作系统原理、网络基本原理、包括主流框架原理;第二个实战方面,就是应用这些基础能力去解决问题的能力。比如面对高并发,怎么解决性能问题(资源评估、技术点、技术策略)。
可是矛盾的是,即使是聚焦在Java后台开发这样一个岗位上,对于目前的大学教学体系来说,这样的技术面还是太宽了。当然这并不是说这样的要求就真的是太高了,其实在校外的培训机构在这方面是比较成熟的。所以这样势必会造成大量的学生会在大学阶段就参与校外的培训课程。当然,以后也势必会影响大学的教学内容。当我们的大学生毕业时,都基本能具备这些基础能力和一定的实战能力时,软件开发这个行业一定是进入到了一个像运动员、作家、画家一样的拼努力和天赋的成熟阶段了。而不是像现在一样,更多的是靠信息的不对称。
所以对现在这些没有足够天赋,同时也并不努力的程序员来说,你们真的是处于这个行业最舒适的一个阶段了。未来的软件开发行业,一方面会非常的的光鲜,像现在的运动员、明星一样,频频出现在公众视野受人膜拜;另一方面会非常残酷,绝大部分人带着美好的憧憬一头扎进这个行业里,沦为一代又一代的炮灰。
当然,我们也可以试着去为这个行业做点什么。我们可以试着去让学生阶段的孩子真正了解什么叫程序,让未来的软件科学家尽早的启蒙。我们可以翻译国外最新的、最前沿的理论文章,提高国内广大程序员的理论认知水平。我们可以试着用自己的实际工作内容去演绎一个技术点的精妙之处。。。
其实只要我们想,只要我们对这个行业还真正的“爱”,我们可以做的还可以有很多很多。。。。。。只是希望你看完这篇文章之后,不会从心底里感叹:对编程再也无爱了!!!
网友评论