|
优秀的程序员不会考虑『我要掌握几门语言』之类的问题的,而是『这个语言好像挺赞的,要不要学学看』,『这个语言是不是更适合完成这个工作』,有点类似于数量和质量的关系。
程序员的能力,不是靠他会几门语言来评判的,而是处理问题的态度,举个例子:对于一个计算 C 风格字符串长度的问题,一般的程序员会直接一个循环,找到 '\0' 的位置。这个算法看上去无懈可击,时间复杂度和空间复杂度上看都是极佳的。但是优秀的程序员会看得更深一点,会想是不是可以一次比较多个字节?事实上,确实可以,但是需要结合一些数学知识,实现方法此处略... 一般的程序员会觉得如果一次处理 4 个字节,速度可以提高 4 倍。但又只有优秀的程序员会想到 32 位的 CPU 上面,如果数据 4 字节对齐了,一次处理一个字长和分别处理 4 个字节的差别。
不过回到这个问题,要当优秀的程序员,精通一两门语言是必须的。把大把时间花在学习各种语言上面是种浪费,除非你本身要做的就是跟程序语言有关的工作。
|
|