我这个半吊子

我是半路出家学的计算机(原因无外乎就是高中打游戏上网,搞的自己没学上,无奈提前进入了社会,搞上了IT),一度觉的自己学的还不错。直到前几年自己开始写程序、看别人写的好文章的时候才发现自己在这件事上的幼稚,用某人的话讲就是:too young, too simple, too naive。 一度觉得学得还不错,那都是一时的幻觉,那只是我掌握了一些非常简单的小技巧(little tricks),说的更明白一些就是”在他人面前炫耀的小资本”。 当我发现自己和计算机科班出身的人之间存在巨大差距的时候,我终于也意识到了,这是我几年前沉迷游戏和上网所种下的因。这些差距是需要付出更多的努力才能追回来的。那么究竟又差在了那些方面呢,正是数学、数据结构、算法、计算机体系结构,是这些非常基础的东西。这也是最近1~2年都在自学的东西,可惜的是目前都还没有学出什么东西来。 就我自己学习的过程来看,要说操作计算机这事,那是最为简单了,只要不傻,应该不成问题。甚至写程序也是简单的,只要逻辑清楚就好,但是要想认真的了解计算机是如何运行的(How to work?),并且依据这些来设计程序,那还是有很多东西要学的。我姑且简单的分成三段: 操作计算机:动动鼠标,打打字,简单排版都是这个范畴。 更好的操作计算机:初级程序也算这一段。 理解计算机:知道什么是对的,什么是错的。 就在刚才我看ericsk写的新工作的來由,又顺着看了《程式設計師懺情錄》和《不要學電腦、不要學英文》,其中有一个算法有没有用的例子很是给力,就是从1加到100,处在二段的人许是会这样写: int sum = 0 ; for(int i = 1 ; i < 101 ; i++) sum = sum + i ; 三段的人就会这样写: int sum = 100(100+1)/2; int sum = 100*(100+1)/2; 其实这个算法是最为基本的了,在初中的时候就已经学习过了,没记错应该是有说某个数学家聪明的课文或是故事,里面提到这个算法的。 为什么我到现在也就只是停在第二段上呢?科班出身的人经过训练,可以经常以数学的思维来看待计算机和代码。我只能机械的靠逻辑来写,与其说是在写程序,不如说是在把要做的事程序化。甚至某些东西的对错,我只能试,而科班的同学也许仅靠理论判断就知道了,这其中的差距可想而知。 Update: 被朋友指出程序语法有问题。囧。。

系统管理员和程序员

Everythings Sysadmin的作者Tom给一个初级系统管理员回了封Learn your operating system’s internals的信,有讲到每次靠重启解决问题和用猜代替知道的时候总是觉得这是对行业和专业的深深打击。然后又讲了系统管理上三个复杂且容易误解的内容:内存子系统,文件子系统和进程。再加一个是安全子系统,然而这三块的内容又是理解安全的必要前提。总之就是一个系统管理员一定要深入操作系统,知道操作系统到底是怎么工作的。Tom还列了几本针对不同操作系统的书出来, Windows:《Windows Internals》,中文版:《深入解析Windows操作系统》,Russinovich, Solomon and Ionescu Linux:《Linux Kernel Internals》,Beck, Bohme, Dziadzka, Kunitz et al FreeBSD:《The Design and Implementation of the FreeBSD Operating System》,中文版:《FreeBSD操作系统设计与实现》,McKusick and Neville-Neil The TCP/IP Protocol: 《TCP/IP Illustrated》, W. Richard Stevens,中文版:《TCP/IP详解》,W. Richard Stevens 无论你是否使用FreeBSD,都应该读一读FreeBSD的那本。TCP/IP那本就不消说了,现在离了网络的计算机啥也不是啊! 还有一个Hacker News的贴是问How to step up my coding skills?,提问的人想在半年到一年的时间里成为一个Skilled Programmer,回贴的都说程序员这摊子浑水深了,这点时间是不够的。顶的最多的是说要写代码,也有列了代码量的。不过我觉得Ixiaus列出的建议还是很实用的,比如下面几条: 要成为一个程序员,不是码农。/Ctrl+C/V 不要忽视理论、算法、数据结构和数学 学习多个语言,包括面向对象和函数式编程。 系统管理员和程序员虽是两个不同的职位,但是学习的内容应该说是差不多的,系统管理员甚至要比之程序员学得更多,了解的更多,按三金的话就是:我们知道的状态比其他人多,修好只不过是把系统调到已知状态。

IT二代

今天和田大师吃饭才知道大师也要当爸爸了,恭喜田大师。 联系自己和周围朋友最近一二年的生娃情况,看来这”IT二代”诞生的潮流也来了,这也意味着IT从业人员步入了一个新的阶段—-上有老,下有小的人生阶段