如何成为专业程序员
2008-09-10 12:23:41
很多刚参加工作和学生立志成为让人羡慕的技术黑客、顶级程序员,但是往往不得门道,走很多弯路,花很多时间学习一些花哨没有实用价值或者是不切实际的技术。譬如,很多学生热衷于讨论异步IO、多线程和高并发程序的开发。没有数年的编程经验,对多线程、并发根本驾驭不了,很难写出具有商业使用价值的程序。当然我说的得排除天才。
对于如何成为顶级程序员,我觉得需要循序渐进,先掌握好以下基本技能才能达到目的。
1 语言
虽然有很多人对c++的理解不是那么充分,但是也能用c的结构和c++的语法写出很NB的程序。不能鄙视人家,但是我相信如果他能对c++理解得更充分一些,写出来的程序会更NB。
完全掌握了语言,应用自如后,写出的代码应该更健壮,除错的速度也会稍微快一些的。很多技术出身的飞快成为管理人员的似乎都是语言上稍微欠缺的高手。
曾今听某个汇编超级NB的人指着
delete this;
说:我闻到了坏味道了,这个代码肯定有问题。而实际这是一个很常用的惯用法。
2 编译器
不能把程序编译成需要的形式,如几个static library怎么都链接不成可执行程序。如程序为何拷贝到其他计算机上就不能运行了呢?可能很多程序员都遇到过。
能立即知道编译错误、警告产生的根源也能提高一些工作效率:更快的调试除错,把精力集中到逻辑应用上来。
我们曾经碰到一些程序产生 EXCEPTION_IN_PAGE_ERROR 异常,打开编译优化 Swap Run from Network 即可解决。
3 编辑器
见过用鼠标写程序的吗?说不定你就是。不管用什么编辑器都能写出程序来就太好了,但是似乎不现实,编辑器使用过程中能严重影响编码的心情。我喜欢用我熟悉的编辑器,并且还会定制很多快捷键来提高效率。
我喜欢用vc8的编辑器来写:c,js,html代码。emacs也不错,但是有些功能设置一直都没有找到。下图是我日常编辑器的一个截图,没有一个toolbar.
4 操作系统
系统调用!不调用系统API的程序的程序可能只能用来研究一些算法等,应该没有太大实用价值。之前我在写Windows程序时,总会开一个MSDN来查阅 WindowsAPI 及 TechNet。写 Windows程序没有什么难的,抱着 MSDN 啃几乎所有的答案都能找到,甚至比从网上搜索出来的解决方案更正确。实在找不到推荐去看微软泄露的203M的源代码包,如果还找不到,可以试试Google。对于 Linux 程序,APUE2 应该是一个不错的选择。微软对开发人员的禁锢是另外一个话题。
当然这只是成为能撰写商业程序的程序员应该掌握的基础部分,想成为高手还需要很多特质和磨练。