做 40 年程序员是一种什么体验?他给出了 13 条建议

民间故事有哪些2022-09-28  12

做 40 年程序员是一种什么体验?他给出了 13 条建议

做了40年的程序员是一种怎样的体验?

一个从1984年就开始做程序员的老哥出来“发声”了。

他总结了自己近40年的从业经验,收集了13条建议,希望能给长期想做程序员的新手提供一些帮助。

快来看看他都分享了哪些干货。

这位哥哥的名字是诺亚·吉布斯。曾就职于Nvidia、AppFolio Inc、DAQRI等公司,目前就职于Shopify。

作为一名资深软件开发人员,他一直活跃在开发的第一线。

但和他想象的不一样,这次他没有引入任何语言或框架去学习,而是指出了一些他认为比技术更重要的东西。

(以下是作者诺亚·吉布斯的语气)

1.几岁开始永远不晚。

大约一年前,在我45岁的时候,我开始学习弹钢琴。感觉这一年一直在进步,相信坚持到60岁一定会很棒。

编程也是如此。当你已经有了一些其他领域的背景,你会很快学会编程。

相信我,如果你50岁开始做程序员,10年后,你60岁的时候,肯定比我18岁的水平强很多。

我遇到过很多优秀的程序员,他们都是20岁、30岁甚至40岁开始的,所以我不知道你为什么不能在50岁、60岁开始。这一行需要时间和工作,但你不一定要年轻。

2.尝试不同类型的编程。

如果你是行业新人,想长期从事编程行业,我的建议是:多写软件。什么软件,写什么都不重要。

在我40年的程序员生涯中,许多趋势来了又去。可以说,让自己尝试不同类型的编程很重要。

这可以让你的思维不变得僵硬,事实证明,几乎任何规则都可以教会你一些东西。

如果你过于坚持单一的任务,你很可能会失败。

3.不要怕回报慢。

不要觉得自己学的东西没用,因为没用只是相对的。

我曾经花了很多年的业余时间研究一种叫做DGD的古老的MUD编程语言。当然,这并不是为了实用价值,因为几乎所有关于它的东西都是陌生的、不规范的,真正能应用的很少。

但它教会了我很多。它教会了我Ruby on Rails后来的应用。它教会了我如何使用数据库编程。也教会了我后来学的五六种语言都可以用的东西。

有趣的是,多年后我在DGD找到了一份咨询工作。世界上没有多少DGD工作,但我有一个!这比我学过的很多“实用”语言都实用。

正如我总是对自己说的,“还早着呢。”你可以学到更多有趣或者有用的东西,哪怕可能是十年、二十年、三十年后才有回报。

不要总是选择18个月后会变好的东西,因为你无法预见未来会发生什么。

4.找到工作的吸引力。

你一定是开始写代码了,因为它的某些方面吸引了你。你要做的是试着找出它是什么。

这个答案每个人都不一样。对我来说,我喜欢写代码给我带来的成就感和智能。

只有在工作中找到足够吸引人的点,才能长期坚持。

如果你感觉不到任何吸引力,你可能需要休假或者重新寻找自己喜欢的工作,因为这样的工作只会让你疲惫不堪。

5.不是短跑或者马拉松,是写日记。

如果你是新手,在下定决心“我要做程序员”之后,你大概会制定一个详细的计划。该计划可能包括8个大点,56个小点等等。

我不会告诉你不要这么激动,但我会说:不要把这个计划看得太重。因为你不可能事事都靠计算和计划。

在某些时候,你并没有“偏离自己设定的任务”,你只是“过好自己的生活”。这不是失败,也不是放弃。

你无法预测什么是有价值的,所以你应该学习一切。我的经验是,你活得越久,工作得越好,你就越会意识到,一切(每个人)都可以教会你一些有用的东西。

你不是在跑短跑或马拉松。反之,就像写日记一样。

十年后,你会翻看这篇日记,说“哇,我做了一些很酷的事情”或者“嗯,我是一个很有趣的人”,但我想你不会在日记里写“我很擅长Java”。

6.不要混淆工作和职业。

不要把工作和职业混为一谈,它们不是一回事。

对我来说,写软件是一项伟大的工作,但它只是一个可以接受或更好的职业。

