Skip to content

四火的唠叨

一个纯正程序员的啰嗦

Menu
  • 所有文章
  • About Me
  • 关于四火
  • 旅行映像
  • 独立游戏
  • 资源链接
Menu

“ 你不适合做程序员”

Posted on 03/21/201210/01/2024 by 四火

1 我的一位同事,他带他读小学的孩子去学钢琴,通过关系找了一位有点名气的退休的老教师,学费不菲。他说其实他并不知道为什么要学,但是看到那么多孩子都在学钢琴,他想,他的孩子不能落后。一个月之后,他去问钢琴老师,对孩子的学习有什么建议没有。钢琴老师用尽了委婉的表达,最后说:

“ 对于你的孩子在学音乐方面,我最大的建议,就是你的孩子最好别学音乐”。

什么?!

这位同事听了当然恼怒,但是转念一想,老师未尝不是负责任的。通常这样的老师,赚钱之心,都会忽悠家长,或者好话歹说,很少有说“ 不” 的。但是真话就是这么犀利。

他说:“ 我们平时并不容易听到真话,真话来临的时候,心里还真是‘ 咯噔’ 一下”。

 

世界就是这么残酷,老天给了不同的人不同的能力和智慧,世界上许许多多不同的事都需要不同的才学和特质,试着去寻找适合自己的方向,这无关乎你有多努力。这是一个简单的道理,语言可以说得冠冕堂皇,可是事实就是这一个:

“ 如果你没有这方面的天赋,你最好别干这事”。

 

放到程序员身上,亦然。

 

哪些人不适合做程序员?

  • “ 我不懂网络、不会操作系统、没听说过 Java……”,没关系,这些具体的技术都可以学。
  • “ 我记忆力差,数据库认证考试不及格……”,没关系,记忆力差的人只能记住深刻的、精华的东西,而且自己的想法会更多;至于认证考试…… 其实我们都知道那种考试有多么浪费生命。
  • “ 我 30 岁才开始写代码,同事说的我都没听说过……”,还是没关系,你知道的太少而已,少工作,多上网,了解更多的行业信息;积累你的经历,总结你的故事,你就能知道得更多。
  • “ 我没听过什么是软件……”,好吧,我承认,这是唯一一个例外的,你是从别的世纪穿越过来的人吗?

 

不是这些,那么,到底哪些人不适合做程序员?

 

下面这些话,是我眼中程序员必备的衡量标准,遗憾的是,这些都很难通过勤奋来弥补。现在,聪明的你,不妨参考一下自己,也许现在想明白什么才是适合自己的事情,比到三十年以后再后悔起来,要有意义得多。尤其当你发现其中某一条,触及你心中的痛处了,那么,你真的要好好想想了。

 

如果你的思维缺乏条理性、逻辑性,那么,你绝对不要尝试去做程序员。

 

我不知道还有什么比这条特质更能体现对程序员的要求了。有的人理性思维不强大,但是感情细胞异常丰富,也许你能成为艺术家、诗人,但是程序员,一个缺乏逻辑的程序员,你能期望他干什么?

 

这一条是我唯一不想做任何解释的。 :)

 

如果你对事物没有思考的习惯和耐心,那么,你别去做程序员。

 

首先,不妨阅读一下这篇文章(链接),里面提出了 N 个身边的现象,每个现象都伴随着几个问题,小小地思考一下。

其次,如果你没有耐心阅读它的话,思考一个我从中随便摘出来的一个问题:

许多年前,当我看到珊瑚虫 QQ 把 IP 转成地实际地址的时候,我就在思考,如果我有一个 IP 网段的数据(全球 IP 地址数据),我怎么来完成这个功能呢?比如:某地点的 IP 网段是:10.10.1.* – 10.10.5.*。我要有一个 IP 地址是:10.10.3.20,我怎么匹配这个网段?用 Hash 表吗?好像有问题。把 IP 字串转成整型?排序+二分法,好像更容易解决一些,但是如果有一些修改的话好像有点不方便。用树型结构(森林)会不会更好一些呢?如果我要通过地点反查 IP 段呢?

 

我本来想给出另一个例子的,但是上面这个例子在这里更合适,我就保留了下来。

好,现在从你的思考回到本文中来。

 

如果你阅读了上面文章的链接,并且考虑了其中的某几个问题,至少说明你是有阅读和思考耐心的。

如果你没有阅读链接里的文章,但是思考了上面引用的问题,那么,这方面,你也还好。

如果你直接跳过它,阅读到此了,是你太忙了吧?太不经意了吧?还是…… 尽管你不愿意承认,其实是没有思考的耐心和习惯呢?

 

