如何成为一名成功的自学软件开发人员

我通过电子邮件收到了以下问题,来自某人花费大量精力学习如何编码以期获得具有这些技能的全职工作。这个问题也经常被大学生和编码训练营的毕业生问到。

这篇文章提供了我目前关于如何作为软件开发人员获得第一份全职工作的答案。我的回答假设自学成才的开发人员的“成功之路”的定义是在投入大量时间学习编码后获得全职职位。

请注意,正如我在下面的回答中所描述的那样,我选择了一条更“传统”的途径来成为一名专业的软件开发人员。因此,我的回答应该只是您在努力从自学成才到专业软件开发人员的过程中征求的众多回应之一。

(释义)原始问题

我不确定要成为开发人员首先应该学习什么。

现在我走的路是:学习基本的 python 基础知识 ->git/github -> ubuntu/linux OS–> flask/jinja2 –> Bootstrap ->SQLalchemy -> Docker – > Celery -> Redis -> AWS -> Django?!

我不知道 JS / Angular2 / ECMAscript6 / HTML / CSS 都适合这个…

什么是这是成为一名成功的自学成才开发人员的理想途径,这样我最终就能找到一份软件开发人员的工作吗?”

我不确定要成为开发人员首先应该学习什么。

现在我走的路是:学习基本的 python 基础知识 ->git/github -> ubuntu/linux OS–> flask/jinja2 –> Bootstrap ->SQLalchemy -> Docker – > Celery -> Redis -> AWS -> Django?!

我不知道 JS / Angular2 / ECMAscript6 / HTML / CSS 都适合这个…

什么是这是成为一名成功的自学成才开发人员的理想途径,这样我最终就能找到一份软件开发人员的工作吗?”

我的 tl;dr 答案

在学习了基础知识并对语言的生态系统有广泛的了解之后,深入到您真正喜欢工作的领域。当您找到需要该技能的团队来找到您的第一份全职工作时,利用您在目标专业领域的深度。

回答上下文

弄清楚学习时的顺序绝对是自学者最棘手的问题之一。我不确定我对你问题的回答是你能得到的最好的答案,因为无论好坏,我在高中学习了四年的计算机科学 (CS),然后是本科 CS 和研究生院 CS(同时作为全职工作developer)。那条路线好像是“传统开发者”的背景。但是,我会尽力给出答案。您绝对不是唯一面临此问题的人。

我通常看到自学成才和开发人员训练营的毕业生想要找到一份工作,他们必须学习从数据库后端到 Web 框架的所有内容,再到出现的每个新 JavaScript 前端框架,但这绝对不是真的。当您获得第一份全职开发人员的工作时,那是因为开发团队发现您拥有他们团队所缺乏的特殊技能,并且他们在项目上需要帮助。

深入研究

如果您发现自己在编写前端代码,但希望可以重新优化数据库,那么您应该专注于更深入地优化数据库。尽可能多地学习 SQL、DDL、DML、ORM、PostgreSQL、数据库测试和性能调优。不断深入。将大部分时间花在编码上,但在可能的情况下也将您正在学习的内容教给其他人。有些人更喜欢通过写博文来教学。其他人喜欢在聚会上提供教程。您还可以亲自或通过视频聊天远程指导其他软件开发新手。

通过教导他人,您并不是纯粹的利他主义者:解释编程和回答他人的问题将在您自己的脑海中强化您所学的知识以及基于这些问题您的差距所在。尝试代码以了解更多信息并继续深入。创建一个反馈循环,您可以在其中编码、学习、编写和寻找新的未开发脉络,以在该领域了解更多信息。

一旦您拥有良好的反馈循环,您就应该准备好开始找工作了,您可以在其中挖掘您最喜欢的学科领域并以某种方式将其教授给其他人。

求职

当您深入研究您的主题时,寻找具有一点全栈风格并强调您的专长的工作。通过电子邮件联系团队中的开发人员或招聘经理。向他们征求意见,了解他们团队中成功的开发人员具备哪些技能,以及不成功的候选人在他们的职位上缺乏哪些技能。当他们的回答与您要深入的领域相关时,将他们的回答用作您可能仍需要了解的内容的数据点。

当您觉得自己准备好了时,看看您是否可以与这些团队的开发人员共进午餐或进行视频聊天,以详细了解他们的工作。如果一切顺利,请询问他们是否会将您推荐到面试队列中。与通过人力资源简历收集系统申请相比,推荐会让您走得更远。

同时寻找软件开发初级角色和技术支持角色,如果技术支持角色是在以软件为中心的公司。例如,Twilio 的支持团队经常雇用开发经验有限的人,但随着时间的推移,他们可以学习如何根据基础调试编码问题在他们必须回答的所有支持票上(以及持续的自定进度学习)。

面试和工作技巧

热情对于获得并在前几份工作中取得好成绩至关重要。事后看来,我大学毕业后从事的许多企业软件都很糟糕,但这对我来说都是全新的,所以我尽可能多地吸收知识同时向我周围的技术主管和架构师提出大量问题。享受攀登陡峭的学习曲线。

克制你的愤世嫉俗和任何“我比这更好”的态度,因为公司有大量乏味的繁重工作需要完成。繁重的工作将教会您如何成为更好的软件开发人员。

在寻找您的第一份工作时,请始终关注许多潜在的机会,不要将希望寄托在某个特定的工作上。目标是获得你的第一份发展工作,这将帮助你继续学习,而不是找到你梦想的工作。当您实际上有足够的经验知道您的梦想工作是什么样子时,梦想的工作就会到来!

您最终将获得第一份开发工作。然后你将不得不不断学习,最重要的是你会为此得到报酬。

意见反馈

还有哪些其他问题我可以回答,我可以向 Full Stack Python 添加哪些主题,这些主题对正在努力成为自学成才的开发人员的新手有极大帮助?

在 Twitter@fullstackpython 或@mattmakai 上通过 Full Stack Python 存储库上的 GitHub 问题单让我知道。

我应该如何改进这篇博文?在 GitHub 上创建此页面的源代码并提交拉取请求。

赞(0) 打赏

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