成为一名优秀的程序员:心态和学习策略

2025-05-27

成为一名优秀的程序员:心态和学习策略

前言

软件正在不断吞噬世界,编程是未来许多人的必备技能。

如果你掌握了编程,它也包含很多乐趣。

在我的软件工程师生涯中,我遇到了一些非常优秀的程序员并从他们身上学到了很多东西。

这篇文章将为您提供成为一名优秀程序员的一些建议,特别是从思维方式和学习策略方面。

掌握编程需要花费很多时间,Peter Norvig 说十年可能就足够了,所以请保持耐心,让我们开始吧。

心智模型

成为一名优秀的程序员:心态和学习策略 3

每个人都可以编写代码,几岁的小男孩也可以编写出一些可运行的代码。

然而,成为一名优秀的程序员需要花费大量的时间和精力来磨练技能,也需要你有正确的心态,我总结如下:

终身学习

“我坚信,自学是唯一的教育方式。”——艾萨克·阿西莫夫

一切都瞬息万变,每年都有一些技术逐渐消亡,也有一些技术崭露头角。你不需要学习所有新奇的东西,但你需要了解趋势。同时,你还需要具备一些基本技能,以便在必要时能够快速跟上。

成为一名优秀的程序员:心态和学习策略 4

毁灭战士系列游戏的缔造者约翰·卡马克,在编程领域摸爬滚打了几十年,却还在努力学习一门新的编程语言,并尝试将其应用到产品中。要成为一名优秀的程序员,必须秉持终身学习的信念,为计算机行业的快速发展做好准备。

热情与坚持

编程并非易事,代码文档不完整、工作时间过长、产品发布压力巨大,这些都可能带来负面影响。如果你缺乏热情,调试就会把你的脑细胞彻底掏空。

成为一名优秀的程序员:心态和学习策略 5

从某种意义上来说,编程就是在创造一个全新的世界。一个热爱编程的程序员,即使花太多时间敲打键盘,也不会感到枯燥乏味,反而会感到享受和满足。

好奇心

要成为一名优秀的软件工程师,你需要对很多事情保持好奇心。

有很多问题需要回答。例如:

  • 库中的函数是如何实现的,它有哪些缺点和局限性?
  • Linux操作系统的内存管理是如何实现的,进程和线程是如何实现的?
  • 当您使用浏览器发送 HTTP 请求时会发生什么?

好奇心会促使你了解每个角落的细节,磨练你的技能,并将你推向更高的水平。

保持高标准

成为一名优秀的程序员:心态和学习策略 6

通常情况下,编写仅能运行的代码并不需要花费太多的尝试,有时你会从网上找到一些代码片段,然后粘贴到编辑器中,幸运的是,它能正常工作。但是……,可运行的代码是一个低标准,你需要保持高标准。对你的工作保持高标准意味着你需要将你的工作打磨到完美。

尝试问自己以下这些问题:

  • 你知道项目中每一行代码的含义吗?
  • 您的架构是否能够灵活地满足不同的需求?
  • 它适用于更大的数据量吗?
  • 它是否足够易读且易于其他人维护?

要保持高标准需要解决的问题有很多,最终会导致问题的复杂化,这也是为什么像谷歌这样的科技巨头会以高标准雇佣工程师的原因。

合作

即使是傻瓜也能写出计算机能理解的代码。优秀的程序员能写出人类能理解的代码。——马丁·福勒

编码就是用代码和机器沟通,但是你的代码也会被别人读到,也就是说你是在通过代码和别人沟通!

当你进入一个开源项目或者在一些公司工作的时候,你需要讨论需求,与别人交流想法,向别人展示自己,写文档等等。当然,有些超级明星可以忽略这些,因为他们可以写出很棒的代码来告诉世界!

对于大多数程序员来说,表达能力在所有互动中都会起到很大的加分作用。这是与他人合作最重要的软技能。

你可以创建一个技术博客来练习写作,这是一个非常详细的指南:如何开始你的编程博客?我也受到了 afternerd.com 的启发,创建了这个网站。

如何学习

作为一名程序员,你需要不断学习,所以最重要的一课就是学会如何学习,高效地学习。如果你掌握了快速学习新事物的规律,你就能更快、更深入地了解很多领域,最终成为一名更优秀的程序员。

成为一名优秀的程序员:心态和学习策略 7

费曼技巧为掌握新知识提供了一种深刻、基础、直观的方法,它旨在帮助您更快地学习任何事物。

计算机科学中有很多常见的概念。几乎所有东西,如果你能用通俗易懂的语言解释给别人听,就意味着你已经完全掌握了,并且掌握了你自己的方法。换句话说,边教边学是一种有效的方法。别自欺欺人。

