【译文】给程序员的一些额外建议
最近,有人问我对初入职场的程序员有没有什么建议。起初我以为这是个愚蠢的问题。我十年前才参加工作,而我的许多博客阅读者从事编程的时间比我还长!
然而,我读了一些 “给初入职场的程序员的建议 “的文章,想到了他们遗漏的一些东西。因此,这里有十三条给初入职场的程序员的建议。其中有些建议自相矛盾。
- 人们听我讲话并不是因为我是个优秀的程序员,而是因为我是个优秀的作家。这并不意味着你应该自动拒绝一切,但这意味着你应该仔细考虑它,并评估它如何适用于你的情况。对任何关于“客观事实”的争论都持保留态度:很少有关于软件的科学研究,而且大多数研究都是不确定的。
- 但也不要太担心被 “骗 “或学 “错”。如果你觉得别人的想法很好,那就试试看!只要你没有主动去影响其他人的工作,那么即使你回过头来想 “我应该换一种做法”,最终也可能会成功。这就是学习的意义所在!
- 阅读 Debugging: The 9 Rules。从图书馆借一本,或者让你的公司买一本,都可以。这本书读起来非常简单,而且教授了一项重要的技能,所有其他 “程序员初学者 “书籍几乎都没有涉及。
- 在某些时候,你会发现正确的编程方法,也就是让这一切变得有意义的方法,你会相信,如果其他人也用正确的方法编程,整个领域就会变得更好。对我来说,正确的方法是测试驱动开发;对你来说,它可能是函数式编程、lisp、形式化方法或其他无数方法中的一种。我不会告诉你不要被 “正确之路 “所迷惑,因为那几乎是不可能的。老实说,发现 “正确之路 “的感觉真的很棒,人生苦短,不能没有好心情。只要注意你正在被 “正确方法 “所吸引,尽量不要让自己的身份成为 “正确方法 “的拥护者。蜜月最终会结束,你会发现无论人们使用哪种 “正确方法”,编程都是令人沮丧和混乱的。随着时间的推移,你会学习到五十种其他的正确方法,并学会根据手头的问题将它们混搭使用。
- 当你第一次接触 “正确方法 “时,很可能会遇到 “正确方法达人”。以后尽量不要对他们持否定态度。也尽量不要把实际技术与 “正确方法主义者 “如何推销技术混为一谈。大多数想法都需要从最纯粹的形式上进行一些修改,才能与其他想法很好地融合。
- Julia Evans曾经说过:”每一个最佳实践的背后都有一个恐怖故事。如果你不理解某个最佳实践,那就找找激发它的恐怖故事。它可能会让最佳实践变得有意义。它可能会变成与你完全无关的东西,然后你就可以放心地换一种做法了。
- 在上一条建议的基础上:很多最佳实践和惯例都是 “路径依赖 “的,是由历史和文化因素共同作用的结果。有些事情我们这样做是因为我们的导师这样做了,有些人这样做是因为他们的导师这样做了,有些人这样做是为了解决一些已经不再重要的问题。如果有些事情听起来像个故弄玄虚的故事,那就很有可能是真的。如果你愿意看,往往可以追溯到整个过程。
- 散步。
- 从编程语言到 git 再到 JIRA,您使用的几乎每一种工具都有某种形式的隐藏深度。不要觉得自己必须成为每个工具的专家,但可以考虑花 5-10 分钟多了解一下它的功能。
- 与公司其他部门的人员交谈:支持、业务领域、销售等。如果你有时间(并愿意提出要求),可以考虑跟班学习。你会对自己学到的东西感到惊讶!
- 如果可能的话,尽量在职业生涯的早期从事几种不同类型的编程工作。这并不一定意味着要换工作:大多数公司都会同时进行几种不同类型的编程。因此,如果你刚开始在一家网络开发公司工作,可以尝试一些前端、一些后端、一些操作、一些数据库方面的工作,等等。这有助于你学习,但更重要的是增加了你找到自己真正喜欢的软件工作的机会。我的第一份工作是前端开发,当时很痛苦。后来我转到了后端,就像那些想花更多时间做前端的人一样,我快乐多了!
- 你可能听过这样的建议:软件作为一个领域一直在变化,你不应该被卷入框架的漩涡,只需专注于学习基本技能。这是事实,但并不能解释 “为什么”。由于结构原因,软件中的信息传播速度非常快。这是由很多因素造成的(互联网、开源、会议),但总体而言,软件中分享想法的门槛较低。因此,即使只有一个人在使用,也很容易让很多人知道某个人的业余项目。这样做的结果是,你听到的很多技术的用户群都很小,永远不会得到广泛采用,但从你听到的情况来看,似乎并非如此。这就是为什么保守是有意义的。如果你听说了什么让你兴奋的东西,就去做一个早期采用者,否则等上几年看看它是否有生命力也是可以的。
我今年的工作就到此为止;新的研讨日期等我回来再定。2024 年再见!
- 归根结底,我们谁也无法预测未来,就像我们谁也无法预测现在一样。只要尽力而为,按照自己的价值观生活,并享受这趟旅程。
本文文字及图片出自 Advice for new software devs who've read all those other advice essays
你也许感兴趣的:
- 【外评】80% 的开发人员不开心
- 【外评】如何判断自己已成为高级程序员
- 【外评】如何成为最优秀的程序员
- 【外评】程序员大神每天什么都是时候工作?
- 【译文】在 Meta 工作 12 年:回顾我参与的所有项目
- 【译文】每个开发人员都需要问自己的一个问题
- 【译文】程序员工作很累,但 70% 的程序员在周末休息时以写代码为乐
- 【译文】我是一个糟糕的程序员
- 在技术圈逢凶化吉,靠的居然不是技术?Altman 晒出17条年终总结,人际关系占首位
- 【译文】加密货币交易平台FTX审判,第四天:欺诈在代码中
你对本文的反应是: