随着工作年限的增加,职业路线的明确,越来越多关心我的朋友,对我大学专业和现在从事的职业产生了疑问。 我是一个物理学专业的学生,研究生专业也选择了理论物理,可为什么目前从事软件开发工作呢? 当我被问及此事时,总是难以简要的回答。
职业的选择是一个重要的事情,我明白失败的方式只有一种那就是半途而废。 经过一段时间的仔细考虑,我决定用这篇文章说清我心里的想法。 我区分开了教育的目的,和职业的需要,教育的目的并不是为了就业,而是为就业做好准备。
教育的目的是为了打好基础
1693年,洛克在他的《教育漫话》中提出,『英国教育的目的是培养绅士,这种绅士,其实就是社会精英。』 我非常认可这种观点,教育的目的应该是给未来的职业发展打好基础,学那些在社会中无法静下心来学的知识。 教育和社会需要脱节,是当今社会浮躁的表现。
我庆幸自己学了基础学科,学习了自然科学,物理学专业的课表是把日程全占满的,我由衷的自豪。 我学过高等数学,线性代数,数学物理方法,概率论,学过力热光电原子物理,四大力学,激光原理,固体物理,学过模拟电路,数字电路,单片机,VB,C++。 这让我掌握了一套科学方法去理解这个世界,让我学会了用严谨的治学态度去做看待任何事情。 读研以后,我又学了高量,广相,李代数,学过微分流形,纤维丛,量子场论。 我对物理学有浓厚的兴趣,并且学了它,没有留下任何遗憾,我不用一辈子纠结自然界的科普问题了。
在这个过程中,最重要的是,我锻炼了学习能力,学会了把知识传递给别人,学会了交流,以及学会了把钻研精神用于生活中的方方面面。
职业发展过程中需要坚持学习
在毕业时,我面临着两种选择,要么继续研究物理,要么走向社会。 经过仔细分析自己的优势和劣势,以及家庭条件,还有进行了市场调研,包括自己的兴趣,我选择了程序员这个职业。 软件是一个低门槛,但是后期学习曲线非常陡峭的行业,这就是为何程序员总是容易『吃青春饭』的原因了。
刚入行时,我查询到计算机专业的本科生学了这些知识,离散数学,编程语言,计算机组成原理,数据库,数据结构与算法,操作系统,计算机网络,编译原理,软件工程。 专业方面还有,数据挖掘,机器学习,人工智能等等。 于是,我找到了相应的书籍,努力学习,软件绝不是编程这么简单,我要做专业人士。
这才发现,当我有了物理学的基础和学习能力之后,自学它们并不困难。 经过3年多的努力,自我感觉已经达到计算机专业本科生的水平了,在部分自己感兴趣的领域也学的较为深入。 比如,lambda演算,类型理论,逻辑学。 编程语言方面,Scheme和Haskell也看得比较多,能在社区帮助一些初学者,回答一些简单的问题了。
到这里为止,在这个行业我算才入门了。后面的职业发展,才可以围绕这些基础建立起来。 以上的学习过程以及书单,请浏览:真实在哪里
我想,如果就业时,我选择的不是计算机行业,比如,教师行业,或者任何其他行业,我也会先把领域中的基础知识学好,再谋求发展。 学校教育学到的基础知识,以及锻炼出来的学习能力,原来如此重要啊。 教育的目的确实不应该向某个特定行业提供开箱即用的专才。
有强大的学习能力才能做好前端
我从进入计算机行业起,就选择了前端,当时做过大量的调研,也查阅了很多圈内人士的文章。 学习前端与学习其他任何知识并没有什么不同,我只是把当时市面上能找到的关于JavaScript的好书看了一遍。 JavaScript权威指南,JavaScript高级编程,JavaScrip DOM高级程序设计,JavaScript模式,JavaScript精粹,高性能JavaScript,JavaScript异步编程,JavaScript设计模式,Secrets of the JavaScript Ninja,基于MVC的JavaScript Web富应用开发。
看完这些我心里就有底气了。CSS方面,我看的书较少,这里就不列了,工作需要的那些而已。 前端方面有一个特点,因为JavaScript这个语言细节特别多,对语言规范EcmaScript的学习就至关重要。 我从EcmaScript 3,看到了EcmaScript 5,然后就是最近的EcmaScript 2015,和Draft版的EcmaScript 2017。
看着前端这个方向发展迅猛,不禁又一次感叹基本功的重要性,当大家同时学一个知识点的时候,我有能力更快的学会它。 一些新兴的名词,immutable,flux,redux,FRP,等等,有了函数式语言的基础后,很容易理解它们。 这样才能做到心不乱,于是脚步才不会乱。
关于前端技术栈和编程语言对我的影响,请浏览:前端程序员的自我修养,语言的威力
结语
当我列举书单的时候,我自己都觉得这看起来太浮躁了,我们无法通过言语来看出一个人背后的努力。
还记得,刚入行时早晨6点爬起来,看完50页书才去上班,还得保证是部门去的最早的那个; 还记得,晚上制定的50页计划,读完了才可以睡觉; 还记得,在项目组各处流窜,就是为了遇到更多的问题,赶紧学习并记录下来; 还记得,过年在家时,医院陪床时,地铁上,手机中闪亮的电子书; 还记得,无数次晚上忽然醒了,拿起手机,记下关于编程方法的点点滴滴。
如果不得不用十年才能学会编程,我情愿每天多花一个小时,让这个梦想早些实现。
蚓无爪牙之利,筋骨之强,上食埃土,下饮黄泉,用心一也。蟹六跪而二螯,非蛇鳝之穴无可寄托者,用心躁也。——荀子《劝学》