news 2026/5/30 12:48:52

我是如何学习编程的(没有计算机科学学位,没有训练营)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
我是如何学习编程的(没有计算机科学学位,没有训练营)

原文:towardsdatascience.com/how-i-learned-to-code-no-cs-degree-no-bootcamp-3e2c5b3918ea

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/bf39662735e02e2fca8d28a9e5cf65a9.png

图片由 Christopher Gower 在 Unsplash 提供

学习编程可能是我一生中做出的最好的决定之一。它为我打开了无数机会,并让我找到了一份我热爱的工作。不用说,现在能够编程是一项非常宝贵的技能,你可以找到很多工资相当高的工作。

因此,在这篇文章中,我想回顾我的整个编程之旅,并为那些刚开始你们旅程的人提供一些建议。

cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2F0GZ_2odp_Lw%3Ffeature%3Doembed&display_name=YouTube&url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D0GZ_2odp_Lw&image=https%3A%2F%2Fi.ytimg.com%2Fvi%2F0GZ_2odp_Lw%2Fhqdefault.jpg&key=a19fcc184b9711e1b4764040d3dc5c07&type=text%2Fhtml&schema=youtube

我的经历

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/601fd80b142a60b5bb5d78c0933e8906.png

图片由 Clemens van Lay 在 Unsplash 提供

我并不是那种 10 岁就编写了第一个编译器的年轻天才。事实上,我在大学的第一年,18 岁时,才写下了我的第一行代码。

我小时候的梦想是成为一名物理研究员,那是在我 13 岁时看了《生活大爆炸》之后。我基本上想整天在纸上或白板上涂鸦,试图解决量子力学或广义相对论中的复杂证明。

然而,在我物理学位的第一堂课上,我发现自己身处一个计算机实验室,正在学习如何编程。而且情况变得更糟。教授的语言,也就是我学过的第一种语言,是 Fortran。

现在,我对 Fortran 有一种浪漫的偏爱,我甚至写过一篇文章,解释为什么数据科学家应该考虑使用它而不是 Python。然而,作为我学过的第一种语言,它让我对编程并不那么感兴趣。

为什么你应该考虑作为数据科学家使用 Fortran

对于那些不熟悉 Fortran 的人来说,它可能是最古老的高级通用编程语言,并于 1958 年首次发布。它并没有一个庞大的社区,并且现在几乎不再使用。

Fortran 使用 DO 循环而不是 FOR 循环,这仅仅显示了它有多么古老!

与 Python 或 JavaScript 相比,它并不是一个理想的开始编程之旅的语言。公平地说,它让我对编程不太感兴趣,并且在我整个学位期间,我积极避免那些包含编程元素的模块。

我在第一次编码测试中表现也不太好,这可能没有帮到我。

尽管我对编程没有立即的热爱,但我从 Fortran 中学到了很多东西:

  • 变量和数据结构

  • for 循环和 while 循环

  • 函数和子程序

  • 如何导航终端

  • Bash 和 Z-shell 命令

这些是所有编程语言中普遍存在的核心思想和模式,以及如何使用它们。

说实话,尽管我可以用 Fortran 解决简单的物理问题,但我实际上并不“了解”如何编程。我只是学习这些主题以确保我不会在大学模块中失败。我对编程没有深刻的直觉。

我有一篇之前的博客详细说明了为什么我想成为一名数据科学家。但简而言之,我对在物理学领域进行研究的想法失去了兴趣,并受到了 DeepMind 的**AlphaGo**纪录片的启发。

如何成为一名数据科学家 – 没有计算机科学学位,没有训练营

要成为一名数据科学家,众所周知,你需要精通 Python。所以,尽管当时编程并不是我真正想做的事情,但为了有希望成为一名数据科学家,我需要学习 Python。

我第一次上的课程是 2020 年由freeCodeCamp提供的Learn Python – Full Course for Beginners。它大约有 4 个小时长,我一次就把它全部完成了。

cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FrfscVS0vtbw%3Fstart%3D604&display_name=YouTube&url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DrfscVS0vtbw&image=http%3A%2F%2Fi.ytimg.com%2Fvi%2FrfscVS0vtbw%2Fhqdefault.jpg&key=a19fcc184b9711e1b4764040d3dc5c07&type=text%2Fhtml&schema=youtube

这是一门极好的课程,可以让你了解 Python 语法和所有你需要知道的本地数据结构,所以如果你是初学者,我强烈推荐它。

