我是程序员,如何成长,如何成才

来源:互联网 发布:张爱玲长相知乎 编辑:程序博客网 时间:2024/06/11 21:59
   我喜欢新技术,喜欢尝试新语言,喜欢去挑战已有的算法,有时探索出了解决某一类问题的算法,最后发现和本书上的某个算法有不谋而合之处,欣喜。其实对于很多像我这样喜欢研究一下算法的小funs而言,不断的去造那个车轮其实是一件非常Happy的事,用200行代码搞定1000行代码才能搞定的事,多么高效多么爽。直到我在一本书的背后封面上看到了“不要重复造车轮”这句话,我也下决心去探新路子。但是我却还是没有找到方向,脑中还是不断的去想出新的算法结构,然后被自己推翻,有时兴奋的睡不着有时懒惰的去打游戏。大学的教育体质却给我们这一类人很多好处,几乎不用去听课都能很好应付课程,特别是语言课程,无外呼是语法+算法,并且算法是那种非常简单的(突然让我纠结的是算法老师竟然没教我们实现红黑树!)而从平时的专业设计和实验中,我们也明显发现,就是Coding。


    编程是一个合格程序员必须做的,但在大学,很多时候按照我们的思路却将程序员做成了苦力。我说的苦力是指你的付出和你的回报是不平衡的。你的代码摆出来几乎没有任何价值,技术是要在产品体现的,产品是要靠用户去使用的,你的东西除了你自己用几乎轮不到别人(别人一用估计就崩溃了,哈哈,有些娃子写出来的程序就是这样)。这样一来,你的工作便没有得到认可。最纠结的是做实验,老师给出的需求有时不是很明朗,你写出了扩展性强的东西他反倒说你画蛇添足,你给出了新的解决方案,他不问缘由,由于不对口味直接PASS。其实作为程序员来说最渴望的就是技术交流,而在校园这样的交流举步维艰。Coding之后得到了一瓢冷水,不容交流的你陷入了窘境,是不是不时候写程序~~~。


    回顾在大学的专业课程,语言、算法、微机原理、操作系统、软件工程、网络。。唯一被串起来的就是算法和C。其它的都是散的,有多少大学生能将上面的几类融合起来?若果说微机原理是多此一举,那操作系统还是沾一点边,悲啊!建议最好使用C语言将上面几科的关系串起来,这个非常重要。一个网络讲的可谓详细,还不如用原始套接字去搞几个程序,我们是计算机专业的啊,几层网络协议一层层的讲,哪层我们真的懂了,,有几个同学知道内网外网是如何映射的,网络代理是怎么回事,P2P怎么实现。软件工程更是讲的像空中楼阁!有些课程讲的太抽象,抽象到我们不知道学了对我们编程有啥好处;有些课程讲的太具体,具体到我们错误的理解了什么是编程。


    当别人问起你会什么的时候,除了几本书外(几本书确实没讲啥),用心的同学学了某些语言,有的会使用某个框架。我想说的是语言根本就不算啥,悟性好的很快就可以用新语言写程序,但要做到对某个语言的精通那就是另外一回事了,或者说它根本就超出了语言层面。真正有用的是框架,往更高一个层次来讲是架构。很多同学已经会熟练使用某些框架、中间件来开发自己的小程序了,这是一个不错的现象,但我们欠缺的是对我们使用的这些框架、中间件的理解,这是我们使用它们的重点。


    框架、中间件的出现让我们从做原始的Coding中摆脱出来,并且可靠性会更高。但是要完成某一任务,可能面临一些选择,那么技术调研显得非常重要,翻译整理文档,画出层次图、关系图等。在这个过程中你会学到很多东西,特别是架构方面的,同时你也深刻理解这个框架,对于它是否符合应用场景你也可以做出判断了。当然框架的对比在你详细了解它们之后,不要妄下结论,在对比中你会发现它们的异同,这个异同的含义非常深刻,包含了对某一场景的普遍看法,这是我们要提取的。在对比中若我们能找到突破口,弥补缺陷,那么这就算作你的一个成果了,这个成果的意义比简单几个算法所带来的价值大很多,它很可能就成为一个实体出现在了某个商业系统框架中。


    花时间去学习新框架新技术,研究它们的特性和实现方式,是我们的成才之路。

原创粉丝点击