我是如何成为一名程序员的?

语言: CN / TW / HK

大家好,这篇文章主要聊聊我是如何从非科班,走上程序员这条不归路的,我把它放到了新开的专辑“职言”里面,后续有关职场和职业发展的文章都会放到这个专辑里面。

2013年那个炎热的夏天,浩浩荡荡的几百万高考学子奔赴着他们憧憬已久的大学校园,学霸们计划着在新的战场里大展拳脚,学渣们庆幸着苦逼的日子终于解放了。

选学校和专业是个难题,尤其是我这种全家“第一个大学生”,根本没有一个前辈踏着七彩祥云来告诉你,该选择什么学校,选择什么专业。

索性心一横,选择了xx财经大学,心想跟钱打交道的,想必坏不到哪里去,而且搞金融的听起来好像比较牛逼。奈何分不太够,进不了学校最牛逼的金融专业。于是打迂回战术,选了一个“电子商务”专业,勉强算是一个计算机和金融都沾点边的杂交专业。以至于后来面试的时候,面试官疑惑地问我:你这个专业跟计算机专业有关系吗?我只能弱弱地回答他:“算是计算机相关专业吧……”

起初我和大多数同学一样,对写代码这件事是有些抵触的,尤其是在财经大学这么一个大环境里,大家都会觉得学好金融知识才是最重要的,计算机只是用来辅助咱大金融的。

我那个时候也不喜欢编程,心想:这么一大堆英文,看得头晕眼花,又复杂又无聊。大一学习Java这门课,敲半天代码,打印出来一个“hello world”,或者计算出来几只兔子几只鸡,有什么意义和价值?

兴趣是一个人最好的老师,由于对计算机方面的东西并不感冒,大学跟计算机有关的为数不多的几门基础课我都学得不咋样,当然,班上绝大多数同学和我一样。

大二的时候,陆续参加了学校的一些比赛,很多是创业比赛。这个时候就体现出编程的重要性了,有几个院里比较出名的编程大腿早就被别的团队预订了,狼多肉少。

我心想,不就是编程吗?于是提枪上马,抄起《Java语言入门》就开始学。后来发现,编程这个东西,你不了解的时候,会觉得它很难。当你开始了解的时候,你会觉得它比你想象中的难

后来比赛没搞得咋样,倒是学习到了一点编程的本事,成了一个编程小腿,也对写代码这个东西慢慢有些了解了。

拐点是在大三上学期。那个时候大家都在思考着以后毕业后要干什么,有人选择继续深造,有人选择就业。作为一个什么都学点的专业而言,毕业后选择做什么就比较重要了。

那个时候正值BAT(那个时候是指百度,阿里,腾讯)如日中天的时候,程序员的毕业薪资水平排名也稳步提升。也是这个时候,我才下定决心要学好编程,把它当成自己以后吃饭的饭碗。

刚好那个时候有门选修课是教编程的,教这个课的老师是信息中心一个负责做我们学校网站的老师。于是第一节课下课后,我找到老师,问:我能不能来信息中心帮你做网站。

老师答应了我,让我先从前端开始做,没课的时候就去。但对于前端我是完全不了解的,它跟Java也完全不相关,是另外一个领域的东西。但锻炼的机会难得,于是那个周末两天的时间我通过看书恶补了一下前端的基础知识,就开始一边学一边做。

坦率的来讲,前端比后端对新手是更友好的,因为你能够看得到你的程序运行的效果,只需要写一点代码,就能在浏览器上做出一个按钮、表格。

做了一段时间后,再加上持续的学习,我的前端也写得越来越熟练了,用HTML, CSS, JS, BootStrap, Jquery这几个东西,基本上能做出很好看的页面,甚至还可以“响应式”,根据屏幕的大小不同,布局不同。

后来慢慢发现,编程是一件挺有成就感的事。也慢慢了解到,所有的网站、APP、软件都是由一行行代码写出来的。前端负责界面的渲染,后端负责逻辑的处理。也是在这个过程,慢慢了解到了后端的重要性,于是开始用另一种视角去看待Java,理解Web服务。

大三的课不多,我在大二下学期选课的时候早有准备,选课都比较集中,所以有一些比较整块的时间。后来有幸找到一个小公司的实习机会,老板答应我可以每周只上4天班,其中2天由于晚上六点多有课,还可以早点走。

那段时间是忙碌而充实的,早上六点就得起床,六点半从学校门口出发,坐公交加地铁,接近两个小时到公司。晚上有课的话,就赶回来刚好上课;没课的话,到寝室基本上是10点左右。坐公交和地铁的时候,用手机在网上看视频课程,感觉自己每一天都能学到新东西,每一天都在进步。

刚开始仍然是做前端,只不过真正开始接触了商业项目,做一些外汇相关的网站。那个时候公司还没有专业的前端,都是后端兼职在做,写JSP。很多后端都不喜欢写前端,觉得调样式非常的麻烦,所以写前端的活儿基本上都交给了我们几个实习生。

公司的同事和老板都觉得前端比较简单,真正重要的东西都在后端,让我多学习点后端的东西。也是因为这段实习的经历,才让我最终没有成为一个前端程序员,而是后端程序员。

