有一个非计算机专业的朋友,觉得做病毒很酷,决定学Dephi。大家知道在病毒满天飞的今天,简单的一种病毒根本攻破不了打满补丁的操作系统,那位想做病毒的朋友做出的第一个病毒可能很快就在其他同学那里发现这个病毒根本不起作用,成就感很快消失,而要做出个能令自己自豪的病毒,要对操作系统进行很深的研究,要花的时间和对基础的要求绝对会把我这个非计算机专业的朋友充满挫折感,从此视编程为畏途。
还有一个非计算机专业的朋友,觉得做网站很酷,决定学asp。在网上十分容易就能下载到大量的asp源代码的今天,我估计我这位朋友大部分会通过修改下载的源代码来做出自己第一个像样的作品,而修改做出的作品因为参考的例子都已经很成熟,再给它增色已经很难,所以很难再去体现你自己的劳动。试想,你把作品给别人看的时候,别人第一句话就是“这不是抄XXX论坛(网站)的吗?我也会啊,一个小时我就能搞定啦”。所以带来的成就感你总是觉得有点假。而且asp这种不适用于大型项目的技术和他的非计算机专业背景决定了这个朋友很难在计算机行业深钻下去,很大机会将一直从事asp网站开发,从而一个月就挣一千多块钱(广州asp程序员平均工资才1500),在广州2007年预计平均工资3500/月的今天,他很快就觉得原来编程也就是这样,没有什么前途。
而相当多的计算机科班出身的朋友说绝对不建议挑c++入门,因为实在是太难了,很难看到有意义的成果,越学越厌倦。因而这些计算机科班出身的朋友都视编程为畏途,要么就跑去做web,要么就转行了。
而我一直从事asp.net和C#开发,我觉得C#是一门很优秀的面向对象语言,C#2.0,3.0在面向对象和动态语言方面已经超越了java,asp.net是一门优秀的做web的技术,还十分容易入门,很快就能做出自己像样的作品,从而充满成就感,有更大的兴趣学下去。但是因为很容易就能做出像样的作品,所以很多朋友就满足于此,并没有深入研究下去,浪费了C#这门好语言!
有没有一门编程语言既能快速入门,很快就能做出像样的作品,从而充满成就感,有动力继续学下去;又能促使你不满足现有作品,从而有动力使自己深专下去呢?
根据我的经验,我推荐j2me
。
J2me是java三大分支,主要用于移动设备开发和嵌入式开发。大家现在去买一款新的手机,很多都写着具有java程序的功能,这里的java程序就是使用j2me开发。所以如果你学习j2me,就能够把你自己的程序放到你的手机上,能随时在你心仪的MM前炫耀,能随时show出来让师弟师妹从此佩服得你要死。当然也能随时使用你为自己定做的程序来提高你的工作效率和生活质量。这种成就感远比做web实在得多,亲近得多。
j2me只需要掌握几个核心的package就能写出能来真实成就感的游戏,比如坦克大战啊,能与电脑对战的井字棋啊,而上面这些游戏范例网上都有教程,所以你只要研究一下教程很快就能做出来了。有人会说,这不就是跟asp一样了吗?不,游戏这种东西可塑性十分强,网上的游戏范例都有很大的空间让你去修改和扩展功能,把它们做得更漂亮,功能更强,直到最后一个你觉得满意的作品出来的时候,已经与原来的游戏范例相比简直天壤之别。而修改和扩展功能,j2me与C++相比,回避了最令人生厌,让无数计算机专业科班出身的同学决定转行的指针,其比C++更完善的面向对象编程使修改和扩展功能更容易。所以我建议如果你学j2me,建议从学做游戏开始,除了以上这个特点,还因为一般二十几岁的年轻人总是对游戏的兴趣大于做其他软件。
J2me是用于手机开发,它对性能方面的要求你会很快就能感觉到,所以你会很快就想到要提高程序性能,从而会在这方面做研究,慢慢地你就会带着很浓烈的兴趣去主动研究很多人都很厌倦的算法与程序结构。在桌面计算机性能很强的今天,C++ 和WEB就很难做到这点。
J2me是用于手机开发,你当然希望你引以自豪的作品既能在你的手机上跑得好又能在你的女朋友或心仪的MM上跑得好,那么爱情的力量会驱使你在兼容性,迁移性上下功夫,自然你就会带着很浓烈的兴趣去主动研究设计模式,去深钻面向对象编程理念。要知道,很多学asp.net,Java,C++的人可是被逼着去学,学回来的效果也当然不会很好。
另外j2me所使用的java语言是一门十分优秀的面向对象编程语言,所以将j2me做为你的入门语言,将会是在你这张白纸上留下美好的开始,从而对你以后学习其他语言带来十分大的帮助,你以后转向j2se,j2ee都会容易很多。
据我了解,算法与程序结构,面向对象编程思维,设计模式这些都是往计算机行业纵深发展的必须要掌握的技术,而J2me能够让你充满兴趣的主动去学习这些东西。你说,j2me是不是一个好向导?
怎么样,通过我上面所讲的,你是否对
j2me
这门既能很快给你带来成就感,从而有很浓烈的兴趣学下去,又可以帮助你以后能够在计算机行业深钻下去,向做将在亚洲出现的下一个比尔盖茨的目标奋斗的技术很感兴趣呢?