看看有没有掌握C【转载】

以下是某前辈说的话,很久很久以前就看了,一直在机子里保存着。当是勉励自己。

———————————————————————————————————————————

我所说的掌握,是指已经视C、C++、Java、PHP等类似语法或者pascal这类完全不同语法的编程语言及相关软件为干活的工具,能够根据实际的需求,随心所欲的选择语言、工具、平台,进行独立或者协同开发,或者领导开发。

之所以要特别提到C,并不是因为C更优秀之类的理由。一个真正的程序员,是肯定了解CPU,了解OS的,ASM和C都是理当掌握的基础。学习是个枯燥的过程,对于不同基础,不同条件的人,花费的时间可能会有很大的差别。就我的感觉,没有三年的刻苦学习,就不会有牢固的基础。这一阶段,你不会有什么实质的成果,没有办法把知识拿出来向他人炫耀。如果你认为自己轻易就很“厉害”了,那只是说明了你的浮浅和无知。

之后,在实战中体会到了程序设计的艺术,丝毫不会被语法、库函数、算法、软件结构、设计模式等限制住之后,这时就应该开始考虑广度了。光被动的积累经验是不够的,主动的结合早先的理论知识来指导自己,会得到另一次巨大进步。这个时期,个人的意志,生活和工作环境都是至关重要的。当然最关键的还是主观能动性。经历了多次的成功和失败之后,你要么成为了高手,要么成为所谓老手(就此停止,从此走下坡路)。软件开发是一个不间断的学习过程,保持年轻的心态很重要,不能满足于自己的成功经验。

不要担心记忆力的下降,也不要担心不能面面俱到。那些能把任何语法,任何算法都牢记于心的,一般都是初学者。作为“掌握”了C的人,是不需要记住每一样东西的,你的目标肯定不是成为生物版的man手册。更实质的是驾驭语言工具,分析和解决实际问题的能力。如果你思考时会几乎忘了开发工具(当然,前提是已经选好了最适合的工具),那说明,你真正掌握了C。就像一个学英语的人,某天突然发现自己早已在用英语思考了,这样的境界,可称为掌握了。