还有一个活生生的例子,以前有位同事和我抱怨,每天都要做一件事情,就是把报表数据录入 excel 中去,然后每周会给领导提供一次数据报告。但是每天录入数据的工作很枯燥,就是从网页上把一项项数据拷贝出来,粘贴到 excel 中,每天都要花十分钟的时间,每次虽然时间不长,但是日日如此,很枯燥。就这样,他在抱怨中做这个工作做了有半年之久。

 

看到这里,你想到了什么?

 

是的,为什么不做一个“ 懒惰” 的程序员,为什么不写一个脚本之类的小程序去做这件事呢?

 

本质上,这依然是那个不愿意思考的问题,我没法评论其他行业对于思考的要求,但是程序员所解决的问题,都是不一样的,有的可以借鉴,有的可以模仿,但是你不能完完整整地抄袭整个问题解决的办法,总有很多问题需要用你的脑子去解决。

 

最后,看看这篇文章和其中的视频,关于码农和程序员,我想,之后你会有一点想法的。

 

如果你对新技术不感兴趣,那么,你还是不要去做程序员。

 

有的人会对新技术有一种排斥感,觉得“ 我学好 C 语言、操作系统和网络这些基础科目,把基础打扎实就够了,不需要接触那么多新技术”,并且往往认定新事物未必有什么新花样,万变不离其宗,没有什么的学习价值。

我认识的人中,抱着这样看法的人其实有很多,有些人甚至已经写了十几年代码。但是软件行业是更新换代速度极其频繁的行业,“ 万变不离其宗” 是有其中道理的,但是“ 没有学习价值” 只是逃避新事物的托辞罢了。

 

这样的情形有这么一种典型现象,觉得没有必要学习多种编程语言,因为“ 深入地掌握一两种语言就够了,语言都是相通的”。

很明显,这样说的人没有看到那些“ 不通” 的地方,那些足以改变你视角和思维方式的地方。

再了解了解你心目中成功的程序员,我想这些人中,尚在做技术的程序员,无论到了哪一个层次,几乎都关注着互联网和开源社区。

 

如果你耐不住寂寞,那么,你可能不应该去做程序员。

 

你不需要非得在半夜里编码,你不需要非得穿奇异的衣服、做 Geek 的事情,你甚至不需要很辛苦地工作,但是,如果你“ 只想和大家一起讨论、一起研究”,而不愿意自己学习、自己写代码的话,你还是别做程序员了。

 

程序员不是一个孤独的工作,沟通能力是几乎每一个行业必备的技能,但是,你会有很多很多的时间自己学习、思考问题,上网搜索,写代码、测试、部署…… 甚至包括等待程序响应,分析程序崩溃的原因。

程序员需要独立解决问题,程序员解决问题不是民主选举。世界上绝大部分优秀的系统的绝大部分,总是由很少的人设计出来的。

总想把困难的问题留给和大家一起解决的人,往往存在一种依赖感,以及一定程度的不自信,你说是不是?

 

如果你只想把问题解决,特别不愿意寻根究底、精益求精,你大概不适合做程序员。

 

没有比这篇文章更可以说明“ 寻根究底” 这四个字了,但是这四个字其实和本文中提到的第一点本质是相同的,故不赘述。

 

有的人不愿意做测试,问他为什么,他说,“ 我喜欢创造一个东西,但是我讨厌去验证一个东西的正确性”。这样的人写不优秀的代码,因为他不会不断去追求高质量和更理想、更美的代码,更优秀的产品,他只适合做一个短期的项目,这样的项目很可能在不久后就变成一个烂摊子,当然,他可不愿意收拾烂摊子。

 

测试,无论是测试设计还是测试执行,很大程度上都是程序员工作的一部分。优秀的程序员总是能把程序写的容易测试,总是可以设计出好的测试方案。如果你讨厌测试,我希望你只是因为讨厌那些重复劳动—— 同时,停止抱怨,不如想个办法解决它吧。

 

许多 Geek 的心理有那么一点异于常人,如果你对于界面上几个像素的偏差都感到难以接受,如果你对维护自己的代码细致到格式、命名等方方面面的细节,说不定你就是那个能成为“ 极致” 的程序员。

 

如果你接受了我的观点,发现自己就是个程序员的料,那么恭喜你,祝你成为令人尊敬的同行;如果你发现自己实在不适合做程序员,那么还是恭喜你,尽管抱怨和咒骂程序员的工作吧,事实上,那的确真不是什么好差事,而且,真相越早看到,就越不那么残酷,不是吗? :)

 

文章未经特殊标明皆为本人原创,未经许可不得用于任何商业用途,转载请保持完整性并注明来源链接 《四火的唠叨》

