2007-04
12

这是前一阵子给新人讲perl时顺便聊的一些废话。暂且存放在这里。

关于自学

程序员这个行业需要不断地学习、充电。有人说过,现今的知识体系在20年之后就会成为一堆垃圾。 注意这是指整个IT行业说的,具体到某个人的话,可能五年后你的知识就没用了。 所以要不断地开阔眼界,学习知识。

那么如何学习?我认为最重要的就是学会搜索。如今,你不会编程没关系,不会配服务器没关系, 只要你会搜索,你就是好的程序员。Web2.0的发展,使得论坛、个人网站等过时,维基、博客流行起来, 而大量有价值的技术信息都分散在成千上万个博客上。因此,你得学会用好搜索引擎,推荐使用Google。 大部分人喜欢用百度,我无可厚非,不过个人认为,对于程序员来说,Google的准确性要比百度高很多。

那么如何使用Google?我总结了下面的几种情况:

  1. 访问某官方网站,直接Google一下它的名字。如微软,你不必记住 www.microsoft.com 这个域名,只需要打开Google搜索“微软”即可找到目的地。
  2. 查找技术文章,搜索相关关键字即可。假设你要在Linux下装Web服务器,想象一下如果你想写一篇这方面的技术文章,你会用哪些词语,这些词语就是关键字。
  3. 解决技术难题,如编译错误、配置错误等,可以直接搜索错误信息。世界上那么多优秀程序员,你遇到的问题一定有人遇到过并解决了。

另外还有一个 Google Code,它可以搜索网上的源代码,想找程序例子时非常有用。 网站地址请自己去搜索。

自学的第二个重点,就是要学会举一反三,严禁不求甚解。 网上有人说按照某种方法能够解决某某问题,于是你就原封不动地照搬过来, 结果问题依旧无法解决,于是你就给那篇文章的作者发信说“你的方法不对”啦“我这里不行啊”之类的话。 程序员最要不得的就是这种态度,影响别人也耽误自己。 别人提出的方法,你不能生搬硬套,而是应首先理解他为什么要这样做, 这样做有什么道理,然后再根据自己的实际情况找出适合自己的解决方法。 这样解决问题的同时自己的技术水平也会得到提高。

最后一点就是要多多关注新事物。这些年新概念、新事物不断涌现出来, 如Web2.0、P2P、Ajax、维基、博客、阅读器、flickr、youtube, 几天不看新闻就会觉得自己跟不上时代了。

在这里我推荐几个较好的技术网站,有条件的可以天天上去看看, 了解一下技术发展情况。同样,网址自己去查。

  • del.icio.us 这是个网络书签网站,主题是技术。每天上去看看大家推荐的技术文章很有好处。
  • 抓虾 一个在线RSS阅读器,同样也有推荐功能。目前技术氛围比较浓,可以去看看热门技术文章。
  • digg 也是网页推荐的网站,同样能找到很多技术文章。
  • 豆瓣 图书推荐网站。

关于技术

许多人以掌握多种语言、掌握多种技术为荣,会C、C++、VC、Delphi、VB、PHP、Perl、Oracle等似乎就很了不起。 的确这样的人才不可多得,但我想告诉你的是,这不应该是你追求的目标。

技术的发展是无穷无尽的,尤其是现在,创立一门编程语言、一个程序库、一个开发框架是个很简单的事儿, 有点技术基础的人谁都能做。而要想将这些技术全部学会是不可能的。 你应当着重学习技术背后隐含的思想。弄明白了思想,就很容易举一反三, 再学其他技术就非常容易了。

例如,学C++时不应该花太多时间在C++本身上,而应该重点掌握面向对象概念。 学会了面向对象,再学Java、Python、Ruby等就非常容易。 学过Java的人应该知道Struts这个开发框架,弄懂Structs的思想, 再学其他开发框架时就能举一反三。

建议大家没事儿学学下面的技术:

  • C或C++,注意不是VC,更不是微软的MFC库。许多语言如Java、PHP、Perl、Ruby都是从C语言发展变化而来,学通了C,其他语言就唾手可得了。
  • Linux,学它的原因,一个是它免费,二是掌握Linux的思考方法,能很大提高日常工作的效率。

另外,我们学技术不仅是为了工作,更是为了解决实际问题。这里有个原则:同一件事而不要做第二遍。 用好Excel、Linux等工具,让计算机帮我们做重复的工作,不仅能大幅提高效率,本身也是件很有趣的事儿。

结语

说了这么多,其实总结起来就一个字,就是。技术学活了,程序员也就不难做了。




看完这篇文章后感觉怎样?如果还需要更多的内容,可以看看下面这些,也许会对你有帮助:


这篇文章有 13 条评论了,快来一起讨论讨论吧!
#1
沈蚊
2007-04-13 10:15

除了不会写程序,看样子偶已经是一个不错的程序员了~~:P

#2
charlee
2007-04-13 12:54

程序员不一定要会写程序,学写程序是最简单的事儿。
我觉得只要有对技术的直觉,就是个合格的程序员

#3
fcicq
2007-04-13 22:50

“学习技术背后隐含的思想”.

一些算法学习的背景对学习这部分思想很有帮助.

算法和数据结构的学习看一般的书见效不大.
进行ACM竞赛方向的练习比较有效果.

#4
路人甲
2007-04-15 09:30

呵呵,“程序员不一定要会写程序”,偶不敢苟同,实践出真知,不动手程序员的思维是不会出来滴,光看书想啊想啊~~~灵感是不会来滴

#5
okee
2007-04-25 19:55

说得很对,对技术的敏锐感真的很重要。记得04年底貌似就从msn上和charlee聊天知道了这么个Ajax技术,两年后已是入日中天。

呵呵,另外charlee如果有时间的话,推荐你看一些Semantic Web/OWL的东西,W3C的东西还是不错的,有可能是Web的下一个重大突破。

#6
okee
2007-04-25 19:56

baidu用来搜中文blog还是不错的,其他的就不说什么了。。。

#7
smalldust
2007-05-03 12:08

现在国内的问题就是,google.cn是一个缩水版的google。不知道charlee在国内感觉如何?(charlee应该也是只搜索英文资料的吧)我的感觉是搜索英文资料用google.cn简直是没法用,而用google.com的话又会时不时被路由器重置。

#8
smalldust
2007-05-03 13:38

还有一点就是,Java和C/C++有着彻底的不同,语法之类很类似,但是从底层来说,Java/.Net之类的是虚拟机技术。在将来,Java/.Net这类虚拟机技术的前景很好,不仅是Windows平台,一定也会在Linux/Unix平台广泛使用的。

#9
charlee
2007-05-03 16:05

To: smalldust

google.cn是无法用于搜索技术文章的。
我基本上都是用日本Google搜索技术文章,
不论是英文还是日文的。

#10
王杰
2007-10-03 09:52

不错啊,这扁文章写的不错啊,!我真是受益非浅啊.

#11
minchao
2008-01-08 13:25

学习了,
感谢

#12
chao
2008-01-16 17:14

谢谢
我对自己有信息,哈哈(优秀程序员)

#13
lnhoo
2008-04-26 22:31

谢谢 我才入门 周五刚被炒了工作,现在郁闷着呢。上面还是有道理的

添加评论