给开发小白的一些职业建议
基础知识、选择编程语言、社交媒体运营和面试等方面的建议
俗话说,好的开始是成功的一半,而不敢开始可能是通往成功的最大阻碍。刚进入开发领域的初级开发人员或开发小白可能会被铺天盖地的建议吓到不知所措:担心自己学错编程语言(其实没什么大不了)、害怕编码考试、或不敢参与网络热门的话题讨论。
尽管这些担忧再正常不过,但还是要想办法克服它们。我们采访了开发者关系团队的 Rizel Scarlett ,她根据自己的经历给出了一些建议。
选择编程语言对开发小白有多重要?
Rizel: 究竟应该选 Python、Java 还是 JavaScript,这其实不重要,重要的是了解这些语言的基础知识。
就像我们在孩童时期牙牙学语一样,我们先学会母语,然后就可以通过学习句法和语法来学习第二或第三语言。
编程语言的基础知识包括:
- 创建和调用函数
- 创建变量
- 理解和解释条件
- API 调用
- 理解范围、字符串、数组操作和数据结构(随语言变化而变化)。
如果你能熟练掌握某一特定语言的基础知识,大多数招聘经理就明白你可以轻松学会其他语言。想了解编程语言的流行程度和使用的详细情况,请阅读《2021 年 Octoverse 报告》 的近年来流行的编程语言。
开发小白在学习新兴语言和框架之前要先学习传统语言吗?
Rizel: 我听说过有人没有学基础知识,直接学习了一个框架,而且使用的还不错,但我个人觉得这样不太可行。因为很多框架都是以基础语言为基础的,掌握了基础语言之后再学框架,会学的更省力更好。我们可以把框架想象成一种语言的方言:如果你不懂中文,就很难学会粤语(广东省方言),当然,这并不绝对,也有例外的情况。
如果我现在还不是全职开发人员,我怎么获得开发经验?
Rizel: 我最推荐的是探索开源社区,因为开源社区与团队工作的经验最为相似。你可以在开源社区提出拉取请求,而且这段经历显示在简历上也是非常亮眼的,能帮你从求职者中脱颖而出。
我的第二个建议是:做一些自己真正喜欢的个人项目,跟随灵感,积极创造。可以从教程或训练营中做过的项目开始,逼自己思考,“我还能添加什么?”
最后一个建议是:申请成为学徒和实习生。大多数初级开发人员并不会考虑做学徒或者实习生(但所有的非传统开发人员都是这样过来的),我认为这是个很好的机会,开发小白可以借此机会正式入行,同时又能避免刚入行就压力山大。
我对开源项目很感兴趣,但不知道从哪儿入手,我该怎么挑选项目呢?
Rizel: 你可以先在 github.com/topics 上找找,看看那些使用你喜欢的编程语言或工具的开源项目。开源项目的新手要注意找那些带有 good-first-issue 标签的问题,解决这类问题不需要了解项目传统知识,开发小白就可以搞定。另外,你还可以使用工具来收集和识别项目中 good-first-issue。
First Timers Only 总结了一个聚合器的列表,你可以用这些聚合器来寻找 good first issue。First Timers Only 还提供了教程来帮你了解为开源项目做贡献的 Git 工作流程。这个工作流程与给个人项目或公司项目做贡献的工作流程略有不同。
另外,一个名称为 Good First Issue 的推特账户经常推送标签为 Good First Issue 的问题。我很喜欢这个账户,因为它会发送通知提醒你来申领这些问题。提示: good first issue 非常抢手。
我的作品集应该包括什么?
Rizel: 首先,我个人认为作品集完全可以简单一些,可以在作品集里附上自己的代码链接,不管代码是托管在 GitHub、GitLab 还是 BitBucket 上。这能让招聘经理直观的看到你会写代码,能查看你的成长历程,并深入了解你解决问题的能力。
如果你特别想得到某个工作,最好准备一份个人简介,展示自己独特个性,或者展示一些自己之前做过的或喜欢的项目来为简历增色。至少要有一个简短的自我介绍部分,附上社交媒体和托管代码的链接。
如果你在寻找建立作品集的工具,可以试试 GitHub Pages,你也可以只制作一个 ReadME。我的 ReadME 就是一个作品集。
怎么寻找导师?导师可以帮我什么?
Rizel: 你可以加入一个正式的项目,然后在项目里寻找导师。我之前就从 Girls in Tech(Slack 频道的女性编码者团队)里找到了一个导师。你可以从你毕业的学校或编码训练营找导师。
像 #100Devs 这样的团队就有很多人愿意为开发新手提供指导。你也可以多在推特上与人互动,当然,不仅可以给他们发私信询问他们能不能指导你,还可以从他们发的推特和博客中寻找灵感。有些人偶尔会发推说他们愿意通过 Zoom 聊天,你可以跟他们预约时间,跟他们聊聊天取取经。不过,他们都很忙,不要指望他们能帮你找到工作。
你可以和导师一起设定你的条件和期望。通常情况下,我找导师的目的都是希望能集思广益来解决我在行业中遇到的问题,如职业发展、绩效评估或面试。
建议参考 GitHub DevRel 团队成员 Michelle Mannering 和 Damien Brady 合作完成的如何充分利用导师制这篇文章。
如何利用社交媒体建立我的品牌?
Rizel: 使用你最喜欢的社交媒体(推特或其他平台都可以)来记录你的学习历程,分享你一直在做的事情、你学到的任何新技能等。在社交媒体上发内容可以随意一些,不需要太纠结自己是不是专家。你可以一边学习一边发布,即使是微小的进步也可以发出来。开源其实就是分享和协作,所以不要紧张,尽情与社区分享你的代码/工作。
这个行业需要更透明、更包容,这也有利于建立你自己的品牌。永远不要害怕表现得“太初级”,大家都会支持你的。
我可以从哪些大神开发人员那里获得启发和灵感?
我强烈建议在推特上关注这些开发人员:
- @ceeoreo_
- @techgirl1908
- @hola_soy_milk
- @teneikaask_you
我也会在推特上发布我所学到的东西,一定会知无不言,言无不尽,所以希望大家也关注我@blackgirlbytes。
我总担心我的回应会显得很初级,我该怎样克服这种心理呢?
Rizel: 我理解你的这种心理。我们都是从这一步走过来的,初级开发人员都会这样,但是你并不是什么都不知道,把自己知道的展现出来就好了!不要不懂装懂就好。这个行业需要更多诚实的人。
如何对待工作申请?
Rizel: 尽量多投简历,不要太在意岗位名称。一些初级岗位的名称里并没有初级这个词。不过,尽量别申请没有导师指导的职位,因为这样的岗位可能会让你很挫败、不知所措,甚至会让你逃离这个行业。很多公司在岗位的等级划分和职能上都比较灵活,所以对什么岗位都不要有先入为主的抗拒心理。
海投简历的时候,可以了解一下你的圈子里是否有人在你想去的公司工作。如果有认识的人的话,可以通过他多了解一下这个公司。如果这个人正好是朋友,或者是朋友或同事介绍认识的人,就可以主动在领英和推特上联系他们。这种关系对你的职业生涯非常重要。
怎么准备编码考试?
Rizel: 可以浏览 HackerRank、LeetCode、codewars.com、和 pramp.com 等网站,这些网站有很多可以编码面试的内容。你也可以请导师或从事软件开发的朋友给你模拟面试,并对你的面试表现提出建议。另外,你可以看一下很多人推荐的《破解编码面试》这本书*。*
我自己对待面试就更直接一些。我喜欢都把每次面试都当做一次历练,因此经过多次面试后,我现在已经非常清楚招聘经理比较看重哪些经历,知道以后申请具体某个工作时应该往哪方面努力。
初级开发人员与中级开发人员的区别是什么?
Rizel: 这个问题因公司而异吧,是个值得单独探讨的话题。在我工作过的一些创业公司里,我只是初级开发人员。但我跟别人交流时,一些人会认为我是中级开发人员。我自己觉得我目前更接近于中级开发人员的水平。有些人会以经验年限来衡量开发人员等级,一般零到三年为初级开发人员,三到五年为中级开发人员。这些都是可供参考的标准,但并不是放诸四海而皆准的标准。
我个人认为,初级开发人员在思考怎么着手开始或深入研究一个问题时可能需要更多的帮助,而中级开发人员对此更有经验。中级开发人员在写代码之前可能会做更多的计划、研究和设计,以找出最佳解决方案。这并不是说中级开发人员不需要帮助,但他们可能对问题和解决方案有更成熟的想法,因为他们的经验更丰富。
经验之谈
万事开头难,开发小白刚进入行业可能找不到工作,难以在行业内立足,可以多去搜集资源,多向前辈请教。
一分耕耘,一分收获,想成功就必须努力。想了解如何在开发领域找到第一份工作,请查看 Cassidy Williams 在 GitHub 的 The ReadME Project 指南。
原文作者:Kelsey Bernius
原文链接:Career tips for beginner developers | The GitHub Blog