成为程序员的疯狂技巧
我通常鄙视“如何成为一名程序员”的文章。它们充斥着无用的陈词滥调和毫无意义的轶事。它们就像层出不穷的“如何减肥”文章,声称要告诉你“一个简单的秘诀”,让你解决所有问题(无需你付出任何努力或牺牲)。换句话说,大多数“如何成为一名程序员”的文章都是彻头彻尾的废话。
然而...这是我的“如何成为一名程序员”文章。
为什么???
今年的博客生涯让我认识了一些有趣的读者。具体来说,有几个人无缘无故地联系我,想请教“如何成为一名程序员”的问题。虽然我觉得自己并不“配得上”这样的问题,但我还是尽力提供了最好的答案。
然而……我感觉我的一对一解答似乎有些欠缺。所以我会尽力在这篇文章里弥补这一点。
像程序员一样表演
编程有点像表演,似乎很多人都认为自己能做到。他们相信自己能做到,也渴望做到。但他们却不太清楚如何才能从中获利。
这是因为编程就像表演一样,有着经济学家所说的“低门槛”。你想当演员吗?太好了!站到你能找到的第一个舞台上,开始高声吟诵莎士比亚的戏剧。或许没有人会欣赏你的表演,而且几乎肯定不会付钱给你。但即使你孤零零地站着,对着虚空吟诵十四行诗,从某种基本层面上来说,你也算是在“表演”。
你想成为一名程序员吗?太好了!打开浏览器的开发工具,或者去众多在线实时编程IDE中选择一个,开始写代码吧。可能没人在乎你写的代码。任何懂这门技术的人看到你那菜鸟的逻辑都会皱眉。但即使你的代码漏洞百出,几乎无法运行,也几乎没什么用,从某种基本层面上来说,你也算是在“编程”。
就像任何门槛较低的行业一样,有很多人尝试表演和编程。但也有很多人不知道如何靠这两样东西谋生。
此外,就像任何门槛较低的行业一样,很多人声称自己是演员(和程序员)。但如果你仔细观察他们的实际活动,就会发现他们更有可能被视为服务员、调酒师或送货司机。因为这些工作能带来(一些)收入。而许多想成为演员(和程序员)的人,实际上并没有从他们所期望的职业中获得多少(甚至根本没有)的报酬。
那么,你该如何进入辉煌(且利润丰厚)的编程领域呢?嗯……你很幸运。因为我即将揭晓一切秘密之母。我将在你耳边悄悄传授神奇的公式。你准备好了吗?
编写更多代码
你明白了吗???也许你以为那一节的标题只是对某个更深层次、更广泛观点的概述。也许你心不在焉地略过了它。所以我再告诉你一个秘密:
编写更多代码。
我并非有意讽刺,也并非对人们在争取第一份有偿编程工作时所面临的种种困难充耳不闻。但我想说的是,想要跻身专业编程行列,最好的答案其实很简单,就像这句简单的咒语一样:
编写更多代码。
我知道你现在脑子里肯定在翻腾各种恼人的反驳。那就让我们来聊聊吧:
程序员与程序员之间的争论
有志程序员:我当然想写更多代码。但我找不到愿意雇佣我的人,这样我才能真正写更多代码。
我:抱歉。也许这房间的音响效果不太好。又或许我没说清楚。所以,让我说清楚。我没有告诉你要为你的下一位/第一位雇主写更多代码。我只是告诉你要多写代码。就这样。
有抱负的程序员:如果我没有先从事程序员的工作,我可能会编写什么代码?
我:如果你非要问这个问题,首先你需要对自己非常诚实,确定自己是否真的想成为一名程序员。就像舞者可以在没有百老汇演出的情况下跳舞一样,程序员也可以在没有正式雇主支付代码报酬的情况下编程。此外,如果有人告诉我他们是“舞者”,但在过去一年里根本没有跳过舞,那么我真的会怀疑他们到底算不算一名舞者。如果某人最近没有(为任何人)编写过代码,那么我真的会怀疑他们到底算不算一名程序员。
有志程序员:好的。我明白。但我的目标是成为一名有收入的程序员。我希望编程成为我的职业,而不是我的爱好。
我:是的。我想成为世界上最伟大的流行歌星。但如果我的计划是等唱片公司签下我——在我花无数时间独自磨练音乐才能之前——那我得等很久很久。
有志程序员:但我一直在磨练我的技能!我参加了编程训练营!
我:出去。现在就从我的办公室出去。
有抱负的程序员: 什么?!我做了什么???
我:好吧,也许你不必出去。我并不是想贬低你在编程营的精彩经历。但说你去过编程营,就好比说你上周末在“法律营”度过,现在准备开始打官司了。
有抱负的程序员:所以编码训练营浪费了我的时间(和/或金钱)?
我:当然不是。编程训练营是一个相对较新的创新。它们能够提供巨大的价值——无论对完全的菜鸟还是经验丰富的程序员来说都是如此。一个扎实的编程训练营可以在短时间内让你接触到大量的概念——所有这些都在一个有很多人帮助你快速学习的氛围中。但即使是世界上最棒的编程训练营,也仍然局限于你可以在几个小时或几天内获得/练习的技能。雇主需要的是那些经过(至少)数月甚至数年练习的技能。
有抱负的程序员:但我也有计算机科学学位!
我:哎呀,别让我谈计算机科学专业。
有志程序员:我花了四年时间!还花了我父母一大笔钱!现在你竟然要把这些资历扔掉?
我:完全不是。不过计算机科学学位相当于代码训练营,学习时间更长(而且,如果你在美国,费用会高得多)。它是个不错的……入门课程。它会让你接触到一些比较实用的概念,你……偶尔会在实际的编程工作中用到。但如果我是招聘经理(我经常担任招聘经理),而你唯一的资格就是你的学士学位,那么……你可能根本就不适合我。
有志程序员:这让我很郁闷。我还能做什么才能让潜在雇主注意到我呢?
我:也许你的短期记忆出了问题,所以请允许我(再次)建议:多写一些代码。
有志程序员: 唉!又要说“多写代码”了!如果我没有编程工作,我该写什么代码呢?
我:我从未见过哪个顶尖开发者会为这个问题而苦恼。事实上,我认识的大多数开发者脑子里想的“我真的很想做……”之类的业余项目比他们真正投入编程的时间还要多。生活中有太多的小问题(对“程序员”来说)迫切需要开发新的应用程序来解决这些问题——只要有人愿意花时间……
有志程序员:那我先把事情说清楚。你想让我花大把的空闲时间为个人项目写代码?那些我可能一分钱也拿不到的项目?
我:嗯,这肯定能满足核心要求:编写更多代码。
有志程序员:我有账单,有承诺。我不能就这样跑到树林里的小屋里,用我的余生去写免费项目的代码。
我:听着。没人说过这会很容易。(至少,我希望没人跟你这么说过。如果他们这么说过,你真想凌晨三点出现在他们家门口,狠狠地揍他们一顿。)而且也没人指望你一直住在纸箱里,直到有一天被人雇佣成为正式的“程序员”。当你试图闯入这个行业时,很可能你需要暂时做点别的什么工作来赚钱。就像那个想当演员却做了几年服务员一样,想当一名程序员也没什么不好——不过你的“日常工作”里还要做点别的。
有志程序员:你说得倒是轻松。你现在工作轻松,事业也稳固了。既然你已经达到了这个地位,你觉得我应该为了证明自己的价值而做无休止的“免费工作”吗?
我:你想做什么就做什么。事实上,有些人大学一毕业——或者编程训练营一毕业——就找到了很棒的编程工作。但我要告诉你,这些人之所以能找到工作,通常是因为他们展现出了“超越”课程或编程训练营作业所获得的技能。
有抱负的程序员:然后他们就能得到像你一样的选择工作吗?
我:也许吧。不过我得小心点,你该怎么定义“选择的工作”。
有抱负的编码员:你的目的是什么?
我:我不否认,我现在的薪水非常可观。可能比我胡子还没白的时候想象的还要高。而且我的年薪表面上看起来也相当丰厚。
有抱负的程序员: “表面上”??
我:对。因为你也许只看我一年的薪水就想:“哦,天哪……这就是我想要的。” 但别自欺欺人了。我现在的薪水,本质上就是我多年来无偿工作的补偿。
有抱负的程序员:等等。你之前的雇主没付你工资??他们让你免费工作??
我:不,当然不是。但几乎所有那些能给我带来高薪的技能,都是通过数百甚至数千小时的完全无偿工作获得的。大部分工作都是我自己做的,因为我在摸索新技术。更多的工作是为了我打算创办的“企业”——然后这些企业就不了了之了,我也没有(直接)得到任何报酬。例如,过去两三年来,我一直担任“React 开发者”。但在有人正式聘用我为“React 开发者”之前,我轻轻松松就花了 1000 多个小时免费为自己进行 React 开发。事实上,如果把我职业生涯中赚到的所有钱加起来,再除以我从事所有类似编程工作的总小时数,我担心我的每小时工资会相当……微薄。
有志程序员:等等……您的意思是,如果我真的想成为一名专业的(也就是有报酬的)程序员,我必须先投入无数的时间去做无偿的工作。而且,即使这样,当我付出的所有努力与我的收入相比,最终可能也只能赚到一份微薄的“时薪” ?如果您真是这样想的,那我到底为什么要从事这个职业呢?
我:如果你不得不问自己这个问题,那么你可能根本不想从事这个职业。相信我。我在整个讨论中试图表达的是,编程与其说是一项技能,不如说是知道如何改造化油器或如何剪头发。编程更像是一种思维方式。它有点像……一种强迫症。我不是每天都免费(也就是为了自己)编程的。但即使在这个领域工作了四分之一个世纪,我仍然会在很多工作日结束时“翻看”我的个人项目——继续写更多代码。免费。我控制不住自己。这真的是我的生活。你不需要有同样的心态才能成为一名成功的程序员。但如果你认为编程是一项你可以在几个周末学会的技能,然后就能找到一份收入丰厚的工作,那么……我可能有个坏消息要告诉你。我毫不怀疑,即使我已经 90 岁了,而且早已退休,我仍然会偶尔打开我的 IDE 并编写一些代码 - 即使没有人会为此付给我任何报酬。
代码之梦
谈论“在代码中做梦”的天才,这有点老套。但我要告诉你,这并非夸张,也不是某种都市传说。当我正全力攻克一个特别棘手的问题——一个我已经苦苦思索了好几天的问题——我仍然会半夜醒来。这时,我亲爱的朋友会问我:“怎么了?”我会回答:“我刚解决了。”然后我下楼走到电脑前,快速地把刚才在潜意识/梦境中想出的解决方案写出来。
你不必沉迷于代码到那种程度(可能不健康)。但如果你想真正在这个职业领域站稳脚跟,我的建议是,编程不能只是“你从早上9点到下午5点做的事情”。它必须是你充满热情的事情。它必须是你为了乐趣而做的事情。在你的空闲时间。当没有人在看的时候。
简而言之,如果你想成为一名真正厉害的程序员——那种公司会开出高薪的程序员——我知道只有一种方法可以实现。你必须坚持不懈地:
编写更多代码。
如果你这么做了。如果你有这么做的心态。如果你有这么做的动力——即使没有立即致富的承诺……你或许会发现(最终)财富终究会来。
我衷心祝愿你在编程事业上取得圆满成功。如果你找到了更轻松的“打卡上班”方法,并顺利进入这个职业领域,那么……我为你鼓掌。但对我来说,成功的“秘诀”一直很简单。我就是坚持:写作。更多。代码。
鏂囩珷鏉ユ簮锛�https://dev.to/bytebodger/one-crazy-trick-to-become-a-programmer-j8k