很多程序员都普遍性地认为他们的工作就是写代码,这是错误的。写代码不应该是一个程序员的全部。
程序员的职责应该是解决问题。
当然在解决问题的过程中,常常会涉及到代码,但是这一部分所占的比例非常小,更多的是构建一些有用的东西。
在构建软件的过程中,我们需要知道如何进行迭代。迭代能让我们对问题有一个更深入的理解,一步步一点点完善产品,话说,那种吹嘘自己能一蹴而就、一次性搞定的家伙统统是吹牛。迭代的过程中需要的是验证功能,而不是写代码。因为事实证明,写代码所耗费的成本是你不能承受之重。
此外,拥有一种能用于测试、评估和筛选 idea 的系统也是极其重要的,因为如果没有的话,团队里面所有的开发人员只会“各自为政”,将自己所有的精力投入到自己认为可行的方法上去,一条道走到底,不撞南墙不回头。
写到这儿,不知道各位程序员明白了没有?
上面这些事情虽然和写代码没啥多大关系,但是却是打造一个成功产品最重要的组成部分。然而,很多开发人员更关心的是,能否找到一个在内存中搜索二叉树的最佳时间复杂度的解决方案。
这自然是好的,但是却并不重要。本人,在软件行业已经有着 15 年工作经验,从不需要去翻阅类似《计算机编程艺术》一类的书籍,借鉴某些东西,一次也没有。
可不要误解我的意思——我从不否认算法和数据结构的重要性。只是,就算是世界上最完美无瑕的软件,如果没人用那就是浪费。掌握解决问题的技巧,学会构建迭代模型,善于团结协作,以及,写出更棒的代码,那才是一个开发人员的天职。而不仅仅是写代码。