在接受别人的建议时,你还应该注意对方是否提到了关于工作或职业的建议。如果把两者混为一谈,这个建议就没多大意义了。

7.学习的顺序不重要。

刚开始的时候,你经常会得到不同的建议,比如先学什么语言或技术,但这并不重要。

如果你没有按老规矩来,而是开始了自己的路,不代表你基础工作没做好,也不代表你不好。

因为如果一个东西真的很重要,你迟早会找到它,重新学习。

8.你越优秀,你就越与众不同。

程序员早期的专业培训(如博文、大学课程、书籍)就像流水线一样,努力培养你各方面的基础能力。

而且新手很容易误以为一个总工程师需要很多技能,每个技能等级都一定很高,但事实并非如此。

你可以通过编写一个相当简单的代码并详细描述它来获得尊重,就像帕特里克·麦肯齐在Bingo Card Creator中所做的那样,或者通过编写一些真正有利可图的东西来获得尊重。

除了基本能力,这几条路没什么共同点。

这就是为什么在求职时问这样的问题是愚蠢的:“我是一名有15年工作经验的软件工程师。我平时工资多少?”

15年是这么长的时间,你要形成和别人不一样的优势。你写过书吗?有没有搞过大规模盈利的项目?你集成了一个有趣的开源项目吗?这15年你都做了些什么?

当然,这不仅仅是工资的问题。你可以问:“我是一个有15年经验的软件工程师,这意味着我有能力领导这个项目,对吗?”当然,答案是“可能”。下一个问题是“15年你做了什么?”

9.从实践中学习

我不会建议人们从一开始就学习软件设计的深层原理,因为如果你试图将它们作为纯理论来学习,你几乎肯定会出错。

对于初学者来说,首先应该学会用一些实用的语言来构建一个可用的软件。不管是哪种语言,只有犯一些真正的错误,才能在错误中解决问题。

那么你可以这样循环:练习,犯错,学习理论,改正错误。

当然,这并不意味着你先学了理论就永远变差了,只是需要一些时间来正确运用你所学的知识。

10.什么技术重要?

想做几十年程序员,不仅要学习各种技术技能,还要学习各种非技术技能。

比如“学习至少一门函数式编程语言”,就像钢琴家“学习演奏莫扎特的钢琴曲”一样必要,但同时学习一些编程中涉及的边缘技术,会为你培养额外的洞察力。

1.向其他领域学习。

如果我们的行业还年轻,意味着什么?这意味着我们还在研究基本原理。

可以从其他领域学到很多东西。我曾经写过一本书,讲的是如何窃取艺术家的练习方法,正是因为艺术和音乐是古老的学科,比计算机领先了几千年。

所以,如果你遇到问题,你可以考虑一下其他领域的人会怎么处理。

例如,Atul Gawande的“清单宣言”讲述了飞行员、摩天大楼建造者和医生处理问题的不同方式。这些都是好方法。

12.不要重复造轮子。

众所周知,如果艺术家反复画一幅静物,音乐家反复练一首曲子,就会越来越熟练,但程序员就不一样了。

程序员中有一句话,“不要重复造轮子。”我们的工作就是想办法让计算机做所有的重复性工作,这样我们就只能做新的工作了。

你可以尝试重新发明轮子,也可以故意用一种“糟糕”的方式写代码,看看会发生什么。总而言之,你需要真正擅长一些不寻常的事情。

13.去做吧。

我一直在给你推荐非技术方面的建议,而不是那些充斥着技术专家的论坛,充斥着最近转向程序员的人的偏执热情。

如果你写程序,你就是程序员,或者软件工程师,或者随便你怎么称呼。

只要你坚持写下去,无论多少年,你总能成为一名程序员。反正坚持下来就合格了,这才是最重要的。

那么,看完之后,你对程序员行业有什么新的认识吗?

除了文字版,作者还在YouTube上传了视频版,链接放在评论里。感兴趣的朋友可以自己拍~

https://code fol . io/posts/the-四十岁程序员/#disqus_thread

视频链接:

https://www.youtube.com/watch?五世=UPkJGU7Itb0

参考链接:

https://www.linkedin.cn/incareer/in/noahgibbs

转载请注明原文地址:https://juke.outofmemory.cn/read/1826592.html

最新回复(0)