请不要说本身是 Java 程序员

几年前 Reddit 上有个关于招聘的笑话:程序员

面试官问:你用过 Python 或者 Django 吗?
答:我三周前去过动物园,这个算吗?
面试官:你被雇佣了。面试

一周后,这位应聘者用 Django 给他们的产品写了一个在线论坛。
英文的玩笑,用中文看有点不太容易懂。它的意思就是一个关于 Python(蟒蛇)经验只有三周前去过一次动物园的程序员,只要他足够的好,他也能够用一周的时间,基于 Python/Django 完成一个在线论坛。数据库

常常在网上看到各类标题为“Java程序员”、“PHP程序员”、“C/C++程序员”的招聘帖子,但我感受这种招聘方式,很难找到好的人才。语言只是一种工具,对一个聪明的程序员来讲,用没用过什么工具主要是由他原来的工做须要决定,并不能表明他所有的技能。django

另外,一个软件产品每每涉及不少方面的知识,好比网络、数据库、Cache、编译环境工具等。若是这些必要基础知识不足,很难很好的独立完成一个产品的某个部分。后端

另外一方面,一我的的聪明程度、对新知识的好奇心、自我驱动意识、为问题找到最佳解决方案的决心,才是他能不能成为一个好程序员的关键。举个例子,我在担任 JPush CTO 的时候,有位同事原本是服务器端以 C 语言为主作开发的,彻底没有过 iOS 开发经验,但他表现出对 iOS 开发颇有兴趣,而且在作服务器端开发时,表现出良好的学习能力,后来我把他调到 iOS 组,负责 iOS SDK 和 APNs 相关的工做,结果只花了几个星期,iOS SDK 的稳定性大幅提高,解决了多个致命问题。服务器

我常常在团队里强调,不要把本身定位为某种语言的程序员,说本身是 Java 程序员,C 程序员,Python 程序员等等。一方面会限制本身的发展,一方面对团队总体的能力提高也不利。几乎全部的语言都有它本身的适用场景,在合适的地方用合适的语言,才能极大的提高生产效率。网络

正确的作法是,首先要有良好的基础知识,深入的掌握2~3门语言,而后适用于不一样场景的语言要了解概念。基础知识包括各类计算机原理、数据方面的知识,在学校没认真学的,如今有时间也要补充。语言方面好比掌握了 C/Java,那 C++/Python/Bash/Javascript/CSS等均可以了解下概念,至少要理解在一个完整的产品链里,它们分别适用于哪一个环节。工具

标题用“请不要说本身是 Java 程序员”没有贬低 Java 程序员的意思,Java 是目前被采用得最多的语言,主要用 Java 的程序员里,也是有大量牛人。另外,一样的,也不要说本身是 C 程序员、Python 程序员。学习

之因此用 Java 做为标题,一是如今以 Java 语言为主的工做很是之多,另外在学校里就以学习 Java 为主的人也愈来愈多。但我发现,从学校就以学习 Java 这种高级语言为主的人,不少基础知识比较薄弱。高级语言掩盖了太多细节,提升了生产力,但在学习阶段,却不利于基础知识累积。ip

软件行业是一个很是强调人的价值的行业,价值就体如今有效的推进产品前进,而语言只是实现这个价值的工具。

做者
张虎
weibo: @Tiger_张虎云巴 (yunba.io) 创始人,yunba.io 云后端服务。 JPush 创始人,原CTO。 Oracle VM 创始团队成员。

相关文章
相关标签/搜索