半路出家的野生程序员

我是半路出家自学的计算机和编程,一度觉的自己学的还不错。后来看别人写的优秀代码,直呼过瘾,也发现自己的代码并不出色,用某人的话讲就是:too young, too simple,  sometimes naive。一度觉得学得还不错,那是自我安慰,其实只是掌握了一些非常基本的小技巧(little tricks)。

发现自己和专业人士之间存在差距,也意识到这差距是需要付出更多的努力才能追回来的,知耻而后勇。那么究竟又差在了那些方面呢,是数学,是数据结构、算法、计算机体系结构,是这些非常基础的东西。

就自己学习的过程来看,要说操作计算机这事,那是最为简单了,只要不傻,应该不成问题。甚至写代码也是简单的,只要逻辑清楚就好,但是要想认真的了解计算机是如何运行的(How to work?),并且针对计算机来设计程序,那还是有很多东西要学的,要考虑到性能问题、扩展到问题等等。

就在刚才我看ericsk写的新工作的來由,又顺着看了《程式設計師懺情錄》和《不要學電腦、不要學英文》,其中有一个算法有没有用的例子,就是从1加到100,靠逻辑来写呢:

result = 1
for i in range(100):
    result += 1

加算法:

result = (1+100)*100/2

在计算机运行上差距就非常大了,掌握好算法、数据结构这些基础知识是从事软件工作的同学必须要做到的事情。


Last modified on 2011-01-25