干了17年才明白:遇到一个代码写得好的同事,比涨薪还难
职场上能遇到程序员高手这种机会千载难逢肯定得把当做学习的榜样进而全面提升自我。如果你像我这种干了17年程序员了你会深深的知道能遇到一个高手是非常讲运气的。可能五六年七八年才能遇到一个。我之前写过一篇文章提到了好环境的重要性。而有高手的环境哪怕只有一个也是是一个好的环境。多少回了一些老同学或者一些认识的年轻程序员他们都会提到他们现在不走是因为团队里有一个高手。那跟高手接触有什么「具体」的好处呢? 我写2点你参考一下:第一点他做事的习惯。这点非常重要的同样一个问题高手的想法和做法完全是不一样的。我举一个我团队里一个专业程序员作为例子。当一个需求到来后他真的他想的都是未来或者说体系化的东西。他不随意就写代码想的非常清楚了才动手的。他永远想的都是写完代码后是一套的设计好的结构化的代码可扩展可维护别人无法轻易破坏他写的代码他经常说的一句话就是想好了再动手你想清楚了没? 不要想一点做一点。他永远都都希望东西交付后就稳定。一直在跑要改也是加一点代码就好了。这是真正的效率因为交付一个就是一个。三年到目前为止没有出现返工的情况。巨牛逼真的。这种才是真正的程序员职业化的程序员。跟这种程序员混在一起你会被影响到的时间久了你也会慢慢养成他那种习惯。一旦好的习惯养成了你离专业程序员也就越来越近了。第二点看他是如何用好代码实现需求的。他想的很细的比如说我看到最近写的一段用工厂类创建复杂对象的。你点入进去一看哦要调用多个服务拿到数据后才能组装成他要的业务对象。他就用工厂去实现且写了注释构建这个对象的过程比较复杂用工厂进行封装对外提供of方法和简易入参。简化构建过程屏蔽构建过程且支持复用。你看如果是一个随意的程序员那可能就是写一个大方法一顿调用。其实他的做法是专业的构建复杂对象就是可以用工厂。这个是工厂设计模式其中一个关键用途。不随意重设计是专业程序员应该具备的。他还有大量的代码都是非常专业的你在他的代码里看不到超级长的方法的都是各司其职的看起来四个字赏心悦目的。还不止。这种程序员的代码充满了「非功能性」的代码到处是异常处理降级处理告警处理。算是照顾的无微不至。读到这里你需要记住一句话高级程序员的其中一个特质他的代码充满了对「异常场景」的处理。请记住这句话。我上面举的是程序员的例子那非程序员的呢? 一样的跟高手接触学习他的思维习惯做事习惯做事方法论并武装自己。我自己十几年来也就遇到几个高手在他们身上学习到了很多很多的东西。别人一两句话有时候夸张点讲受益终身的。这就是我要说的。