我们已经准备好了,你呢?

2024我们与您携手共赢,助您领跑移动端创新增长!

  找开发工作都要求有经验的,怎么破?

  记得我初到京城开始找工作时,最痛苦的莫过于,看到所有的软件开发岗位都要求有工作经验。甚至我在有一次失败的面试之后,对着面试官绝望地问道:“想找工作要有经验,可是不工作哪来的经验,您说我应该怎么办?”

  当时那位面试官只是推了推鼻梁上的眼镜,沉默了一会儿,有些同情地说:“回去等我们通知吧,再多学习学习。”

  时至今日,我已然明白找不着工作这个问题,并不是出在公司的招聘要求上,而是出在了我自己当时的认知水平上。因为公司开门做生意,要在激烈的市场竞争中生存下来,肯定是希望以有限的成本找到最合适的人才。

  而自己却抱着“进了公司,我肯定能学会怎么工作”这样的想法,错误地把责任归咎于公司的招聘政策,这显然是本末倒置的。

  当然,我后来也找到了软件开发的工作,开启了职业生涯。只是绕了不少弯路,回过头看,有些事情我懂得更早的话,或许命运会有所不同。

  因此,我打算结合自己的体会,说一说一位零经验素人,如何为自己创造经验,找到一份软件开发的工作。

  学会一套技术体系

  在这里我想明确一个前提,那就是求职者是零经验,而不是零知识。假如说求职者从来没有接触过计算机的理论知识,只是羡慕软件开发者的光环,那本文是不适合的。求职者还是应该花时间,先将基础理论学好,并掌握一门编程语言。

  我想大多数有志于软件开发的求职者,一定都已经掌握了一门编程语言。求职者已经可以用编程语言解决一些特定的数学或者算法问题。但对于想找一份工作来说,这还是远远不够的。

  还要再学习什么?应该学会一套技术体系,解决一类问题。

  记得我那会儿为了找工作,把一本厚厚的java语言程序设计给啃了下来,里面的知识点也都认真上机操作了。但这些知识储备仅够用于笔试,在面试环节,人家问的多是体系化的内容。

  例如什么是MVC架构、使用过哪些框架、数据如何存储,缓存如何设计等。坦白说,第一次被问的懵圈还情有可原,但如果第三次、第四次还张口结舌,答非所问,那就不应该了。

  那么,没有经验,我们就要给自己创造出经验了。一个很好的办法就是实践“做中学”的理念。微软的资深技术人邹欣老师,他多年以来一直坚持利用自己的业余时间在高校中传播、讲授“做中学”,并著有《构建之法》一书,系统地论述如何实践“做中学”,这本书是一个相当好的参考。

  临渊羡鱼,不如退而结网。求职者要去实践开发一个完整的系统,功能简单一些都没问题,“小而全”就可以。之所以要强调完整性,是因为这样的工程实践不是做一个课堂作业,而是要可用。

  在工程中要从系统全局来思考问题,这样才会将目光放在如何运用一套技术体系来解决问题。做这样的实践时,求职者不必一个人埋头苦干,可以找同学好友一起研究琢磨。如果能找到有经验的专业人士给予指导,则是效果最好的。

  九步法做一套系统出来

  选取什么样的系统去实现,这个可以根据个人的喜好来。例如微信式的通信软件、单机游戏、信息管理工具等。甚至就做一个大学里最常见的工程作业:学籍管理系统。

  选好了要做的工程,接下来最重要的就是一定要自己完成。有太多的理由不去做完这件事了,例如我就想去多面试几次碰碰运气;爸妈催得急,家里坐不住;看到别的同学顺利入职,心里着急,于是就拿别人做的项目过来看上几眼,自认为是学会了……

  对于这一点,我也没有别的好办法。我只知道一字一字地手敲一万行代码之后,比没这么做之前要踏实得多,面试时应对各种细节问题也都有把握得多。

  下面我就以学籍管理系统为例,分成九个步骤,说明怎么把这个系统做出来。

  第一步:分析需求。就是自己想学籍管理应该包含哪些功能,例如可以登记学生信息,可以查询信息,可以修改数据;考试后记录考分,学期末老师填写评语;记录学生的奖惩情况等。

  第二步:简单设计。之所以说是简单,因为对于零经验求职者来说,也不可能进行太深入的思考。例如就思考学生信息会包括哪些内容,将这些内容整合到一起形成一个结构。再思考这个结构会具备怎样的行为,这样对数据的操作就出来了。

  第三步:技术选型。这时候求职者要对BS或者CS结构有基本的了解,知道实现BS需要web+server+db的方式;而cs则是client(PC/Mobile)+server+db。这一步往往需要求职者进行大量地学习,但不必学到100%,对每一种技术学到核心的20%就可以动手工作了。

  至于开发语言,可以是java、php、python、C#等,甚至就用C语言做一个命令行界面的程序也没关系。在这一步里也还要学会使用IDE开发工具,能够编译、调试程序。

  第四步:定义核心对象。不要一上来就奔着画UI界面去了,这个工作很吸引人,但对于一套完整的系统来说,并不是最重要的工作。这一步我们已经确定了开发语言,那么就可以在代码编辑器里为系统的核心对象进行定义了。例如学号字段用长整型;姓名字段用字符串;性别用字符型等。

  第五步:增加对象的操作。核心对象定义出来了,那必然要对它施加操作,系统才能得以运行。例如学生信息对象有了,那么要增加一个叫张三的学生,代码应该怎么写呢?顺着这样的思路,就可以把新增方法给实现出来了。

  接下来还要思考,数据虽然有了,但都在内存里,程序一退出数据就没了,数据怎么保存呢?这样又可以将数据库引入进来了,再编写与数据库通信的代码。

  第六步:编译自测。不要写了很多代码之后再去编译并运行看结果。一定要刚好写完一个功能就立即编译并调试结果。代码少的时候,问题也容易排查,这样对增强自己的信心很有好处。

  如果求职者会使用单元测试来覆盖业务代码,那就更是加分项了。软件开发的世界里有许多理论与工具,对于零经验者来说可能头绪太过于复杂,所以暂时不会使用单元测试也没关系。不过起码要能通过运行结果判断功能是否正常。

