发布于 2026-01-06 0 阅读
0

5 个新手开发者不容错过的技巧:概念和编程原则至关重要;深入了解代码审查;日志应该是你的主要关注点;学习什么不该做比学习什么该做更重要;尽量减少底层反馈循环;结论

作为开发新手,你绝对不能错过的 5 个技巧

概念和编程原则很重要

深入代码审查的世界

日志应该是你的主要关注点。

学会不该做什么 > 学会该做什么

尽量减少低级反馈回路

结论

如果你刚刚入门,或者即将开始编程生涯,你可能已经读过很多“新手入门指南”。这篇文章也是这类文章之一。那么,它有什么不同之处呢?我不会就以下方面给出任何建议:

  • 现在最适合学习哪些语言或框架?
  • 如何保持动力:教练式的指导
  • 如何完成招聘流程
  • 我也不想讨论是参加训练营好还是报名参加在线课程好。

本文实际上是写给那些已经会编程,但可能在自学时缺乏时间规划指导的人。

最近我问自己,在最初两三年学习曲线极其陡峭的时候,作为一名开发人员,什么对我来说最重要?我在开发生涯早期养成的哪些习惯为接下来的几年奠定了坚实的基础?

好了,开门见山地说,以下是我的建议。

初级开发人员在首款游戏发布前几秒钟向家人挥手告别
初级开发人员在首款游戏发布前几秒钟向家人挥手告别

概念和编程原则很重要

学习技术、语言和框架的同时,不要忘记学习编程的概念和原理。如果你只了解四种不同的现代 JavaScript 框架,并且正在考虑学习第五种,但同时又缺乏以下原理方面的知识,那么你无法成为一名优秀的软件工程师:

  • 坚硬的
  • 愚蠢的,
  • YAGNI,

以及其他一些被神奇地简化过的原则。这就像懂得很多外语单词却不懂语法一样。

代码异味、反模式和重构技巧也是重要的概念。其中大多数都很简单明了,所以学习起来并不难。

它们都能帮助你编写更简洁、更健壮的代码。

非常棒的资源:https://refactoring.guru/refactoring/catalog

深入代码审查的世界

初级开发人员在代码审查中的感受
初级开发人员在代码审查中的感受

良好的代码审查是最好的学习方法。毋庸置疑。

如果我拥有超能力,我会让所有人共同审查同事的工作——无论他们是程序员、建筑师、政治家还是办公室职员。

没有比这更好的方法来发现自己犯的错误,学习如何改正错误以及如何避免错误了。

没有比这更好的方法来了解其他开发者犯了哪些错误,以及阅读糟糕的代码会对我们的心理健康造成什么影响了。

它通过让我们对自己的代码负起双重责任来提升我们的纪律性——在请求拉取请求时,我们需要署名。而且,我们还得面对那些随时准备对我们编写的每一行代码进行批判的人。

不要害怕审阅经验更丰富的人编写的代码,即使你从事开发工作时间不长。你仍然可能会发现可读性问题,引发讨论,并从一个代码阅读能力不太强的人的角度提供见解(这非常有价值)。

如果你正在找工作,但收到的offer不多——询问他们的代码审查文化——在接受那些不进行任何代码审查或代码审查方式很差的公司提供的offer之前,请三思。

日志应该是你的主要关注点。

日志能让你睡得更好。它们能让你更有信心追踪应用中出现的任何异常行为。

日志和自动化测试是绝佳组合。

测试涵盖了代码中所有预期发生的情况。此外,它们还能确保其他人不会破坏这个坚实的基础。另一方面,配置正确的日志会显示你的应用程序或某些功能以你未预料的方式崩溃了。

维持整个伐木生态系统健康的总体理念包括:

  1. 在代码层面和异常处理层面正确记录日志
  2. 尽可能保持日志的清晰整洁
  3. 当日志数量超出预期时自动发出警报(这超出了一般初级开发人员的技能范围)

关于第一点)

首先,你需要了解你的框架或日志库是如何工作的。你的目标是:

  • 不要记录不必要的内容——你应该始终致力于清理日志。
  • 记录重要事项,以及关键信息的存储方式

