文档章节

如何在没有实际项目开发经验的情况下找到一份软件开发的工作

LeviDing
 LeviDing
发布于 2017/04/27 13:32
字数 2989
阅读 50
收藏 1
点赞 0
评论 0

原文:[How to Land a Development Job Without Experience](https://www.sitepoint.com/land-development-job-withou t-experience/)

作者:Paddy Sherry

译者:LeviDing

声明:转载请注明出处。

 

  许多开发人员在找工作的时候,虽然满足了对方所要求的理论技能,但是缺乏实际的开发经验,这让雇主在是否雇用你这个问题上犹豫不决。在这篇文章中,具有丰富招聘经验的 Paddy Sherry 为你提供了一些指南,来帮助你提高找到工作的体会。

此处输入图片的描述

  对于许多年轻的计算机或 IT 相关专业毕业生,在没有实际项目开发经验的情况下找到第一份全职工作可能是你在职业生涯中遇到的最大的挑战。

  当你刚毕业的时候,你很容易认为自己知道超级多德有关软件开发的知识,并且能够顺利地找到一份工作。你可能在学校的成绩很高,做了一个了不起的毕业设计,并且研究了最流行的技术和 JavaScript 库。

  然而,除非你在十几岁的时候就展现出了超凡的编程能力,并且已经与一些雇主建立了联系或者有在某公司的实习经历。否则你在找第一份工作的时候都是要花费一些时间和精力的。

 

为什么找第一份工作这么难?

  现实中的 Web 和软件开发和你在学校那种环境下所学的是完全不同的。

  可能你已经在学校和同学们做过周期长达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 上

  把你所有的代码都放到网上,让全世界都可以看到。这将会让你有更强的批判性思维和分析能力。同行对你代码的评论和提出的问题是你们开发团队来发现错误并及时修复错误来保证产品质量的重要方式。如果你早就习惯了这一点,你就会发现在进行代码审查时不会有任何问题,并且你会在商业环境中有建设性地反馈意见。

  同时,这也提供了一种来看你写的代码的方式。你解决过的问题和你做过的项目说来容易,但当一个高级工程师看了你的代码后能够在另一个层面上增加他对你开发能力的信任程度。

  你潜在的团队成员也有机会去阅读和检查你的代码,你的设计模式,和你清晰地代码提交记录。最重要的是,它表明你熟悉版本控制,软件产品的核心以及团队的建立。

 

总结

  • 毕业后在没有实际项目开发经验的情况下找到你的第一份工作是一个艰巨的任务。但这也有行之有效的方法来提高和吸引雇主的注意力。
  • 选择一个后端和前端语言,创建一个网站,然后做一个插件。多看一些博客和网站,并做一些评论,提供一些你的想法,不要害怕别人会说什么。
  • 把你所做的项目和实用的小工具等都放到 GitHub 上。
  • 记住每个人都一样,拥有等量的资源和机会。参照本文中的要点,在你有耐心的时候好好坚持下去,最终一定会得到高薪的工作机会的。

 

此处输入图片的描述

欢迎扫描上方二维码关注 公众号: LeviDing 订阅实时动态。

本文首发于我的 个人网站 LeviDing ,更多内容欢迎关注我的个人网站。

© 著作权归作者所有

共有 人打赏支持
LeviDing
粉丝 0
博文 1
码字总数 2989
作品 0
武汉
前端工程师
给所有想从事软件研发的年轻工程师的忠告与建议

点击上方“程序人生”,选择“置顶公众号” 第一时间关注程序猿(媛)身边的故事 图片来源:Fargo Season 3 一、我为什么写这篇文章: 这几天,在某个IT论坛的软件培训与认证栏目中,看到了很...

csdnsevenn
05/02
0
0
开发者大多靠自学,还需要大学学位吗?

根据Stack Overflow网站2016年开发者调查发现,有 56% 的开发人员没有计算机科学或相关领域的大学学位。开发人员最喜欢学习的方式是“自学”(至少 69%的受访者表示他们是部分自学; 而13%...

两味真火
2017/03/01
4.3K
52
编程如何入门(创世纪新篇)

万事开头难,人人 都梦想成为像比尔盖茨,乔布斯这样的编程大师,但进入软件开发领域也是很艰难的,就像一个神学院的学生不知如何祷告。当然,如果你还是一名刚刚入门的程序员,那么我相信你...

crossmix
2015/09/22
93
0
如何在编程生涯中有一个好的开端

想要进入软件开发的领域其实是很难的。当然,如果你还是一名刚刚入门的程序员,那么我相信你深刻理解没有经验或者没有太多经验想找一份工作是如何困难。如果你已经在软件开发这一行干过一段时...

oschina
2014/09/25
4.5K
37
Devops高薪看这个就够了

自从DevOps概念在市场上推出以来,其使用呈上升趋势。世界各地的企业已经张开双臂开始接受这个开放式的软件开发方法。由于在全球范围内被接受,企业提供了许多亟待填补并且有吸引力的DevOps相...

思考的犀牛
2017/11/22
0
0
十年软件测试老鸟的小小感悟

从2007年毕业以后应聘到外包公司做IBM的软件测试项目,到现在成为业内知名企业的一份子,算算 时间,还有几个月就整整十年了。有时会感慨时间飞逝这个词的含义。这十年的摸爬滚打,让我对 软...

软件测试学习分享
01/30
0
0
读完这19本经典,成为优秀架构师其实也不难(附下载链接)

数人云之前给大家分享了《成为“伟大”程序员需要学会的9种“姿势”》对于想转型成为架构师的童鞋们来说最急缺的是什么呢?当然是经验和实践案例,数人云今天精挑细选了19本架构师必读经典,...

数人云
2017/11/06
0
0
程序员面试什么最重要?

程序员面试一直是社区乐于讨论的热门话题。我自己从06年实习以来,先后经历了4家软件公司,全部是外企,其中有世界500强的通信企业,有从事期权期货交易的欧洲中等规模的金融公司,也有为大型...

modernizr
2014/05/30
1K
16
每个优秀程序员必须具备的技术技能

版权声明:本文为北京尚学堂原创文章,未经允许不得转载。 也许你可以成为一名优秀的管理人员或指导人员,作为程序员如果你不能编写代码和开发软件,但不会是软件开发人员。 如果你正在阅读这...

SXTkaifa
2016/11/01
103
0
每个优秀程序员必须具备的技能

版权声明:本文为北京尚学堂原创文章,未经允许不得转载。 也许你可以成为一名优秀的管理人员或指导人员,作为程序员如果你不能编写代码和开发软件,但不会是软件开发人员。 如果你正在阅读这...

SXTkaifa
2016/10/31
19
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

大数据教程(2.13):keepalived+nginx(多主多活)高可用集群搭建教程【自动化脚本】

上一章节博主为大家介绍了目前大型互联网项目的keepalived+nginx(主备)高可用系统架构体系,相信大家应该看了博主的文章对keepalived/nginx技术已经有一定的了解,在本节博主将为大家分享k...

em_aaron
5分钟前
0
0
Git 2.18版本发布:支持Git协议v2,提升性能

在最新的官方 Git 客户端正式版2.18中添加了对 Git wire 协议 v2 的支持,并引入了一些性能与 UI 改进的新特性。在 Git 的核心团队成员 Brandon Williams 公开宣布这一消息前几周,Git 协议 ...

六库科技
10分钟前
0
0
Java8新特性之接口

在JDK8以前,我们定义接口类中,方法都是抽象的,并且不能存在静态方法。所有的方法命名规则基本上都是 public [返回类型] [方法名](参数params) throws [异常类型] {}。 JDK8为接口的定义带...

developlee的潇洒人生
48分钟前
0
0
aop + annotation 实现统一日志记录

aop + annotation 实现统一日志记录 在开发中,我们可能需要记录异常日志。由于异常比较分散,每个 service 方法都可能发生异常,如果我们都去做处理,会出现很多重复编码,也不好维护。这种...

长安一梦
59分钟前
2
0
将博客搬至CSDN

AHUSKY
今天
1
0
Python web框架Django学习(1)

1.Django简介 (1)Python下有许多款不同的 Web 框架。Django是重量级选手中最有代表性的一位。许多成功的网站和APP都基于Django。Django是一个开放源代码的Web应用框架,由Python写成。 (2...

十年磨一剑3344
今天
0
0
Databook-数据之书

Databook-数据之书 用于数据分析的Jupyter Notebooks。 不需购买服务器,快速开始自己的数据分析过程。 源码:https://github.com/openthings/databook 作者:openthings,https://github.co...

openthings
今天
7
0
Python PIPEs

https://www.python-course.eu/pipes.php https://www.tutorialspoint.com/python/os_pipe.htm

zungyiu
今天
1
0
gRPC学习笔记

gRPC编程流程 1. proto文件定义 proto文件用于定义需要通过gRPC生成的接口,可以理解为接口定义文档 2. 通过构建工具生成服务基类代码-Maven或Gradle 3. 服务端开发 服务端实现类须实现通过构...

OSC_fly
今天
0
0
Docker Mac (三) Dockerfile 及命令

Dockerfile 最近学习docker的时候,遇到一件怪事,关于docker镜像可能会被破坏,还不知道它会有此措施 所以需要了解构建Dockerfile的正确方法 Dockerfile是由一系列命令和参数构成的脚本,这些命...

___大侠
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部