哪里找软件开发的人(零经验素人,怎样找到一份软件开发的工作?)

  第七步:迭代。当功能一个一个被开发出来时,会发现需要定义新的对象了,这时候就要继续新增对象并增加操作。实际上就是重复第四步到第六步的工作,这也是开发人员在工作时的实际状态。

  第八步:绘制UI。这时候终于可以画界面了,之所以将这一步放在是因为所有的核心操作都已经定型。业务逻辑在实现过程中已经得到了反复确认,UI只需要呈现已有的业务逻辑就可以。

  第九步:系统测试。所有代码全都写完,这的确是一件值得庆贺的事,但还远未到结束的时刻。求职者要鼓起勇气来不断地测试自己开发的系统,而且要邀请同学或者老师来试用自己的系统。

  因为自己的目光里总会有盲区,别人也许很容易就发现系统存在的问题。遇到问题并解决问题,往往是技术成长的捷径。而一套自己开发的系统,能够经受试用检验并被认可,“做中学”的目的也就达到了。

  结语

  软件开发是一项智力密集型的劳动,要进入这个职业确实存在一定的门槛。如今我在公司面试新人的时候,也不止一次听到他们抱怨说“没经验就没工作,可没工作哪来的经验?”

  我总会想起当年自己也发出这样怨言的时候,所以我都会耐心地给他们说一些如何获得经验的方法。虽然不知道我当时的话能给他们提供多大的帮助,但我想他们也应该会思考并做出行动吧。时至今日,我想这些新人们也一定都走上了工作岗位,有了很好的职业发展。

  上述的九步法也许并不是很完善,它只是出自于我的个人思考。如果能有人补充完善并提出更好的办法,那真是功德无量的事情。但对于迷茫中的求职者来说,不妨先去尝试一下,起码比不知道做什么而只是抱怨要强。

  我也希望能有更多喜爱软件开发的求职者,能够顺利获得机会并大展鸿图!

我们凭借多年的APP小程序开发经验,坚持以“个性定制 源码交付 独立部署 满意为止”为宗旨,累计为5000多家客户提供品质服务,得到了客户的一致好评。即刻开启你的小程序/APP,帮您轻松抢占千亿流量红利,助您轻松获客!
立即咨询: 13716188458 / 18588225959,助您抢占市场先机。项目经理在线

我们已经准备好了,你呢?

2024我们与您携手共赢,助您领跑移动端创新增长

售前咨询
咨询电话

13716188458

18588225959

在线留言
扫码加微信
微信
在线留言
* 请输入姓名
* 请输入有效联系方式
请输入您的需求:
* 请输入需求
提交成功