发量能决定一个程序员的水平吗
从事软件开发多年,程序员这个职业是高度的脑力劳动,几乎天天都盯在电脑屏幕上,经历过几家公司,认识的同事差不多也有几百个了,绝大部分头发还是完好无损的,当然也有个别的秃顶特别厉害,秃顶主要分为局部秃顶和全秃顶,局部秃顶的会多一些,至于大家说到的秃顶和技术有没有关系呢?
5.png上面这位想必大家都认识吧?James Gosling,Java之父。
各种软件系统,如 NeWS 和Gosling Emacs 的成功都归功于他的贡献。
6.png上面这位,Dennis Ritchie,C语言之父。
他是世界上最重要的计算机科学家之一,而且他也因为对 “数字时代” 所做的巨大贡献而广受赞誉。UNIX 操作系统,现在是 Mac OS X 等知名操作系统的核心,由 Dennis 和与他长期共事的 Ken Thompson 开发。
他们于 1983 年获得了由美国计算机协会颁发的图灵奖。在 1990 年,他们还获得了 IEEE 的 Hamming Medal,并于 1999 年获得了由克林顿总统颁发的国家技术奖。Dennis 在 2007 年退休,退休前担任朗讯技术公司系统软件研究部门的领导人职位。
7.png上面这位,Bjarne Stroustrup,C++之父。
他曾获得许多奖项,并创作了很多著名的书籍,包括 《A tour of C++》,《C++程序设计原理与实践》,《C++ 程序设计语言》,《C++语言的设计和演化》等。
8.png上面这位,Linus Torvalds,Linux之父。
在 1991 年开发了 Linux,并担任 Linux 内核项目的首席架构师与项目协调者。他还负责创造了版本控制系统 “Git” 和日志分割软件 “Subsurface”。由于他为计算机创造的开源操作系统,使得 Linux 内核被广泛使用,他也被 Technology Academy of Finland 和 Shinya Yanamaka 授予 2012 千禧年技术奖。
9.png上面这位,Guido Van Rossum,Python之父。
在 Python 社区,Guido Van Rossum 被人们认为是 “仁慈的独裁者(BDFL)”,因为他仍然关注并监督着 Python 的开发进程,并在必要的时刻做出决策。
从 2005 年到 2012 年,他在谷歌工作,在那里他负责开发 Python 编程语言,然后在 2013 年离开谷歌在 Dropbox 工作。
上面这几位在编程界都是响当当的人物,观察一下,发现除了Guido Van Rossum,其他几位都有或多或少的秃头。可以看出,C++应该是最难学的,Python应该是最容易上手的,我想这也是为啥大家都说“人生苦短,我用Python”的原因。
从事软件开发都会有不同层面的局部秃顶,有几次理发的时候,理发师说到两边头发有点少,通过发型给遮挡下。大部分的程序员都有这种情况,不过距离大家说的秃顶还不是一码事,绝大部分秃顶很厉害主要还是基因因素,只不过加班起到了催化剂的作用。而且程序员的很多冷笑话都是程序员在网上无聊直接编写段子自嘲,由于互联网具有快速传播的效应,结果很快在互联网快速传播开来,格子衫,秃顶,颈椎病,黑眼圈都成了程序员标配了,就是一种职业病的表现,任何行业都会留下职业病的影子,绝不只是发生在程序员身上。
但程序员技术的高低受到很多因素的影响,并不见得职业病越强能力就是越强,程序员的水平高低正常来讲由以下几个因素决定:
1、对编程充满无限的兴趣
兴趣是第一老师,有了兴趣就容易主动去钻研,喜欢在业余时间研究技术,知识体系也相对比较丰厚,加上日积月累,所以兴趣是成为优秀程序员的一个非常有利的因素,编程从本质上来讲不难,但在实现同一个功能上差异非常大,也能看出来水平的高低,有了兴趣就会懂得琢磨一些内在规律,什么事情就把怕较真,无论什么水平的人只要认真起来都会有不同的收获。
2、扎实的编程基本功
很多做了几年的程序员都会容易忽略对编程基本功的学习,很多程序员觉得现在做的工作由于只是涉及的比较少,没必要把所有的基础都搞起来,基本功包含的东西非常多,常见的算法,编码习惯,编程语言的基础语法,常见的工具的使用熟练程度等等都是编程基本功的体现,熟练到一定程度就会融入骨髓,更加容易培养技术自信度。
很多老程序员去面试看到笔试就走了,虽然不能讲这人水平不好,起码在选择公司方面范围狭窄了不少。
3、具备一定层面的框架思想
软件框架是整个软件的骨骼,其余的一切都是附属,编程语言都属于工具范畴,很多人喊着掌握了多少种编程语言都是为某个框架服务,编程思想和框架是软件中心思想,至于格子衫,是否秃顶就当段子或者笑话对待就可以了,不要太当真,软件讲究的是不要重复造轮子,但需要深层次研究轮子是如何构造起来的,如何让轮子运转的更加流畅,思维在这些层面上出来的东西就会深刻许多。
4、自学能力和自制能力
其实这两种能力在每个行业都很重要,但我觉得在编程上更甚。师傅领进门,修行在个人。即使是在学校,教给我们的也是C/C++,Java的一些基础语法,一学期就结课,单凭这点知识,是完全不能够找到一份工作的。所以自学应该贯穿我们程序员的职业生涯,包括在学校和工作中。
拿Java Web开发来说,学校一学期就教你Java的基础语法,你要找工作,可以看看各个公司的招牌要求,下面是我在招聘网站上随便截的一个图
10.png
学校教的知识完全不够看,那能咋办,只能自学啊。Java基础、框架、设计模式、调试工具、数据库、高并发、顺带点前端知识。
到了工作中依然如此,刚入职一头雾水,不了解业务,看不懂代码,所以还是得自学。
自学伴随的一个问题必然就是自制力了。我也是通过自学找工作的,所以对此深有感触。自学最重要的两个点我觉得就是Code(动手敲代码) + Blog(写博客总结),很多同学自学容易三天打鱼两天晒网,或者一直看视频但不做笔记,这都是错误的方法,当然排除那些特聪明的人,不过我相信大家都是智商差不多的,好记性不如烂笔头。我是在去年3月底开始自学Java的,自学了大概三个月的时间,在自学期间我基本是早上8点去图书馆,晚上9点闭馆回寝室,一个月写的最多的是30多篇博客。当然我自制力也不好,不然我秋招的结果就会更好了==。
举我的例子就是想告诉大家,自学和自制力也是很重要的,我觉得重要性应该排在兴趣之后,任何一件事大抵都是这样,兴趣 + 自学 + 自制 = 成功。
最后我想告诉大家的是,秃顶的程序员不一定就是高手,高手不一定非要秃顶,这里面没有必然的关联,有些话听听就行了,不要太认真。