我优柔寡断的语言选择之路
在决定换工作时,我就意识到,我必须专注地学习一门编程语言。因为在我三年的工作生涯中,接触的编程语言有Visual Basic .Net,Java,PHP,Linux Shell等。但是每一门的水平,由于我们所做的软件的复杂度并不高,所以也并没有多高的造诣。若是去别的公司,应该会有明确的岗位分工(也许一些小的创业团队还是会需要全才),所以还是必须要做到精通某一门编程语言才能找到理想的工作。
最先想到的是PHP,因为一方面有PHP的基础,一方面由于有新浪云的支持,编写的网站很容易就能上线。我于是用它写了一个网页 小马飞镖 和一个飞镖记分的 微信应用后台。当我和一个IT业的同事出去聚会时,他告诉我,一般国内使用PHP都用ThinkPHP框架,我也最好去学习一下,而对我们公司使用的CakePHP,他表示并没有听说过。我想也是,因为毕竟中日文化有别,反正MVC框架大体上是差不多的,于是我去了慕客网看完了ThinkPHP的视频教学。
然而这时的我转念一想,其实学习一个新框架,也就和学习一门新语言差不多了。既然如此,我为什么不学习网页开发中最受好评的Ruby on Rails呢?但当我开始Ruby on Rails的学习时,又发现了重重困难。它的很多资源在中国是被墙的,而当时又正好碰到上海电信的外网访问故障,要获取一点资料非常困难,于是学习Ruby on Rails就被搁置了。
学习Swift是因为我之前在日本时就购买了Swift的教学书,后来在京东搞活动时又入手了一本Swift的中文参考书。在那段访问外网困难的日子里,既然手头已经有了学习的材料,那就干脆研究一下吧。而且我自己本身对于移动设备,也有一点情节。因为我最早喜欢上编程,也是高中时给TI计算器编写游戏小程序开始的。不过之前在日本时买Swift书,也只是想作为业余消遣,并没有想过有朝一日要成为Swift程序员靠这门语言吃饭,毕竟手机应用距离自己的主业也是有一定差别的。后来没想到正好我现在的公司也遇到了业务的淡季。领导的朋友推荐他了一些国内的手机应用开发业务,但是我们公司暂时没有这方面的人才,因此领导为了公司将来能够有能力接更多的项目,也鼓励我们在完成日本的任务之后,可以利用余下的工作时间学习手机应用开发。这下子我也可以名正言顺地在上班时间学习了。在此期间我看到了斯坦福大学的iOS开发公开课,大开眼界,于是坚定把学习Swift这件事情放到更高的地位上去,也就开始自己开发独立的应用,并建立这个博客开始分享一些Swift的技术知识,直到现在。
虽然如此,但是现在依然偶尔会怀疑,这样究竟能不能找到工作。因为Swift毕竟还算新型的语言,国内开发app绝大多数用的还是Objective C,我是不是应该回头学习使用Objective C来开发呢?不过呢,想想自己之前的路,想学习ThinkPHP和Ruby on Rails都半途而废了,这也是因为自己优柔寡断造成的吧。如果我现在再去改学习Objective C,指不定过两天又想到了新的点子放弃了Objective C。学习编程这件事,或许并不应该看得太功利,不一定要根据当前市场上什么语种薪资高就跟着学。我若拥有足够高超的Swift水平,能够一个人独立完成比较大型的App开发(事实上很多小型企业的App开发也就一个人担当吧),那么我仕途又有什么值得忧虑的呢?
不过距离这样的目标,还是有一段路要走的。如何连接网络获取数据,以及多线程的应用,都只是看了公开课的教学,并没有实际操练过。在接下来的日子还是要努力操练啊。