**我常常从个人编码学生那里听到的一个顾虑是:"我没有计算机科学学位,如何找到一份开发人员的工做?"javascript
这是一个能够理解的顾虑,最近我本身在申请成为加州州立大学(蒙特利湾)计算机科学讲师时也面临着这个问题。这种职位的一般要求是硕士学位,而我没有。java
然而,因为我以前在开源项目上的工做,我可以克服硕士学位的要求。这项工做帮助我创建了技能、信誉和专业网络,最终成为进入工做的 "后门"。网络
我相信,志愿者工做和开源项目对于任何人来讲都是一种难以想象的资源,能够绕过科技公司 "前门 "上列出的一般要求,来增强他们的经验。数据结构
在这篇文章中,我将介绍指导个人过程的两个关键原则。并发
成长。我不断发展本身的技能,经过自愿参加一些我还不知道怎么作的项目。dom
服务:我经过提供个人专业服务来创建个人专业网络。我经过向人们提供服务来创建个人专业网络,而不指望任何回报。post
我将经过五个项目来讲明这些主题。我将介绍我是如何接触人们,倾听他们的需求,向他们提供服务,并在这个过程当中逐渐创建起本身的技能。学习
## 前提是 了解你的 "梦想工做"测试
你真的应该接受一份工做,若是你是独立的富人,你会接受这份工做--巴菲特。网站
我将要说明的原则要求我付出大量的耐心和精力,并且每每没有任何直接的回报。我之因此可以作到这一点,是由于我对我认为有意义的工做有明确的愿景。
我热衷于改善社会流动性。我想创造一个世界,让每一个人都能得到我的导师的帮助,不管他们是谁,也不管他们生活在哪里。我作这件事的方式是帮助来自世界上表明性不足的地区的人学习代码。
我深深地感到本身被召唤来作这项工做,以致于我已经付了钱来作这件事。我以付费学生的身份参加了编码训练营(Dev Bootcamp),尽管我已经在几家公司担任过网络开发人员。个人目标不是学习如何编码,而是学习如何教学。
后来我开始为一些组织作志愿者,好比Code Tenderloin和freeCodeCamp,我以为这些组织和个人愿景是一致的。
有什么工做是你很是热爱的,以致于你愿意花钱去作,或者至少是免费的?我挑战你给出具体的愿景,比 "软件开发者 "要更具体。在软件开发中,你具体喜欢什么,为何?
## 侦察工做。了解问题
当我知道了本身的 "梦想工做 "以后,个人下一步就是研究其余已经在这个领域开展有趣工做的组织。
除了以学生身份参加旧金山的Dev Bootcamp以外,我还参观了密歇根州底特律的The Grand Circus编码训练营。我对The Grand Circus很好奇,由于他们找到了一种在非传统技术中心的区域教授编码的方法。
我有不少问题。学生们只学了8周的编码,他们的技能是什么?在底特律这样的非科技中心地区教授编码有什么挑战?他们的学生在哪里找到工做?
为了回答这样的问题,我安排了与许多不一样组织的人会面。
看看我是如何安排这些会议的,可能会颇有启发,因此我将分析一下我发给底特律的创业孵化器Bizdom的一封冷邮件。
这个公式在安排与我从未见过面的人会面方面有超过50%的成功率。如下是我在5天底特律之行中全部会议的记录。请注意,这个公式虽然有效,但确实须要作大量的功课。我首先须要对本身的梦想工做有一个清晰的愿景,才能有一个使人信服的 "个人故事"。我须要对其余组织进行研究,以便有一个使人信服的 "咱们的故事"。我须要已经计划好去底特律的旅行,以便有一个使人信服的 "如今的故事"。
## 项目一:我自愿帮助一我的。
给我六个小时去砍一棵树,我会用前四个小时去磨斧头--林肯。
个人底特律之行真正的成果并非来自于我事先安排的任何一次会面。
在我离开Grand Cirrus编码学校的时候,我有幸和一个刚从他们项目毕业的学生--姑且叫他 "Robert"--共乘一部电梯。在我给Robert口头讲述了个人故事、咱们的故事、如今的故事以后,他赞成和我共进午饭,让我能听到更多关于他的经历。
在咱们的午饭中,我听了罗伯特的故事。我了解到,促使他参加编码训练营的缘由,是他想抛开在福特汽车的蓝领工做。我了解到,他面临的主要挑战之一是为他3岁的女儿找一个保姆,以便他能参加编码训练营。我了解到他的梦想是为女儿制做一个有趣的教育性手机应用。我了解到他的挫败感,由于编码训练营实际上并无让他作好准备去开发这样一个应用程序。
后来我自愿成为他的编码导师,由于他创建了这个应用程序。尽管我作这项工做没有任何收入,但我仍是作了,由于这离我梦想的工做又近了一步。我从仅仅是和那些正在作有意义工做的组织聊天,变成了本身真正和一个真实的人一块儿作工做。我很激动。
我也很惧怕,由于我历来没有教过别人编码。在我看来,这是我学习的机会。
我和Robert一块儿工做了几个月,在这期间,我会为他建立像下面这样的模块。
## 项目2:为FreeCodeCamp建立课程。
若是说我比别人看得更远,那就是站在巨人的肩膀上。- 艾萨克-牛顿
freeCodeCamp 在很大程度上解决了我缺少组织的问题。他们的现成项目正是我所须要的,以使我做为一个编码教师更有条理。当我发现它是所有开源的时候,我想这太好了,不多是真的。我想必定有什么陷阱。因此我给 freeCodeCamp 的创始人 Quincy Larson 发了邮件,问他我是否真的可使用他们的课程来教我本身的学生。他说是的。没有任何条件。我被freeCodeCamp的理念所激励,因此我自愿帮忙。
若是你仔细观察,你会发现我沟通方式的一般元素:个人故事,咱们的故事,如今的故事。
还有一个额外的元素,那就是我为Robert创做的先前做品的连接。这是一个例子,说明之前的志愿者工做如何逐渐创建起个人技能,使我能够从事更大和更复杂的项目。
在与Quincy的几封邮件中,我从为一我的建立模块,到为freeCodeCamp的100多万用户建立模块!
这多酷啊?我当时很激动。
同时,我又很惧怕,由于当时OOJS不是我最强的课题。但在我看来,这是我学习它的机会。我作好了准备,疯狂地消耗这本书。
我也决定寻求其余人的帮助,因而我在Dev Bootcamp Facebook群里用如下帖子联系了你们。
这个帖子招募了5个热心的志愿者,他们和我一块儿合做完成了面向对象的javascript课程,如今在freeCodeCamp的测试版上能够看到。
请注意,这个项目的成果利用了我以前在Dev Bootcamp作的侦察工做。我当时绝对不会预料到,我在DBC遇到的人有一天会和我合做。这说明了采起行动而不指望任何回报的隐藏力量。
## 项目3:关于高级开发人员的案例研究
"找到一个值得解决的问题,一个很好的黑客就是让本身彻底沉浸在一个你所热衷的垂直领域,并与其余热衷的人一块儿围绕着你。人不免会有问题。" - 奔跑的精益》做者Ash Maurya
当我和五位 Dev Bootcamp 毕业生一块儿工做以建立 freeCodeCamp 课程时,我很荣幸地听到了关于编码训练营后生活的起伏的第一手证词。
他们的首要愿望之一是成长为高级别的开发人员,但他们以为他们在公司的平常工做并无为这样的成长作好准备。他们想作更有挑战性的工做,以便继续发展他们的技能。
我很好奇更多的编码训练营毕业生是否也是如此,因此我采访了我在Dev Bootcamp时期的几个朋友,询问他们。我按照《奔跑的精益》第七章所定义的 "问题访谈 "结构来进行这些对话。
从高层次上讲,"问题访谈 "的目标是了解你的受众的第一大目标,并了解他们今天是如何解决问题的。下面是一个例子。(显示Xavier的访谈连接)
采访中的主要观点。
Xavier的第一目标(红色): "从初级开发者转为中级开发者"。
如何解决问题(蓝色):他询问公司的高级开发人员是如何得出特定结论的。
博客文章的想法(绿色):采访高级开发人员,并走访他们面临的具体挑战,以更好地了解他们的思惟过程。
我联系了我认识的比较资深的开发者,包括FrontRowEd的CTO Alexandr Kurlin,这是一家为K-12学生建立自适应学习软件的创业公司。如下是我发给他的邮件,以安排采访。
注意我描述影响的方式(绿色)。我发现,激励人们采起行动的最有力的方法是强调他们的贡献的更深层次的意义。关于激励的研究将 "对他人的影响 "和 "掌握 "列为两种强大的意义形式--这可能会让你想起前言中列出的两个指导原则,我也是用这两个原则来激励我本身的。
我与Alex合做制做了如下案例研究,并发布到freeCodeCamp的Youtube频道。
我从这个项目中学到了不少东西。我敢打赌,我我的从采访Alex的过程当中学到的东西比任何观看视频的人都多。
## 项目#4: 为freeCodeCamp构建一个课堂模式功能。
"成功是经过付出而不记帐得到的。" - "基思-费拉齐
我在视频的最后和Alex一块儿放置了一个行动号召,为FreeCodeCamp的开源仓库创建一个功能,做为将视频中的技能付诸实践的方式。
Quincy Larson建议建立一个 "课堂模式 "功能。愈来愈多的老师在课堂上使用freeCodeCamp进行教学。然而,freeCodeCamp并无考虑到这个用例。咱们能解决这个问题吗?
我招募了如下团队来帮助咱们。
Udie Chima 成为了咱们的用户体验设计师。
谢淑贞成为咱们的项目经理
Tom Lee、Priyanka Saigal和我本身成为了开发者。
这些人几乎都是我在考察其余编码训练营时的侦察工做中认识的。
做为一名用户体验设计师,Udie很想和其余会使用课堂模式功能的人直接聊天。因此咱们要求Quincy表明咱们作任何他能作的介绍。Quincy表明咱们发出了如下推文。
这条推特引起了大约10个来自世界各地的教师的用户访谈。基于这些访谈的看法,Udie创造了如下互动线框。
因为昆西的推特,咱们认识了一我的,他是加州州立大学(蒙特利湾)的教授Sathya Narayanan博士。
## 项目5: 志愿服务,帮助在夏季训练营
在我与Sathya在zoom会议上的初次交谈中,我被他使妇女和少数群体更容易得到大学体验的愿景所鼓舞。他的实验性群体模式旨在解决布里奇特-伯恩斯的研究所揭示的高等教育中的许多设计缺陷,这些缺陷致使少数族裔的毕业率较低。我对他们专一于教授超越传统学术知识的软技能特别感兴趣。
他提到,他正在为即将到来的数据结构暑期训练营作速记,后来我给他发了邮件,表示愿意提供帮助。
"个人工做实例 "连接到我为freeCodeCamp的Youtube频道制做的一个高级开发者视频。
在那个夏天帮助Sathya是一次很充实的经历。CSUMB的同批项目原来就像他所说的那样创新和活跃。
在训练营结束时,Sathya提到CSUMB有一个开放的讲师职位,他正在招聘。这份工做一般须要硕士学位的要求,但他说他会想办法免除个人要求。我就去了。
## 结论
我终于获得了报酬,能够作我前两年一直免费作的工做,这种感受真是太奇妙了!我特别感谢来自底特律的学生罗伯特,几年前我在电梯里认识他。
我特别感谢罗伯特,这位来自底特律的学生,几年前我在电梯里遇到他。感谢你给我一个机会,成为个人第一个学生。
做为对读者的一个号召,若是你想参与一个开源项目,我能够帮你把你的第一次提交到咱们正在为freeCodeCamp构建的课堂模式功能中。欢迎在linkedin上给我留言。**