当我开始编程时我希望知道的 65 件事

2 分钟
建议编程思维

65 条建议可能会为你即将到来的漫长旅程有所帮助。它们将作为编程学习道路上的锦囊,帮我们度过难关

原文链接:https://dev.to/madza/65-things-i-wish-i-knew-when-i-started-to-code-20ka

今天读到一个资深开发者三年前的博客文章,收益很多,希望被更多人看到,我做了翻译分享给大家,原文链接:https://www.madza.dev/blog/65-things-i-wish-i-knew-when-i-started-to-code ,下面是正文内容:

每个人成功的故事都不同,我们都在学习过程中经历过起起落落,也会对刚开始时没有掌握的东西感到遗憾。如果你是一位想成为开发者的新手,以下 65 条建议可能会为你即将到来的漫长旅程有所帮助。它们将作为学习道路上的锦囊,帮我们度过难关

1. 编程是解决问题的艺术。

程序员的工作远不止坐在电脑前随意敲击键盘。它是解决现实世界问题并简化人们生活的强大工具。如果你能做到,你将始终受到追捧。

2. 规划是成功的关键。

每一个成功的项目都始于大量的规划。

  • 确保你确定目标、

  • 定义任务、

  • 了解你的受众等。

  • 使用笔和纸或任何在线线框图工具,努力构思出你解决方案的清晰图景。

3. 内容为王

没有内容,你的网站就毫无意义。如果你处理静态内容,请确保它呈现得很好。如果内容是动态的,总是尝试预测你将创建或接收的内容类型,并据此设计你的布局、代码和数据库结构。

4. 编码应该是项目最后一个阶段

初学者可能认为每个项目都是从编码开始的。实际上,编码只是之前所有规划的技术实现,并应是解决问题的最后一步。

5. 一切都触手可及

现在已经不再是 50 年代或 60 年代了,那时你必须去图书馆学习一些主题。您需要的所有信息都触手可及。运用你的大脑和互联网。

6. 编码不需要顶尖硬件。

尖端处理器、大量内存和 5 个显示器都是可选的。一台中等配置的笔记本电脑足以开始。

7.你不需要擅长数学。

根据我们看过的电影,编码常常与一些智商超过 200 的天才联系在一起。它可能会涉及人工智能、机器人、密码学等主题的数学知识,但为了开始,您只需要了解基本操作。

8. 找到正确的工作流程并不容易。

我们每个人都有不同的偏好。尝试不同的扩展和设置。需要花费大量时间来了解什么对您有用以及如何将所有内容结合在一起。但这对于你以后的工作效率将会非常有益。

9.最佳时机是现在。

将事情保存在书签中只是一种优雅的拖延。要提高生产力,最好的办法是立即行动。

10.同步使你更灵活。

在你使用的每台机器上同步所有浏览器和 IDE/代码编辑器的扩展和设置。这将确保你无论在哪里都能在相同的环境中工作。

11. 有多种实现方法。

当我开始编码时,我以为代码逻辑非常严格,必须遵循特定模式。实际上,唯一严格的变量是所使用语言的语法。

12. 命名是一项艰巨的任务

这在一开始看起来可能很简单,但你会发现,尤其是在大型项目中,这可能非常具有挑战性。

13、将错误视为教训。

如果你看任何一个成功故事,你会发现它实际上是一个不断尝试和错误的模式,**「坚持和好奇心」**是成功的关键。

14. 重建比从头开始编写容易 10 倍。

重建现有应用时,你对项目的布局和构建原则有了清晰的了解。而这些往往是最具挑战性的部分。

15. 找到自己的定位很重要。

在各个小众领域之间徘徊将让你一事无成。在投身某个领域之前,先明确你的兴趣并研究可选的领域。

16. 对事情为何有效感到好奇。

总是尝试去探究事物的内部原理。不要满足于仅看到事物表面上神奇地运行。

17. 工具是提高生产力的关键。

一个人的能力往往取决于他/她使用的工具。投入时间来构建一套合适的工具组合,因为这会带来巨大的回报!

18.热衷于项目能激励你不断前行。

选择副业项目时,务必挑选自己真心感兴趣的。因为你对结果的在乎,会大幅提升你的动力。

