首页 > 代码库 > 对程序猿的一些唠叨(转)

对程序猿的一些唠叨(转)

在编程这一行,我已经干了20多年了。至今为止,我也差不多写过六七门编程导论课程,教授时间总计超过1000小时。以下是我不止一次向我的学生强调过的,我多年来一系列智慧的结晶(排列顺序无特定含义)。

首先,欢迎你成为一个程序员。

编程真的很难。不管你是有多么地擅长编程,唯一能成为障碍的是大家自己学习和解决问题的能力。在这一行浸得越久,就越理解这个事实。这其实非常有意思——因为这样一来,我们就永远也不会原地踏步、满足于现状。如果你丧失了这种进取心,那么在出现异常之时,很容易对此厌倦,甚至最终放弃。

编程也是最令人沮丧的事情之一。一般而言,正常的编程体验是这样的:尝试、失败、更加用功、重新思考、灵机一动、最终奏效。在这过程中,会感到沮丧是很正常的,而且一旦我们这会成功了,就会想着去做更难的项目,然后这个沮丧感又挥之不去了。但是这会促使我们更加努力地去解决问题,得出一个圆满的答案。不过,在此之前,我们得自我调整,舒展自己愁云满布的心情。

再怎么复杂的问题,总会有解决方案。随着我们的编程能力增强,我们对自己将会更自信。这有利于我们及时调整各种负面情绪、更好地去解决那些难题(话说,如果太简单就丝毫没有挑战性了)。

当我们还是小孩子的时候,我们总是闯祸,但是随着年龄的增长,我们很少有机会真正办砸一件事情。请记住,编程不是一件每个人都能做的事情。所以,你很牛!

在编程过程中,第一个小时和第10个小时是不同的,第10个小时和第100个小时也大不一样。我记得有人曾在博客中描述高尔夫球这项运动到了第1万个小时,会产生质的变化,编程也是如此。

编程就像魔法,我们都是魔法师。你看,我们努力学习,专研我们的课程知识(计算机和网络),然后召唤我们的魔法(程序)。魔法师可以教授其他人如何施展魔法,而我们发明创造的充满奇幻色彩的设备却能让任何人都可以使用(如互联网和手机)。这些设备提供的各项功能,通通离不开我们程序员的技能。

有效利用网络资源。在你第一年学习编程的过程中所碰到的每一个问题,在你之前可能已经有100个人与它亲密接触过了,网上肯定会有各种解决方案星罗棋布。越快掌握如何有效网上搜索的技能,学习的进度就越快。警告:在你不知道某段代码的工作原理之前,不要轻易复制运用这些网络资源。

作为程序员,无论何时都不应该忘记我们的工具箱。这些工具是我们的左膀右臂。我们在这个领域学到的第一件事情(变量,循环等)就像螺丝刀和锤子。这些工具将伴随着我们遨游在这个世界的每一天。而且,随着我们经验的增长,还能与时俱进学习更高级的工具,这一类的工具虽然不是非常普及,但是更擅长解决一些特定的问题 (例如,二叉树数据结构、A*、Valgrind、调试器等)。大多数编程领域(游戏开发、Web开发、数据库)都有自己特有的一系列解决问题的模式。

程序因代码而生。在计算机上,我们可以享用其他人写出的方案,可以借鉴、可以修改、也可以编辑,随心所欲。

想要更加擅长编程,最好的方法就是写代码,写大量的代码。努力总会有收获。作为一名教育工作者,我将竭尽所能为大家提供一臂之力。但是,如果你已经掌握了充足的知识,那么只要有足够的时间,没有我也能发现问题的所在。古语有云,“坚持就是胜利”。所以,好好练习写代码吧,骚年。

同时,我们还需要阅读大量的代码。有很多程序员在这一领域比我们更如鱼得水,他们早就写下了很多可供参考的代码。三人行,必有我师。

有人说,第二门编程语言总是最难的,因为,第一门限制了我们思考程序的方式,而当我们需要学习另一种编程语言时,我们就不得不打破原有的秩序并重新建立一个。在学习第二语言之后,接下来要是再学其他新的编程语言就快多了。现在,我只要一周就能将任何一种给定的编程语言学的差不多。

永远不会有所谓最好的有些语言和工具会在解决某些问题上比较擅长。当我们学习其他语言的时候,不要试图用旧的端口去连接新的系统,要用新语言去思考和解决问题。

学会乐在其中。编程是一个汇集了很多问题的大集合,这些问题则需要我们一一解决。给自己找点乐子,可以写点自己感兴趣的程序,兴趣是最好的老师。

优秀的程序员永远不会满足于现状,总是不断学习。如果你能做到这一点,那么你永远也不必担心自己的饭碗。

出现疑难杂症时,可以试着将程序写到纸上。这不是开玩笑,这个窍门一般人我不告诉他。

最后,我想说,还有很多其他好的建议是我没有谈及的——但是,我想说,最好的建议是,我们得找到适合自己的。

希望各位都能开开心心编程,快快乐乐写代码

对程序猿的一些唠叨(转)