成为一名程序员

2020-07-18 02:12:41

命令行英雄是软件工程师、开发人员、程序员、系统管理员和程序员。编程职业的多样性几乎就像程序员获得工作所采取的途径一样多种多样。

萨隆·伊特巴里克(Saron Yitbark)和克莱夫·汤普森(Clive Thompson)在本赛季开始时探索了程序员开始技术职业生涯的一些方式-一些常见的,许多出人意料的。许多人选择从计算机科学学位开始。但不要低估了成熟的训练营路径、职业生涯中后期的转换者,以及来自与世隔绝的技术中心以外的程序员。您可能会惊讶于谁应答了对代码的调用,他们来自哪里-以及他们已经完成了多少工作。

你被困在一个荒岛上。你发现了一架坏掉的螺旋桨飞机、一些工具和一本实用的手册。你以前从未修过飞机,但你迫不及待地想离开这个岛,所以你开始工作。你的决心可能足以让那架飞机重新飞行。这是一个极端的例子,但是当你试图弄清楚一些东西是如何组合在一起的,特别是像飞机一样摆在你面前的东西,你脑海中就会有一个你正在处理的东西的图像和一本帮助你前进的手册。但是软件呢?如果你身处这个世界之外,你很难想出如何处理这些1和0。即使你身处其中,也很难想象你在拼凑什么。这就是一个人发现自己所处的情况。

在写了25年关于软件及其对日常生活的影响的文章后,我意识到大多数人都不知道软件是如何制作的,或者是谁制作的,或者他们为什么想要制作它。他们不明白,你知道,所有这些软件工程师代表他们做出的决定是什么。这就是这个巨大的谜团。我决定写一本书来解开这个谜团,向人们展示代码是如何编写的,是谁制作的。

这本书名为“编码者:新部落的形成和世界的重塑”(Coders:Making of a New Tribe and the Remaging of the World)。作者是科技记者克莱夫·汤普森(Clive Thompson)。在过去的四季中,我们展示了许多关于程序员如何塑造我们周围风景的史诗故事。但我们没有太多谈论的是这份工作本身,它是如何完成的,它是如何随着时间的推移而变化的,它可能会如何演变,以及我们如何找到一份程序员的工作,尤其是第一次。我们已经制作了一个迷你季,共3集,致力于成为一名程序员。

欢迎收看全新一季的“命令行英雄”,这是一个来自红帽的原创播客。我是你们的主持人,Saron Yitbark,和我们一起参加本季所有3集节目的是“编码者”和“豆荚之友”的作者克莱夫·汤普森(Clive Thompson)。欢迎你,克莱夫。

克莱夫,你在过去的几年里完全沉浸在程序员的世界里。您已经为您的书采访了200多名开发人员、系统管理员、架构师、工程师和程序员。

嗯。孩子,我采访了整个生态系统中非常多的软件开发人员。

让我们从最传统的成为一名程序员的途径开始吧,去大学拿到计算机科学学位。

我认为对于我作为产品经理所做的工作来说,拥有这样的技术基础是很重要的。我很高兴我通过一个计算机科学程序做到了这一点,因为我觉得我不仅知道我是如何编写程序来做这件事的,而且我也知道幕后发生了什么。

那是维纳姆拉塔信号。她于2016年毕业于斯坦福大学,获得计算机科学(CS)学位。她说,她的教育为她在Facebook、谷歌和其他公司担任产品管理职位奠定了基础。克莱夫,大多数程序员都拿到CS学位了吗?

如果你看看Stack Overflow调查--这是一个很大的编码网站,而且他们每年都会对数以千计的用户进行一次精彩的调查--他们的数据显示,Stack Overflow上大约有60%的程序员是专业的,他们接受过某种正式的计算机科学培训,或者类似于电子工程的培训。这个数字可能比这个数字高一点,但就让我们说三分之二吧。毫无疑问,成为一名程序员最常见的途径仍然是去拿一个计算机科学学位或与之相关的东西。

