从半夜撸代码的领导说起

早前看到这样一个朋友圈,为了避免拍马屁之嫌赞美和夸奖的话隐去不表,这里只想说说这样一条朋友圈引发的思考:我距离一个好的程序员还有多远?

不可否认的是当前国内的“码农”圈和国外的“码农”还是存在很大的差异的,记得《黑客与画家》一书中曾经描述他们对待写程序的态度--像创造艺术品一样的写代码。反观当前的圈内的状态,无非是赶工期发版本、看客户对特性、跑测试修bug,循环往复无穷无尽。整个圈子产品经理的特质越来越鲜明,程序员的特质反而成了少有的异类,我很喜欢用“软件工程”和“计算机科学”这两个词来区分两者。诚然,我写这篇文章不是想评判“软件工程”和“计算机科学”两者孰优孰劣,它们是马车的两个车轮,少任何一个都无法前行。我想表达的是对自己对技术的追求因为当下环境停滞不前的不满,也是对自己做的不够完善的反思。

先来品读开篇的那张截图,我想拎出几个让我很感兴趣的关键词:用户态文件系统、go 语言、接口实现的核心理念、云计算的开发运维模式、堆栈消失、指针模糊、调试工具、五星推荐。

  • “用户态文件系统”的实现信手拈来,可见其作为程序员功底的扎实,而我自己还无法做到信手拈来这般的洒脱和飘逸;
  • “go 语言”,一个 geek 永远不会止步于当前掌握的语言上,语言就像工具在适当的场合将会产生令人惊讶的效率,以前很排斥 Java 系列的我现在也慢慢转变开始学习,就是学的太慢了;
  • “接口实现的核心理念”,这是进阶的开发者需要掌握的技能,无论是 C 这样过程式接口实现还是像 C++ 这样的类和模版泛型都要掌握,目前刚刚起步要学的太多;
  • “云计算的开发运维模式”,紧跟技术热点,持续不断的学习,让自己的技术保持新鲜;
  • “五星推荐”,一个热爱技术的 geek 也是一个乐于分享的人,新的技术、新的设备、新的算法、新的实现方式、新的解决方式等等,无一不令他们激动地想让全世界知道;

刚工作的时候一位公司的前辈永哥曾经跟我讲,如果工作内容正好跟你的兴趣契合那将会是一件很美好的事情。刚开始的时候没有在意,后来才发现处于工作状态的你想做点自己感兴趣的事情是多么奢侈的一件事情。晚上偶尔的加班会让你回到家之后根本不愿意打开笔记本沉浸到自己的兴趣当中,因为你还有家人朋友,一天工作之后你需要时间跟他们交流维系感情,用24小时中不多的部分用心经营自己的人际关系,毕竟作为一个正常的社会人不能因为自己的好恶而让自己与周围的一切格格不入。

真正想做好一件事情,出发点要很纯粹,这样才能做深,也只有做深,才能真正做到不一样。很多评论文章里会提到个观点,叫「产品的细节决定了产品的成败」,很多人自己不做产品,听着觉得好像有点道理,就到处传播这种观点。我觉得这就是典型的胡扯。细节根本不会决定产品的成败,甚至很多成功产品在早期的时候产品体验和各种细节都是一塌糊涂。准确来讲,是深度决定了产品的成败。包括了技术的深度、对行业对客户理解的深度等等。这些东西最后可能有一小部分会反应在一些产品细节上,但细节永远只是表面功夫,真正重要的是对细节背后的理解。人云亦云之害亦在于此。
——道哥

据说道哥是一个性格比较锋利的人,这样的性格很容易伤到人,但是道哥自己说“会不会得罪人永远不是我优先考虑的,因为根本没有时间去顾及别人是不是开心,时间紧迫,要做的事情却很多、很难。”,谁不喜欢处事圆滑、八面玲珑的人,但是当你有更重要的事情要去做的时候,这些就已经不重要了。所以,想做一个好的程序员出发点要很纯粹:写出对别人有价值的代码。作为一个好的程序员基础夯得扎扎实实,不断的进阶学习提高,紧随技术潮流,好奇和乐于接受一切新事物。反观我自己基础都没有夯实,就已经有了懈怠之心实在是可悲!所以我想应该对自己立下几条规矩:

  • 无论是工作上,自己的学习提升上,技术相关的内容都得问自己一句“还有哪里不清楚,能不能再深入一点,能不能再好一点?”
  • 设定自己感兴趣的专业领域和专业期望, 自己的专业领域应该是上宽长,下窄深
  • 脚踏实地的成为一个真正有价值的人要比八面玲珑、野心勃勃的人好得多,这样不太容易跌倒
  • Follow excellent, and success will chase you