如何成为一名开发人员——第 1 部分:编码技巧
1 学习一门语言
程序员编写计算机代码,所以你必须学会说这种语言。
但是,你首先学习哪种编程语言并不重要!这完全取决于你对什么感兴趣。例如…
- 如果你想进入 Web 开发,你应该从 JavaScript 或 CSS 开始。
- 如果你想构建用户应用程序,Python、C# 和 Java 是流行的入口点。
- 如果你对系统开发(例如操作系统)感兴趣,请研究 Rust 或 C++。
- 如果你想玩数据分析或统计,请从 Python 或 R 开始。
Haskell、Ruby、Go、PHP 和 Perl 是其他流行的语言。
如果你完全不知道从哪里开始,请选择 Python!它被认为是最适合初学者的语言之一,它为以后学习几乎任何其他编程语言提供了坚实的基础。
我想学习一切!
不行,这个想法是万万不可的。没有人会知道有关编程的一切。总会有你不熟悉的语言、工具、算法、库和概念。
即使是在这方面工作了几十年的开发人员也不断地发现,他们的理解总和只是该领域知识海洋中的一小滴。
如果你仔细想想,这是一件好事!无论你从事编程工作多长时间,你都永远不会用尽新的想法来探索。几乎有无限的增长空间。
我记得很多年前一次工作面试中被要求描述 TCP 和 UDP 之间的区别。我的心一跳,因为这是我不知道的一个知识点,或者说不是很了解。然后,我深吸一口气,给出了这样的答案:
我不得不接受这样的想法,即我不可能知道一切,就像我想知道的那样。我可以学习的东西太多了,但老实说,由于缺乏使用,大部分内容都会在我的脑海中消失。我不得不采取一种政策,即在我正在从事的项目需要它们之前不学习大多数东西。值得庆幸的是,我只需要几分钟就可以做到这一点,所以效果很好。
这是我在触及到自己不熟悉的领域时做出的积极回应,我可以肯定地说这是正确的答案。
2 编写代码
理论一切都很好,但在你付诸实践之前,它绝对没有任何意义。
我经常将编程比作游泳:你可以阅读有关游泳的所有内容,但除非你跳入水中,否则它没有任何意义。此外,如果你只停留在浅层,你永远不会精通。你需要尽快潜入深渊。
值得庆幸的是,在编程中(不像游泳),你实际上不会淹死。当然,一开始你会喜欢它,这是一件好事!当你在第一次编码体验中挣扎时,你最终会发现事情开始变得不好玩了。有点挫败感实际上对学习过程有益;它有助于坚持下去。
在我自己的经历中,我从来之不易的胜利中学到的东西比从轻松的胜利中学到的要多得多。当我遇到一个看似无法解决的问题、一个不可能的错误、一个令人愤怒的心理障碍时,我曾有过很多次放弃的想法……而这些实例中的每一个都成为了我的锚线!我能记住每一个。我的大部分专业知识都来自这些经历。
所以,开始编码吧。边学边研究。在需要时学习新技能。问很多问题。
我应该编码什么?
有许多开发人员问过我,“我应该做什么?” 你可以通过三种主要方式获得编码经验:
为自己创建一个项目
让它变得简单,你会亲自使用。没有人能为你想出这个项目。它应该可以解决你熟悉的问题。
你必须是目标用户!这样可以确保你既了解构建问题的知识,又拥有坚持下去的热情和动力。
为开源软件做贡献
再次,找到你个人使用或关心的项目。不用担心不够了解。潜入吧!
开始阅读代码。克隆存储库并构建项目。尝试修复小错误或进行小的改进。帮助文档。
如果你认为你已经对代码进行了改进,请不要羞于创建拉取请求。即使它被拒绝,你也会学到更多关于编程的知识,并证明你愿意提供帮助。对于开源维护者来说,这种积极的意愿远比一百个错误报告更重要。
重新造轮子
你想了解链表吗?堆排序?表格提交?自己建造!
这里的目标不是创造生产质量的东西。通过编码,您掌握了所学事物的基本概念。从字面上看,这就是我获得数据结构方面所有专业知识的方式。
不幸的是,有些人会试图告诉你,你不应该“浪费时间重新建造轮子”。别理他们。任何会告诉你“只使用”预先构建的东西来替代学习事物如何工作的人,充其量是懒惰无知,最坏的情况是破坏你作为开发人员的成长。通常,他们只是想为自己不了解更多信息的决定辩护。
如果我的代码很糟糕怎么办?
你会写出糟糕的代码,这没关系。在这个阶段,重点不是完美,甚至不是很好。你唯一关心的应该是编写最终有效的代码。
我喜欢告诉新开发人员:如果阅读你三个月前编写的代码不会让你感到轻微不适,那么你做错了。换句话说,作为一名开发人员,你应该不断地学习和成长,这样你一天写的代码质量总是比前一天好。
3 阅读代码
任何正在学习英语的人都会读到很棒的英语书籍。同样,任何学习编程的人都应该学习优秀的源代码。
不幸的是,这经常被忽视,因为它太吓人了。你如何找到好的代码?遇到不懂的问题怎么办?你甚至应该从项目中的哪个文件开始?
在寻找项目方面,GitHub Discover是一个很好的起点。浏览流行的存储库。找一个用你知道或正在学习的语言写的。如果你找到一个你使用的项目,或者与你感兴趣的主题相关的项目,这是理想的,但这不是必需的。
找到项目后,浏览文件结构以了解存储库的布局方式。这比你想象的更重要!不要担心找到程序的“开始”。只需查找任何具有正确文件扩展名的文件,表明它是你感兴趣的语言的代码。
我个人喜欢寻找具有有趣名称的文件。你认为有什么bubbles.py
作用?怎么样alarm.h
?让我们来了解一下!
找到要研究的文件后,将其下载到你的计算机上。在代码编辑器中打开它,并通过注释代码的方式。为每一个逻辑语句写一个注释来描述它的作用。如果你不知道,请对其进行深入研究,或将其标记为你感兴趣的内容,在技术平台寻找你的问题答案,学习相关知识以后,再回来看看。这是你自己的代码副本。你可以对它做任何你喜欢的事情!
如果你遇到从其他地方导入代码的语句,请不要担心立即找到该代码。从你所在的文件开始,看看你是否可以在不知道其他文件的情况下弄清楚它。你可以随时回来并阅读更多内容!
全部完成后,如果你不了解所有内容,请不要担心。你仍然会学到一些新知识。如果你养成阅读代码的习惯,你会发现自己越来越擅长它。
如果我发现可能的错误怎么办?
这是锦上添花!如果你有理由确定自己发现了错误,请将整个仓库克隆到你的计算机上并尝试修复它。将发生以下三件事之一:
1) 你会发现这根本不是一个错误,你会学到一些新东西。
2)你会确认这是一个错误,但只会在尝试修复它时设法破坏东西。不要担心!你仍然可以报告错误,并且可以将开发人员指向被破坏的确切代码。如果你是对的并且他们修复了它,你可以研究他们的错误修复。如果你错了,你仍然会学到新的东西。
3)你将修复错误,创建 PR,并使项目变得更好。挺酷的!