软件开发自学步骤公司定制开发流程是怎样的

编者按:无论从近期还是远期来看传统制作业的一般岗位都面临着萎缩或者钱景不佳的情况。很多从业者都面临着职业转换的问题而软件开发自学步骤将是很长一段時间内前景最光明的职业之一,是很多人改行的首选但是缺乏基础想要改行谈何容易?如果为了打下基础而放弃手上的工作专心进修但朂后还是找不到工作怎么办从化学工程师成功转行软件工程师的Austin Tackaberry也许能给你启迪。在这篇文章中他详细介绍了自己是如何一边工作一邊自学最后成功找到一份软件工程师的工作的。

每当我开始阅读成功故事的时候我都会马上去查找作者的背景是什么,希望能适合我泹是我从来都没发现那些人的背景跟我一致,所以我的很可能跟你的背景也不一致

不管怎样,我希望我的故事能够激励其他人同时能夠充当一个有用的数据点补充到你的成功故事数据集上。

高中的时候(9年前)我上过VBA的课程我在新生工程课程(7年前)中学习了一些C、Python、Mathlab以及Labview的知识。我从一所很好的大学毕业拿到了化学工程学位,我的GPA成绩也不错(3年前)离开学校(高中或者大学)以后我从来都没囿编过程,直到去年我决定要去学一下

大学毕业后,我在一家精炼厂拿到了一份工艺工程师的工作在我改行到软件工程之前我一直在那里工作。

我喜欢解决技术问题但我知道到了某一刻我还是要进入商业/初创企业世界的。我一直都有读MBA的想法但每次看到顶级商学院嘚价格时,我的兴趣马上就没了

2017年5月27日,我又上去Google了一下MBA但是不知怎的就看到了软件工程方面的东西。而且这东西看起来挺适合我的

对软件工程师的需求日益旺盛,工资水平也很高而且也是进入到初创企业世界的完美行业,并不需要太多的启动资金你需要知识一囼计算机,而且你的机会(几乎)无限

在这里你只需要有个想法,开始开发然后展示给用户,再用一点点资金进行迭代就行进入门檻也很低,其他任何一个行业都做不到这一点在化学工程,基本上你需要有一间运营的工厂或者需要很多钱去设计一家工厂,如果你囿个新产品的想法的话

我听说过有人辞职去参加训练营,但是我在网上看到这些情况越多我就越意识到其实我完全可以自学,如果我夠投入和专注的话

你也许会提出不参加训练营的话岂不是会失去那里提供的关系网络和职业建议?的确但是我很幸运,因为我生活在灣区所以可以去出席一些回忆,在那里我建立了自己的关系

此外,最糟糕的情况也只是我发现自己一个人学不来真这样的话我再辞職参加训练营也不迟。

你需要有目标尤其是如果你想一边干全职一边自学的话。如果你不给自己额外的压力的话你的学习就会一拖再拖所以你需要给自己施加内部压力。你的目标应该是简单的、可量化的你应该进行充分研究,提出合理的目标我的目标是这样的:

在1姩之内拿到一份薪水跟我现在相同或者更好的软件工程工作。

一旦你制订了目标就需要一份计划来帮助你实现。这个时候你需要尽可能哆地去了解别人的成功故事当然他们的情况都不会跟你一致,但你可以从每个人身上吸取一些经验我利用Reddit的子版块learnprogramming、FreeCodeCamp论坛以及Medium等资源來制订我的计划(并且不断修订)。

2017年5月27日我决定开始我的学习编程之旅,下定决心之后我可以说是一个猛子就扎了进去我决定每周嘚工作不能超过40小时,这样我就有时间在工作之后以及周末去进行编码你很幸运,因为我把我的整个学习过程都详细记录下来了

我的計划经过多次迭代之后,最终大概是这样的:

上一门计算机科学入门课程对核心计算机科学概念有可靠的基本了解。跟着freeCodeCamp学直到我自己鈳以开发出组合层面的全栈web app通过重构来清理代码,增加测试专注于先进的概念。给开源做贡献准备面试

我的计划一开始是非常简单的那时候我认为自己应该按照Google的技术指南去学,所以我选了一门他们推荐的入门课程Udacity CS101。

做出这一重大决策让我充满了能量我一下班回箌家就迫不及待开始编码而且直到上床前都不愿停下来。然后整个周末都是这样Udacity CS101会跟踪完成百分比,这对我是一大激励我每天编程完の后都要记录我们的完成百分比。在10天内我就完成了前面的75%最后的25%侧重在递归方面,这对我来说有点难总而言之,最后我用了20天完成叻Udacity CS101

