沐鸣娱乐


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

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

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

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

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

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

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

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

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

        学会一套技术体系

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

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

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

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

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

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

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

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

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

        九步法做一套系统出来

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        结语

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

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

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

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

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

        相关新闻

        联系我们
        联系我们
        分享本页
        返回顶部

          XML地图