西西河

主题:【原创】编程心得 -- 荆棘探兴

共:💬198 🌺258 新:
分页树展主题 · 全看
/ 14
下页 末页
  • 家园 【原创】编程心得

    标题党一次。

    if(您欲退出)

    {

    请献花;

    return;

    }

    else

    {

    continue;

    }

    心得谈不上,只是一点总结,抛个砖。

    很多人描写程序员的生活是“起得比鸡早,睡得比妓晚,干得比驴累…”,我觉得有点过,但干这行还是比较幸苦的。加班、通宵的频率比较高,年轻人扎堆的地方,有时候就是拼身体、比体力。技术、软件更新比较快,总的学习新的东西,新的技术,这还不算痛苦,最无聊烦人的事情是读别人的代码,运气不好点,如读天书一般。除了这些,竞争压力还会时常眷顾你。

    所以,如果没有对编程有极大的兴趣,干不了多久就会度日如年。如果不感兴趣,应该赶紧转行。有个感兴趣的工作,是人的福分;如果再有个看着舒服、和你过日子的老婆,作为一个普通人,这辈子就算幸福了,该知足了。不过,包办婚姻也有美满的,兴趣是可以培养的。

    说来好玄,第一门计算机语言课程FORTRAN差点把我的那点编程兴趣给砸了。FORTRAN语言是工程计算语言, 那时候,还以为编程就是把计算公式写成程序就完事了。最可气的是,很多上C语言课程的人骂人傻就用“FORTRAN”,不过后来我们也如此用了。还是C语言好,下可以操作硬件,上可以很容易学习c++,c#这些面向对象语言,进退自如,还很通用。C语言堪比武器中的AK47, 实在是程序员的最爱。

    清华大学唐浩强的《C语言程序设计》是学习C语言的一本好书,另外还有一本林锐的《高质量C/C++编程指南》。把这两本书学通了,C语言的基本功就算打好了。以后就靠自己在编程实践中历练了。

    偶以为编程最重要的是你的思维、你解决问题的方法。当然掌握更多的工具,精通更多的语言多多益善,技多不压人。大牛一定要博学,博学不一定就能成为大牛。有些解决问题的算法、设计的思想很多是看书学不到的,需要实践,需要悟性。同样的时间,同样的环境,有的人总能比你更快、更好的解决一些问题,这才是最难的。

    不过,有好的编程基础,只要不是太死板,混程序员这口饭吃我觉得够用了。新员工总呈慌呈恐,以为老员工都是牛人,其实牛人没那么多,也就那么几个。老员工也没必要太狂妄,牛人都是很谦虚的。平静很重要,“思想如同水, 当水波摇曳时, 很难看清, 不过当它平静下来, 答案就清澈见底了。”

    刚开始工作的时候,晚上总睡不着,白天编程的一些问题总困扰我,现在这种情况基本没了。我现在一个同事,做程序员这么多年了,依然会因为白天的编程问题而晚上失眠,典型的强迫症后期。“ 多大点事啊,还以为是抢鸡蛋呢!”。这些心智方面的磨练,可能是各行各业都会遇到的。

    曾遇到过一个编程问题,怎么也看不出代码有错误的地方。查了好多书,都找不出问题所在,后来在一本不起眼的书上看到有不同的方法才把问题解决。很多编书者自己没有编译调试就把程序写在书里出版,实在是误人子弟。好几个同学在校就参加过编写计算机方面的书,所以,现在我不怎么相信书了,别人的成功的编程实例、相关的代码是最好的书。

    程序不可能没有问题,知道问题所在怎么也能解决,怕就怕不知道问题出在哪里。俺用的最多定位问题的方法是二分法,是硬件问题,还是软件问题;是底层软件问题,还是上层软件问题?这时候,断点或者printf是最好的朋友。仔细想想,printf是用的最多的一个函数了。

    如果怎么也找不到问题,不妨放几天,事缓则圆,几天后说不定会“幕然回首,那人却在灯火阑珊处” 。

    如果还找不出问题所在来,那可能是自己思维定势,自己发现不了问题。这时候换个人帮你看看,也许一下就发觉了,所谓当局者迷。

    还有一种可能是环境的问题,以前遇到一个问题在上海能发现,但在北京就没问题,苦无良策。最后不得不跑到上海,下飞机在宾馆就把问题解决了,接下来的两天公费犒劳了自己一下。问题原因就是上海与北京的环境不一样,程序走的路线不同。如果还在北京死啃,只有空悲切了。

    写到此,回头再看一遍,所谓的编程心得好像和编程有点距离…

    关键词(Tags): #编程#心得
    • 家园 凑个热闹

      很久没写code了,凑个热闹瞎聊聊。以前用过汇编,然后C,接触Java后学习面向对象的思维,再学习C++。有个挺深的感触,或者说是窍门:不管是什么语言,都要做到弄明白自己写的东西在内存里面是什么样子的,才可以说掌握了初步的技能。

      打好了语言的基础,解决了工具的问题,下一步就是弄明白技术范围(domain),了解工具所服务的对象,否则最多也就是做个匠人,做做重复的工作。讲个笑话,如果夸一个工作了两三年的语言大牛,那是夸人;如果夸一个工作了五年以上的是个语言大牛,那就是骂人了 :-)

      而只有在不断地利用工具解决问题中提炼出了符合自己思维模式的工作方式(methdology)以及直觉(敏锐性),才能说已经是个入门的程序员了。

      入门之后的造化分两种,一种跟天赋密切相关的,走技术深度路线,说到底就是个数学问题。另一种应用导向,靠服务打天下。

      所谓的大牛,并不一定智商最高。接触多了,才发现那些大神,可能只是身体好性格稳兴趣高,所以花时间解决过比别人多几倍的问题,从而敏锐性大大超过他人而已。

      而专家,在起步的时候,可能只比余者多了解那么一点点东西,然后被逼着捧着一不小心就成了专家。

      (乱七八糟的敲了一通,发现真是没营养的瞎聊,打住。。。)

      • 家园 说得不错

        虽然我还没那个境界

        以前只觉得语言就是用的工具,后来学<<编程语言>>,才知道程序可以那么写...

        最喜欢<<The C Programming Language>>,简洁流畅,酷毙了.

      • 家园 说的很实在
    • 家园 遇到的unknown problem

      编程最烦的莫过于编译通不过,却怎么也找不到错误了吧。

      学VHDL,从书上抄了一个可复位的D触发器的程序。maxplus2愣是通不过,给出的错误提示是:unknown problem.

      这可真是让人郁闷了,一群人凑一起,看不到20行的程序一节课,没找到错误。喊老师来,琢磨到下课,也还是没找到错误。

      唉~心情那个郁闷啊~

    • 家园 说到编程,除了C++和java,最新的热门语言会是什么?

      go?Ruby?python虽然成熟些但太脚本化了。。。。

      • 家园 Objective-C

        托了iPhone的福……升势迅猛,进入前十。我也在学。语法有点怪呀。

        • 家园 习惯了就好了

          我觉得很好用啊。。

          就是那个半自动化的内存管理比较脑残

      • 家园 最新编程语言排名

        前二十名编程语言排名如下:

        点看全图

        外链图片需谨慎,可能会被源头改

        主要语言的长期变化趋势图如下

        点看全图

        外链图片需谨慎,可能会被源头改

        其实语言并不重要,关键是编程思想。

        • 家园 C#排第五了

          最近用C#做一个项目,现学的。如果不涉及到算法优化的话,实在是做应用逻辑的利器。语言本身设计得非常周到。我都怀疑我做完了能不能回头再适应C了。

          缺点也有。最大的缺点当然是它是微软的。MONO好像影响力始终不大。另外和C/C++库的接口是个巨大的恶梦(相对于C#本身的方便而言,要是相对于C/C++,不算什么)。有哪位了解Java的JNI的,有这个问题吗?

          • 家园 C#的原罪就是他是MS系的

            MS自己闭门造车,把C#越弄越复杂了,前景堪忧。好在现在Orcale正在大肆折腾Java,颇有自断手足的意思,

          • 家园 JNI显然是个噩梦

分页树展主题 · 全看
/ 14
下页 末页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河