如果我能重新开始-我会如何学习编程

如果我能重新开始,我会如何学习编程

原文:towardsdatascience.com/how-i-would-learn-to-code-if-i-could-start-over/

据各种来源,英国编程工作的平均工资约为£47.5k,比大约£35k 的中位数工资高出约 35%。

因此,编程是一项非常有价值的技能,它能让你赚更多的钱,而且真的很有趣。

我现在作为一名数据科学家和机器学习工程师,已经从事编程工作 4 年了,在这篇文章中,我将解释如果我要重新开始,我会如何学习编程。

我的旅程

我仍然记得我编写第一段代码的时候。

我物理本科的第一天早上 9 点,我们在计算机实验室。

教授解释说,计算是现代物理的一个基本组成部分,因为它允许我们运行从亚原子粒子碰撞到星系运动的各类大规模模拟。

这听起来很棒。

我们开始这个过程的方式是通过阅读教科书来学习 Fortran。

是的,你没听错。

我的第一种编程语言是Fortran,具体是 Fortran 90。

我在学习 FOR 循环之前学习了 DO 循环。在这种情况下,我绝对是少数。

在那个第一次实验室课程中,我记得按照惯例编写了“Hello World”,想着,“这又有什么大不了的。”

如果你感兴趣,这就是你用 Fortran 编写“Hello World”的方式。

program hello
print *, 'Hello World!'
end program hello

我实际上在 Fortran 编程上真的很挣扎,在测试中表现不佳,这让我对编程失去了兴趣。

我在我的 GitHub 上还有一些 Fortran 的老项目一些旧编程项目,你可以查看一下。

回顾过去,编程的学习曲线相当陡峭,但它确实会累积,最终会突然领悟。

我当时没有意识到这一点,并且积极地避免在物理学位中参加编程模块,事后我对此感到后悔,因为我的进步会更快。

在我的第三年,我必须作为硕士学位的一部分进行一次研究实习。我选择的公司使用一种名为LabVIEW的图形编程语言来运行和管理他们的实验。

LabVIEW 基于“G”的概念,教会了我以不同于基于脚本的方式思考编程。

然而,我自从就没有使用过它,可能永远不会使用,但当时学习它很有趣。

我多少享受了研究的那一年,但研究进展的速度,至少在物理学中,是痛苦地缓慢。不像我设想的 20 世纪早期的“黄金时代”。

有一天,在我的 YouTube 主页上推荐给我一个视频。

对于那些不知道的人来说,这是一部关于 DeepMind 的 AI AlphaGo 战胜世界最佳围棋选手的纪录片。大多数人认为 AI 永远不可能擅长围棋。

从视频中,我开始了解 AI 是如何工作的,并学习关于神经网络、强化学习和深度学习。

我发现这一切都很有趣,类似于 20 世纪初的物理学研究。

最终,我开始为数据科学和机器学习职业学习,这需要我自学 Python 和 SQL。

这就是我所谓的“爱上”编程的时刻。

我看到了它在实际解决问题中的真正潜力,但主要的是,我有一个有动力的理由去学习。我正在学习进入我想要从事的职业,这真正推动了我。

然后,我成为了一名数据科学家三年,现在是一名机器学习工程师。在这段时间里,我广泛地使用了 Python 和 SQL。

直到几个月前,我只会这些编程语言。我还学习了其他工具,如 bash/z-shell、AWS、docker、data bricks、snowflake 等,但没有学习其他“真正的”编程语言。

在我的业余时间,我几年前稍微接触了一下 C 语言,但现在几乎都忘记了。如果你感兴趣,我 GitHub 上有一些基本脚本

然而,在我几个月前开始的新角色中,我将使用 Rust 和 GO,我非常期待学习。

如果你对我的成为数据科学家和机器学习工程师的整个旅程感兴趣,你可以阅读下面的内容:

如何成为机器学习工程师(没有 CS 学位,没有训练营)

选择一种语言

我总是建议从单一语言开始。

根据TestGorilla,有超过 8000 种编程语言,那么你该如何选择呢?

我认为其中许多对大多数工作来说都是无用的,可能只是作为宠物项目或针对非常狭窄的案例开发的。

你可以根据流行度选择你的第一语言。2024 年Stack Overflow 调查提供了这方面的详细信息。最流行的语言是 JavaScript、Python、SQL 和 Java。

然而,我建议你选择第一语言的方式应该基于你想要做什么或工作做什么。

  • 前端网页开发—JavaScript, HTML, CSS

  • 后端网页开发—Java, C#, Python, PHP 或 GO

  • iOS/macOS 应用—Swift

  • Android 应用—Kotlin 或 Java

  • 游戏—C++或 C

  • 嵌入式系统—C 或 C++

  • 数据科学/机器学习/人工智能—Python 和 SQL