在上述课程中,我使用了W3schoolsTutorialsPoint来补充视频中的材料。

Python 教程

Python 教程

在完成这门课程后,我需要一些实际操作和问题来解决,以便自己练习。最简单的方法是通过Hacker RankLeetCode。在我开始感到舒适之前,我解决了大约~50 个 Hacker Rank。

HackerRank – 在线编码测试和技术面试

LeetCode – 全球领先的在线编程学习平台

现在我已经掌握了基础知识,我需要学习数据科学 Python 技术栈。为此,我简单地给一位教授发了一条消息,他负责一个物理 Python 模块,并请求他提供课程笔记。

尽管人们可能会说,在我看来,数据科学遵循科学方法。因此,大多数在物理学中使用的 Python 库也在数据科学中使用,因为它们是相似的。

我还结合了这些模块笔记和Kaggle(一个数据科学竞赛网站)上的课程,以进一步巩固我的理解。

学习 Python、数据可视化、Pandas 等 | 教程 | Kaggle

到这个时候,我觉得我对 Python 的掌握已经相当不错了。请别误会,我并不是抽象装饰器的专家,但只要有足够的时间,我几乎可以从头开始编写大多数代码。

除了 Python,我还选修了几门课程来学习 SQL,因为它是所谓的“数据语言”,几乎每个数据专业人士都在使用。我使用的两门课程是Jose PortillaW3schools.The Complete SQL Bootcamp: Go from Zero to Hero

SQL 教程

从那时起,我开始构建简单的机器学习项目来丰富我的简历,以便在求职时使用。然而,在这个阶段,我已经超越了“学习编码”的部分,开始专注于提高我的数据科学技能。

所以,就是这样。

那就是我的整个学习编码之旅。它大约持续了 3 年,尽管一开始我只是从每周大约 4 小时的大学模块中学习。

实际上,我花了 2-3 个月的时间来学习 Python,但我确实有从 Fortran 学来的先验编程知识,而且我的物理背景可能也帮了我。

每个人的旅程都是独特的,我确信有些人比我更快地学会了编码,我也确信我比其他人学得更快。记住,你正在跑你的比赛,不要和别人比较,尤其是在学习像编码这样的硬技能时。

建议

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/db62d39e21bf4f8962c2f8a3b2980934.png

由Kenny Eliason在Unsplash上的照片

对了,现在我想给你一些建议,这是我希望有的,还有一些关键的事情我做对了,这有助于我的学习。

选择一种语言

从单一语言开始,理想情况下选择 Python 或 JavaScript,因为它们在当前环境中可能最有用。

如果你选择 C、Rust 或 Fortran 这样的语言,学习起来会更困难,可能会让你像我一样失去编程的兴趣。Python 和 JavaScript 将让你在早期就能构建东西,这有助于激励你继续学习。

显然,你可以自由选择你想要的任何语言,C、Rust 或 Fortran 也很重要,并且有它们的应用。这只是我对你认为应该采取的方法的一些看法。

这将会很艰难

有时候人们错误地认为编程是一项相当光鲜的事情,你可以“黑客”大型机或构建下一个 Facebook。

大多数时候,你会在 Google 上搜索,或者如今使用 ChatGPT,来查找从简单的加法函数中得到的回溯错误。你可能花在思考上的时间比实际在键盘上打代码的时间要多。

这个初期阶段将会很困难,你可能会什么都不懂。但随着时间的推移,你会意识到事物是如何相互关联的,你的技能也会提高。这是复利的力量。

正如著名的企业家和投资者**Naval Ravikant __**所说:

不是一万小时,是一万次迭代。

cdn.embedly.com/widgets/media.html?type=text%2Fhtml&key=a19fcc184b9711e1b4764040d3dc5c07&schema=twitter&url=https%3A//twitter.com/naval/status/1594923336043069441%3Fref_src%3Dtwsrc%255Etfw%257Ctwcamp%255Etweetembed%257Ctwterm%255E1594923336043069441%257Ctwgr%255E280e86329e1a925f62bb4613774bac7976e28ce0%257Ctwcon%255Es1_%26ref_url%3Dhttps%253A%252F%252Fcdn.embedly.com%252Fwidgets%252Fmedia.html%253Ftype%253Dtext2Fhtmlkey%253Da19fcc184b9711e1b4764040d3dc5c07schema%253Dtwitterurl%253Dhttps3A%252F%252Ftwitter.com%252Fnaval%252Fstatus%252F15949233360430694413Flang3Den-GBimage%253D&image=

