在很多人印象里,程序员总是那些呆板的形象。那么什么才是真正的程序员,什么才是优秀的程序员呢?
国内的互联网蓬勃发展,但是却很多程序员在吐槽,这是为什么呢,程序员在国内的环境究竟如何呢?
能力
能力在程序员的世界里其实是非常容易衡量的,而且是非常容易区分的。我曾经面过一些人,也被面过很多次,这里来简单说下。
差的程序员
学习别人教给他们的,学会需要使用到的,能够运用学会的知识,解决一些简单的问题。
这也是为什么近些年这么多培训机构,然而程序员的职位依然短缺的原因。没有一定的知识基础,大学学的一些其他辅助学科,仅仅学会一门语言,一种编程模式,是没有什么太大意义的。就如培训机构所说的,几个月就让你学会Java开发。这种量产出来的东西终究不能成为一名合格的程序员。
合格程序员
会自主的学习新的知识,学习别人的项目,学会使用别人的功能。
这种人员能够自我提高和更新,主要体现在技术的体量和深度上。一个合格的程序员不仅仅知道自己项目中存在的一些功能,还知道其他人也实现了类似的功能,以及之间的区别优劣。他能完成很多分派的任务,也不需要去担心太多的风险。
可以说,很多公司其实就是要这样的人,这也是没有办法的事实,毕竟所有公司的目的是为了盈利,而不是为了更好的程序。对于他们来说,足够就行,而不是足够优秀。
优秀程序员
除了会主动学习,更多的是会主动思考。思考如何让一个项目更稳定,更加完美。
这是一种完美主义者的追求,所以很多时候经常捣腾点东西。可能有时候会给项目带来一点点小麻烦,也有可能会给项目带来极大的提升。但总的来说是往好的方向发展。
这个非常依赖个人的主观意见,每个人的理解并不一致,有些人可能觉得知识的体量和深度是衡量的标准,也有人可能认为创造性是一个标准。总而言之,这一区段的人员很难从合格中区分开来,需要有一定的见地,才能比较有效的衡量。
特别优秀程序员
这是一个可以影响这个行业的人,将在优秀期间的思考升华,创造出拥有足够影响力的东西。
这个阶段的人也特别容易区分,往往已经成为业界的大佬。当然,也是寥寥几人。
做人
以下可能有些会让人觉得不愉快,如果你觉得我说错了,就当我在胡说吧。
标准
上面说到一名优秀的程序员是比较难以被辨识出来的,而且每个人在不同的角度来看也是不同的。
之前看到有一条动态,有人在嘲笑阿里p8的员工去面试,连基础的几个概念都搞不明白,在嘲笑阿里的技术水平。我们再从第三者的角度来看看这个问题。先不论这位阿里员工技术水平,招人方肯定是以技术能力来衡量的,面试官问一些细节、生僻的问题,来体现自己的厉害,但是这有意义吗?他们需要的是一个可以干活的合格程序员,又不是一个管理者或者架构师。
然而这个现象在招聘中依然非常普遍,因为其他方面的能力真的太难只经过一场面试就看出来了,所以只能通过技术来考察。而越是厉害的人可能更有所专精,通用的技术考察往往又不能达到他们的深度,可能他们的面试结果还不如某些刷了很多面试题的人呢。
所以现在就有很多人抱团取暖,相互贴金。
做人
程序员这个群体都太过于自信和高傲了。这种自信对于写代码来说是必要的,可是在做人方面是完全失败的。
用通俗一点的话来说,你不干了,公司可以找一百个,一千个人来替代你,你又不是行业的大佬,这些人完全可以比你做的更好。不像其他的职位,做的久了,会建立很多关系,会有很多的回头客。这种现实又导致这个行业的极度缺乏安全感和安定。
就像现在的网络直播一样,有多少技术高超,甚至是世界冠军的人,在开播的时候还有些人来捧场,可是时间一长,身上的光环退去,也只能被淹没在众多的播主中间。
所以在学会做一件事之前,更多的去学会如何做一个人吧。
淘汰
同时,程序员之间的竞争是非常残酷的。技术的更新迭代实在太快了,几乎每年都会有新的技术出现,所以程序员需要不停的去学习。只要你停下来了,就会有很多努力的人会超越你。
这样的现象更加严重的加剧了上述的一些现象,也更加压缩了程序员的时间。
有很多故事,都是碰到领导空降,赶跑了一大群老员工。不敢说是不是老员工真的能力不行,或者是反抗新领导。很大程度上是新领导为了自己的业绩,从而牺牲一些无关痛痒的老员工吧,谁让你是这么容易就可以被替代呢?不论老员工如何的哭诉,在老板那里肯定也是尽是老员工的不是吧。
那么,等年纪大了,不能达到公司产出的要求了,各方面能力都不及从前了,是不是就很容易被公司所抛弃了呢。
最后
现在的互联网行业还是非常年轻的,但也是竞争非常严峻的,很多事情也不像代码这般清晰。所以程序员,收起你的自负,去学习如何做一个人吧。