如何成为一名开发人员——第一部分:编码技能
1:学习一门语言
2:编写代码
3:阅读代码
周末我做了一个“问我任何事”活动,结果非常受欢迎;它已经是我阅读量第四多的 DEV 帖子了……
我注意到很多问题都围绕着一个主题:如何开始成为一名开发者。我决定写一篇专门的文章来详细阐述我的答案。
这些步骤和我成为开发者的步骤是一样的。我没有大学学位,没有训练营证书,也几乎没有接受过任何形式的正式培训。然而,如今我已经是一位经验丰富的 Python 和 C++ 程序员、首席开发人员、实习主管、调试专家,以及编程文章和(现在)书籍的作者。我绝非个例。令人惊讶的是,许多开发者都走上了“非传统”的道路进入了这个行业。
无论你是在大学学习计算机科学,参加训练营,还是在自家地下室自学,这些技巧都适合你。无论你选择哪条道路,这都是成为软件开发者的权威指南!
1:学习一门语言
这或许是清单上最显而易见的一点。程序员编写的是计算机代码,所以你必须学会说这种语言。
不过,先学什么编程语言并不重要!这取决于你的兴趣所在。例如……
-
如果您想进入 Web 开发领域,您应该从 JavaScript 或 CSS 开始(是的,书呆子们,CSS是图灵完备的!)
-
如果您想构建用户应用程序,Python、C# 和 Java 是流行的切入点。
-
如果您对系统开发(例如操作系统)感兴趣,请研究 Rust 或 C++。
-
如果您想进行数据分析或统计,请从 Python 或 R 开始。
Haskell、Ruby、Go 和 Perl 是其他流行的语言。
如果你完全不知道从哪里开始,那就选择 Python 吧!它被认为是最适合初学者的语言之一,并且为以后学习几乎任何其他编程语言奠定了坚实的基础。


