用过几种编程语言写代码主要还是和自己的职业经历密切相关,不知不觉从业已经有十几年的样子,中间经历过三家公司,在每家公司有大的项目经历,也涉及到许多编程语言的编写,现在简单做过几个项目涉及到的编程语言,在这做个简单的分享。
从业第一个公司属于芯片公司,算是美国的上市公司,开始主要从嵌入式驱动入手,主要靠C语言完成,在很短时间内做了几个驱动,实际驱动的编写由于基本套路都大同小异,所以学起来也算比较顺畅,后来开始涉及到底层很多模块,有音视频解码,图形库的绘制等等,基本实现语言还是C语言,在底层模块之间游走了两年的时间,对于嵌入式的框架结构基本上有了一个大致的了解,常见的嵌入式问题也能得心应手的解决。
公司层面觉得前面做的还可以,就开始切换到电视上网解决方案组,算是公司新成立的部门,在里面开始接触到各种开源库,开启了浏览器学习之旅,发现主要代码已经变成了C++,当时直接切入还觉得这门语言以前在学校学过应该问题不大,结果直接开始上手搞项目,就发现不是那么简单的事情,想修改项目里面一个点开始编译测试,都要折腾老半天的时间,后来发现学校学的根本不涉及什么泛型编程,然后在一个月的时间内疯狂的恶补,差不多在20多天的样子感觉就来了,基本上能达到修改的东西能满足项目上的要求了,还发现原来开源这么好玩,从此开始漫长开源漫游之路直到今天还会抽空学习开源社区的新玩意。
由于浏览器里面涉及太多的代码,于是天天对着研究代码,研究里面的框架资料,当初有关浏览器内核的资料少的可怜,只能对着电脑研究代码,功夫不负有心人终于在研究了一年之后开始对整个框架有了感觉,有段痴狂的日子还给自己制定了计划,每天研究几个文件的浏览器代码,以至于现在很多编程细节还能历历在目,在第一家公司整整呆了五年的时间,由于公司后来明显的感觉在走下坡路,直接辞职走人了,离开的第二年这家公司就不复存在了,后来总结技术生涯的时候,还是觉得作为一个技术人员,首先要在前期尽量稳定下来把技术基本功弄好。
进入第二家公司,由于技术基础还可以,以及技术深度都得到认可,进来直接就开始带技术团队,负责的主要安卓框架层,由于之前对于安卓框架只是处于研究阶段,但在面试的时候还真把技术人员给唬住了,其实也不算什么欺骗,在业余的时间做了大量调研,已经研究到很深层次的代码级别,正好借助这个平台实践落地,这个时候开始涉及到编程语言主要C/C++ java三种语言的混合,这个时候也不觉得语言是多大障碍,主要精力还是把当年公司业务逻辑如何嵌入到安卓框架层面,然后把安卓里面内置的浏览器应用在机顶盒框架里面,总之在这块折腾了差不多两年的时间,从上层app到底层的驱动上上下下来来回回做了很多事情,也终于算是把业务层无缝切换到系统中去,本指望公司一口气能上市,自己也能来点额外的收益,结果中间发生了变故,最后公司被迫转型,觉得没有多大意思选择了辞职。
进入第三家公司算是比较有意思的事情,发现一家公司的招生简历觉得就是为自己量身定做的,于是联系了猎头给我运作,还挺顺利,一口气过了四关,拿到offer,其实这家公司在进入之前还不算有名头,主要有一个号称国内最牛逼的浏览器内核团队,作为一个做了很多年浏览器内核的人总想着找高手过过招,结果进去较量一番,各有千秋,然后在里面大家齐心协力完成猎豹浏览器,后来还转做app搞了一年多,一路走来从最底层的驱动,一直玩到app中间来来回回的折腾也是蛮有意思,编程语言到了一定层面其实就是实现编程思想的工具,不要看的那么重要,编程的核心因素还是编程思想以及框架模式。
从第三家公司出来,觉得自己追求纯正的技术生涯该结束了,该去选择做点技术之外的事情了,于是在2015年选择离开了北京,开启了创业之路,直到今日。
人要懂得在不同的时间段内调整自己奋斗的目标,人活一辈子其实也没有多长时间,需要让自己勇敢的挑战一些不可能,长久的思想不更新,技术不更新,理念不更新慢慢的也就老了,也就真成了老成员老了该何去何从了,即使真的不成功,起码不会留下遗憾。