给初级开发人员的宝贵建议
由 Mux 主办的 DEV 全球展示挑战赛:展示你的项目!
别慌!你不需要在申请Z科技公司之前学习X语言或掌握Y算法。事实上,大多数资深开发人员根本无法通过编程面试。以下是你第一份工作中应该学习的内容。
1. 忽略琐事
许多初级开发人员被各种他们永远不会遇到的极端情况搞得焦头烂额。失败并不可怕。大多数情况下,这些问题只会在面试、编程练习或一些耸人听闻的故事中出现。忽略那些标题党文章,你才能专注于真正重要的事情。
优秀的程序员灵活应变,能够适应当前情况。遇到问题时,他们会与团队成员交流,或者阅读书籍、文档、教程、论坛等资源。令人惊讶的是,很多问题都可以通过阅读解决。
2. 不要只会一招鲜
真正理解基本原理的开发者比只关注语言规范的开发者更有价值。再次强调,不要纠结于细节,也不要惊慌。编程语言是实现想法的工具。
问问你自己,你更愿意和谁一起工作:总是用锤子的人,还是懂得使用哪些工具和资源才能让项目经得起时间考验的人?
3. 指针与引用
指针不会伤害你!没什么好怕的。信不信由你,很多脚本语言,比如 Python 和 JavaScript,都有指针。只是它们很难被注意到,因为这些语言没有指定用于解引用指针的标记。你有没有注意到对象/字典属性和普通变量的行为有何不同?
4. 不要忘记记忆
流行的编程语言会处理大部分内存管理,但其余部分需要你自己负责。你是堆程序员还是栈程序员?你最喜欢的数据结构是什么?随着代码的迭代和数据量的增长,这个选择会变得越来越重要。
5. 模式和原则
我以前的导师曾经说过:“任何人都能写代码,但很少有人能设计架构。”
强迫自己学习诸如单一职责原则 (SRP)、开放封闭原则 (OCP)、有限安全原则 (LSP) 等编程原则。这将使你的代码保持简洁,并确保你的程序在未来几年内都能扩展。当你准备好时,学习如何将这些原则与设计模式相结合。这些隐藏的艺术让编程充满乐趣。
记住,这不是一朝一夕就能掌握的。现在就开始少量多次地阅读和练习,将来一定会有回报。
6. 计划 计划 计划
编写代码固然有趣,但日后可能会给你带来麻烦。其实,规划并没有你想象的那么费力。即使是在笔记本上画个简单的草图,也能省去数周的修补时间。
此外,这不仅限于用户界面。数据流和架构也可能变得很复杂。把你的想法写下来有助于你更清晰地思考。而且,它还能起到文档的作用。
7. 自动化测试
记录日志不是测试。编译代码不是测试。证明“它能运行”也不是测试。
编写代码来测试你的代码,因为你很可能忘记了基本的功能需求。先编写测试(TDD)就像提前计划一样——它能让你免于陷入无休止的测试。
如果由于某种原因无法实现自动化测试,请创建一个文本文件,记录手动测试的步骤,并务必包含预期结果。这将确保每次都遵循相同的步骤,并且整个团队对测试成功或失败的标准达成共识。
8. 文件编制
不要等到项目完成才编写文档。这样不仅会让你无法立即投入到新项目中,还会让你忘记大部分代码的工作原理。
与测试和计划一样,文档编写也应贯穿项目的整个生命周期。编码前编写的文档兼具计划功能,但之后也应进行审查。
9. 调试
错误在所难免,所以要学会使用调试器。这就像学习使用灭火器一样。随着经验的积累,你会越来越少需要用到它,但它始终在那里以备不时之需。
大多数调试器都允许你暂停执行、更改变量或跳过大段代码。这样你就可以更专注于错误本身,而不是运行代码。
10. 持续学习
我们都身处一个快速变化的领域。一旦停止学习,你就会变成一段段陈旧代码。没有人喜欢陈旧代码。
你不必重返校园,但每周抽出一些时间来了解编程领域的最新动态。最重要的是,要对新思想保持开放的态度。记住,编程语言是工具,而新的工具可以创造更伟大、更美好的事物。
11. 附加题:代码会产生后果
务必理解你所做的每一件事的“为什么”。为什么我被要求做这件事?这对公司有什么好处?它会对客户产生什么影响?所有这些都会直接影响你编写的每一行代码中的每一个微小决策。
12. 加分项:团队合作
代码并非神圣不可侵犯。不要对你编写的代码过于执着,也不要为了所谓的“正确”做法而陷入争论。
其他文章
鸣谢
感谢好心的陌生人分享他们在其他地方的经验。第 11 条和第 12 条建议来自https://reddit.com/u/sonstone。
资源:优秀的工程书籍
非联盟链接
文章来源:https://dev.to/wadecodez/why-you-suck-as-a-junior-developer-3aol