是的,它们是经济学家所说的代价高昂的信号。他们表明,嘿,我是一个愿意花很多时间学习这些东西的人,所以我会是一个很好的招聘对象。如果你是一名开发人员,你必须一直不断地学习。新的框架、新的语言、新的环境。雇主会告诉我,他们喜欢从计算机科学学位毕业的人,其中一些原因是因为这些人只花了4年的时间,除了学习什么都不做。而且他们还需要不断学习。

当你获得本科学位时,你正在学习这一点,但你也在学习理论数学。您还将学习算法,您还将学习网络和计算机系统。我认为所有这些都给了你一个非常坚实的基础,所以如果你要转行或不转行,事情就会容易得多。

斯坦福大学的学位有助于被认真对待。老实说,只是自信而已。这也是其中的一大部分。处理冒名顶替者综合症。然后,就像人们甚至在申请工作之后也想和你交谈,你只是,因为你有这个庞大的人脉,事情就容易多了。

文科学位是否使他们比那些非传统进入这个行业的人表现更好?

这真是一个很好的问题。这是一个很难回答的问题,因为我从不同的雇主那里得到了完全不同的答案。我听一些人告诉我,是的,CS的人比自学成才的人或训练营的人更自信、更自信,而且能一开始就跑起来。然后我听到的正好相反。例如,我听说大卫·卡尔特(David Kalt)经营着Reverb,它已经成为销售音乐设备的主要电子商务网站。令人惊叹的,成长中的,盈利的公司。我曾经说过,他就像是,我只想要计算机专业的毕业生,但他们就是不具备你想要成为一名高效团队成员的所有生活技能。越来越多的,他开始雇佣训练营的人,自学成才的人,那些在业余时间学习的音乐家。

您还可以听到对非计算机科学人员的赞扬。我认为是来自某一类投资者,甚至是老派的程序员。他们五六十岁,自学,80年代时用的是准将64。当他们看到有人走过来说,是的,我只是,我只是,我在酒店业有份工作,我讨厌这份工作,我在YouTube和代码学院上学到了很多东西。他们说,是的,我想要那个人。我们可以说,这是非常双峰的。有一类雇主非常严格地只聘用CS。还有一个完全不同的班级,有时自学成才或者是一个斗志旺盛的人转行去了训练营,这实际上是一种真正的骄傲。

我的故事非常独特。我在一个偏僻的地方长大,我的高中绝对没有得到很高的资金支持。所以直到我进了大学,我才知道编程是什么。

Ali Spittel是一名软件工程师,也是编程训练营General Assembly的杰出教员。她在大学里开始学习计算机科学,但发现自己走上了一条完全不同的编程职业道路。

我学了蟒蛇。我完全爱上了它。我觉得很神奇,你可以在电脑里输入一些东西,然后就会出来一些东西。我很快就决定我要双倍主修计算机科学,但是下个学期我选修了C++FLOSS的数据结构和算法,我确实通过了,但我通宵达旦地努力学习,就是为了通过这门课。然后我决定编程真的不适合我,就退学了,只学了我原来的专业政治学。大约一个学期后,我参加了一次实习,主要是政治工作的数据分析。我意识到我可以通过编程使我自己的很多工作自动化。他们发现了这一点,并推荐我担任软件工程师的职位。

我自己面试过数百人,我几乎总是会问这样一个问题:“计算机科学学位真的有价值吗?”你需要它吗?你可以自学吗?“。只是想试着去感受一下。我猜CS学位会非常有价值,因为你要花4年的时间来学习这套高度精心策划的信息。但是当我进行这些对话时,我得到了所有类型的答案。我有的人说,事实上,这真的不是很实用。我也有人说,哦,理论知识太有价值了。

嗯。我也听到了混杂的声音。我从人们那里听到了一个强烈的信号,他们说,好吧,我们需要计算机科学学位。我们不会认真对待那些没有这么做的人。但是,我想你听到的另一个群体也是完全相反的。他们就像,不。我们需要有实际经验、能够团队合作的人。我们喜欢能跳出框框思考的人。如果有人自学,他们比上过大学的人有更好的成长心态,因为也许大学里的人习惯了别人交给他们的东西。课程表就在那里,他们正在行进。而那些刚刚自学了一些HTML,然后是一些CSS,然后是一些JavaScript和Node的人,把自己变成了一个完整的堆栈工程师。天哪,你想让谁加入他们的团队,他就是那种干劲十足、干劲十足的人。