由于我想在 AI/ML 领域工作,我主要专注于 Python 和一些 SQL。这可能是 90% / 10%的分配,因为 SQL 更小,更容易学习。

到今天为止,我仍然只把 Python 和 SQL 掌握到了“专业”水平,但这没关系,因为几乎整个机器学习社区都需要这些语言。

这表明你不需要知道很多语言;我在职业生涯中取得了相当大的进步,只掌握了两种语言,但达到了相当深的水平。当然,这会因行业而异,但主要观点仍然成立。

因此,选择你想要进入的领域,并选择该领域最需求且相关的语言。

学习最基本的知识

我看到初学者犯的最大错误就是陷入“教程地狱”。

这就是你在课程之间不断学习,但从未自己拓展的情况。

我建议最多学习两种语言的课程——实际上任何入门课程都行——然后立即开始构建。

我真的是指,自己动手做项目,体验挑战,因为学习正是在这里发生的。

除非你亲自编写函数,否则你不知道如何编写函数;除非你亲自创建类,否则你不知道如何创建类;除非你亲自实现它们,否则你根本不会理解循环。

因此,学习最基本的知识,然后立即开始实验;我保证这至少能让你学习曲线翻倍。

你可能已经听过很多这样的建议,但现实中它就是这么简单。

我总是说,生活中大多数事情都很简单,但很难做到,尤其是在编程方面。

避免趋势

当我说避免趋势时,我的意思不是不关注市场表现良好或需求旺盛的领域。

我要说的就是,当你选择一种语言或专业时,要坚持下去。

所有编程语言都共享相似的概念和模式,所以当你学习一种语言时,你间接地提高了自己以后学习另一种语言的能力。

但你仍然应该至少专注于一种语言几个月。

不要发展“闪亮物体综合症”并追逐最新的技术;这是一场你注定会输的游戏。

有很多“分散注意力”的技术,比如区块链、Web3、AI,等等。

相反,专注于基础:

  • 数据类型

  • 设计模式

  • 面向对象编程

  • 数据结构和算法

  • 解决问题的能力

这些主题超越了单个编程语言,而且比掌握最新的 JavaScript 框架要好得多!

深入理解一个领域远比试图学习一切要好。这不仅更容易管理,而且对你的长期职业发展更有利。

如我之前所说,我通过只掌握 Python 和 SQL 在职业生涯中取得了相当大的进步,因为我学习了该领域所需的技术,而没有被分散注意力。

我无法强调,如果你公开记录你的学习,你将在职业生涯中获得多大的优势。

记录你的学习

我不明白为什么更多的人不做这件事。在网上分享我所学到的知识,对我的职业生涯来说是最重大的变革。

实际上在 GitHub 上提交你的代码就足够了,但我强烈建议你在 LinkedIn 或 X 上发布,理想情况下,你应该创建博客文章来帮助你巩固理解并向雇主展示你的知识。

当我面试候选人时,如果他们有一些在线存在感,展示他们的学习成果,那对我来说就是立即的加分,并且比其他申请者有额外的优势。

这显示了热情和激情,更不用说增加你的偶然机会的表面积了。

我知道很多人害怕这样做,但你正在遭受[聚光灯效应]。维基百科将其定义为这里

聚光灯效应是一种心理现象,人们倾向于相信他们被注意到的程度比实际情况要多。

没有人真的在乎你在线发布还是像你想象的那么在乎你,只有 1%的人在乎。

所以,开始发布吧。

那么,AI 呢?

我可以花几个小时讨论为什么 AI 对想要从事编码职业的人来说不是一种即时风险。

你应该将 AI 视为你工具箱的一部分,但这仅此而已,它绝对不可能在 5 年内取代程序员。

除非在下一个十年内突然出现 AGI 的突破,这是极不可能的。

我个人怀疑 AGI 的答案不是交叉熵损失函数,这是现在大多数 LLM 所使用的。

已经多次表明时间时间,这些 AI 模型缺乏强大的数学推理能力,这是成为一名优秀程序员的最基本技能之一。

即使被称为“软件工程师杀手”的 Devin,也不如创造者最初宣传的那么好

大多数公司只是在炒作 AI 来提高他们的投资,他们的结果通常被过度夸大,使用了有争议的基准测试

当我构建一个网站时,ChatGPT 甚至在与简单的 HTML 和 CSS 作斗争,而这可以说是它的本职工作!

总体来说,如果你想成为一名程序员,不必担心 AI;在我们越过这座桥之前,还有许多更大的问题需要解决!

NeetCode 制作了一个很好的视频,解释了当前 AI 无法取代程序员的原因。

另一件事!

加入我的免费通讯订阅,分享数据,在那里我分享每周的数据科学家实践经验中的技巧、见解和建议。此外,作为订阅者,你将获得我的免费数据科学简历模板

与我联系

posted @ 2026-03-27 10:56  布客飞龙V  阅读(1)  评论(0)    收藏  举报