我对编程的一些感悟
个人观点,欢迎指点
一、 语言是功夫、思路是内功
编程可以有多种语言,正如一个武林人士有着各种功夫,但是如果这人要成为武林高手的话,那他的内功一定得很深。如果内功很深,反过来,再学新功夫就非常快了,看过《倚天屠龙记》的都知道,张无忌学会了乾坤大挪移后,看一下别人的功夫,自己也就会打了,而且打得比别人好,纠其原因,也就是他的内功能深,学习乾坤大挪移需要很深的内功才行,而学会后,内功也会大增。
那如何练习内功呢,玩过ARPG游戏的人知道,“砍怪”,仔细点的人会发现,学会了A、B两种功夫后,如果用A来砍怪时,会发现,B的等级也会不断上升。
所以说,要增强我们的编程能力的话,也只需要拿着一种语言多练习,多编程,自然而然,内功就会增加。当水平较高时,再回头学另一种语言会非常快,而且新语言写的程序也不赖。
回头看看,有些人的简历上写了一堆的,会C,C#,java,VB,js等等,这类反而水平并不高。
据说业内有个经验值,精通VC需要写3年程序,精通C#需要写30万行代码。
努力砍怪吧!!!
二、 编程的等级划分
源于《程序员修炼之道》。编程能力分为:
l 手中有剑,心中无剑
会了一种语言,会编编程,但很多原理不是很清楚。
l 手中有剑,心中有剑
知道编程的一个底层原理,也知道这种语言的来龙去脉。
l 手中无剑,心中有剑
精通了一门语言,而手里用的,已经不限制于这种语言了,其他的语言都能够用了。
l 手中无剑,心中也无剑
此时已达最高境界,已经看透了语言的本质,甚至可以自己开发新的语言。
三、 语言在升级,我们要转变
计算机只认得01二进制,为什么又能够执行汇编呢,因为有了编译器这个翻译,经过发展,有了C编译器这个翻译,计算机也就能读懂C代码,到后来,C#,Java等等更高级的语言出现,一种语言总是会伴随着一个或多个翻译器。
可以看出,这些语言的发展其实目标就是越来越接近人类语言,让人能够读懂。在未来,估计会有这么一天,计算机语言非常接近人的语言,这时我们就不需要再来由程序员来编程了,因为每个人都能与计算机直接用人类语言进行交流。
计算机语言越发展,其实对交流者(程序员)来说,就越简单,到最后该就不存在编程人员了。
所以反过来,作为我们程序员来说,新的语言的出现,表示编程更简单,而会的人就更多,自己的饭碗就越不值钱。
所以我们程序员,要有警惕性,要努力去做电脑的翻译器,而不是使用程序,这才是出路。
那翻译程序怎么写,并不是说翻译程序就一定是一种新的语言编译器,比如做一个表单设计器,使用者就只要在上面画画(这也就是与电脑交互的语言),然后电脑就能运行你这个表单了;比如说做一个配置文件的配置程序,改变以前直接改配置文件而在界面上点选,这也是一种翻译器等等,这些会很多,只要我们去想。
这里,我定义的翻译器其实是广义的,只要是能够让我们操作电脑更简单的程序,换个话来说,也可以称为是工具。所以在国外,多年计算机公司的统计看,凡是做Tools的,生命力很强,光做项目的,生命力并不强。
对于我们程序员来说,平日里,在做项目的同时,也要注意能够提炼一些工具出来。