2016-05-11

有追求优秀之心的程序员

Views: 11580 | 6 Comments

前几天我发了条微博, 说目前程序员群体出现太多质量差的个体的情况:

最近面了多个软件工程师,别看工作经验好几年,看起来好像能“干活”,但是竟然冒泡排序都不会写!这样的行业状况,一旦经济危机爆发,程序员群体估计要仆街。技术当然是成功的关键,但是经济状况出问题的话,行业的价值重估肯定让很多人痛苦不堪。

这条微博发出来, 很多人表示认同我的观点, 也有不少人表示反对. 反对者的理由无非是"工作几年了, 不必考虑算法和数据结构了吧? 谁还记得这些基础的死记硬背的东西?..."等等.

我之所以要在让面试者写冒泡排序, 是因为我有追求优秀之心, 同时, 我也根据实际, 不刻意难为面试者. 随着技术的发展, 程序员的门槛不断降低, 这是事物发展的正常规律, 我们也要与时俱进, 不能要求每一个程序员都要像早期程序员那样通过搭导线和打孔来编程. 但我们要随时保持优秀之心, 不能因为技术的发展导致许多连编程逻辑都不具备的人也进来做程序员就自惭形秽.

在强大的互联网需求面前, 程序员群体供给相对紧缺, 必然导致大量分不清程序变量名和字符串中的单词这种级别的人也能进入行业供职, 而且不要感到惊讶, 这样不具备基础素质的人也能完成某些安排的工作, 也就是"能干活", 不要不解, 不要悲哀, 这就是技术发展的魔力.

一个普通的程序员能按部就班地编程, 一步一步地完成业务逻辑. 一个优秀的程序员也能完成开发工作. 难道, 优秀和普通之间就没有区别了吗? 不是的!

普通程序员开发了软件, 业务一跑起来, 怎么商品库存超卖了? 库存也做了判断, 应该不会超卖, 怎么会超卖? 优秀的程序员做出了系统, 无论怎么苛刻的运行条件, 系统都按照设想的那样运行, 数据准确, 业务正确. 为什么? 可能只是因为优秀的程序员做业务抽象, 应用了一项非常普通的技术来保证核心业务模型的准确.

我的合伙人小张多次跟我说:"我们出来做懒投资, 还没做出产品来的时候就得到投资人的信任拿到千万投资, 没有几个人能做到, 我们认真做事, 出身高贵, 没有理由不感到优越!"

如果你是一个优秀的程序员, 你理解程序内在逻辑, 你能对业务进行逻辑抽象, 你了解多项技术并合理应用, 你不把自己当做一个仅"能干活"的码农, 你就已经超越了百万甚至千万的同类, 你还有什么理由不认为自己出身高贵, 必将得到更好的回报呢?

Related posts:

  1. Paxos vs Raft 的争论
  2. 蛇形遍历数组
  3. Linus又骂人stupid
  4. GDP和最低工资标准双双上涨, 程序员你的工资涨了吗?
  5. 你所不知道的腾讯和马化腾
Posted by ideawu at 2016-05-11 12:05:36

6 Responses to "有追求优秀之心的程序员"

  • 昨天阿里面试也被要求写冒泡排序,很郁闷,花了很久勉强写出来。
    不是说不会写,原理都还记得,而是说已经很久没有写过算法了,突然让写算法,尽管记得原理,但是面试的准备时间有限,而且是手写,难免会不适应。
    诚然,我觉得掌握这些东西非常重要,但是人的关注点有限,人脑也不是电脑,想切换就切换。
    这种面试,我总感觉,更加适合大一大二那种刚学完算法、数据结构学弟们;对于高年级、甚至工作好几年的人来说,提前不准备的话,很容易措手不及。
    没有别的意思,就是发发牢骚而已,无须认真。

    另外,想说说自己对这个行业的看法,只是个大三学生,说的不对,还请不吝赐教。
    随着互联网逐渐普及,编程语言也越来越“智能“,从难以阅读的机器码到可读。学习编程的难度越来越低,即使不是计算机专业,即使是个几岁的孩子,也会编程。不是说,计算机基础不重要。相反,随着计算机系统越来越复杂,要求也会越来越高。但这只是对于部分人而言。
    我认为,未来的计算机行业(随着人人会编程,可能行业的界限会逐渐模糊),总体而言会分为两种:钻研底层技术,负责提供平台等的提供者、利用已有的框架、平台、组建编写应用的应用者。对于前者而言,基础知识非常重要,知道的越多越好;而对于后一种而言,编程更像是搭积木,底层的东西,知道原理固然好,但是对于关注基础的东西,没有太大必要。 Reply
    @newnius: 那种“搭积木”的人叫软件实施,一般出现在ERP那一行,用公司做的底层给企业构建实际的信息系统基本不用写一行代码 Reply
    @xuya: 谢谢指教,学习了。 Reply
    @newnius: 阿里不要不重视基础知识的人, 更别说是还未毕业且不重视基础知识的人. 但"此处不留爷, 自有留爷处", 只要你"能干活", 一大堆IT公司需要你. 不过, 会理论结合实践的人, 当然比只会实践的人要优秀百倍, 这是毋庸置疑的. 你分析得头头是道, 不过实话告诉你, 没法将冒泡排序信手拈来的程序员就是普通的程序员, 但即使是一张卫生纸也有它的用处, 普通的程序员也能在优秀的程序员的安排和指导下参与系统的边边角角, 干干体力活. Reply
    @ideawu: 十分感谢您的教诲。我确实准备的不够充分,也不敢说自己优秀,可能自己期望过高了吧。 Reply
  • 确实不会写冒泡排序,会看 Reply

Leave a Comment