我自己在学习编程的过途中有的几个疑问,1)什么编程语言我需要学。 2)学多少种才算 可以。最后通过我自己学习感受和对其他编程高手(主要是新闻组)的请教,我认为找到 了满意我的答案。抛砖引玉,做个参考吧。 对于初学者,我建议从 python 开始学。因为它在语言设计上很整洁,帮助文件也很 全面。而且也是 object-oriented (O-O),尽管我把它作为一个初学者开始的语言,并不代 表它的用处和功能不强大。实际上它是个功能强大,可以用来做大的编程工程的语言。 我知道国内对 python 可能还不了解,因为它相对来说也比较新(1990),到现在有12 年的历史了,但是它在国外已经被广泛接受和认同,快速发展。不过我知道邮电出版社最 近刚出了一本介绍 python 编程的书,大家可以查询。python 的主页 www.python.org Java 也是个很好的语言来开始学编程。不过它比 python 复杂。国外的大学现在都采 用 java 作为电脑专业的凯时语言。总之我觉得除了 python 之外,它也可以作为一个极 好的初学者语言。 不过,会了这两种语言,并不代表你就是一个编程员了。学会编程的关键就是 -- “ 编程思想“ 。 学会怎样用一种很“ 广泛的思维“ 去考虑“ 编程问题 “,也就是这种 思维是可以放之于任何一种编程语言都可以解决问题的,而不是局限于单纯的一种语言。 这样当你需要学习一种新的语言时,你只要学习他的语法等等就可以了,至于怎样用这种 语言解决编程问题不是早就在你的脑子里了吗。所以,这也就是为什么很多程序员可以拿 到一种语言,一两个星期就可以使用的很熟练了。这,也同样要求你去学几种完全不同的 语言。 C 语言是非常有效率的,很多时候你都需要考虑内存的管理等底层的东西。很可惜这 些都需要你去花很多的时间去做,问每一个 C/C++ 的程序员,用 C/C++ 编程是不是一个 很头疼的事。好消息是,现在的机器都已经很高级,运算的很快,在很多时候我们是不用 考虑用 C/C++ 去做,忽略它所带来的好处,当然除非这个工程真的很需要处理底层的东西 (象 内核的编辑,3-D 图形等)。很多时候 python, java 等都可以实现。另外在现在很 多工程所要求的时间都不是足够充裕来用 C/C++ 去做,所以在商业上时间就是金钱,这个 代价谁也付不起。 我这里并没有说 C/C++ 不好,你不应该学。相反我觉得我们应该学,但不是作为一个 初学者的语言来学。在 C 和 C++ 之间,我推荐先学 C 。.因为它相对来说较小,简单。 作为一种底层编程语言,C,你可以学到很直接的内存管理,指针,等。另外,很多语言都是 用 C 来设计的, 比如 perl , java, python 其它语言值得一学的有 perl , Lisp(当然你也很一说 effile, proflog),提到 per l 是因为它的实用性,广泛的应用在网络和系统管理,perl 提倡 "There is always mor e than one way to do it" 这主要是从 perl 的语法以及它的独特设计上来获得,记得用 几行code 你就可以写出很有效率的程序?这也就是为什么我很喜欢perl 了。但是perl 的 语法着实让很多人头疼 而且对于用 perl 写的大型程序,维护性不是很好,python 就没 有这方面的问题,这也是为什么很多 perl 的用户转向了 python 。很多人用 perl 的目 的和用 python 一样,避免在不要求 C 的效率时 使用 C。 Lisp 据说是很有启迪性的语言,会让你成为一个更好的程序员.(我还没有到达那个程 度 :-) 我个人推荐 (python, java, C ,perl, 和 Lisp),因为他们使用不同的方法来编程, 每一种都会在某种程度上交给你些很有价值的东西。 谈到学习编程,单纯的上课和看书只会让你学习语言的特性等,只有学会用编程的思 想来思考才是你终生受用的。这些只能依靠 “ 练习 “ 具体就是 1) 读程序 2) 写程序 看似简单,但坚持下来你才会真正体会到,这里没有其他可以投机取巧的方法学习编程了 。 至于学多少种,是越多越好吧。但并不是指每个都精通,我想大家也没那么多时间和 精力。但在你有了坚实的编程经验和基础,了解其它语言的设计方法、构造会开阔你的眼 界,没准什么时候你也可以编出自己的语言(咱中国人编的!!) :-) 要提醒大家的是,如果每种语言总是略学皮毛,然后又急匆匆的跳到另外一种语言, 那你就会一事无成,永远彷徨在初学者的门槛边。我想这句话不只是对程序员,对我们来 说也是生活中的一个道理。 |