不同的学习道路对每个人都有好处。计算机科学是令人难以置信的,因为你可以学到所有这些你将在日常基础上要做的事情的理论基础。自学是另一条伟大的道路。这在很大程度上是我开始工作的方式,而且它会成功的,这样你就有了在工作中学习这些东西的基础,这也是你无论如何都要做的。最后一部分是训练营。如果我回去重新做一次,我会去参加训练营,因为我有能力有一位指导老师来监督你的工作,但是

在8年多的时间里,我们已经毕业了大约3000名学生,其中约95%的学生在我们的旧金山校区和纽约校区的工资中位数分别约为10万美元和9万美元,并将这些学生安置在顶级科技公司。

库什·帕特尔是App Academy BootCamp的首席执行官。他的训练营有一种学费模式,允许毕业生在找到工作后付费。这给了更多的学生学习编程的机会。毕业生已经被谷歌这样的公司录用,可以挣到不错的薪水。

多年来,我们在谷歌安排了大约100名学生,这与基本上所有顶尖的计算机科学项目相比都是非常有利的。这是进入科技界最热门的工作之一的一种非常便捷的方式。

我想说他们是优秀的编程训练营的典型代表,但是训练营本身确实是多种多样的,从我认为教给人们很多的奇妙的、管理良好的地方,到一些从未给任何人找到工作的非常粗略的组织,不一而足。

我想,大约6年前我从一个编程训练营毕业,当时感觉就像是训练营如雨后春笋般涌现出来。它正在成长,它是一个萌芽中的行业。从那以后,我觉得训练营多年来一直在发展。这是你见过的东西吗?

是啊,当然。最好的可能稍微降低了他们的期望值。我认为他们一开始就承诺每个人都会得到这些非常棒的工作,但这并不总是可能的。他们在设定期望值方面做得更努力。他们还意识到,在找工作这一部分,他们必须非常努力。因为他们可以给人这些技能,但让他们进入初级开发工作是非常重要的,在那里他们将学到更多东西。

我想这些年来你支付训练营费用的方式已经改变了。这真的很令人着迷。甚至在接受培训后付费的想法在国际会计准则中也变得更正式了,收入分享协议,我想这会让它更具约束力。这也有一些利弊之处。当你实际上没有得到任何回报时,就有不得不偿还的危险。

我同意。因为训练营的发展如此戏剧性,而且他们显然在填补一个漏洞。计算机科学课程不够。他们的扩张速度不够快,无法创造出这些公司需要的所有理工科学位。他们需要其他路线。训练营在某种程度上填补了这一空白。但这以一种奇怪的方式意味着,他们正在朝着社区大学的方向发展,理论上,你会希望看到他们搬进来。社区学院是受监管的。实际上,我认为政府、地方政府、州政府和联邦政府可能会为训练营制定一些标准,这将是很好的,因为如果他们能制定非常非常好的标准,而且可能会有真正的批准,那么它将鼓励最好的训练营提高到这些标准。如果其他公司不能满足这些监管要求,它们要么会被淘汰,要么甚至会被关闭。

让我们和一家大型科技公司的人谈谈非传统招聘事宜。威尔·怀特(Will White)多年来聘请了很多程序员,担任LinkedIn的高级工程经理。他们中的大多数都是CS毕业生,但他意识到没有足够的人来填补空缺职位。三年前,该公司启动了一个名为REACH的学徒计划。

REACH计划是一项为期多年的计划,我们引入学徒,并通过将他们与不同的导师和经理配对来帮助他们培训工程技能。我们相信,顶尖人才可以来自任何地方,而人脉是我们寻找人才的途径之一。特别是在CS候选人的人才库之外。一般来说,我们正在寻找对工程有热情的人,这些人可以通过很多不同的方式表现出来,无论是那些花时间去训练营的人,还是花了很多时间在自己的时间里自学的人。比如兼职处理一个项目,或者编写代码,试图让你一直在工作的开放源码项目接收并接受一个Pull请求。

