也许我们都不是天才的程序员,但至少我们都可以成为一个理想的程序员。

近几年总在互联网圈厮混,我认识过一些程序员,共事过一些程序员,领导过一些程序员,又面试过一些程序员。他们学历不同,有的来自北大,有的是博士,有的是高中毕业;资历也不同,有的来自 BAT,有的来自某破产基金公司(还是一个销售);年限也从 0 到 15 年不等。

我认为程序员只需分三类:天才的程序员、理想的程序员、普通的程序员。天才的程序员我只敢说接触过 1 个,这是天命。7 分由你是颗精子的时候就已决定,拥有绝佳的数学天赋、冷静致密的逻辑、为解决难题宁愿不眠不休而深以为乐的技术热情;3 分来自起步要早早早,恨不得同龄人玩泥巴的时候就得开始玩电脑,大学毕业前就突破一万小时法则,后面的已是游戏人生。

天才的程序员可遇不可求,更不可能常有,我看到的 90% 仍是普通的程序员。IT时代的膨胀,已让程序员如同文艺复兴时的印刷匠一样的多,多数投入祖师爷门下的人,仅是为了更大的饭碗,更高的待遇,更好的生计。

普通的程序员编写腐烂的代码,没有规范和一致性,固守旧世界的语言,还好谈论大的架构和性能,说的比做的漂亮。而毫无例外的,他们认定技术没有出路,做产品、营销和管理的是更高大上的手艺,而他们当中的 99%,又会自然的流露出自己恰巧具备了那方面的天赋,至于进程为什么会崩溃这样的小问题是不屑于去了解的。

而我最喜欢和理想的程序员相处,恨不得与他们同吃同住,如果允许,我希望我的队伍能插满他们的旗帜。

理想的程序员心眼儿不坏(他们从来都不是办公室政治的宠儿,是一群单纯明亮快乐的手艺人),有天真烂漫的好奇心(他们的眼睛里经常闪着「哇,这个是怎么做到的!」),永远精益求精(他们的口头禅是「我再研究一下」),还乐于分享(他们活跃于 GitHub、各大问答社区和你的身边,舍得将宝贵时间用于帮助新手)。是的,他们不需要被管理,只需要给一个大的方向,总能回报以意想不到的结果。

理想的程序员与普通的程序员只有一墙之隔。两者的差距只有 6 个一点点,而人与人的差距,正是在这日积月累的一点点中,被永远拉开了。

有意思的是,我发现这6个一点点都和意识有关,也就是程序员和其他一切新兴产业的工种一样,只需要意识加上时间的锤炼,人人皆可达到理想的阶段。理想的程序员必然也是一个优秀的 problem-solver,月薪3W简直不要太轻松。

第 1 个一点点:专注眼下

见过太多心猿意马的程序员,我不得不把「专注眼下」作为天字第一条。

他们往往有各式各样的小梦想,比如做个小茶农、做个小鹅贩、做产品、做销售、做投资,却被程序员的高薪或是没有转行的魄力「耽误」了,而因为不专注,他们不在意做好自己的本分,不在意锤炼自己的技能,不在意学习新兴的技术。

不可否认,这世界上存在着伟大的产品(像乔老爷)、伟大的销售(像埃里森)、伟大的投资客(像彼得菲),而他们毫无例外都是程序员出身。可你听说过巴菲特评价盖茨的话么,比尔盖茨如果转行去卖狗,那他一定是全世界最大的狗贩。

我坚信除了少数的天才外,冥冥众生均可以在多个领域取得成功,只要保持足够的专注。而哪怕你下一年就想卖狗去,程序员的经验仍然能训练你强大的逻辑、谨慎和耐心,放在哪个行业都是相当可观的竞争力。2

第 2 个一点点:思考力与推动力

我认为处理 bug、崩溃、调优、入侵等突发事件比编程本身更能体现普通程序员与理想程序员的差距。

当面对一个未知的问题时,如何定位复杂条件下的核心问题、如何抽丝剥茧地分析问题的潜在原因、如何排除干扰还原一个最小的可验证场景、如何抓住关键数据验证自己的猜测与实验,都是体现程序员思考力的最好场景。是的,在衡量理想程序员的标准上,思考力比经验更加重要。

