如何成为一名出色的软件开发人员!我希望自己刚入行时就知道这些事。

2025-05-26

如何成为一名出色的软件开发人员!我希望自己刚入行时就知道这些事。

本文最初发布在我的全新博客“开发者的地牢”上

几周前发生了一件特别的事:10月8日。对其他人来说,这没什么特别的,只是一个普通的日子。而对我来说,这天却是我软件开发的生日。

2014年初,我最好的朋友建议我开始学习编程,因为他看到我厌倦了从事自己并不喜欢的职业。我开始自学C语言,又学了一点C++,最后在朋友的推荐下开始阅读《深入学习C#》。


2014年10月8日,我参加了埃森哲举办的C#培训项目(他们称之为“训练营”)。一个月后,我成为了一名C#初级开发人员,我的软件职业生涯就此开启。
过去五年里,很多事情都发生了变化:微软完全开源,JavaScript不再只是网站的玩具,而是一门严肃的语言;函数式编程也开始回归;无数技术在我们眼前诞生又消亡。

我的职业生涯也发生了很多变化:我从自学到参加训练营,再到转学攻读软件工程,最后又辍学,最终继续自学。我从从事会计工作到成为一名软件开发人员,在我的祖国阿根廷工作了三年,然后去到一个我一无所知、更别说说同一种语言的地方——美丽多雨的比利时——寻找更好的生活。

回顾我一路走来的历程,我不禁回想起自己做过的那些好与坏的决定。以下是一些我希望自己在创业之初就知道的事情:

1. 参加聚会,认识新朋友,交朋友!

人们低估了人际关系和沟通在软件开发中的重要性。有些人相信“天才10倍”的开发者会24小时不眠不休地编写代码,创造出奇迹。这简直是白日梦。当我们彼此合作,建立人际关系,从而创造出伟大的软件时,我们才能做得更好。这些关系帮助我们成长,学习新事物(不一定是与软件相关的,但这同样重要),甚至在职业发展中取得进步。如果不是我的一位朋友,我可能现在会是一个很悲惨的会计师。

2.阅读技术书籍。

我一直更喜欢教程和在线课程,但遗憾的是,它们不会涵盖那些能将你的开发技能提升到全新水平的基础知识。过去两年,我一直在啃技术书籍,《程序员修炼之道》、《代码大全》、《代码整洁之道》、《重构》等等,凡是你能想到的,我真希望自己早点开始读。现在市面上有那么多由业内专业人士撰写的知识,不去学习一下他们的知识真是太可惜了。

3. 将学习重点放在与语言/框架无关的知识上。

这一点与上一条相关。当然,每天都会有新的 JavaScript 框架出现,人们都在努力追赶。好吧,别尝试。这既不可能,也不值得。与其专注于框架,不如专注于架构、系统设计,甚至软件范式。语言和框架只是我们用来创建产品的工具,它们一直在变化,而我们用来构建软件的技术发展速度要慢得多,可以帮助你轻松地从一个技术栈切换到另一个。

4. 总是有一个个人项目在手。

我再怎么强调这一点也不过分。当然,你每天工作8小时都在写代码,你可能会想:“我为什么需要在业余时间写代码?” 其实有很多原因。

  • 你的职业发展目标并不总是清晰的。我刚开始的时候,想成为一名移动开发者。后来我做了一个个人项目,用 Xamarin 为之前的雇主开发了一个费用报销应用,作为概念验证 (POC),才意识到这并非我最感兴趣的领域。
  • 在这个行业,技术技能很快就会过时,所以你需要尝试其他东西,好好感受一下市场行情。这可以很好地建立个人履历,向潜在雇主展示你的热情、解决问题的能力以及一系列优秀的技能。
  • 如果项目得到社区的关注,这将是结识其他开发人员、建立联系和朋友的好方法。

5.学习一些计算机科学。

如果你像我一样是自学成才的开发人员,你可能不想与此有任何关系。好吧,我必须为你打破幻想。学习一些关键概念将使你未来的学习变得轻松得多。我并不是说你必须具备这些概念才能成为一名开发人员,但学习之后,它们将成为你学习新技术和模式的基石。
我在担任开发人员的同时学习了两年计算机科学,虽然时间不长,但仍然足以接触布尔代数、群、图、树、排序算法、动态和静态内存、指针、自动机理论等概念;甚至不同的编程范式——比如结构化、逻辑化、函数式和对象——我还记得无数次,我能将这些概念与我正在学习的一些新技术在幕后是如何实现的联系起来。

如果您是自学成才的开发人员,我建议您阅读《冒名顶替者手册 1》和《冒名顶替者手册 2》,它们涵盖了您所需要的一切:)


写完这篇文章后,我对自己的进步感觉好多了。虽然我犯了一些错误,也许我没有好好利用时间。但我学到了东西,而且无论如何我都会继续学习,因为这是我希望你记住的最重要的一点:坚持学习,我保证一切都会好起来。

文章来源:https://dev.to/patferraggi/how-to-become-an-amazing-software-developer-things-i-wish-i-knew-when-i-started-28c5
PREV
规划我的2021年职业发展
NEXT
请不要再写 HTML 代码了。让我们将布局真正转换为 HTML 开始之前 词汇表 简介 问题 我的解决方案 结论 下一步是什么?