Noah Gibbs是一名专业的软件开发人员,再过两年,他的程序员生涯就要满40年了。近日,他发表了一篇长文来分享自己近40年编程之路的感悟,对于想要长期从事编程开发工作的人来说非
Noah Gibbs是一名专业的软件开发人员,再过两年,他的程序员生涯就要满40年了。近日,他发表了一篇长文来分享自己近40年编程之路的感悟,对于想要长期从事编程开发工作的人来说非常有意义。
这篇长文中没有编程技巧,也没有提到该学哪种语言或者框架,而是讨论了一些作者刚开始觉得没有意义,而现在却成为他启明星的那些细节和道理。让我们一起来看看这位老前辈都总结了哪些要点~
///// 01
年龄不是问题
“我学IT的话,年纪会不会太大?”
“30岁才入行,会不会太晚了?”
似乎一提到IT行业,人们都会很关心“年龄”这个话题。Noah Gibbs举了一个例子来回应这一点:他从一年前开始学习钢琴,当时的他已经54岁,如果能够坚持下来,那么60岁的他一定能够非常熟练地演奏钢琴。这一点对于软件开发人员来说也一样,即便你已经50岁,也仍然有30年左右的大好时光成为一名软件开发人员。“我遇到过的优秀程序员很多都是从20岁、30岁甚至40岁开始从事这份工作,你有什么理由不能从现在开始呢?虽然这需要时间和努力,但并不意味着你要从小开始。”
当然,起步晚可能意味着你很难追上行业里的那些佼佼者。就像很多没有从小学习乐器的人很难成为演奏家一样,但是这并不妨碍更多的人投入这一行。即便是Noah Gibbs也做不到像Alan Kay那样年纪轻轻就写出了Smalltalk,但他依然热爱编写软件。如果你想从事软件工作,“不做Alan Kay也没关系 ”这样的想法是必要的。
///// 02
软件开发还很年轻
计算机语言 Fortran 可以追溯到 1957 年,其他一些语言也差不多同一时间出现(LISP 和 Algol:1958,COBOL:1959)。假设大约从 1957 年开始就有程序员,那么这一行一共有65年历史。Noah Gibbs是从1984年成为一名程序员、从1998年开始全职带薪工作的,至今已经快40年的从业经验了。Alan Kay——Smalltalk 编程语言的发明者,从 1963 年左右开始成为程序员,至今也拥有了59 年的职业生涯,可以说是经验非常丰富了。
然而从其他行业来看,以天才大提琴家马友友为例,四岁半就开始拉大提琴的他已经有六十多年的演奏经验了,可他他远远不是世界上演奏时间最长的音乐大师。《吉尼斯世界纪录大全》记载,Kasper “Stranger”Malone连续80年都有专业的音乐作品发布。
你看,一个真正有经验的音乐家的工作时间,甚至比软件开发整个学科存在的时间还要长15年。所以,软件开发这一领域还很年轻。
/////03
学习顺序并不是,最重要的
对于很多刚入行和想在这一行长期发展的人来说,经常会纠结于先学什么语言和技术。Noah Gibbs建议:“只要能写一些软件,任何软件都可以”。成为一名合格的程序员,你需要学习很多不同的东西,按什么顺序来学习它们并不是什么大问题。几十年来,技术的兴起与衰落从未停止,桌面应用、移动应用、操作系统和系统、网络编程......虽然大家从事的方向有所不同,但是基本都会涵盖多种编程语言,学习顺序不是最重要的,愿意尝试不同的东西才是关键。
你在四个不同的领域各花十年的时间,会比你花40年的时间写网络套接字服务器要好得多。并不是说40年的深度没有价值,深度绝对有价值,所以你也不应该在四十个不同的领域各做一年。
/////04
通过基础工作,来学习深层原理
Noah Gibbs表示不建议大家一开始就去学习软件设计的深层原理,因为如果你试图把它们作为理论来学习而没有实践经验,你肯定会做错。首先要做的是学会用某种实际的语言构建一个可用的软件,哪种软件都可以。只有当你经历过一些实践上的错误,下一步才能讨论有什么理论可以解决你所遇到的问题。
构建、犯错、学习理论,修正错误,做这一切的顺序并不是绝对的。即便是先学习深层理论,也不会意味着你就会一直做不好,只不过可能需要更长的时间来正确使用你所学的东西。所以,通过基础工作来学习软件设计的深层原理才是更好的办法。
Noah Gibbs在最后表示,自己所写的这些感悟是为了帮助大家消除疑虑,而不是改变个人在程序员这条路上努力的方法。如果你编写程序,你就是程序员或者软件工程师,或者任何你喜欢的称呼。只要你坚持写程序,你可以成为经验丰富的程序员,“坚持”二字,才是最重要的。
(责任编辑:中博IT教育)