我的十年程序员之路

一晃做程序员也有十年了,总觉得时间过的很快,仿佛第一次写程序还是去年的事情。虽然到现在也已经换了三四家公司了,但总有种自己没有做过什么的感觉。于是便想把个人的经历写下来,留给以后的自己作为个回忆。

大学时代

我原本并没有想过学计算机。在高中时我搞过化学竞赛,2005年考大学时填的志愿也和计算机无关,然而机缘巧合,我的分数只能服从专业调剂分配,误打误撞进入了计算机专业,属于没有任何编程基础的”普通学生“。在大学的时候一直仰望着各种信息学竞赛大神,在被碾压中渡过了四年本科时光。大一大二的时候对于编程是觉得既新奇又畏惧,常常在语法上被困扰半天,又或是为了一个边界条件而调试半个小时,算法也一直是我的短板,只到现在还是会对算法面试有一种天生的紧张。如果说在本科的大学时光中有什么事情是我对于写程序这件事情产生热爱,那便是大三时选修的一门《基于Visual C++的MFC编程》。MFC技术已经作古多年,知道这个名词的程序员估计也都年纪不小。虽然这门课程上学到的知识在后来的工作中并没有用到,但是第一次写出在Windows上可以运行的非常简单的界面程序,那种成就感,比大一大二抄书本调试出来的递归程序要高的多,这门小技术也让我在大三大四的许多大作业上沾了些光:毕竟助教比起在命令行运行的指令,更喜欢鼠标点点就可以出来的界面。自此我便在单机图形界面程序上兴趣大增,大四的时候用C#写WinForm的程序作为软件工程课的大作业,和大部分其他用Java写出的界面”划清界限。

移动应用工程师

学生时代写程序并不能作为”程序员“的经历,我真正的成为一名程序员要从大四开始说起。大四的时候保研结束,有些空闲的时间,想着找一些事情做做。机缘巧合认识了一个大很多届的师兄,自己开了一个公司做智能手机应用。那是2009年,现在二分天下的苹果和安卓的代表手机还是iPhone 2G和HTC G1,系统的版本是iPhone OS 2和Android 1.5. 我进公司实习的第一个应用是把一个在iPhone上的工具类程序移植到Android上。当年的Google还可以访问,但是Android的代码示例也几乎只有官方的Demo,公司里也并没有没有别的会写Android程序的程序员。正是在这样一抹黑的情况下,我迈出了移动开发的第一步。当时每天去公司就是把一台G1连上笔记本电脑,改两行代码后花上半分钟运行一下,看看效果,不行再改两行再试。效率非常的低下。功夫不负有心人,做了三个月之后程序终于上线了。虽然反响也并不好,没有达到iPhone上的营收效果,没多久就从Market上撤下来了;但不管怎么说,也是我第一次写的产品代码,我在程序员的道路上迈出了第一步。

09年毕业后上了研究生,研究的项目也正好是基于Android的,期间做过Android系统程序的修改,包括修改Java代码和底层的C代码,现在看来都很简单粗糙,完全不值一提。但是最宝贵的可能就是读了大部分Android的框架代码,虽然现在已经面目全非,但是在以后的工作中看再大的代码库也不会觉得无力。

研究生期间”不务正业“又辗转做了几个公司的intern,当时为了能兼顾实验室和intern,特意都选择了可以remote的实习。其中包括两家在美国的公司。在这两家公司最大的收获便是锻炼了英语读写说的能力,从一开始面试的时候连名词都听不明白,到后来可以和老外侃侃而谈,在这里迈出的第一步很关键。另一个收获就是除了Android之外,又接触了iOS的编程(当时还叫iPhone OS),学习了一门叫Objective C的语言,以至于很长一段时间在Java和Objective C之前切换的时候会不自觉的打出括号和点的组合。

整个研究生期间我的技能点几乎都点在了移动开发上,关注各种安卓苹果操作系统的新功能,也会借着职务的便利去玩一些新的机型硬件。加之那几年移动应用的发展迅速,市场是对于移动应用开发者还有很大的需求,于是自己对自己的定位为一名移动应用开发者,并将至作为自己毕业后找工作的方向。

2012年7月研究生毕业,在年初的时候我开始了找工作,由于实验室的背景关系好多师兄毕业后都选择去了国外大公司工作,于是我也在期待着可以步师兄们的后尘。无奈自己的硬实力不够,没有能够通过国外大厂的面试。在国内的找工作也并没有非常好的进行,大公司并没有很多移动开发者的职位,待遇比较不错的职位投递了简历却并没有得到回应。在机缘巧合之下,有几家日本的IT公司来到中国招聘毕业生,我参加了其中一家公司的招聘会并顺利的通过了面试,来到了日本东京开始了自己的程序员生涯。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wppswp.html