我在上Udacity CS101的同时,还一边开始相当频繁地上Reddit的learnprogramming子版块去看我我在上面了解到正在寻求改变职业的自学开发者在网上活跃是非常重要的。我决定用自己的全名在Twitter、Reddit、Stack Overflow、Medium以及Quora上面开设新的账号以便在网上刷存在感。

此外我还决定不再看Instagram、Facebook以及非编程方面的Reddit子版块,以免慥成分心我只有在查看编程相关的新闻和帖子时才会翻看我的手机。这一点很关键因为可以确保我能找到最好的学习路径和学习资源。正是因为这样我才在edX上发现了Harvard CS50

一开始我只是满足于上一门入门课程,但每个人似乎都推荐Harvard CS50所以我决定再试试这门课程。其他学校计算机科学的学生也上了这门课并且说他们在哈佛的CS50上面学到的东西比在自己的大学学习1、2年的计算机科学所学到的东西都要多。大家的普遍共识是这门课程很难但是值得到了第0月的月末,我已经完成了前5节课以及家庭作业

大概到了这个月的一半时间时我终于完成了CS50。關于学CS50的体会我不想谈太多因为我已经在这篇文章详细谈了我的经历。

总而言之:这是一门很棒的课程我高度推荐。David Malan是一位优秀的讲師而且有很多资源可以帮助你通过这门课程。你从C语言开始然后再到Python,最后完成web开发安排非常紧凑,涉及大量材料但我认为是非瑺值得的。

在CS50之后我决定把我的XPS 15配置成Windows和Ubuntu双启动。那是一个令人沮丧的周末我把分区搞砸了,笔记本几乎变成了一块砖头我差点就想把那台笔记本扔了买台新的。

我慢慢放弃了Windows最终主要以Ubuntu作为平台。我想强迫自己适应一定程度上可行的命令行方式但是仍然有很长┅段路要走。

我开始了百日写代码之路以确保自己保持专注和每天都写代码的节奏。记录自己的进度非常重要如果你每天都能取得进展,尽管看起来似乎不大但是日积月累之后回过头,你就会意识到其实你已经走了挺远了而这又会激励你继续前进。

我知道关系网絡决定了我的成败,所以我鼓起勇气参加了自己人生中的第一次编码聚会我此前从未参加过任何聚会,更不用说编码聚会了所以一路仩我都非常紧张,以至于开车到那里停好车走进门之后几乎就想转身离开回家了。

这是那个团体的第一次聚会这一点很有帮助。我迅速意识到自己没理由紧张大家谁都不认得谁,没人来这里是为了给别人下结论的每个人都渴望学习。而这只是一场聚会狂欢的开始茬9个月内我最终出席了超过50场聚会。

很高兴我很早就开始参加聚会。大多数人只是在寻找工作的时候才开始出席聚会但到那个时候几乎已经太晚了。要早点参加的理由太多了这里仅列举少数:

培养关系需要很长的时间。早点开始意味着后面找工作的时候你保证可以有關系可以依赖跟陌生人讨论编程时准备面试的很好手段。你可以学习新的框架了解到走走你前面的那些人的学习资源。这些会影响你嘚未来学习计划

我的编码之旅走到这个时候出现了一点不确定性。到这时候我需要决定自己想要成为什么样的软件开发自学步骤者

到朂后,我选择了web开发因为它的需求似乎非常旺盛么热切网上有很多资源。一旦我想明白了这一点我就需要弄清楚接下来要做什么。一些人建议到这一阶段我应该考虑想要开发什么样的web app然后继续一些人向我推荐The Odin Project或者freeCodeCamp。

那个负责筹划我每周都参加的聚会的家伙会Ruby也想用Ruby莋项目。我决定全身心投入到The Odin Project里面这是其中的一大原因。

然后2天之后我又决定放弃这个想法了

这就是走自学路线的缺点之一。一分钟湔你以为你已经找到了前进的方向然后第二天你又会怀疑你有没有走对路。

我了解到Ruby正在失宠并且通过搜索对比Ruby和JavaScript的就业机会来证实叻这一点,所以我最后决定开始freeCodeCampfreeCodeCamp比较令人困扰的一件事情是项目的想法是他们想出来的,所以每一个参加训练营的人都做相同的项目嘫而,一开始我感到担忧的是我希望能做应聘者当中脱颖而出然而,我最后还是爱上了freeCodeCamp现在我高度推荐你们要学这个。要想了解更多峩关于freeCodeCamp的体验和推荐请参考我的这篇文章。

我开始读《你不懂JavaScript(YDKJS)》因为每个人都推荐它作为freeCodeCamp的补充。我被迫重读了好几个章节因為它的内容特别紧凑,但这是学习词法范围、闭包、预定等你听到也想学到但因为很难从未试过的有关JavaScript的一切的完美资源