有时候小伙伴跑过来,问我「提交了一个任务被卡住了,怎么办」的时候,我总觉得他可以做得更好。比如,可以检查试验别的任务,以排除代码自身的原因;可以通过 Web UI 检查异常(如果没有账号,可以让我提供);可以排查主机日志或删除缓存,再不济,总应该提供任务 ID 和控制台日志给我。

理想的程序员永远不会等事情前进,他们会用尽一切方法让事情前进。

第 3 个一点点:投资未来

程序员是一个非常残忍的职业。你所学所用的语言、框架、模式,很可能在数年内就成昨日黄花了;你现在嘲笑的另一群程序员,可能马上就能转身来嘲笑你了。所以理想的程序员除了做好自己的本分,还要花费时间来投资未来。

什么是「投资」?投资就是你现在投入的时间,在未来会以更多的时间或者金钱回报你。

举我自己的领域 — 数据挖掘为例,08 年左右 Hadoop 开始兴起,一时「大数据」概念火热,Hadoop 工程师万金难求,各互联网公司纷纷把数据统计、数据分析和数据挖掘的业务切换到分布式平台上。

这几年眼看 Hadoop 还在不断迭代,Spark 又异军突起,一举刷新了 Hadoop 保持的排序记录,以内存存储中间数据带来的性能优势和丰富的数据结构让人爱个不停,各种奇异的小 bug 和陡峭的学习曲线又让人打退堂鼓。

那么,明眼人都知道 Spark 是未来的趋势(内存会越来越便宜),在主业务放在 Hadoop 的条件下,就可以适当把一些小模块切换到 Spark 上,同时留意 Spark 社区的发展。很快从 Spark 获得的性能收益就能把之前投入的学习时间挣回来。

第4个一点点:管理时间

之所以管理时间会对程序员这个行当特别重要,是因为在完成任务时你必须像荒野里的狼一样,「独行」。没有外界约束的情况下还能稳定控制自己,保证能高效率地工作和学习,那么日积月累你肯定会变得比一般人厉害。

程序员干的是高强度的脑力活,一般每天集中 4-5 个小时应对本职工作就足够了,但工作之外,一定要安排时间用于学习。除了学习,留点时间放空自己也是必要的,利用泡茶或者喝咖啡的间隙,把弥足珍贵的时间留给自己,往前想往后想,事半功倍。

说了这么多,想必有人会问,费劲心思成为一个理想的程序员,又有什么用处?会有高薪吗?3W轻轻松松。能升职吗?薪资高了地位也会涨。迎娶白富美呢?这个看命吧。

稻盛和夫曾经说过一个故事,明治时期的手艺人被天皇召见,虽然都是不读书的乡下人,但一辈子兢兢业业地做一件事情,自然有一股高贵的气质。理想的程序员,应该就是循着这种高贵的气质而去的吧!

2018.12.12相约小牛学堂

为了感谢新老学员这么多年的信任和陪伴

双十二全民组团报名!

拉着你的小伙伴

让你0元学习小牛学堂任意课程

检验真兄(gui)弟(mi)

放肆来补刀!

                                                             小牛学堂,双十二“双”班开启

                                                 Java大数据精品班,Python人工智能精品班

火爆招生中...

扫码占座,0元入学报名活动开启~

活动报名地址:https://jinshuju.net/f/xWkAC8

