本科在校学习数学的时候,认为语言很重要,因为我们只上c语言,后来就自学了c++,java,后来发现只写代码,而不出界面,没前途。后来读研的时候,就有硬着头皮把MFC学了一下和j2ee 学了一下。导师那会就和我说,算法很重要,你把算法学好也能找到好的工作,可是我老感觉他说的不对,没有编程基础,学算法也没用,再说算法离我好想很远,等到毕业时,发现面试,笔试,考了很多算法,但是基本都是死记硬背写上去的,没有自己的改进,故笔试成绩也不好。毕业快半年了,突然发现了自己喜欢上了算法,就像喜欢一个女孩子,他身上的很多东西吸引着我,以前一看见算法就头疼,想在拿起来就不想放下,或许这就是人生的转变。在基于自己以前是学数学出生,发现看这些复杂或者公式基本没有多大难度(要有好的数学基础)。
回顾以前的经历,发现自己转了一个圈,又回到原点,重新开始,也许刚学语言的恶人会说,你站着说话不腰疼,你有好的语言基础和实践,当然学习算法没什么困难,其实当你毕业了,走上工作岗位会发现,只要你努力,那些coding都是死的,而算法和思路,也就是解决问题的能力将是很重要的,在当下的我看来,这也是人生向前走的一个瓶颈,以前在学校一直认为工作经验,代码量,linux等等是衡量一个技术的高低,如果你也这么认为,那就大错特错,其实那些东西就好像一个木匠手里的工具,时间长了,再加上是否用心,你完全可以胜任,次之,也不必别人差不多远,而算法则是博大精深。
其实我现在说的算法,是指数据结构,我现在的理解是数据结构不是算法,英文data structure 也就是说如果你想写好程序,必须想好定义多少变量,分别是什么类型,怎样建立相关性。而真正的算法我感觉是机器学习,人工智能,勉强还能应该叫一些算法,这是本人基于纯数学观点来看的,因为这些东西都是基于数学理论推导出来的简单应用,而没用自己定义,证明,发明。不过这的确是大多数人口中算法,呵呵,其实也是我现在头脑中的算法概念,后续以后学习的收入会改变这个概念。
总结一下,为以后同学,朋友少走些弯路,学习计算机,语言语法简单学一下,用语言先尝试做一些简单算法,先看懂起理论,然后尽量总结实现,逼着总结实现,实现不行看一下别人的, 然后在自己写出来,这个过程-》痛苦-》痛苦-》成就感。你将会收益很大,至于那些界面的东西,其实很简单,只是在需要的抓一下。现在流行这么一句话,下一个时代是机器学习的新时代。这是自己的将工作半年来的一点感悟,有不妥的地方,希望大家多多指教。
2013-9-17 9:10:00
wjd