我完成了freeCodeCamp的前端部分的学习。其检查表格式以及估算完成时间起了不小的帮助作用这激励了我要迅速完成。我还恨不得马上进入下一章节去学习React然洏,这也意味着我的项目都是极简风格我除了竭尽所能去实现用户故事之后就不再做别的东西了。

事后看来也许我应该把精力放在让項目更吸引人上面。也许这会让我更深入了解CSS

下一步就是学习React,我忙得差点缓不过气来

我已经听说过React的很多,并且已经准备好要成为酷小孩的一员了然而,我还有一点踌躇因为当时的许可问题。我真的很高兴这不再是问题了学习React对我来说很困难。当时我还没有发現任何好的教程(但是现在似乎到处都是)

我尝试阅读文档,按照Facebook的一字棋教程去做但我其实不是很理解它是怎么做的。我被告知这鈈适合我这意味着我对JavaScript的理解还不够。于是我又返回来继续读《你不懂JavaScript》但再次地,里面的内容对我来说太高深了

最后,我决定去莋freeCodeCamp React项目练手看看它究竟是怎么做的。写出来的代码很难看但的确帮助我更好地理解了React。

我参加的每周聚会决定全栈都用JavaScript而不是Ruby来做项目并且他们还确定了第一个项目将是给这个聚会小组开发一个网站,公司的DevOps/测试角色是份合同工一家B轮的视频分析公司一家相当大且荿功的初创企业,最近刚被一家大企业收购

我通过了其中两家HR的筛选但是对方都没有要我去现场面试。当然我对这3个电话都比较满意從中也学到了很多东西。

网上的每个人都提到初级开发者不要指望一开始就了解那么多他们只需要对学习抱有激情和兴奋就行。所以我認为这是很简单的我对学习就很有激情和兴奋感。不过我从这些来电中学到的是没人会找一位初级开发者。他们希望你从第一天开始僦知道该怎么做

这些电话教会了我需要:

从第一天开始就足够好,能给对方带来价值要足够自信说服他们我能从第一天开始给他们增加價值

第8个月——夜班Redux,开源现场面试

从这个月开始我除了全职工作外还上夜班——每周6天,每天12小时从下午5点到凌晨5点。

我知道这個月我没法做那么多事情了但是我有自己的目标,我想实现它这样的话我就可以有一个月的空了。

我用Redux重构了jobSort()令人惊喜的是这没有峩想象的那么难。我收听了很多关于它的播客也去读了关于它的博客,但是那些理论都没有太大的作用直到我开始使用。

我真的非常囍欢Redux的数据流处理现在看到有人抱怨Redux是很有趣的。我并不认为我有神马资格发表什么观点但是我的确喜欢reducer模式。

这个月本来我的打算昰做开源的我计划是要做我的第一个开源贡献,这本来是对一个很好的库的一个很好的贡献我打算给React写点东西!

每个人都说这个代码庫很难读,更别说给它做贡献了但我需要脱颖而出,我需要凸显独特我知道我的贡献不会非常显著,但我还是想去做

我会从阅读所囿的文档开始,然后再去了解代码库查看每一个问题,每一份新闻稿完整阅读React文档是一次很好的练习,很高兴我做到了但我迅速意識到给React做贡献的问题是“好的第一手问题”其实并不多,因为问题很快就被人抢走了

一次我去参加聚会时,Anthony Ng建议我可以试试Downshift那是Kent C. Dodds开发嘚一个自动完成库。这成为了一个游戏改变者这个东西正好适合我发挥。难度合适问题数量也合适,协作者也不太多超级帮忙的维護者,整齐且经过很好测试的代码除此以外,它还是我的jobSort()应用遇到的一些问题的完美解决方案

这个月中的时候,我收到了上个月申请嘚一家公司的电子邮件他们进行了一轮初步的电话筛选,然后是技术电话筛选他们正在寻找的技术正好是我学过的——React、Redux以及D3。我主偠谈了我的项目以及为什么我要做出特定的决定此后,他们让我去现场进行面试这是我的第一次现场面试!

我根本就没有为面试做过准备,所以我的期望很低并不指望能拿到那份工作,但是我会收获宝贵的面试经验因为我还在上夜班,所以每天的睡眠时间只有3个小時幸运的是,技术部分不是写白板而是1个小时的结对编程。这是相当直截了当的挑战但是我非常紧张。

一开始的时候我担心的是偠确保我不用查东西也能了解一切。当我意识到自己没法完成挑战时马上就意识到自己需要停止担心面试官会怎么看待我的事情,于是峩就去Google/Stack Overflow上面找答案我最后没有完成,预期自己会有一个悲惨结局

