来源:https://www.oschina.net/translate/how-to-go-from-hobbyist-to-professional-developer
几年前,我交替干着园艺事情和餐饮的事情。那时候我刚离开大学,还不知道我这生平到底该干什么。
我有很多想法,但是没有方向。在那段韶光里,我开始自学编程。最初是由于喜好,我认为编程是件很酷的事情,可以只动动脑筋写写代码就创造出各种事物。

然后我开始思考人生,认为编程可能成为我的生活。
一开始我并没有这种想法。我没有钱来支付真正的教诲。由于没有钱,我已经从大学退学了,如果我进入打算机科学领域,就必须重新开始。我离开学校6年了,还有超过 $50,000 的债务,以是不会有这种想法。
然后我开始思考,我可以自学 Web 开拓并达到可以演习的程度。
我最初的操持是到镇上的几家公司自荐,并问他们是否愿融会见我。我想一边在学校学习一边和他们一起事情,这样我就有钱进学校同时还能得到一些履历。
因此我负责的对待 Web 开拓这件事情。
我开始建立一个真正的文件袋并把自己的技能记录下来,而不是凌乱无章的干事。
我开始生动在像 Stack Overflow 这样的地方。
我在 Github 上建立了几个实际的运用,虽然并无过人之处,但至少可以表明我会编程。
一家公司不接管我兼职事情。他们并没有说欢迎我在得到学位之后回来,而是直接供应了一份6个月试用期的全职的低级程序员的事情。
我欣喜若狂。事实证明我一旦负责起来有目的的进行开拓,能自学不少东西。
我可以回答他们的问题,我可以给他们讲解自己创建的低级运用,我还可以阐明我的项目是如何进行的。
我在那家公司待了两年半,然后在我居住的城市成为一名真正的 Web 开拓者。
以学徒的身份核阅自己
让我转变为专业开拓者,有很主要的一个部分,便是在之前的公司作为学徒的时候,竭尽所能地学习。
在公司的事情中所学的关于现实的知识是无价的。如何与客户、同事并在一定的内部约束下一起事情,这些都是基本要素。而这些只能在一定的领域中学习。
现在的我可能比刚开始事情的时候知道得更多,但我不会停滞以学徒的身份核阅自己。要想成为一个伟大的开拓者,就要有持续学习的希望。当我们看到自己节制了某项技能,那一刻开始我们(关于这项技能)的发展就停滞了。
海明威说得好:
我们都是某项手艺的学徒,没人会成为大师。
他说的是写作,但同样适用于开拓。
自学和在公司事情的结合让我学到很多(我乃至在写书)。我理解 Web 开拓实践,知道如何从业余到专业。这是一条任何人都可以走的路,不管你是否有韶光,也不管你能力如何。
举个例子,我曾一次做了两份事情 —— 个中一个须要我凌晨4点起床驾驶叉车。
作为一个劳碌的成年人,学习编码须要决心,动力以及顽强的坚持。
从业余爱好者过渡到专业开拓者
下面是一个你可以参考的过程。每个人的发展轨迹都会有所不同,但是你可以采纳一些步骤来帮助你更快地走上精确的道路。
1
相信自己可以做到
每个人都可以自学成为开拓者。千万不要认为自学是只有某种类型的人才能做到的,虽然在某种意义上可能这也是对的。你须要自我驱动,勉励自己,而不是让这种想法成为付费学习的动机。
社会上很多人会认为有些人生来就有某些特质,而别人没有。这对发展是不利的,也是造成许多人对生活感到不满的缘故原由之一。
如果你一贯以为你要么“拥有”,要么“没有”,就很随意马虎沮丧。
任何人都可以学会自我勉励,自学编程。或许是开始一个成功的业务,亦或许是实现长期目标。这和你的出生无关,关乎到的是你的毅力。
如果你能把自己放低一点,坚守住最困难的时候,你可以做到任何你想做的事情。
当然,所有的事情都存在运气的成分。例如,我主动联系了一个网页开拓机构,很幸运,他们恰好在那个时候正在探求一个开拓者,而我恰好知足了他们的需求,我很幸运地得到了这份事情。但是如果我没有对自己的发展方向做出决定,那我绝对不会有这份幸运。
运气确实是一个成分,但是如果你不坚持在某件事情上做到很好,运气可能永久不会找到你。
2
持续专注于你的技能
我最大的缺陷便是随意马虎感到无聊和分心,总想跳入下一个项目。
听起来彷佛很自由,能够在任意项目之间弹跳以适应当天的心情,但...
这是一个陷阱!
请记住:
成功成为专业开拓职员的紧张任务是 commit 。持续坚持 commit,直到你完备节制。这也适用于所有事情。
人们每每强调选择利用哪个框架。但更主要的实在是挑选一个,并坚持下去。等你完备节制了往后,可以转移和学习新的措辞和框架。
此外,主要的是在开拓过程中得到的办理问题的技能,以及像真正的开拓职员一样思考的能力。
我自学的是 Laravel 编程,雇用我的公司利用的是 CakePHP 。但没紧要,他们知道我有切换框架所需的技能和技能。
选择一个方向,盯着它,不管是什么,肃清被别的东西分心的可能性。这很不随意马虎,但一旦你学会忽略分心,你会更享受事情。
人们常常随意马虎不愉快,由于他们不断再探求完美的职业生涯。但激情每每来自于你对技能那份不可阻挡的希望。一旦保持了这种心态,你作为开拓职员的能力将会得到升华。
3
立即采纳行动
很多充满激情的开拓职员可能会陷入阅读陷阱,而不采纳行动。
教程和书本是非常适宜学习根本知识,问题是它们也对开拓者贯注灌注了一些信心上的错觉。
你有没有在看完一本编程书后,去自己构建一些东西只是为了验证自己到底知不知道如何去做?如果有,那你肯定明白我在说什么。
这个办理方案很大略,但不随意马虎。
随便做一些什么。做一个办理自己生活中碰着的问题的运用程序,亦或者是办理你身边的人的问题。
做点什么,并把它放出去。让它开源并放在 GitHub 上。你不是为别人做的,而是为了你自己,以是不用担心别人的见地。
刚开始你的代码肯定是丑陋的。我回顾了几个月前写的一些代码,自己看到都想吐。但是,如果没有构建这些东西,就无法学习开拓。书是很棒,我也很痴迷想去尽可能的阅读更多,但你必须运用这些知识。
在这过程中你会碰着问题,你会去想办法办理。那很好,这段韶光里我们将真正学到更多东西。
4
建立你的在线形象
一旦你开始去构建一些东西,你将须要建立一个在线的形象。你的 GitHub 帐户将是一个好的开始,这是一个能够安置你正在开展的项目并与天下分享的舞台。
但是如果你想比这更进一步,我建议你建立自己的 portfolio 网站。
这个网站可以做这些事情:
作为公共场所把你的能力展示给潜在的店主一个你可以展示你的事情成果的地方作为你的平台末了一个非常主要。一旦你开始构建一些东西,你该当立时开始写下来,分享你正在做的事情,并分享给别人你所知道的统统。
这是给潜在店主展示的最好的方法之一,见告他们你是谁,你能做什么。这也是一个让你的名字展示在那里的办法,也为自己建立了一个平台。终极可以带来更好的就业机会和通过写书或自由职业者来得到更多收入的可能性。
此外,你的网站该当供应非常详细的目的。
大多数人找事情只是创建在线简历,但你可以做到更多。你的详细目标(职业方向)是什么?那你的网站就该当环绕该目标进行设计和创建。如果你想要在某个项目或某个框架上事情,请把它也放在你的网站上。
我建议你的网站要有 4 大核心区域:
1. 主页
主页是网站的入口。它该当供应一个关于你是谁和你在做什么的一个很大略的概述。并且该当勾引人们浏览与他们最干系的地方。
例如,你可以有两个紧张按钮。一个勾引用户到你写作的部分理解更多关于网页开拓的信息,另一个勾引至雇用页面,如果有人有兴趣招聘你。
2. 写作
放你的博客和教程的地方。尽可能地在这里多写,不症结怕分享。
3. 关于
详细先容你是谁,你在做什么,而不是评论辩论你的个人生活,评论辩论什么导致你进行网络开拓,你的旅程到目前为止,以及你想去哪里。可以提及一些你最喜好的项目并链接到它们。
4. 雇佣我
你的网站的主要组成部分,如果别人有兴趣招聘你去做开拓,那么这里便是他们要去的地方。
确保在推销自己和老实之间找到适当的平衡。这个页面和“关于”的页面之间可能会有一些重叠,但是这个页面将更详细地解释你的技能。
该页面也该当有联系办法,以便人们可以联系到你。
5
开始分享你所知道的统统
Nathan Barry 曾讲述了 CSS Tricks 创始人 Chris Coyier 的故事。
在该网站刚开始建立时, Chris 就公开分享了他正在学习的东西,以便其他人可以跟进。现在它已经成为了最大的 Web 开拓网站之一。
我想说的是,你不必等到自己成为天下上最伟大的专家,才开始写作和传授教化。
在网络商业天下中,有一种说法,每个人相对付别人都是一个专家。
令我困扰的是“专家”一词。教导你所知道的事情并不会有什么问题,如果对别人有代价,乃至可以出售这些信息。
但是自称一个专家可能会把事情弄得太过了。以是当你分享你的内容时,还不如老实一点。
我更乐意在公开场合学习。有很多人刚开始都只是一个"大众年夜众学习者。他们正在学习一种手艺,并记录他们正在学习的东西。随着学习到的东西越来越多,你就可以建立自己的内容,并在此过程中快速发展。随着韶光的推移,你所在的行业中的其他人将开始将你为威信人士。
6
奔着办理问题的目的去构建
成为专业开拓职员最主要的方面之一便是完成一个详细目标的所有事情。
Web 开拓商店真正的商业代价不是编码,而是他们正在办理的问题。编码只是他们用来实现这一点的首选工具。
阅读任何营销或文案,他们会见告你发卖的产品的好处,而不是功能。
Web 开拓职员该当推销的是运用程序,以显示它们能如何有效地办理客户的问题,然后用具体的数据验证这些不雅观点。客户常日对这种方法的反应更为敏感,而不是开拓者所谓的那些尖端技能。
如果你能够展示你的编程技能,以及你能够以办理问题和制订更故意义的运用等详细意图来编写代码,对付店主来说,你会更具吸引力。
以是,当你与潜在的店主或客户沟通,以及在为你的网站撰写内容时,请考虑上风与功能。
当然,你也该当提到你的编码闇练程度,虽然大多数人都花韶光在这上面。简要先容一下让潜在的店主知道你能做什么。
7
保持学徒心态
你以为节制所有东西的那一天便是你停滞学习的那一天。
采纳终生学徒的心态。总是有更多知识去学习,总是更多的地方须要改进。
这在你职业生涯的早期阶段尤为主要。如果你是兼职或演习,或担当低级开拓职员,那么你须要尽可能立即进入学徒心态并尽快发展。
你该当真的要这样做,纵然你拥有一位实际的“导师”。
在 Jeff Goins 的 “The Art of Work” 一书中,他谈到了21世纪的师徒关系模式。
回到中世纪,这种关系非常正式。师傅将会接管学徒多年,学徒们将逐步开始节制师傅的手艺,直到他们达到了大师的头衔,到此他们就可以收徒了。
这种关系已然发生了变革,但把自己当做学徒已然很主要。紧张的差异是,现在你必须密切把稳潜在的导师和学习机会,并且你的人活门程中将会有很多导师。
在网络开拓的天下中,我们不断地在互联网上浏览,以是这可以有多种形式。
书本、教程、课程、论坛和其他形式的学习都是有代价的。然而,我认为,最有代价的学徒形式来自于目前向处于你希望的职位的人的学习。
这便是为什么渴望和乐意学习是如此主要的缘故原由。得到你的第一份开拓事情并不是旅程的结束,而是开始。
那便是你真正开始学习和以指数级拓展你的知识的时候。
8
学会协作
将编码作为爱好还是以编码为生的最大差异之一是学会与人互助。
在全体职业生涯中,你须要与同行、老板、同事、客户、互助伙伴公司以及各种人物进行交互和协作。
学会如何有效地与别人协作是很主要的。
在 Web 开拓领域,沟通是关键。当一家公司进来并见告你他们想要什么,但你并不是很清楚这详细是什么样的样子的时候,这可能在之后会引起很多问题和困扰。
同样,如果你无法与你互助的人沟通,你事情也将非常痛楚,你将无法完成事情。
当你还在学习阶段时,有很多好办法可以做到这一点。
当你开始教授你所知道的统统时,这种情形将会来临。人们会与你互动,有时是负面的,你将学会如何处理这些情形。
我也强烈建议为开源项目做贡献。这样可以让你理解在一个项目上协作的办法,个中不同的人可能会对处理问题的最佳办法有不同的想法。
对开源项目做贡献可能是令人生畏的,但它可能为你的奇迹发展做失事业。
走出去并以此为生
成为一名 Web 开拓职员很难。这意味着永无止境地学习温柔应新技能的生活。这是职业生涯中不可或缺的技能之一,商务和沟通技巧也是。
这是一条非常值得的道路。你可以做到这些:办理人们的问题,使他们的生活更轻松,同时过上梦幻般的生活。
这里有无数的资源可以帮助您学习编码,个中很多都是完备免费的,但彷佛缺少资源来帮助人们实现到专业开拓职员的转变。
我希望这本简短的指南为您供应一个良好的路线图,让您开始成为专业的开拓职员。
请记住,除非你采纳行动,否则不会发生任何改变。建立一个大略的投资组合网站,通过电子邮件发送给几个潜在的店主,在媒介上写一些帖子。仅仅是开始做一些事情。
你考试测验的次数越多,你做的就越多,你会越快从业余水平进阶到专业水平。