一位老程序员38年经验总结:不要有年龄危机,直接去做

更新日期: 2022-09-20阅读: 373标签: 经验

能把一件事坚持 40 年的人并不多,我们今天要介绍的这位就是其中一员。他叫 Noah Gibbs,从事编程工作快满 40 年了,最近他用博客的形式分享了自己总结的一些经验。

再过两年,也就是 2024 年,我将成为一名拥有 40 年编程经验的工程师。在此期间,我也获得了丰厚的回报。我该从哪里介绍我的经验呢?就从软件开发说起吧。

软件开发还是「年轻」的

就拿编程语言来说,Fortran 可以追溯到 1957 年,同时期出现的还有 LISP 、Algol 等。设想一下,假如从 1957 年开始就有人从事编程工作,到今天也已经有 65 年的经验了。

至于我,自 1998 年以来,我一直是一名全职程序员,时间跨度达 24 年。不过严格说来,我从 1984 年就开始干程序员这一行了,这样算下来已有 38 年从业经验。

至于其他行业,例如文艺界大提琴演奏者马友友(Yo Yo Ma)从 4 岁半就开始拉大提琴,演艺生涯超过 63 年,但他还不是世界上演奏时间最长的音乐大师。根据吉尼斯世界纪录,有位音乐人在过去 80 年里连续发行了多个音乐作品,这还不包括现场表演或其他活动。

因此相比其他领域来说,我们(编程)的领域还很年轻。

年龄不是问题

其实,不管从什么时候开始都不会太晚。大约一年前,45 岁的我开始学习钢琴。如果我能坚持下去,在我 60 岁时,我相信自己会成为一名非常优秀的钢琴家。

我遇到过很多优秀的程序员,他们从 20 岁、30 岁甚至 40 岁才开始。我不明白我们为什么不能从 50 岁或 60 岁开始学习一项新的东西。年龄不是问题。

尝试不同的事情

如果你想从事一段漫长而又无趣的编程生涯,而现在又刚刚开始。不用担心你刚起步,我经常会鼓励别人「只要开始着手写一些软件,任何软件都无所谓,只要去行动就足够了。」在此过程中,你会学习很多不同的东西,学习顺序并不重要,重要的是你学到了什么。

以我个人为例,在我 40 年的职业生涯中,会遇到很多编程要求,如桌面应用、操作系统、Web 程序等等。只要你尝试不同的事情,不必在意先学哪个,后学哪个,边用边学。如果你太拘泥于学习而忽视实践,可能会失败。

学习的东西暂时没用?等等看

假如你担心自己学的东西没用怎么办?其实没用是相对的。比如我,我把多年业余时间投入到一种名为 DGD 的 旧 MUD 编程语言中。这门语言于我而言用处不大,然而学习过程却教会我很多。它教会我后来 Ruby on Rails(一个使用 Ruby 语言写的开源 Web 应用框架) 使用的东西,它教会我关于使用数据库编程的知识,即使它没有使用数据库!

总之,这一学习过程在我后来学到的五六种不同的语言中都很有用。

有趣的是,多年后我凭借 DGD 找到了一份咨询的工作。本来世界上就没有多少这种工作,但我就是其中之一!这比学过许多实用的语言更实用。

我也经常对自己说「现在还早」,我的意思是,我才 46 岁,不是 96 岁老的快走不动了。我至少还有 20 年,也许 50 年的时间用来学习。

不管怎样,最重要的是持续不断地工作。要想成为一名拥有 20 年、40 年或 70 年经验的程序员,需要付出很多努力。学习一些有趣或有用的东西,10 年、20 年或 30 年后回过头来看你收获了什么。

谈到工作,我认为工作是一种很好的学习方式。不过我也喜欢做一些与工作无关的事情。无论与工作有关与否,我都会编写一些代码。我喜欢写一些其他程序员可以使用的东西,这样才有意义。假如说,你不喜欢现在的工作了,你要想办法改变你的观点,让自己适应工作;假如真的无法坚持,你应该采取措施,比如休假或者辞职。

要脚踏实地

做决定很容易,比如你要成为一名计算机程序员,然后制定了一堆计划、无数个要点、分成几大部分来实现这一目标。但是我想说的是,不要把计划看得太认真。

学习编程并不是一项你计划好的任务,当你开始动手时,你就是一个程序员。如果你还没开始,建议你去一个在线代码学习网站编写你的第一个程序,它应该不会超过 20 分钟。

当你积累到一定程度,开始写一些规模较大的软件时,可能会面临程序臃肿等问题,这时你就需要学习一些模块化和封装的知识。想让程序运行得更好,还需要掌握一些数学知识。所有这些都可以在网上找到,如果你想深入学习,还能找到参考书籍和课程。

