给中级开发人员的建议
序幕
结语
序幕
五年前,当我还是一名初级开发者时,我写了这篇博客。当时分享的技巧至今仍是我遵循的准则,并已成为我人生中不可或缺的一部分。作为一名开发者,我已经成长了很多,所以现在我想以中级开发者的身份回馈社区。
这里提到的建议是写给那些热爱自己的手艺并希望精进的人的,他们不是为了获得更好的报酬,而是为了享受编程的乐趣。
1)热爱你的工作
我见过有人把编程仅仅当作一份工作,只是为了钱。他们编程是为了谋生,也是为了日常生活。这种生活方式很好,这是你的选择。但如果你的技能没有提高,变得停滞不前,也不要感到惊讶。要想成为优秀的编程高手,你必须热爱你的工作。你每天的大部分时间都在工作中编程,如果你不热爱它,你就不会在工作中主动提升自己的技能。
我有个亲身经历想分享。我曾经在一家我讨厌的公司工作。我没有主动去改进代码库,也没有学习新知识来增强应用程序架构。现在,我从事着自己热爱的工作,并把它当成自己的产品。这常常促使我学习新知识,并以结构良好的方式开发代码库,因为我不想毁了它。如果你做自己不喜欢的事情,弊大于利。你可以在下班后学习,但这样你每天会浪费大约六个小时的时间,而且收获甚微。
2)成为一名多面手
永远不要把自己限制在一个框架里。不要把自己仅仅视为一个前端开发人员或后端开发人员。要把自己想象成一个软件开发人员。优秀的开发人员不会将自己局限于特定的技术,他们专注于解决问题,而不是问题的某个部分。如果你把自己限制在某个特定的技术栈上,你就无法成为一个优秀的问题解决者。软件开发的本质就是解决问题,如果你不了解如何构建端到端的产品,你就无法成为一个优秀的问题解决者。
在职业生涯的初期,你可能需要选择一个特定的技术栈来证明自己是一名优秀的软件开发者。但不要因此而限制你。如果你在一家优秀的公司工作,可以与资深开发人员或其他开发人员交流,深入了解不同的团队并学习新知识。开始负责公司代码库的其他部分,从而转型成为一名更全栈的开发人员。这样,你就会开始更多地思考如何解决整体问题,而不是仅仅局限于某个部分。如果你不被接受使用其他技术栈,我建议你换一份工作。公司永远不应该限制工程师的学习。
所以,做一个通才吧。不要把自己局限于技术栈的某一部分。作为一名软件开发者,要学会解决问题。通才更容易擅长解决特定问题,因为他们对新技术已经有了广泛的理解,所以能够更快地掌握它们。
3)永远不要停止学习新技术(做一个修补匠)
这是许多开发人员忽视的关键点。要想成为一名优秀的问题解决者,你必须时刻了解技术领域的最新进展。我从业余爱好项目中找到了很多乐趣,它们帮助我培养了许多技能。当你尝试新事物时,你会学到很多东西,而且你永远不知道这些新东西什么时候会派上用场。
例如,假设您接到一个任务,要为公司创建一个博客应用程序。他们想要一个定制的解决方案,而不是使用 Webflow 或其他类似服务。如果您紧跟最新技术发展,可以使用 Supabase 或 Pocketbase 等现代 CMS 工具快速开发后端。为您的博客网站设置 CMS 可能只需 30 分钟,从而省去了创建和管理数据库和后端代码的麻烦。然后,您可以根据公司的需求专注于前端。
举个个人例子:我业余时间学习 Go 语言已经一个月了。最近,我需要编写一个 cron job,每 30 分钟更新一次用户指标。我知道 Go 语言非常适合这类任务,而且速度很快,所以我用 Go 语言创建了这个 cron job,构建了二进制文件,并设置了一个带计时器的系统守护进程,每 30 分钟执行一次。这个方法效率很高,而且资源消耗更少。如果我没有利用业余时间捣鼓代码,而是在日常工作中写代码,我不可能在合理的时间内找到最佳解决方案。这个 cron job 本来可以用 Node 语言编写,但随着用户群的增长,编写起来会花费更多时间。
所以,永远不要停止学习和创造。最好的学习方式就是创造和实践。我一直在学习 Ruby on Rails 和 Go,并且开始欣赏不同生态系统提供的不同功能。这帮助我将新想法融入到我的工作流程中。
4)承担责任
我最近看了 ThePrimagen 的一段视频,这启发了我写这篇博客。他提到,解决问题或成为优秀软件开发者的最佳途径是拥有对产品的所有权。他谈到 Doom 是如何由四个人创建的,他们之所以能交付如此优秀的产品,是因为他们拥有所有权。他们知道自己没有其他人可以依靠,所以他们把开发出最好的软件作为自己的责任。他们没有备用计划。他们从未感到倦怠或放弃,因为他们拥有的是产品,而不仅仅是任务。
要提升软件开发技能,你需要开始对正在构建的产品承担责任,而不仅仅是功能或任务。当你把任何功能或错误都视为需要解决的问题,而不是仅仅交给别人处理时,你会发现开发产品的过程更加愉快。这是克服倦怠的最佳方法。当你承担责任时,你会在改进产品、提高效率的过程中找到乐趣。
如果你正在开发一款产品,你不能因为用户发现的任何 bug 而责怪别人。如果出了问题,你自己也是问题的一部分,所以你必须承担责任,修复这些问题,打造出一款优秀的产品。优秀的、可扩展的产品是由团队打造的,如果你不承担责任,你就不是一个好的团队成员。当你承担责任时,你会编写最好的代码,创造最好的软件,而不仅仅是另一个软件产品。
就像创作《毁灭战士》的四个人一样,他们投入了大量的时间和精力去创造一款属于他们自己的游戏,他们从未满足于仅仅推出一款普通的游戏,而是创造了一款定义时代的游戏。正如他们所说,剩下的就成了历史。同样的道理也适用于你,如果你想开发出最好的软件,你必须开始承担责任,把产品视为自己的。
结语
写完这篇博客并与社区分享我的想法后,我感觉很棒。我们可能会就框架、语言和工具争论不休,但这些争论有助于我们进步。它们推动着技术进步,使我们的社区竞争更加激烈。让我们保持这份热情!
文章来源:https://dev.to/rampa2510/advice-for-intermediate-developers-4777