用程序员的大脑思考

2025-06-07

用程序员的大脑思考

最近,一位参与Twitter #100daysofcode活动的用户向我提问。我关注这个标签是为了给新晋开发者加油,支持他们的努力。

问题是这样的......

您认为除了(随着时间的推移研究各种示例)之外,什么可以帮助我像程序员一样思考?

我得花点时间整理一下思路。这不是一个简单的问题。

我可以回答这个问题吗

首先,我10岁就开始做程序员了;当时没有大学学历。后来我获得了计算机科学(CS)理学学士学位。我毕业的时候还没有互联网,所以我猜我是一个自学成才的前端开发人员。

我曾在小型和大型团队工作过,开发内部一次性应用程序和企业级面向客户的应用程序。

我使用过瀑布模型、看板模型、Scrum 和敏捷模型。有些团队的要求比较宽松,而有些则必须严格按照规章制度执行。

大学教育的好处

首先我想说,自学成才的程序员可以学到这些东西。有很多优秀的书籍、在线大学课程以及其他在线资源和社区可以学习。

然而,它们并不像上大学攻读计算机科学学位那样结构化,在很多情况下也不像上大学攻读计算机科学学位那样深入,因此需要进行更多的自主学习。

计算机科学

  • 计算机科学专业的大学生接受过大量的算法和数据结构训练,他们通常能找到更好、更高效的解决方案。
  • 他们接受过编译器理论的培训,并且大多数人都知道如何实现编译器或解释器。
  • 他们接受过高等数学(微积分、线性代数、统计学)的训练。
  • 他们的解决问题的能力普遍比没有学习算法、数据结构、编译原理、操作系统原理的自学程序员要好。

沟通

我在大学里学到的很大一部分是沟通技巧。我仍然记得学习团队会用到的各种技巧,这些技能多年来一直弥足珍贵。

在如今的团队中,我每天有百分之四十到六十的时间都在开会:

  • 跨团队层面的规划。
  • 团队层面的规划。
  • 编写和管理即将开展的工作的卡片(与团队的各个成员讨论)。
  • 参加或出席知识转移会议。
  • 记录流程。

工作几乎有一半是沟通。

最初的问题

因此,最初的问题很简单:“人们怎样才能学会像程序员一样思考?”

1.程序员需要编程。

他们需要...

  1. 编写代码。
  2. 观察代码是否失败。
  3. 学会调试失败的代码。
  4. 修复损坏的代码。
  5. 返回步骤 1。

该过程的一部分包括重构

  • 有时需要进行重构,将“工作代码”转换为更快、更可用的更好的代码。
  • 非正式情况下,重构只是查看并实现代码中的小改进。这通常是一种学习工具(例如 if 分支、转换为 switch 语句、转换为对象引用工具)。本质上,重构是学习何时恰当地使用语言的各个部分。

2. 程序员需要熟悉CS理论

  1. 解决问题的技能(是的,有很多关于解决问题和批判性思维的好课程)。
  2. 算法和数据结构。
  3. 要知道,所需的数学知识不仅仅局限于高中水平。

3.沟通

沟通也是一种后天习得的技能。这不仅仅是保持开放的心态和进行对话的能力。这种沟通包括:

  1. 与“客户”合作以确定他们的需求。
  2. 与设计师和开发人员(在团队中或其他)合作,完善需求并规划开发过程。
  3. 与质量保证部门合作,协助他们测试应用程序。
  4. 在会议上展示工作(审查或知识转​​移)。
  5. 与高级或初级开发人员合作。
  6. 参与代码审查和拉取请求。
  7. 遇到问题时向队友寻求帮助。

沟通还可以包括以下内容......

  1. 能够建立一份好的简历(如果与 LinkedIn 信息相符会很有帮助)。
  2. 可能撰写文章来展示您的专业一面。
  3. 演讲(在聚会或会议上)。
  4. 营销自己(社交媒体)。

4. 知道如何研究

大多数开发人员都知道,当你遇到问题时,StackOverflow可以成为很好的资源。

这归结为...

  1. 如何在 Google(或其他搜索网站......我使用 Google)上正确搜索
  2. 从可靠的网站查找相关信息(w3Schools过去实际上包含大量不正确的信息)
  3. 如何确定找到的信息是否真正适用于您要做的事情。

5. 知道何时休息

这里的休息不仅仅是指吃午饭或每小时休息15分钟。我指的是,当你陷入困境,无法摆脱困境时,要意识到自己已经陷入困境。休息通常需要暂时放下代码……让你的潜意识去解决问题。

概括

最初的问题是......

您认为除了(随着时间的推移研究各种示例)之外,什么可以帮助我像程序员一样思考?

以下是我认为对于获得“程序员大脑”很重要的核心领域。

  1. 程序员需要编程(需要花费大量时间编写代码)。
  2. 程序员需要熟悉 CS 理论(理解这些理论可以提高编写和诊断良好代码的能力)。
  3. 程序员需要沟通技巧。
  4. 知道如何研究。
  5. 知道何时休息。
文章来源:https://dev.to/rfornal/think-with-a-programmers-brain-2109
PREV
我的第一个使用 MERN Stack(后端)的博客 关于我的博客的所有内容:后端 后端博客:如何?
NEXT
与程序员的大脑闲聊