你也可以培养一些爱好,而不是把所有精力投入到软件编程里。保持继续工作,它会让你变得更好,不要害怕那些看起来不切实际的工作。就像我不知道我要怎么用音乐来帮助我的软件编写。但未来是非常遥远的,没有人可以预测 20 年后会发生什么。

让自己变得更优秀

早期的职业培训(编程学校、博客文章、大学课程、书籍)有点像装配线,会学习到一些非常基础的技能,例如编写函数、调试等,这种学习方式试图确保你能掌握基本编程能力。

如果你想在一众人中展露锋芒,你必须非常擅长某件事,而这件事必须是受欢迎的、有利可图的、缺你不可的那种。如果你打算在软件领域赚到比尔 · 盖茨那样的财富,而你却写了 Haskell(复杂、深奥、广受好评,但没那么赚钱),那么这将是一个巨大的失败,反之亦然。

从基础中学习深层次原则

不要一开始就去学习软件设计的深层原理,假如没有实践经验的话,这个过程会很痛苦。你可以先从构建简单的软件开始,至于用哪种语言也不用纠结,关键是动手实践。然后找出这一过程遇到的错误,查资料、从原理上进行解决。

假如同样的过程循环 20 年,构建、查错、学习理论、纠错,你会收获很多。在这个行业,技术变化相当快,你也可以从其他领域学到很多东西。

不要害怕,直接去做就好了。至于我,四十年的时间不知不觉就过去了。无论如何,只要坚持下去,就算成功了。

原文链接: https:// codefol.io/posts/the-fo rty-year-programmer/

链接: https://www.fly63.com/article/detial/12155

跳槽经验教训整理

战线切勿拖太长,除非练手,否则不是真心想去的公司就别试了。对公司信息的了解要放在平时,多与同事朋友了解沟通,偶尔逛逛blind一亩三分地一类,这样才能确定下次跳槽的目标,有的放矢。选公司不是买菜!别见一个爱一个

项目中前端开发问题经验总结

ie下websocket的安全限制问题:数据看板中的数据大部分都是实时数据或前一天统计的历史数据,因此这边后端考虑采用websocket来实时和定时推送数据来保证数据的实时性和有效性。而前端开发这边为了提高前端开发的复用性,采用了在各个组件中开发成一个个的小部件

20年程序员分享编程经验

从11岁时,我就一直在编程,并且一直都很喜欢技术和编程。这些年来,我积累了一些艰难又容易的经验。作为一名程序员,你或许还没这些经验,但我会把它们献给那些想从中学到更多的朋友

CSS开发中的10个易错点

我发现前端开发人员一直在努力征服CSS。理由也很充分,开发人员是用逻辑思考的生物。添加一个DIV元素导致所有代码都不得不往下移一行,而另一个DIV“浮”到左侧,感觉没有任何意义

优秀程序员的代码经验总结

这是一篇值得收藏起来,隔三差五就拿来重读的文章!因为作者向你保证,他“遇到的所有糟糕的代码,都是因为没采纳这些实践经验。而任何一段优秀的代码,都采纳了至少部分实践经验。”

摆脱JS框架,5年web组件开发经验总结

别再用 JS 框架了,转向可复用、可正交组合的 HTML+CSS+JS 单元吧。这几年我零零碎碎写过一些进展,现在既然 Jon 问到了,我觉得有必要把这些总结成一篇文章概括一下。我和我的团队一直在用 Web 组件来构建我们的 Web UI。

从业 20 年的程序员,“盘”出来的 5 种编程经验

一个拥有 20 年编程经验的“熟手”,编程干货有多少?本文的作者是一名从业 20 年的程序员,在本文中,他分享了自己这 20 年来学到的 5 种编程经验:重复的知识最糟糕、把代码当成一种债务、对高级开发人员信任但去验证、使用 TDD

来自10位成功IT人士的23条经验教训

我们是从一个只有3个人其他啥都没有的创业公司逐步成长为一家大型的具备可扩展性,业务操作能力,数据库和产品开发的企业。如果你真心醉心于做企业,那么这就应该成为你的目标

50 万行代码喂出来的一些编程经验

踏入职场后写代码已经有 14 个年头,保守估计应该垒了有 50 万行的代码。尤其最近 1 年多从 0 开始写起 Bytebase,日常也会 review 同事的代码。趁着端午也总结了一些经验

提升前端开发质量的十点经验沉淀

特别是网络请求或者其他异步操作中,await 记得包裹 try catch,可以给用户一个友好提示,同时可以考虑 catch 中需要做什么兜底处理,必要时进行上传日志。

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!