你可能主要用Python, Java, Go, JavaScript这些语言编程,把他们作为吃饭的家伙,除此之外,我建议你考虑学习这几种短期看起来没用的语言。
首先是C语言, 说实话,学习C语言不能给你带来立竿见影的、直接的好处,因为它是一门非常基础的语言,用它来写的都是一些系统级的软件,如操作系统,虚拟机,TCP/IP协议栈等等。
但是当你开始学习计算机底层的原理性知识,例如操作系统,网络,数据库,总会接触到C语言,比如和应用层结合紧密的IO多路复用,要想真正地理解,还得靠C语言去展示。
C语言贴近硬件,它的指针可以直接操作内存,配合汇编,可以帮你在脑海中建立一个程序是怎么在机器级别执行的图景:函数是怎么调用的,参数怎么传递的,对你以后学习各个虚拟机也大有好处。
但问题是什么时候学呢?要学到什么程度呢?
我是在大学学的C语言,学之前连计算机都没怎么用过,连Turbo C的菜单是什么意思都理解不了, 老师讲的东西像天书一样,悲催至极,过了两个月才慢慢缓过劲来。
工作后用C/C++写COM组件,勉强靠C语言混口饭吃。后来自学操作系统,看《操作系统:设计与实现》,真正体会到了C的重要性,因为底层的进程管理,内存管理,IO管理,都是C语言搞定的。我对C语言并不是非常精通,但是看C语言的代码应该是绰绰有余,我觉得这就足以让我在底层的世界中遨游了。
科班出身的,建议在大学把C语言搞定,转行过来的第一门语言可以考虑Python。
然后是Lisp,学习Lisp不仅仅是为了学习函数式编程,因为在很多语言中函数式编程已经得到了支持。
Lisp之强大只有亲自深入学习以后才能感受得到,这种“变态”的,在运行时可以改变自身的能力,这种数据和代码一致的表示,会刷新你对编程语言的认知。
Raymond说得好:Lisp之所以值得一学是基于另外的理由——当你最终掌握了它的时候,你将会获得巨大的启迪。它将使你成在今后为一个更好的程序员,即使你实际上很少使用LISP本身。
第三种语言是英语,因为编程世界,英文大行其道。
IT界的新概念,新技术主要是美国人发明的,我们还处于跟随阶段,阅读技术文档,需要用到英文,和翻译版相比,它们更加及时和准确。
英语有听、说、读、写,对程序员来说,读最重要,如果你参与了开源的项目,对写的要求会高一些。只有你在外企,或者和国外有合作项目,听和说才会变得重要。
考过四级的,词汇量应该差不多,要多去读英文的技术资料,锻炼自己的阅读能力。
第四种语言是汉语。 难道我学了十多年的语文,还得学习?有没有搞错?
其实我这里想说的是写作能力,有人戏称,高考作文就是你人生写作的巅峰,我发现还是有一定道理的,很多人写出来的东西,确实是有点惨不忍睹。
在码农翻身知识星球中,有不少提问都让我摸不着头脑,得多次交流才能准确理解,这个方面确实得加强。
如果你认为在这个行业只要凭代码说话就够了,那你的眼光就太狭隘了。在对内的工作中,你需要写邮件和别人沟通,写设计文档让别人理解你的思路,写PPT给领导做汇报。在对外的宣传中,你会写博客,写公众号,写一切能宣传公司,宣传自己的东西。写作是不是很重要?
不一定要妙笔生花,妙语连珠,但总得准确、清楚地把自己的想法给表达出来吧。
写作输出是建立影响力的一种重要方式,要慢慢地锻炼出来。
【本文为51CTO专栏作者“刘欣”的原创稿件,转载请通过作者微信公众号coderising获取授权】