有一个“为什么”

学习编程很酷,但如果学习没有背后的原因,你可能会很快失去动力。

对我来说,是为了成为一名数据科学家。然而,它可能比这更小。例如,你可能经营着一家杯子蛋糕店,并希望为它编写网站代码。

你可能没有明确的目标,只是想学习编程。这完全没问题。但也许你可以设定一个最终目标,比如一个项目,然后你可以写一篇关于它的博客。至少这会给你的学习提供一些方向。

结构、实践与多样性

在我看来,跟随课程是最好的学习方式。在这篇文章中,我链接了几个我用来学习 Python 的课程和教程,你选择任何一个都不会出错。

当你开始上课时,确保你对此做出承诺,并定期练习。你需要至少每周两次投入几个小时的时间来练习,以保持一个合理的进步速度。

尽管我建议选择一个课程并专注于它,但通过谷歌搜索你不清楚的概念来补充你的学习是非常有价值的。它提供了广泛的不同解释和多个示例,这可以真正增强你的学习。

摘要及进一步思考

编程是一项每年变得越来越重要的技能。如果你在考虑学习它,我保证这将是一项无价的技能。我希望我的经历和建议能成为你今年开始编程之旅时可以借鉴的东西!

另一件事!

我提供一对一的辅导通话,我们可以讨论你需要的一切——无论是项目、职业建议,还是只是确定你的下一步。我在这里帮助你前进!

[与 Egor Howell 的一对一辅导通话]

职业指导、工作建议、项目帮助、简历审查topmate.io](https://topmate.io/egorhowell/1203300)

与我联系

  • YouTube

  • 领英

  • Instagram

  • 网站

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/28 1:32:06

小智AI音箱JSON配置解析实战

小智AI音箱JSON配置解析实战在智能音箱这类资源受限的嵌入式设备上,如何用最小代价实现最大灵活性?这个问题困扰过不少开发团队。我们曾遇到这样一个场景:某批次小智AI音箱因海外部署需要临时更改时区和语音唤醒词,若按传统方式修…

作者头像 李华
网站建设 2026/5/30 15:16:41

Langchain-Chatchat能否用于法律文书智能检索?案例分享

Langchain-Chatchat能否用于法律文书智能检索?案例分享 在律师事务所的某个深夜,一位年轻律师正为第二天的庭审准备材料。他需要确认“民间借贷利率保护上限”是否有新的司法解释出台,于是打开电脑,在一堆PDF文件、内部备忘录和历…

作者头像 李华
网站建设 2026/5/29 1:17:03

多传感器数据对齐与空间特征融合技术解析

多传感器数据对齐与空间特征融合技术解析 【免费下载链接】OpenPCDet 项目地址: https://gitcode.com/gh_mirrors/ope/OpenPCDet 在自动驾驶3D感知系统中,激光雷达与摄像头的数据融合是提升检测性能的关键环节。OpenPCDet工具箱通过精心设计的坐标转换机制&…

作者头像 李华
网站建设 2026/5/30 2:32:43

JAX多精度推理的完整实践:动态精度控制的终极指南

JAX多精度推理的完整实践:动态精度控制的终极指南 【免费下载链接】jax Composable transformations of PythonNumPy programs: differentiate, vectorize, JIT to GPU/TPU, and more 项目地址: https://gitcode.com/gh_mirrors/jax/jax 深度学习模型推理时面…

作者头像 李华
网站建设 2026/5/28 12:38:46

FaceFusion镜像日志监控系统搭建:运维可视化的最佳实践

FaceFusion镜像日志监控系统搭建:运维可视化的最佳实践在AI换脸技术逐渐从实验室走向生产环境的今天,FaceFusion这类基于深度学习的应用已广泛应用于影视合成、虚拟主播和数字人交互场景。随着部署规模扩大,服务不再只是“跑起来就行”——稳…

作者头像 李华
网站建设 2026/5/28 12:38:46

c#DataTable类

在 C# 的ADO.NET中,DataTable是内存中的数据表,是DataSet的核心组成部分,也可独立使用。它模拟了关系型数据库中 “表” 的结构,包含列定义(DataColumn)、行数据(DataRow)、约束&…

作者头像 李华