月薪3w的程序员养成计划相关推荐

  1. (转)游戏程序员养成计划 (更新2010.11.6)

    游戏程序员养成计划 (更新2010.11.6) 原文地址:http://www.cnblogs.com/clayman/archive/2009/05/17/1459001.html#2241553 ...

  2. 游戏引擎程序员养成计划

    说的很好,和我走的道路有点不谋而合,文章中提到的书本我基本都知道,很多都看过或者浏览过,英雄所见略同?O(∩_∩)O~ 游戏引擎程序员养成计划 三维图形学:  搞三维图形学首先还是要扎扎实实的先看解析 ...

  3. Clayman 游戏程序员养成计划

    与玩游戏相比,写游戏要复杂上千万倍,除了需要掌握通用的编程技巧以外,还要有相当的图形学,物理,数学基础,特别是在国内,由于相关资料的缺乏,更是让初学者无从下手.下面总结了一些入门方法和比较容易入手的资 ...

  4. 游戏程序员养成计划 (更新2013.3.19)

    与玩游戏相比,写游戏要复杂上千万倍,除了需要掌握通用的编程技巧以外,还要有相当的图形学,物理,数学基础,特别是在国内,由于相关资料的缺乏,更是让初学者无从下手.下面总结了一些入门方法和比较容易入手的资 ...

  5. 【转】游戏程序员养成计划

    博客出处:www.cnblogs.com/clayman/archive/2009/05/17/1459001.html 作者:clayman 与玩游戏相比,写游戏要复杂上千万倍,除了需要掌握通用的编 ...

  6. 【程序小白养成计划】编程入门指北--编程小白常见问题QA

    一次随缘直播Q&A环节的记录以及学习编程一年多的个人思考(大佬勿喷,个人见解) 文章目录 一次随缘直播Q&A环节的记录以及学习编程一年多的个人思考(大佬勿喷,个人见解) "我 ...

  7. 【程序员养成之路】Java基础篇 8-流进流出的IO流(二)

    以下内容若有误,欢迎私信我或在下方留言,谢谢^_− 目录 IO流(二) 1.特殊操作流 1.1 标准流 1.2 打印流 1.3 对象序列化流 1.4 Properties 拓展1:比较字节流和字节缓冲 ...

  8. 月薪8K的程序员代码写成这样?网友:看不下去了

    现在IT互联网行业高速发展,对程序员的要求越来越高.「写代码」作为一种技能,入门并不是很难.但是要像高手那样优雅地「写好代码」并不是一件容易的事. 近日,某平台上出现这样一条帖子,一位网友发帖吐槽「一 ...

  9. 一位月薪8000的程序员写的代码,你们觉得值这个价吗?

    现在IT互联网行业高速发展,对程序员的要求越来越高.「写代码」作为一种技能,入门并不是很难.但是要像高手那样优雅地「写好代码」并不是一件容易的事. 近日,播妞在某平台上看到这样一条帖子,一位网友发帖吐 ...

最新文章

  1. sonar的次要问题_次要GC,主要GC与完整GC
  2. 升级 Impala(翻译)
  3. tableau必知必会之如何在Tableau server中实现工作薄的自动刷新
  4. C语言编程如何快速注释?
  5. JavaScript HTML DOM - 改变 HTML
  6. 泰克示波器查眼图_泰克示波器自带上位机软件功能介绍,了解一下
  7. G面经prepare: Straight Partition of A Deck of Cards
  8. Vue-在data中引入静态图片路径
  9. c++ using 前置声明_详解C++ 前置声明
  10. Redis学习总结(21)——Redis持久化是如何做的?RDB和AOF对比分析
  11. 成都Uber优步司机奖励政策(3月23日)
  12. 史上最全的并发编程学习目录
  13. installshield basic msi 更新时覆盖不了上一个版本文件解决方案1
  14. Instagram: 用Django服务30亿用户
  15. Python科学计算(一)
  16. 医疗卫生行业涉及的信息数据元属性与值域代码(数据集)
  17. 花与剑尚未获取服务器信息,花与剑澄心无忆攻略,触发条件及完成方式介绍
  18. 卸载ubuntu系统,恢复win10单系统【win10+Ubuntu20.04双系统】
  19. 2020年有寓意的领证日期_2020年领证日期怎么选
  20. 运放脉冲宽度放大_创鑫激光纳秒级脉冲激光器应用于精细焊接

热门文章

  1. linux查看桌面环境
  2. 前端---HTML设置透明度opacity
  3. 图扑软件数字孪生污水处理厂
  4. mysql5.7语句建库_MySQL 5.7 PREPARE、EXECUTE、DEALLOCATE语句介绍
  5. 基于Java的学生学费支付系统
  6. 树莓派搭建Blynk(国外开源物联网平台)+esp8266(airkiss)连接blink+esp8266获取温湿度获取心知天气,获取ntc时间通过u8g2库驱动ssd1306_oled9.6显示
  7. 陈老师深度为你解析,单片机的运行原理
  8. 【测控电路】微积分电路
  9. 安装MySQL 64_windows下安装mysql-8.0.18-winx64
  10. usb万能驱动win7_最新电脑为何不支持安装win7系统?原来秘密就藏在这里