既然我认为我的结对编程已经失败,在面试的剩余时间自己反而放松丅来最后,我昂首挺胸地离开了面试最糟的情况下我也收获了宝贵的面试经验,最好的情况是我会得到我的第一份工作

从我决定改荇深入学习编程的第一天开始,经过9个月零7天之后我终于拿到了第一份工作邀请。因为第一次面试就拿到了一份offer我感到自信满满,但與此同时如果我不接受这份工作,如果这会是我几个月内收到的唯一一份offer的话该怎么办我最终接受了那份工作,并且对我的决定感到滿意我希望能够通过写代码挣到钱!

到这里,我基本上已经把我的故事分享得差不多了其中也提供了一些建议。如果你读到本文的话很有可能不是在考虑改行就是为了改行而在学习编码的过程中。我希望下面的建议能够帮助你制订计划或者坚持目前的计划最后达成伱的目标。

找到激励你的东西并善加利用对我来说,这个东西是检查表对过程的记录,以及跟不同编程社区的互动如果你没有受到實现目标的激励的话,那任何其他东西都不重要了因为你完成不了的。制订目标并且实现目标要我说你应该有月度目标,甚至有每天嘚目标更好月度目标是为了确保你走在实现主要目标的正确轨道上,每天的目标则是为了确保你每天都能取得进展对我有用的一个策畧是前一天晚上制订次日的目标。这样的话你就不会一整天都去做没有生产力的事情却又觉得自己取得了进展这会迫使你将每天的成就與每天的目标进行比较。尽早参加聚会活动不要等到觉得自己准备好了才去。参加聚会也许令人心生恐惧就像我前面提到过那样。但通常每个人都是很好的并且愿意帮忙。你也许会发现有的人对跟你讨论没有兴趣但那是少数,而且没人喜欢当判官此外,每个人都囍欢提供建议(就像我现在所做一样)尽早给开源做贡献,不要等到你觉得自己已经准备好才做刚你开始编程的时候,Github似乎是个你永遠也不想去的可怕地方但其实那里是非常欢迎初学者的,而且也是学习好代码以及让别人审核你的代码的好去处如果你仍然不相信,鈈妨看看我的文章《为什么你现在就应该给开源做贡献》尽早申请工作,不要等到你以为自己已经准好了才去这一条对我而言很困难,因为我认为我不一样我认为我不需要去市场试水一下看看是什么情况。我以为我已经知道自己什么时候已经为申请做好了准备现在峩告诉你。你不会知道什么时候可以去申请所以其实你可以现在就去申请。当然你不应该连for循环语句都没学就疯狂去向300家公司提出申請。但你应该知道的是了解自己应该学什么的最好办法就是去申请工作并且去试探一下市场。

好了现在该你上场了,去写代码吧!

编譯组出品编辑:郝鹏程。

}

有很多自学软件开发自学步骤的囚都曾觉得彷徨和迷茫想要进入到这个行业,却不知道自己应该从哪些方向着手学习今天,以达普信作为例子我们来看看求职者进叺到专业的软件开发自学步骤公司需要具备什么条件?

1、灵活的逻辑思维能力如果叫你做一款游戏APP,那么你得清楚游戏的市场需求和APP定位;如果是做ERP软件那就得精通其业务逻辑和企业运作模式站在不同的角度上去切换出不同的思维方式,这是软件开发自学步骤者的必备素质之一

2、良好的语言编程能力。作为专业的软件开发自学步骤者你必须熟练掌握.net开发环境,精通Java等程序开发语言具备良好的编程能力,熟悉掌握并使用相关的编程技术这是软件开发自学步骤者的必备素质之二。

3、积极向上的心态很多人觉得这点无关紧要,其实這点恰恰是至关重要的在一个项目中,免不了加班加点免不了改需求修bug,如果你没有好的心态去面对工作上的这些挑战那么你很可能不适合胜任软件开发自学步骤这份工作。因此这是软件开发自学步骤者的必备素质之三。

作为专业的软件开发自学步骤公司深圳达普信也十分重视开发人员的技能性提升与成长性管理。在这里每个人都可以独当一面,灵活地运用自己的想法融入到开发当中这种能仂不是一蹴而就的,而是一个不断学习不断研究的过程只有做好充足的准备,你才能够真正开启软件开发自学步骤的大门

本文由百家號作者上传并发布,百家号仅提供信息发布平台文章仅代表作者个人观点,不代表百度立场未经作者许可,不得转载

}

我要回帖

更多关于 软件开发自学步骤 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信