我是如何变成一名程序员的

为什么会走上程序员这条道路?

这也是一个我问过自己很多次的问题,因为问过很多次,所以现在答案也逐渐明了。首先,“一个人的命运啊,当然要靠自我奋斗,但是也要考虑到历史的进程”,大学毕业的时候,互联网行业飞速发展,可谓是日新月异。外国的程序员好找工作还不太累,自然是一个很不错的选择。其次,本科我学的是工程管理专业,但那时选专业没有什么经验,用了四年的时间来确认我并不喜欢它。而对于编程来说,虽谈不上狂热,但它及时反馈的特性很对我胃口,因此时而也能够乐在其中。小时候我又特别喜欢玩电脑,想着没准儿我以后还能当一名游戏开发工程师(tooyoung)。 一点,当然就是机缘巧合啦,在布伦瑞克工业大学的半年并不是很开心。毕竟刚刚在上海待了五年,突然去一个20多万人口的小城市(德国算大城市),并不是非常的习惯。而且可能因为从小的环境导致的对于“名校”的热衷,使得我刚一去就萌生了转校的念头。于是,开始考雅思,准备材料,重新申请研究生。在布伦瑞克的时候恨不得住在图书馆,疯狂补德语,疯狂补专业课(不过就要退学),外加疯狂准备雅思,基本每天11点半才从学校骑车回家睡觉,作息十分规律。似乎有一些跑题了,总之就是幸运地拿到了TUM的录取通知书,然后发现这个叫做TUM-BWL的专业,是可以把计算机当做其中的一个专业方向的。转折点就在这里,仿佛在黑暗中看到了一点微弱的光,“那就循着这个方向走吧”,这么想着。回想起来当时做了一件很蠢的事,明明都要转校了, 还是把那学期的考试都考了,因为想着这半年不能“一事无成”?不得不自省我的功利思想真的非常严重。要是能把考试月的时间花在入门编程上,那么道路就会更加平坦一些。不过考完那学期的课,也算是有始有终,跟土木道别。

风险和困难

在经管学院混了那么多年,经常听到的一句话就是:风险与机遇并存。虽然现在算是成功找到了工作,但当年我可没有未卜先知的能力,我无法知道这个决定将会带我去向何方。

个风险就是到底能不能学得好,甚至是能不能毕业?因为想要打好基础,所以很多课选的是本科的课程,德语授课而且淘汰率颇高。不过这一点倒没怎么影响到我,首先我脾气又倔,认定了的事情就一定要做,其次大概是挫折受的少了,迷之自信,总觉得自己什么都能做到,李白都“欲上青天揽明月”,我这点儿挑战跟他比算不得什么。在这里补一句,现在觉得自信虽然不是坏事,但了解自己的局限,心怀谦卑同样也十分重要。

第二个风险就是,我即使学得好,但我的简历里本科不是计算机,研究生也顶多占半个,毕业后那些公司能招我吗?即使我克服了 个困难,学好了知识,那么我要如何证明自己?假如我连简历关都过不了,又该当如何?如果我研究生的时间全都花在学习计算机上,但 却找不到相关的工作,那么我想找本科相关的工作也几乎不可能,因为已经忘光了。当时的感觉就是自己是在走独木桥,但没办法,我就是喜欢*一把,doordie。就这样怀着不安,迷茫与喜悦,踏上了前往慕尼黑的列车……

如何针对性地克服风险

对于 个风险,考试想要过并不难,主要是如何才能够系统性的学习知识,有一个类似于技能树的完整体系。虽然我是一个急性子(这不好,不适合大型项目),但是对学业来说,我总觉得理论基础不打好就直接学“找工作用得上”的技术,就像是空中楼阁一样,心里没底,不可取。于是我研究了一下TUM计算机本科的培养计划,把所有专业课开课的学期都记下来,准备在研究生期间慢慢补完。包括申请交流学期去新加坡,放弃更加偏爱的日本的学校,也是由于新加坡开的课正好可以让我补齐我需要的理论基础,例如操作系统,计算机结构这种底层课程(偷懒了,tum的操作系统课太难了)。在这三年里,基本上图书馆就变成了我的第二个家,工作日就不说了,本来就在学校,周六周日只要没事儿,就都去图书馆学一学,还可以见到小伙伴们。为什么是图书馆呢?因为很明白自己的自控力并不很足,所以去图书馆让自己进入那个环境中,就可以提高自控力。印象很深的是,有一次圣诞节全部都用来完成java作业了,烧的水也完全忘记,烟雾警报器都响了才意识到,手忙脚乱,还给火警打电话说不要来,从此对烟雾警报器产生了阴影。

对于第二个风险,研究下来觉得 方法就是实习。而且我的估计没有错,在德国这样一个连专业都不能随便转的国家,跨专业找实习也是十分之困难(实名羡慕美国大学)。我在第3个学期试着找了一次实习,投了大概8-10家公司,面试只有2-3个,结果真可以说是一塌糊涂,面试官问的我一脸懵逼,而且有一次一个面试官竟然还有点不耐烦?那我就不高兴了,“你觉得你很强吗?只不过是早比我学几年罢了。”抱着这样的信念,痛定思痛,报名了Udemy的Webdeveloper课程,并时不时地在Leetcode上面练练手。半年之后,终于在第四个学期,白板手写了八皇后问题的java代码之后,入职了一家名为IDCONSULT的小公司。真的对这家公司不胜感激,给了我 次的实习经验,增加了我的信心,让以后的实习都好找了许多。第二次实习就是在新加坡回来之后,解了几道leetcode的算法题,然后给老板讲了讲之前的实习经历,就顺利入职Celonis了。这也是目前全职工作的公司,因为毕业正好赶上病*肆虐,我又是一个非常风险厌恶的人,所以就选择了最简单的实习转正道路。(不推荐,懒了)

学习资源

虽然说学习方式和资源都因人而异,但我还是列出我主要使用的一些除了学校课程以外的资源,作为参考:

Udemy:找工作用的实用技术和项目

慕课网:找工作用的实用技术和项目

LeetCode:算法

youtube:什么不会查什么

总结

其实这一路走来,磕磕绊绊,也迷茫过,也自我怀疑过,也有喜悦,但所幸 达成了 阶段的小目标。回望,有两件遗憾的事情, 件就是函数式编程那门课我还是没能补上……因为后来沉迷机器学习,那门课就放掉了。如果还有机会的话我会把cloud


转载请注明:http://www.xxcyfilter.com/cxrs/cxrs/11968.html