4 个理由让你不再纠结于选择“最佳”语言/框架——阅读或观看
Matthew Collison 技能之路 ・ 2019 年 8 月 6 日
请参阅本系列末尾的推荐阅读部分,获取优秀学习资源列表。
我想学习一切!
不要。没有人会完全掌握编程的一切。总会有一些语言、工具、算法、库和概念对你来说很陌生。
即使是从事该领域数十年的开发人员也不断发现,他们所有的理解只不过是该领域知识海洋中的一滴水。
仔细想想,这其实是一件好事!无论你从事编程工作多久,你都永远不会枯竭新的灵感去探索。你的成长空间几乎是无限的。
最近我参加了一次面试,面试官让我描述一下 TCP 和 UDP 的区别。我当时心里咯噔一下,因为我对此一无所知。然后,我深吸了一口气,给出了这样的答案:
我不得不接受一个事实:我不可能无所不知,尽管我多么渴望。我可以学习的东西太多了,但说实话,由于缺乏运用,大部分知识都会在我的大脑深处消亡。我不得不养成一个习惯:大多数知识只有在项目需要用到时才会学习。谢天谢地,我只需要几分钟就能学会,所以效果还不错。
根据我得到的积极回应,我可以肯定地说这是正确的答案。
2:编写代码
理论固然很好,但如果不付诸实践,它就毫无意义。
我经常把编程比作游泳:你可以读很多关于游泳的书,但除非你跳进水里,否则它们对你来说毫无意义。此外,如果你只停留在浅水区,你永远也学不会精通。你需要尽快潜入深水区。
值得庆幸的是,编程不像游泳,你真的不会溺水。哦,当然,一开始你会有溺水的感觉,但这其实是件好事!当你在编程的最初阶段挣扎求生时,你最终会发现事情开始“豁然开朗”。一点挫折实际上对学习过程有益;它能帮助你坚持下去。
在我的人生旅程中,我从来之不易的胜利中学到的东西远比从轻松的胜利中学到的多得多。我曾多次遇到看似无法解决的问题、无法解决的bug、令人恼火的思维障碍……而这些经历中的每一个都成了我的锚点!我至今仍记忆犹新。我的大部分专业知识都源于这些经历。
所以,开始写代码吧。边写边研究。在需要的时候学习新技能。多问问题。
我应该编写什么代码?
许多开发人员问我:“我应该做什么?” 获得编码经验的主要方法有三种:
为自己创建一个项目。
尽量简单,用你个人会用到的东西。没有人能替你设计出这个项目。它应该解决你熟悉的问题。
你必须是目标用户!这样才能确保你既具备构建问题所需的知识,又有坚持下去的热情和动力。
为开源软件做出贡献。
再次强调,找到你个人使用或感兴趣的项目。别担心自己了解得不够多,直接投入进去就好!
开始阅读代码。克隆代码库并构建项目。尝试修复小错误或进行一些小改进。协助编写文档。
如果你认为自己改进了代码,不妨大胆地创建一个拉取请求 (Pull Request)。即使被拒绝,你也能学到更多编程知识,并证明自己乐于提供帮助。对于开源维护者来说,这种积极的意愿远比一百份 Bug 报告更有价值。
重新发明轮子。
你想了解链表、堆排序、表单提交吗?那就自己动手构建吧!
这里的目标不是创造出产品级的质量。通过编程,你正在掌握所学内容的底层概念。这正是我获得所有数据结构专业知识的方式。
不幸的是,有些批评者会试图告诉你,你不应该“浪费时间重新发明轮子”。别理会他们。任何告诉你“直接用”一些预先构建的东西来代替学习工作原理的人,往好了说是懒惰的无知,往坏了说是阻碍你作为开发者的成长。通常,他们只是想为自己不去学习更多东西的决定找借口。
如果我的代码很糟糕怎么办?
你可能会写出糟糕的代码,这没关系。在这个阶段,关键不在于完美,甚至不在于优秀。你唯一应该关注的是最终能写出好用的代码。
我喜欢告诉新开发者:如果阅读你三个月前写的代码没有让你感到不适,那你就错了。换句话说,作为一名开发者,你应该不断学习和成长,这样你今天写的代码质量才能始终比前一天更好。
3:阅读代码
任何学习英语的人都会阅读优秀的英文书籍。同样,任何学习编程的人都应该学习优秀的源代码。
不幸的是,这一点常常被忽视,因为它实在太吓人了。如何找到好的代码?如果遇到不懂的地方怎么办?项目中应该从哪个文件开始?
寻找项目方面,GitHub Discover是个不错的起点。浏览一下热门的仓库。找到一个用你熟悉或正在学习的语言编写的项目。最好找到一个你正在使用的项目,或者一个你感兴趣的主题的项目,但这并非必需。
找到项目后,浏览一下文件结构,了解一下代码库的布局。这比你想象的更重要!不必费心寻找程序的“开头”。只需查找任何文件扩展名正确、表明其代码是你感兴趣的语言的文件即可。
我个人喜欢寻找名字有趣的文件。你觉得哪个文件名字有趣bubbles.py
呢?怎么样alarm.h
?让我们来一探究竟!
找到要研究的文件后,将其下载到电脑上。用代码编辑器打开它,并逐行注释。为每一个描述其功能的逻辑语句都添加注释。如果您不知道,可以研究一下,或者将其标记为您感兴趣的内容,稍后再回来查看。在学习过程中,请随时输入您的问题。这是您个人的代码副本。您可以随意对其进行处理!
如果遇到从其他地方导入代码的语句,不必担心立即找到该代码。先从当前文件开始,看看在不了解其他文件的情况下能否找到它。您可以随时返回并稍后阅读更多内容!
完成所有步骤后,即使你没有理解所有内容,也不用担心。你仍然会学到一些新知识。如果你养成阅读代码的习惯,你会发现自己在这方面越来越熟练。
如果我发现可能的错误怎么办?
这真是锦上添花!如果你确信自己发现了错误,请将整个代码库克隆到你的电脑上,然后尝试修复。将会发生以下三种情况之一:
1)你会发现这根本不是一个错误,而且你会学到一些新的东西。
2) 你会确认这是一个 Bug,但在尝试修复它时,只会造成一些问题。别担心!你仍然可以报告 Bug,并能够向开发人员指出具体代码问题所在。如果你判断正确,并且他们修复了问题,你就可以研究他们的 Bug 修复方法。如果你判断错误,你仍然会学到新东西。
3)你将修复错误,创建 PR,并使项目变得更好。太酷了!
在下一节中,我们将探索一些除了编码之外的令人惊讶的技能。
文章来源:https://dev.to/codemouse92/how-to-become-a-developer-part-1-coding-skills-5fen