19. 这是一场马拉松,而不是短跑。

开发领域持续在变革,因此要做好长期学习的准备。若一开始进展过快,你可能很快就会感到疲惫。

20.你所关注的人影响你获取的信息。

注意自己在社交媒体上所关注的人。他们决定了你获取信息的质量和内容。

21.避免重复造轮子。

在开始项目之前,先研究其他开发者是如何解决相似问题的。大多数问题都已有解决方案,关键在于你搜寻的能力。

22.容易被带偏。

在社区活跃是好事,但要注意这可能让你发现更高效的技术和更现代的 UI 等,但这并不总意味着你当前使用的技术栈不佳或需更换。

23. 教程可能会误导你。

大多数教程基于预先编写和重构的代码。如果你将自己与之比较,可能会感到沮丧,因为你无法迅速找到解决方案或一开始就写出整洁的代码。记住,这只是事物的一面,创作者们也曾经历过挣扎。

24. 教程不会让你变得独立。

观看或阅读教程能帮助你大致了解技术,但这并不能使你独立。你应该阅读官方文档,发展你的分析思维,并尝试自己找到解决方案。

25. 没有完美的技术。

每种技术都各有优势和不足。当你感到犹豫时,将不同的选择放在一起,进行研究,并比较它们如何解决特定问题。

26.学习新事物的能力很关键。

在申请工作时,你可能对公司的技术栈不熟悉。重要的是你能多快学会遇到的特定技术,而不是你了解多少技术。

27. 版本控制非常重要。

客户经常需要之前的设计并对功能选择犹豫不决。版本控制是必需的,它不仅保证了你的代码总是有备份,也为你节省了时间。

28. Bug 可能非常棘手。

准备好应对可能需要数小时甚至数天才能解决的难缠 Bug。在这些时期,你可能因低效率而感到沮丧,但一旦解决了,你会感到很有成就感。

29.学会判断什么不需要学。

在当今技术的海洋中,很容易迷失方向。讽刺的是,如今最重要的技能之一是学会判断什么不需要学。

30. 阅读别人的代码同样能提升你。

通过编写代码,你在思考自己所掌握的知识。阅读其他开发者的代码同样重要,它能帮你学习不同的设计模式和最佳实践。

31. 谦逊使你受人尊敬。

对自己的成就心怀喜悦,但对外则保持低调。夸耀自己并不会带你走得更远。

32. 过度追求完美会拖慢你的脚步。

追求高质量的工作是好事,但不要过分追求完美,否则你可能会留下许多未完成的项目。

33. 开源是一件了不起的事。

从个人到大型公司,开源在社区中蓬勃发展。这是一件美好的事情,我相信我们可以共同创造更好的项目。确保你学习其他人使用的最佳实践和设计模式

34. 学历并不是硬性要求

客户通常关注的不是你的文凭,而是你解决问题的实际能力。

35.当遇到困难时,尝试分解问题

面对复杂问题时,找到解决方案可能会感到困难。把问题分解成小块,一步一步解决每个部分。

36. 大企业需要你开发 CRUD 应用

大多数大企业的核心业务是 CRUD(增删查改)操作。如果你计划申请这些公司,就需要学习并准备好日常处理这些操作。

37. 项目永远不会完全结束。

每个项目都有改进和优化的空间。更重要的是考虑项目是否满足要求,并足够完善,可以发布。

38. 优秀的代码应该易于阅读和维护。

无论是不是独自工作,总是要努力写出像是别人也会参与的代码。在更复杂的部分留下注释,解释其工作原理。

39. 第一门编程语言总是最难学的。

我经常看到人们询问哪种编程语言最难学。实际上,学习难度取决于你的经验。

40. 使用谷歌和 Stack Overflow 是正常的。

这些资源是为了帮助你的。不要因为在别人面前使用谷歌或浏览 SO 感到尴尬。要知道,他们也会这样做。

41. 沟通技能被低估了。

仅仅依靠代码并不能保证你的成功。培养与人交流的能力同样重要。

42. 提升你的谈判(薪)技能。