一旦你理解了这一点,就尝试修复代码中所有异常日志记录错误的地方。对于规模适中的代码库和现代 IDE,很容易找到代码中所有出现的 `catch()` 语句。对于每一处出现的情况:

  1. 确保记录异常信息。
  2. 请确保记录堆栈跟踪信息。
  3. 请确保所有重要参数都被记录。

好了,你拿到了。

成为“半个日志忍者”的最后一步是学习如何在终端中处理日志。虽然大多数时候你都会更习惯使用网页界面,但掌握如何在命令行中处理日志仍然是一项重要的技能。

  1. 学习查看日志文件最后 X 行的常用命令
  2. 熟悉连续日志查看功能
  3. 学习如何使用 grep 命令
  4. 要查看 SQL 数据库中的日志,请学习“\G”开关,以便更方便地查看它们。
  5. 学习如何快速将机器可读的时间戳转换为可读格式,例如,SQL 的“from_unixtime(col)”是一个不错的开始。学习如何根据日期筛选日志,例如使用“WHERE logtime BETWEEN DATE_SUB(NOW(), INTERVAL 4 HOUR) AND DATE_SUB(NOW(), INTERVAL 2 HOUR)”来获取在特定 2 小时窗口内保存的日志。

学会不该做什么 > 学会该做什么

没错,你没看错。学习模式和反模式之间确实存在明显的区别。

我举个我自己的例子。上学的时候我下过一段时间的国际象棋。为了提高棋艺,我开始读书,并尝试把书里的解法运用到实践中。

但结果并不理想。说实话,那是一场彻头彻尾的灾难。

我当时用的都是些自己根本不理解的解法。我的意思是,我大概明白每种开局或防守背后的思路,但却忽略了整体思路。而且,我太执着于按部就班地执行步骤,结果下棋像只小猴子一样笨手笨脚。

结果是,我下棋的水平比读那些书之前还差。不久之后,我对国际象棋的热情就消退了,不再下棋了。

这条建议比较个人化,可能有些人并不认同。这大概源于我的学习方式,或许并不适用于所有人。

在学习概念和原则时,要更加关注反模式:哪些事情不应该做,哪些事情应该避免。相反,遵循模式是指按照一套规则行事。

遵循反模式总能让你的代码稍微好一些。根据反模式的种类以及你遵循它们的程度,你的代码改进的程度也会有所不同。

但情况会好转的。

然而,盲目遵循某种模式反而可能导致代码比之前更加混乱不堪。这种情况的发生,是因为你没有理解所用模式的整体思路,或者在不需要的时候过度依赖它们(也就是过度设计)。

尽量减少低级反馈回路

反馈回路是一个非常宽泛的概念,它可能与以下方面相关:

  • 初创公司如何收集其营销活动反馈
  • IT 组织中信息如何在团队成员或不同部门之间流动

但它也可能定义你作为开发人员执行的一系列底层操作。

反馈循环是指从头开始重现某种行为的所有必要步骤,直到获得反馈(代码是否有效)。

理想情况下,单元测试应该是你的反馈和补救机制。但由于本文是面向初级开发人员的,我假设你们中有些人可能不知道如何编写自动化测试。

在找出问题所在时,要学会尽量减少反馈循环。

理想的情况是尝试将较长的工作序列拆分成较短的工作序列——并设定一个明确的保存点,这样你就知道你总能从那里重新开始。

结论

我希望我的分享能启发你在工作中有所改进。祝你学习顺利,成为一名更优秀的开发者。

最后一条建议是,在工作和生活之间找到平衡:除了编程和工作之外,也要有自己的生活。如果你工作过度,并且缺乏与人沟通等软技能,你将无法为公司做出贡献。

如果你喜欢这篇文章,请在推特上关注我或订阅我的博客,以便及时了解我发布的所有内容。

文章来源:https://dev.to/mfarajewicz/5-tips-you-can-t-afford-to-miss-as-a-dev-rookie-h2e