×Scan to share with WeChat

你可能也喜欢看:

  1. 倔强的程序员
  2. 致那些自嘲码农的苦逼程序员
  3. 多吹牛,少写代码
  4. 多面手程序员
  5. 关于国内程序员到美国工作

18 thoughts on ““ 你不适合做程序员””

  1. Anonymous says:
    04/07/2024 at 12:24 AM

    满分作文级别的文章,唯有仰慕,厉害厉害。

    Reply
  2. 路过 says:
    09/30/2018 at 4:39 PM

    写的很好,中枪了感觉,可能现在刚进入工作吧,遇到 bug 之类的总想依赖别人,“ 但是,你会有很多很多的时间自己学习、思考问题,上网搜索,写代码、测试、部署…… 甚至包括等待程序响应,分析程序崩溃的原因 。”
    很对唉

    Reply
  3. Imzonglei says:
    05/01/2018 at 9:01 PM

    你好,这篇文章的最后一个链接” 这篇文章” 挂了,还能找到吗?

    Reply
    1. Anonymous says:
      05/05/2018 at 12:16 AM

      不好意思,我只记得是一篇讲问题定位来龙去脉的文章,标题不记得了。

      Reply
  4. Sinbo says:
    02/24/2015 at 5:38 AM

    没有比这篇文章更可以说明“ 寻根究底” 这四个字了 这篇文章链接失效了, 可否提供下文章名字我好去搜,谢谢四火

    Reply
    1. Anonymous says:
      02/24/2015 at 9:58 AM

      http://hi.baidu.com/imedal/item/33641d33cb9ec8179cc65e89 这个可以访问啊

      Reply
      1. Anonymous says:
        02/24/2015 at 9:59 AM

        那篇文章题目叫做《
        一个诡异的时间问题追查
        》

        Reply
  5. lct says:
    12/13/2014 at 7:56 AM

    我没有上面所说的特点, 但是能否后天培养那?
     

    Reply
  6. zy1204 says:
    04/26/2014 at 6:01 PM

    博主,我是个大一学生,专业不是计算机,但是对这些非常感兴趣,想学习,但是不知道按照什么顺序来学,能指导下嘛

    Reply
  7. 邓码农 says:
    12/30/2012 at 3:51 PM

    做了多年的程序员,发现我不适合做程序员…… 看来要改变了!

    Reply
  8. 甄码农 says:
    11/22/2012 at 5:51 PM

    如果你只想把问题解决,特别不愿意寻根究底、精益求精,你大概不适合做程序员。
    被电了,很多时候我不得不去解决问题,而没有时间去寻根究底。

    Reply
  9. niva says:
    11/03/2012 at 12:13 PM

    有点偏颇了吧,我觉得除第一点外,其他的不一定,程序员也不是固定一种类型,有的喜欢钻研细节,有点喜欢追求效率,有的喜欢玩新花样,有的喜欢架构组织,有的喜欢单打独斗,有的喜欢拉帮结盟,不同性格、不同智商、情商的人都有他所擅长的一面,不能一概而论吧,只要做到认真投入,坚持一段时间,都会有所成的。

    Reply
    1. 四火 says:
      11/03/2012 at 1:51 PM

      每个人都有自己的标准。在我看来,文中的这几点机会都是必要的。

      就像我说“ 架构师” 必须首先是个高级程序员一样,很多人反驳我说:“XXX 架构师就不懂技术,但是人家业务熟啊”、“XXX 架构师自己不写代码,但是他能找到最合适的人来写代码”…… 一样,我对程序员认识有几个必要条件的标准,就是文中所述。达不到的人,当然也能成为程序员,但是不会成为一个特别优秀的程序员。:)

      Reply
      1. 北京-px says:
        08/14/2013 at 10:49 AM

         
        优秀的程序员能干几年呢,接触过多个项目的人都是知道,为什么到了一定年龄的程序员,
        大多数都要转做架构师、项目经理、甚至是其他的转型呢,
        难道说坚守 code 阵地到最后的 coder 不为好的程序员吗。
        我觉得,态度决定一切,因为当前的 code 不能实现全面自动化,全是手工劳作,人月神话主要也是
        如何管理人能创造更大价值,在这个技术日新月异,既追求开发效率,有追求最少投入成本,而又基本上纯手工劳动的行业,
        任何对于从业者的要求都要审时度势来判断。
         

        Reply
    2. 沧海 says:
      11/15/2013 at 4:43 PM

      一个干了 6 年的人一点体会,耐不住寂寞的人肯定不是一个好程序员

      Reply
    3. digiter says:
      01/03/2014 at 3:29 PM

      赞成,除第一点外,每个人应该结合自己的特点去发挥特长

      Reply
  10. the5fire says:
    10/17/2012 at 1:52 PM

    不错的文章,看来我还是挺适合做程序员的

    Reply
  11. freeweb says:
    07/30/2012 at 8:44 AM

    很收益. 我也是做程序员的料. 正在做自己喜欢的事情.

    Reply

