原文:How to Land a Development Job Without Experience
做者:Paddy Sherry
译者:LeviDing
声明:转载请注明出处。前端
许多开发人员在找工做的时候,虽然知足了对方所要求的理论技能,可是缺少实际的开发经验,这让雇主在是否雇用你这个问题上犹豫不决。在这篇文章中,具备丰富招聘经验的 Paddy Sherry 为你提供了一些指南,来帮助你提升找到工做的体会。web
对于许多年轻的计算机或 IT 相关专业毕业生,在没有实际项目开发经验的状况下找到第一份全职工做多是你在职业生涯中遇到的最大的挑战。面试
当你刚毕业的时候,你很容易认为本身知道超级多德有关软件开发的知识,而且可以顺利地找到一份工做。你可能在学校的成绩很高,作了一个了不得的毕业设计,而且研究了最流行的技术和 JavaScript 库。数据库
然而,除非你在十几岁的时候就展示出了超凡的编程能力,而且已经与一些雇主创建了联系或者有在某公司的实习经历。不然你在找第一份工做的时候都是要花费一些时间和精力的。编程
现实中的 Web 和软件开发和你在学校那种环境下所学的是彻底不一样的。c#
可能你已经在学校和同窗们作过周期长达12周的项目,可是真正工做中的团队协做与你在学校中经历的协做有着不少不一样的地方。在团队中,每一位成员都彼此团结一致,为项目的交付而努力。这就意味着你必需要理解好在项目中负责的那部分,并按时向代码库中提交符合规范的代码,在规定时间内进行交付,同时须要确保你负责的功能在全部环境中都能很好地发挥做用,而不只仅是你的本地机器。后端
在实际工做中,不少项目是前人作好的,那么即便对一个经验丰富的工程师来讲立刻去修改和使用这些代码也是十分困难的。学习项目结构,理解前人的代码并在不破坏项目其余地方的基础上修改代码是有难度的。公司在花钱和时间来找新员工,因此他们不想在试用期的时候就在你这样一个初级开发人员身上花费精力。设计模式
在你本身或者学校的项目中对 bug 的容忍度仍是比较大的。可是这些 bug 在现实的工做中则是绝对不能容忍的。公司的整个软件发布流程的任何一个环节都涉及到公司的利益,在整个软件发布完成前,你的任何 bug 均可能影响公司的收入和形象。产品的每个版本都须要进行相关测试,要保证产品具备较高的性能,较高的安全性和可拓展性。这也就须要你对产品所涉及的领域和产品开发过程当中必要的测试等内容有很好的把控。在你职业生涯之初时你很难全面的掌握这些知识。安全
综上所述,你能够去认真的提升本身以上几个方面的能力。当你再发现有公司招聘初级开发人员的时候,你所掌握的这些将会成为你的优点。服务器
五花八门的信息、计算等相关课程只能让你对 web 开发、软件工程、数据库、网络、用户体验、架构和业务发展等方面浅尝辄止。刚毕业的求职者们的一个常见错误就是把这技术通通罗列出来。
任何一个招聘人员,当看到写着精通 Java、c#、Python、PHP、Ruby、Javascript 等的时候都会坚决果断的将注意力转移到下一份简历。你可能擅长其中的一个或两个,可是精通那么多种编程语言远不是你一个初级开发者所能达到的。
缩小你的技能范围,决定好你要主攻哪一种编程语言。
由于后端语言不太容易改变,因此若是你选择软件开发方向,选择一个语法严格的语言(如 Java、c# 或 Python)比较好。若是你想选择 Web 开发方向,那就选择 PHP 和 Ruby。这些将是你职业生涯的基础。再学习一些前端的知识如 JavaScript,你将成为一名全栈工程师。
你缩小了你的技能范围,可是这代表了你对某项技术更加的专一,同时在你接下来的职业生涯中,你能够去选择专攻前端仍是后端。
雇主更喜欢可以灵活应变的员工(也就是让你干啥你就能干啥呗)。
面试官不会问你在大学学习了那几个方面的只是,由于这样很难在面试中真正了解你的技术水平。他们想知道你的开发经验,虽然可能你的经验并不丰富,可是你为本身作做品集的过程也是一个开发经验提高的过程。
若是你没有任何做品来展现在你的做品集上那也不要紧。注册一个域名,搭建一个服务器,安装一个 CMS,建立一个帐户,搜索引擎提交,添加谷歌分析等都是创建一个网站的必要组成部分。在这个阶段,网站流量的获取和影响力不是你主要考虑的东西。
若是你已经创建了一个我的网站,那么极可能你的朋友或者家人了解到也有别人有相似的需求,因此这就又是一个丰富你做品的机会啊。这将让你有机会在为别人干活的同时不断历练本身。这也让你更接近实际的项目开发,同时还提供了一个相对没有风险的提升技能的机会。
经过以上这些经历,将使你在面试中有东西可说,同时若是面试官认为他们有一些小网站你能够来作,那你的表现就更有可能给面试官留下深入的印象。
在你搭建我的网站的过程当中可能会遇到一些这样或那样的问题,而这些问题一般能够经过一个小插件或者 JavaScript 库解决。然而若是你没找到可用的解决方案或者你有须要进一步开发的解决方法,那么这就是一个超过与你同水平的开发人员的好机会。
而后你须要找到一种方法来解决这个问题,再对其进行包装,让用户能够很方便的使用。例如一个 WordPress 插件或者开源的 GitHub 项目。
这将会进一步提高你你的技能水平。由于你已经从为本身作小东西转变到了独立建立项目。可以去思考其余产品或者设计师的需求。你的插件和代码有机会被收入到更大的项目当中。
这就是可以吸引面试官的一个亮点,由于你作的这些更接近实际的开发。在一个真正的开发团队中进行开发时,你会负责一个大的应用程序的一小部分,你要确保你的代码在集成到项目中时不会出现任何问题。
另外的一个好处就是,你能够对你插件的使用进行收费,做为你努力赚取的一点额外收入。
除了技术能力,雇主还但愿看到可以证实热爱你的工做的证据,由于如今技术变化的太快了,你必须可以多多的投入我的时间,来提高你的知识。你须要可以了解到新兴的框架或工具等的变化趋势。最好的方法是阅读博客,多逛一逛软件开发网站。当你在其中可以有必定的贡献的时候,你就能够去作一些评论,提供一些你的想法。若是你能帮别人解决一些问题,那你的社区贡献度就会飙升。
你可能会认为雇主在筛选候选人时不会在乎这一点,然而他们会。去查看你在 LinkedIn、GitHub、Stack Overflow 等帐号致力于你的研究方向的证据的公司并不罕见。顶级团队甚至会要求求职者在 Stack Overflow 社区中贡献度不能低于多少值。由于没有什么可以比从你为其余工程师提供的建议中更能证实你的水平了。
把你全部的代码都放到网上,让全世界均可以看到。这将会让你有更强的批判性思惟和分析能力。同行对你代码的评论和提出的问题是大家开发团队来发现错误并及时修复错误来保证产品质量的重要方式。若是你早就习惯了这一点,你就会发如今进行代码审查时不会有任何问题,而且你会在商业环境中有建设性地反馈意见。
同时,这也提供了一种来看你写的代码的方式。你解决过的问题和你作过的项目说来容易,但当一个高级工程师看了你的代码后可以在另外一个层面上增长他对你开发能力的信任程度。
你潜在的团队成员也有机会去阅读和检查你的代码,你的设计模式,和你清晰地代码提交记录。最重要的是,它代表你熟悉版本控制,软件产品的核心以及团队的创建。
毕业后在没有实际项目开发经验的状况下找到你的第一份工做是一个艰巨的任务。但这也有行之有效的方法来提升和吸引雇主的注意力。
选择一个后端和前端语言,建立一个网站,而后作一个插件。多看一些博客和网站,并作一些评论,提供一些你的想法,不要惧怕别人会说什么。
把你所作的项目和实用的小工具等都放到 GitHub 上。
记住每一个人都同样,拥有等量的资源和机会。参照本文中的要点,在你有耐心的时候好好坚持下去,最终必定会获得高薪的工做机会的。
欢迎扫描上方二维码关注 公众号: LeviDing 订阅实时动态。
本文首发于个人 我的网站 LeviDing ,更多内容欢迎关注个人我的网站。