也是在这期间,我开始写了我的第一个版本的个人博客网站,用JSP和BootStrap做的,这个个人网站后来在我找工作和跳槽的时候给了我非常多的帮助,作为了我的一个个人亮点。

一边学习前端,把自己的工作做好,一边也没有放弃后端的学习,但这个时间段更多的是学习框架的用法。平时就是上班、上课;周末就是上图书馆看书、写代码。就这样,很快实习结束了,也到了大三暑假的时候。

大三暑假我没有再去找实习,而是做了两件事。

本来想找个互联网公司实习的,但是投了几个大型互联网公司的实习生招聘,结果笔试都没过。看了一下,大公司都比较重视基础,比如网络和算法什么的。感觉自己实力还不够,就没有继续投下去。

还在学校的同学们,一定要重视计算机的基础知识,比如JVM、网络、操作系统、算法等,这个非常重要!!!

第一件事是,跟着老师们去泰国那边合作的大学,开发了一个APP,为期半个月,我主要负责后端。同行的十来个同学都是顶级的学霸,只有我可能是因为有实际的编程项目经验所以才选上的……

项目开发还算顺利,我也获得了自己想要的东西,泰国游,加上一个不错的项目经验,还认识了一群有意思的学霸朋友。

第二件事是,从泰国回来后,我就在学校附近租了个房子,恶补计算机基础知识,准备秋招。那个时候其实还是蛮有信心的,毕竟自己也有一些实际的项目经验了,而且也学习了一段时间了,找个工作应该不难。

但现实给了我狠狠一巴掌。报了阿里和网易的秋招,仍然止步于笔试。发现笔试的难度比实习的时候的试题高了一个档,尤其是编程题那块,根本写不出来。当时觉得非常懵逼,能入职BAT的都是什么人才啊,这些东西他们都会吗???

其实冷静下来想想也是,人家都是计算机专业顶级的学霸,我凭什么学了几个月就能够跟他们一样?不过自己也走了一些弯路,没人告诉我应该学什么,没人告诉我应该刷一些面试题,看一些面经。

找工作或跳槽,面试刷刷题还是蛮重要的,编程技能的话也可以练一练,牛客网和LeetCode都是非常好的练习平台。

有些挫败感,整个大四上学期都在找工作。由于我们学校是财经大学,所以来我们学校开招聘会的大多都是xx银行或者xx证券公司。人家想招程序员的,基本上不会来我们学校,而且我们学校学编程的也不多,整个院里打算毕业后搞编程的,两只手都数的过来。

所以还得关注川大和电子科大的校招,经常坐公交去那边交简历和面试,单程一个多小时,非常折腾。Offer倒是有几个,但都不怎么满意,想找个互联网公司,但是发现门槛都比较高,自己也不是科班出身,人家根本看不上。

找工作真的很累,但是投的公司其实不多,也就十多家吧。

最后其实没有太多选择,offer不多,其中在成都的就更少了。无奈选择一个大型的外包公司签了三方,寒假去实习了2个月左右。我们班上仅有的三个写代码的组队一起去的,也算是有个照应吧。

回家过年的时候,有些意外地接到了之前面试的某国企的电话,问考不考虑去那边实习。

其实这个国企之前面试就通过了的,但由于三方合约只能签一次,而之前那个外包公司不愿意退三方,要退也得等到五月份;而当时国企也是傲娇的,说必须要三方才能来实习。可能是后来招人不太顺利吧,所以才松口说可以先去实习,后面五月份补交三方。

这里劝戒还没毕业的小伙伴,不要那么轻易签三方,能拖就拖一拖,因为三方改起来非常麻烦的,学校这边也会有一些阻力。

这仿佛是一束光!国企当然香啊,薪资待遇和发展前景跟外包公司不是一个级别的。所以年后潇洒辞职,转去了国企实习,后面毕业后顺利入职。

最后再唠叨几句。很多没接触过编程的朋友,听说程序员工资还可以,所以就盲目地报班或者自学想要转行。

怎么说呢,做程序员还是很累的。互联网公司基本都加班,你还得抽时间持续不断地学习,如果对它不感兴趣,其实是走不远的。何况行行出状元,任何行业你把它做好了都很了不起,程序员真的不香!!!

今天的分享差不多就到这,差不多把大学有关学习编程的经历也总结得差不多了。其实总结写完了,感觉还是有些遗憾的,虽然努力了,但是毕业的时候没有找到自己真正想去的公司。

不过还好,时间总会看到你的付出,总有一天,它会给你回应。

下期本专辑准备分享《毕业两年多,从国企到阿里,我经历了什么?》敬请期待~

关于作者

微信公众号:编了个程

个人网站:http://yasinshaw.com

笔名Yasin,一个有深度,有态度,有温度的程序员。工作之余分享编程技术和生活,如果喜欢我的文章,可以顺手关注一下公众号,也欢迎转发分享给你的朋友~

在公众号回复“面试”或者“学习”可以领取相应的资源哦~

公众号
公众号