如果你不懂得如何进行谈判(薪),再多的前沿技术知识也没有用。记住,是他们需要你,而不是你需要他们。

43. 在线影响力很重要。

如果没有人知道你的项目,即使做了许多本地项目也毫无意义。建立一个良好的在线影响力来推广你的项目。

44. 始终记住 28 法则。

要记住,项目的最后 20% 部分往往需要花费 80% 的时间。因此,在向客户报告进展时要多加思考。

45. 无故不要过度设计。

一个好的实践是尽可能减少而不是增加功能,直到没有多余的功能可以被移除。

46. 框架是短暂的。

学习框架所基于的技术远比学习框架本身更有价值,这样你在必要时可以轻松掌握特定框架。

47. 精通一项技能比浅尝辄止好。

与其试图学习并掌握所有技能,不如专注于你感兴趣的领域,深入研究相关技术栈,选择一个并彻底掌握它。试图成为万事通最终会一事无成。

48. 测试存在是有原因的。

培养编写测试的好习惯。虽然最初你可能觉得这是无用功,但长期来看,它们会在大型代码库中帮你节省大量时间。

49. 成就是提升动力的最佳方式。

珍惜学习过程中的每一个“顿悟”时刻,解决难题,看到他人的惊讶和自己的价值。将这些视为激发你动力的燃料。

50. 不要超出自己的能力范围。

在选择问题的规模时,找到一个平衡点,挑战足够大以让你学到新东西,但也足够小以确保可解决。

51. 不要与他人比较。

与其他开发者的成就比较自己,很容易让人沮丧。按照自己的节奏学习是完全正常的。

52. 不要过于个人化地看待批评。

建设性的批评是宝贵的反馈,指出你可能没有意识到的错误或改进点。这最终会提高产品的质量。

53. 每个人都曾写过糟糕的代码。

不用担心回头看你几年前写的代码。那可能让你感到不可思议甚至羞愧,但要记住,这实际上是你进步的明显标志

54. 一个完成的项目胜过十个未完成的。

尽量一次只处理一个或几个项目,并遵循想法到执行的模式。记住,「已部署的项目才真正有价值」

55. 教授他人是最好的学习方式。

为了教授他人,你必须先自己深入研究概念。这确保你对概念有深入的了解,并且在分享知识时实现双赢。

56. 申请工作时,你永远不会感觉准备好。

学习编程是一个不断的过程,而不是一个目的地,所以你总会感觉自己还在努力实现某些事情。不要让这种感觉阻止你,勇敢去申请。

57. 炒作是真实存在的。

要关注趋势,但只到理解它们的主要工作原理和用途的程度。这样你就会知道它最适合解决哪些问题,并在需要时选择合适的工具。

58. 实践是通往精通的道路。

重复是所有知识的母亲,坚持练习是掌握某事的最安全途径之一。

59. 专注于索引而不是内容。

如今,快速找到信息很重要。如果你知道需要什么以及在哪里查找,学习只是时间问题。

60. 像海绵一样吸收知识。

养成每天学习的习惯,以保持竞争力和知识。注意你关注的人。追求质量而不是数量。

61.学会说不。

如果你永远不说不,别人迟早会开始利用你,你最终会做更多本不应该做的工作。

62. 记笔记是克服写作障碍的救星。

无论你在哪里,都要尽力记录下你的想法。为那些灵感不足的时候创建一个信息后备库。

63. 安排一周并确定优先事项。

尝试提前花时间进行计划。这样更容易识别所有要处理的任务,并确定执行顺序的优先级。

64. 休息能创造奇迹。

如果你陷入困境,尝试暂时不做任何与编码相关的事情。花时间与家人在一起,进行你的爱好,或者去慢跑。很多时候,当你重新审视项目时,就能轻松找到解决方案。

65.运动和充足的睡眠可以提高生产力。

在提高生产力方面,通常8小时的睡眠和4小时的工作

总结:这里很多点,我的感受都是很深,例如:好好休息,提前做规划,找到自己的工作 SOP,等等;也有我暂时无法理解的点,例如:测试的重要性,我觉得是我现在的能力还不够,希望接下来的日子里,我将这些方法论践行到我的日常工作中,感谢您的阅读