边做边学是另一个重要策略,编写软件并不是什么高深的科学,它更像是一种技能的磨练,就像绘画、跳舞、打篮球或弹钢琴一样。

要成为专家,您需要每天坚持练习,尤其是当您是初学者时,您需要花费大量时间来获得编码和调试的感觉。

然后,你需要做一些实际的项目来实现一些实际用途,以确保你理解编写代码是为了解决现实世界的问题。

步骤

掌握基础知识

就像中国功夫一样,初学者会花很多时间来掌握基本的力量,然后再学习一些花哨的东西。

计算机科学已有约50年的历史,工具(编程语言、编辑器、平台)和计算能力在这些年里发生了翻天覆地的变化,但基础理论的发展却较为缓慢。如今几乎所有编程语言都是图灵完备的。

1969 年,玛格丽特站在阿波罗制导计算机源代码清单旁。照片由麻省理工学院博物馆提供。

以下是你必须掌握的科目:

  • 数据结构与算法
  • 操作系统
  • 编译器和编程语言
  • 计算机网络
  • 数据库

如果可能的话,去大学获得计算机科学学位,这对申请工作很有帮助,但这不是必需的。

程序员不像科学家那样需要更正规的学术训练。相反,许多优秀的程序员只是高中毕业而已。

对于自学成才的人来说,你可以找到很多有用的资源和书籍,用于学习计算机科学和编程。有很多开源项目、教程和公开课程

作为自学的初学者,不要孤军奋战,尝试与他人联系,或者找一位导师。这会加快学习速度,并帮助你避免犯错。

制定学习计划,不需要太详细。耐心一点,读完一本经典书籍,比如SICP ,可能要花一年左右的时间。

顺便说一句,《计算机程序的结构和解释》(SICP)是每一位真正的程序员都应该尝试读的一本书。

找到自己的轨迹

计算机行业有很多领域,你的职业生涯可能只专注于其中几个。游戏编程?Web开发?系统编程?机器人?所以,趁年轻,努力找到自己想深入的领域。如果你目前还不确定,那就继续寻找,不要止步于此

你的目标是让你感到最快乐和最满意的目标。

确保你对某个领域有足够的深度,这将给你信心和你自己的学习模式。

创造一些有价值的东西

如果您还没有Github帐户,请创建一个,然后运行!

成为一名优秀的程序员:心态和学习策略 8

Github是程序员分享项目和想法的地方,目前托管了许多著名项目的代码。

您还应该学习如何将您的代码推送到服务器,以及如何克隆其他人的代码。

审查其他人的代码对你自己很有帮助,当你开始申请工作时,为其他开源项目做出贡献也会有所帮助。

找工作

顶尖程序员很少有机会申请工作,因为工作机会会主动找上门来。其他一些优秀的程序员甚至不需要申请工作,因为他们的开源项目本身就能赚到足够的钱维持生计。但大多数程序员在正常情况下都需要申请工作。

候选人需要经过几轮面试才能拿到offer。好消息是,软件工程师和其他IT职位仍然需求旺盛。

对于面试过程,《破解编码面试》这本书将为您节省大量时间,它是申请程序员职位的非常详细的指南。

至于简历,拥有或对伟大的开源项目做出贡献将是一个亮点,一些内核程序员只会在简历中列出补丁编号。

推荐是申请工作的有效渠道,因为许多公司信任员工的推荐,并为成功的推荐支付一定的奖金。

跳跃并扩展自己

在职业生涯的初期,如果你无法提高自己的工作时间,那就跳出来尝试寻找新的工作。

你的时间很宝贵,特别是在你职业生涯的早期,不要犹豫。

在你加入的每个乐队里,永远都要做最差的那个人——这样你才能学到东西。你周围的人会影响你的表现。明智地选择你的乐队。——查德·福勒

当你收到大公司和小公司的offer时,一定要认真考虑。记住,要找到一家真正符合你长期目标的公司,不要只考虑薪水,你的职业生涯是一条漫长的旅程。通常,小公司意味着高风险,也意味着潜在的高回报。

还有一件事

保持健康至关重要,一些上了年纪的程序员,由于长期坐着,身体疼痛难忍。手指受伤、心脏病、肥胖是程序员的主要健康问题。

保持良好的生活方式是对年轻程序员的第一条建议,保证充足的运动和休息时间。编程不是生活的全部,找个爱好,享受你的闲暇时光。

更多资源:

  1. 从源代码学习(初学者成长的有效方法)
  2. 如何学习所有编程语言,是的!全部!
  3. 最好的计算机科学书籍
文章来源:https://dev.to/snj/to-be-a-great-programmer-mindset-and-learning-strategy-n3j
PREV
使用 LEARN 上的这 5 个模块学习 Node.js
NEXT
5 个可能会给你带来麻烦的 JavaScript“技巧”。