前段时间又想重新开始学习一下编程,所以在网上DOWN了一本汇编教材,就这样从头开始连着看了好几天。说起来也奇怪,我每次想学习编程的时候,脑子里第一反映出来的都是汇编语言,这可能是因为心里总是觉得汇编比较底层,或者想着盖高楼大厦得先打地基的心理有关吧。
大概是前两天,可能因为看了几天汇编有点疲劳又或者自身定力开始摇摆的时候,脑子里一下子蹦出一些让自己暂停学汇编的理由,总觉得好像哪里不太对劲,FOR EXAMPLE:
1、我看的这汇编教材是不是有问题,怎么讲来讲去弄得弯弯绕绕的,让人头大,不如看看别的教材吧。
2、汇编语言级别的编程操作过于精细了,整体的编程思想和软件架构体现得比较慢,光底层不行,还得学一门高级语言和汇编配合才好。
恩,把这两个想法归纳一下,再仔细想想,就开始形成了下面两个小结:
1、汇编还是要当作基本的编程基础继续深入下去,不过在看哪些教材的问题上可以灵活一些,任何一本教材都有它的特点,最重要的是在不断理解教材的过程中吸取营养,这样的话,汇编功力一定会有长进的。
2、可以尝试在学习汇编的同时接触一下其它类型的编程语言,注意思考其编程行为的整体架构有可能是基于什么样的思维考量,规划一下将来学习的方向。
哈哈,思想小结总结到这里,思路就打开了,我从心里开始觉得,自己深入学习编程之前应该对各式各样的主流编程理念有一个OVERVIEW,得有点大局观,有了大局观才能更好地选择方向。这在军事上就叫战略,有了战略才好排兵布阵,有了战略才好遣将攻关,要是着急忙慌地忙活了好长时间才突然发现自己貌似对自己下一步的下一步开始看不清楚了,那不是就有点被动了嘛。摸着石头过河可以,但别忘了紧盯着河的对岸,别把自己真正的目标搞丢了,最后一步一个脚印累死在河里。
可这说起来容易,再往下这么想下去就不那么容易了。大局观,呵,这说得胸中沟壑气势磅礴的,可要找着那么一个既符合客观世界的发展规律又能引导自己不断地从顺利走向顺利的大局观,谈何容易!凭我这种还在编程入门级别的菜鸟一只就想勾画一个宏伟博大的编程江山图顺带再无师自通地仙人指路一般自导自演一条康庄的编程大道,呵呵,不是一般的YY,也许可以再顺便考虑创作一个穿越方面的玄幻题材和三少啊西红柿啊之类的大牛比比肩咯。唉,所以我非常理解为什么古代的那么多正史野史小说杂记都讲一个人要有前途得先看看机遇,有贵人相帮,给你指一条大部分人都看不清楚但又十分重要的捷径,你就成功了好大一半了。所以我也非常理解为什么现在的商场职场卖场工厂都讲究一个人脉,假如有那么一个华丽的人脉网络,我们的好兄弟里面有那么一两个盖茨之朋或者巴菲之友,别管咱们具体干哪行处于什么起步阶段,用得着自己再这么千思万虑患得患失打不开局面这种EMBARRASSMENT?^_^。。有点跑题了。。
恩,没错,我没什么比别人更好的机遇,这辈子也不想再指望身边突然砸下来一个大贵人,我想,这也是大多数XDJM们不得不面对的和YY世界总有那么一大截差距的现实情况。
那怎么办呢?既然我们不能仅仅指望着别人来引路,那就自力更生吧。你看自由女神像手里的那把经典火炬引导了那么多人,可谁知道当初又是谁点亮了火炬顶端的那束光芒的呢?我愿意相信那是自由女神自己点燃的,一定是因为她心里有一个令她坚信和无比向往的方向才促使她勇敢地奔跑在当时战场上的每一个人的前面:一个弱女子,在炮火连天的硝烟里,永远地树起了那最光彩夺目又最鼓舞人心的旗帜。由此,扪心自问,有没有贵人帮助自己的问题就不应该是找寻方向过程的首要问题。自己目前的编程能力弱缺乏大局观是现实没有错,可咱们的内心不能弱。既然现在还向往着成为编程达人,那就要勇于要敢于在程序的世界里点亮心里的那团火。一开始尝试树立大局观规划自己学习道路的时候肯定会有很多错误,可笑得不值一提,甚至于可笑到可怜,但是只要不忘记不断地去修正,就会保持进步,即使象MICROSOFT这样的当今世界的软件霸主一直以来也是一路跟在WINDOWS屁股后面打着补丁修正出来的。恩,很好,应该有的自信心还是要保持在膨胀状态的。有了强大的来自于内心的动力,战略上就成功了一大半了,下面一步就开始勾画自己对编程的大局观吧。
首先再次确认一下自己到底是怎么想的,弄明白编程这种事情对自己到底意味着什么。要是指望着这个养家糊口呢,那毫无疑问应该抓紧时间把编程实用化。要是只是平时当个兴趣陶冶陶冶情操呢,OK,抽那么一两三四成的业余时间搞一搞。要是盼望着在这个领域成就点什么,我觉得就要全力以赴,神挡杀神,佛阻弑佛,恩,就应该是这么个气场。
恩,在网上在论坛上搜索一下别人是怎么面对类似学习什么样的编程语言这样的问题的,还有另外一些别人是怎样建议这样的问题的,启发一下思路。然后在BAIDU上大概了解一下大家讨论的最多的几种编程语言是些什么FEATURES,看看它们的语句语法形式合不合自己的眼缘。哎,反正我就是想说就象找女朋友一样地拿出自己的直觉来感应一下各种编程语言留给自己的第一印象。^_^,还好,最后我感应来感应去,终于没有出现天涯无芳草的局面,觉得貌似除了汇编,就是C最适合我。
恩,到此,我选定了C语言作为自己的同步学习方向,虽然是有很多个人的主观原因掺杂在这个最后的结果里面,但是,不管在网上看评论的过程中,还是在BBS听大家讨论的印象里,又或者是在接下来自己冷静分析的情况下,我都认为编程语言有以下一些特征是值得特别关注的,尤其是对于象跟我想法差不多准备好好钻一钻牛角的朋友不应该忽视的这么几点:
1、 编程语言发展的两种趋势。
我不知道面向过程和面向对象的精确定义是什么,但是这是和程序打了N多年交道的前辈们留给我们的极其有价值的一种启示。它引导我们思考究竟什么是编程语言的发展方向,以及隐藏在这种大方向下面的现今程序世界的整体架构。更接近于底层的精确的实现和更接近于抽象的整体的考量也许就是我们苦苦找寻的能够引导自己学习方向的大局观。也就是说,大的方向不是一个,而是两个,但是是两个并不那么相互排斥甚至是殊途同归的方向。绝对的抽象需要稳定的实现,高效的代码离不开算法的精髓。不仅学习汇编这种“底层”语言绝对不会是鸡肋之举,而且在汇编基础上同步关注“高级”语言的走势也一定会有未来的潜在的价值。
2、 两种趋势中间的一点确定。
那既然编程语言高低两极的不断两极化是趋势,我们现在还要学什么“中级”的C呢?面向过程的“中级”C不如面向对象的“高级”++,面向过程的“中级”C不如面向机器的“底层”A,但这就能说成是两头不着调吗?当然不是。我觉得对于C给出的这种“中级”的分层恰恰说明了C语言必将是我们一个非常不错的选择。凭什么这么说?只是凭三个字,凭感觉。我觉得学C对于像我这类不愿意放弃底层汇编的PEOPLE来说比较稳妥些。我不清楚现在的“高级”语言到底进化到什么程度,这个光看网上的一些评论也感觉不出来。所以对于自己最好的选择就是选择自己能够感觉到的。汇编,这个“底层”语言的唯一继承者有助于我了解机器的运行机理,所以我学汇编。C,是经过长时间应用并且已经被大家认可的能够相对精准控制每一步运算实现过程而且又向“高级”语言有所进化的一种优秀的编程规范,所以我信赖C,C语言的这种从“底层”成长起来的苗子应该好好关注。反观现今的“高级”语言们,不论从语言本身的组织架构,还是在各自应用领域的各霸一方,都没有形成一个相对统一的规范模式,有更加“高级”化但是又相互制衡保持着相对分散的趋势。当然这一点不应该成为困扰我们在面对“高级”语言时应该作出的选择。有理由相信,就算是在未来一些年以后,“高级”语言也不会出现大一统,只能是相对集中在几个主要的方向并且不断发展。这从咱们人类自身进化也感觉得出来,现在世界上这么多国家这么些语言不是靠一个ENGLISH就能把大家通通从头洗牌的。事物的发展总是有它的具体的历史的和环境的因素来主导的。另一方面,“高级”语言的这种不断保持各自分支的趋势又反过来坚定了我们学习目前被划归为“中级”的C语言的决心。语言到了“高级”阶段无法形成象汇编和C一样的相对主流的规范的原因也许恰恰就是因为他们越来越开放地正面地面向了对象。现实世界作为其对象的多样性和复杂性注定了“高级”语言的作为多个分支存在的合理性。于是,在程序世界中的编程语言不断演化的这种趋势展现给我们这样一副图景:语言就是一种架构,它有时候就像一颗树,“汇编”也许是坚实的根,“C”之类的规范也许是强壮的干,然后是那高高在上散枝开叶又闪耀着无尽的阳光雨露的华丽的“高级”语言。各位前辈学长XDJM们,假如我们真的是曾经面对过并且还会继续面对着这样的一棵编程语言树,你觉得自己已经作出过并且还会作出些什么样的选择呢?
结语:本贴从四面八方全方位立体四派减一的角度来说都绝对是自说自话自娱自乐自问自答自我陶醉,没有任何对编程语言和程序架构和各位大牛们的权威挑战。当然,出于私心,本人也保留那唯一一个从自己内心角度萌发着的与这份帖子的一丝联系。我愿意相信这是产生于自己内心的愿意从底层从头来过的一份美好的愿望,希望自己以后能够做的比想的好。^_^。祝愿我们每一个人都可以一直追逐自己内心的那份可能的幸福。
- 标 题:学什么编程语言?汇编+C似乎是个不错的选择。(99%YY篇)
- 作 者:vshhw
- 时 间:2010-11-18 23:01:09
- 链 接:http://bbs.pediy.com/showthread.php?t=125062