Leave a Reply to lct Cancel reply

Your email address will not be published. Required fields are marked *

订阅·联系

四火,啰嗦的程序员一枚,现居西雅图

Amazon Google Groovy Hadoop Haskell Java JavaScript LeetCode Oracle Spark 互联网 亚马逊 前端 华为 历史 同步 团队 图解笔记 基础设施 工作 工作流 工具 工程师 应用系统 异步 微博 思考 技术 数据库 曼联 测试 生活 眼界 程序员 管理 系统设计 缓存 编程范型 美股 英语 西雅图 设计 问题 面向对象 面试

分类

  • Algorithm and Data Structure (30)
  • Concurrency and Asynchronization (6)
  • System Architecture and Design (43)
  • Distributed System (18)
  • Tools Frameworks and Libs (13)
  • Storage and Data Access (8)
  • Front-end Development (33)
  • Programming Languages and Paradigms (55)
  • Testing and Quality Assurance (4)
  • Network and Communication (6)
  • Authentication and Authorization (6)
  • Automation and Operation Excellence (13)
  • Machine Learning and Artificial Intelligence (6)
  • Product Design (7)
  • Hiring and Interviews (14)
  • Project and Team Management (14)
  • Engineering Culture (17)
  • Critical Thinking (25)
  • Career Growth (57)
  • Life Experience and Thoughts (45)

推荐文章

  • 谈谈分布式锁
  • 常见分布式系统设计图解(汇总)
  • 系统设计中的快速估算技巧
  • 从链表存在环的问题说起
  • 技术面试中,什么样的问题才是好问题?
  • 从物理时钟到逻辑时钟
  • 近期面试观摩的一些思考
  • RSA 背后的算法
  • 谈谈 Ops(汇总 + 最终篇):工具和实践
  • 不要让业务牵着鼻子走
  • 倔强的程序员
  • 谈谈微信的信息流
  • 评审的艺术——谈谈现实中的代码评审
  • Blog 安全问题小记
  • 求第 K 个数的问题
  • 一些前端框架的比较(下)——Ember.js 和 React
  • 一些前端框架的比较(上)——GWT、AngularJS 和 Backbone.js
  • 工作流系统的设计
  • Spark 的性能调优
  • “残酷” 的事实
  • 七年工作,几个故事
  • 从 Java 和 JavaScript 来学习 Haskell 和 Groovy(汇总)
  • 一道随机数题目的求解
  • 层次
  • Dynamo 的实现技术和去中心化
  • 也谈谈全栈工程师
  • 多重继承的演变
  • 编程范型:工具的选择
  • GWT 初体验
  • java.util.concurrent 并发包诸类概览
  • 从 DCL 的对象安全发布谈起
  • 不同团队的困惑
  • 不适合 Hadoop 解决的问题
  • 留心那些潜在的系统设计问题
  • 再谈大楼扔鸡蛋的问题
  • 几种华丽无比的开发方式
  • 我眼中的工程师文化
  • 观点的碰撞
  • 谈谈盗版软件问题
  • 对几个软件开发传统观点的质疑和反驳
  • MVC 框架的映射和解耦
  • 编程的未来
  • DAO 的演进
  • 致那些自嘲码农的苦逼程序员
  • Java 多线程发展简史
  • 珍爱生命,远离微博
  • 网站性能优化的三重境界
  • OSCache 框架源码解析
  • “ 你不适合做程序员”
  • 画圆画方的故事

近期评论

  • panshenlian.com on 初涉 ML Workflow 系统:Kubeflow Pipelines、Flyte 和 Metaflow
  • panzhixiang on 关于近期求职的近况和思考
  • Anonymous on 闲聊投资:亲自体验和护城河
  • 四火 on 关于近期求职的近况和思考
  • YC on 关于近期求职的近况和思考
  • mafulong on 常见分布式基础设施系统设计图解(四):分布式工作流系统
  • 四火 on 常见分布式基础设施系统设计图解(八):分布式键值存储系统
  • Anonymous on 我裸辞了
  • https://umlcn.com on 资源链接
  • Anonymous on 我裸辞了
© 2025 四火的唠叨 | Powered by Minimalist Blog WordPress Theme
Menu
  • 所有文章
  • About Me
  • 关于四火
  • 旅行映像
  • 独立游戏
  • 资源链接