Clive,之前的Will和Ali都谈到了自学,当你做研究的时候,你自己也遇到了一些自学的程序员。

有很多自学成才的程序员。我们正在谈论的是,在堆栈溢出调查中,大约三分之一的人完全,或者至少在很大程度上是自学成才的。莎拉·德拉斯纳是一位出色的全栈工程师。最初因其在SVG图形方面的开创性工作而广为人知。而且,她确实是自学的,因为她最初在博物馆当插画家的工作有点被封存了,因为他们基本上得到了一台比她更擅长拍照的相机。她的雇主说,好吧,你想为我们做网站吗?这是网络的早期阶段。她说,是的,当然可以。然后回到家,真的开始看书,试着学习如何做到这一点。她选择了这条路,在接下来的几年里,她成为了一名绝对出色的开发人员,在她的领域中名列前茅。这些故事并不是那么不同寻常。

两位开发者之一,Instagram背后的程序员迈克·克里格(Mike Krieger),但他做了很多繁重的工作。他从小就自学做网站。开始致力于疯狂的小开源项目,帮助创建Thunderbird的插件。这就是他开始做这件事的地方。这确实大大提高了他的地位。对我来说,实际上我认为自学机制真的很有趣,而且它变得比以往任何时候都更容易,因为有为它设立的资源,比如FreeCodeCamp,这实际上就是我学习HTML、CSS和JavaScript的方式。然后,只有一百万个YouTube视频、开源项目和黑客松。自学成才是一个令人惊讶的可行的入口。

我是你在科技行业遇到的最不可能的人。我是一名采矿工程师和受过教育的土木工程师。需要是促使我们前进的原因。我们这里的煤炭工业刚刚崩溃,这是该地区的主导产业。因此出现了巨大的失业问题。

这是一个以我最喜欢的名字之一--拉斯蒂·贾斯蒂斯--命名的人的一段视频。他来自阿巴拉契亚中部肯塔基州的皮克维尔,那里的主要行业一直是煤炭开采。拉斯蒂在采矿业经营了多年的业务,直到5年前该行业崩溃,然后他和他的商业伙伴决定转行。他们创办了Bit Source,一家数字服务公司。克莱夫,你在书里写了关于拉斯蒂的事。他是职业生涯中期进入该行业的越来越多的程序员中的一个例子。你用了一个你称之为“蓝领程序员”的术语。那是什么意思?

嗯,它基本上是指一个程序员,他从事这项工作的方式可能与我们在过去15年或20年里谈论程序员的方式略有不同。在很长一段时间里,编码器的想法是这个穿着连帽衫的年轻人搬到硅谷,这样他们就可以创业,获得数百万美元的投资,或许还能成为亿万富翁。蓝领编码意味着的是那些更像20世纪蓝领工作的人,比如那些在克莱斯勒生产线上从事熟练技术工作、制造汽车的人。他们拥有巨大的技术技能,但这被认为是一种稳定的中产阶级工作。这在某种程度上就是蓝领编码的理念所在。它正在接近这份工作,因为我们不是来这里做这个穿着连帽衫赚数百万美元的孩子的,我们来这里是为了在21世纪拥有一份稳定的中产阶级工作。

事实是,所有编码工作中只有8%在硅谷,在那种广为人知的消费者软件领域。在美国其他地方,都有编码工作。它们无处不在。他们在田纳西州,他们在俄亥俄州,他们在纽约州北部,他们不在Facebook和谷歌。他们在银行。他们在保险公司、餐馆或工业公司工作。他们都需要软件开发人员。当人们把目标放在传统领域之外时,人们会以不同的方式思考职业弧线是什么。这就是我们看到蓝领编码的来源。

你在书中提到了另一位蓝领程序员,另一个有着令人惊叹的名字的人,加兰·索奇(Garland Couch)。在被解雇之前,他曾在一家大型矿业公司做了15年的维修计划员。然后,他加入了拉斯蒂的公司,进入了科技行业。这就是他当时的样子。

.