同一个城市, 同一个行业, 同一个公司, 为什么有的程序员可以拿到 3 万的薪水, 而有的却只能拿到 3 千? 这里我们首先排除一系列的杂的东西, 比如裙带关系, 我们只谈能力和技术, 假设公司已经给到程序员能力匹配的薪水, 那么薪水高的程序员和薪水底的程序员, 在思维模式, 行为举止, 做事方式上到底差别在哪里呢?
image
代码和注释
看一个程序员的技术水平, 不用问他太多问题, 看下写的代码就知道了. 有些语言的代码, 比如像 Ruby 这种的, 一个新手的代码和一个老手的代码高低立判, 就像学钢琴的音乐生一样, 看他们的技术水平, 不用讲和声, 曲式, 现场来一段琶音就知道你水平了, 一样的道理. 不用说两个级别的程序员, 就是我们自己日常进步的飞快, 我们在项目里看到半年前自己写的代码, 都会很嫌弃:"这谁写的? 我? 不可能吧, 我怎么会写这么烂的代码? 好吧, 我当时到底怎么想的?" 除了代码以外, 另外一种就是注释, 注释是一个很好的编程习惯, 大部分程序员都很不注意这个问题, 相信所有的程序员一开始都很不喜欢写注释, 因为在程序员眼里, 代码就是语言, 语言就已经说明了他要讲什么内容, 没必要写注释, 还有一个原因就是写注释太麻烦, 浪费时间. 但注释, 真的很重要, 对一个项目来讲, 它不仅仅能让后来的人能看懂你这里写了什么, 最重要的是, 几个月过后, 它能让你也能看懂你当初在这个地方到底写了什么东西.
image
架构与扩展
绝大多数的项目中架构不支持太多扩展, 程序员在实际项目中也不会考虑太远的业务功能, 主要是时间问题, 以及需求被频繁修改的问题. 我们在不考虑时间和需求的情况下, 给程序员足够的开发时间和需求提取时间, 能力强和能力差的程序员在业务需求的提取深度, 架构对未来可预知的扩展上会有很大的不同. 这个问题如果按级别的话, 可能已经上升到软件设计师或架构师的级别了, 程序员就是做开发的, 架构师才去想那些, 这一点不假, 但别忘了, 架构师都是从程序员中来的, 在每一个项目中, 都把自己置于架构师的高度去思考这套系统应该怎么设计, 可以为可预知的未来预留足够的扩展接口, 而不是只顾解决眼前问题做代码搬运工或堆叠工.
image
业务与沟通
乔布斯有一句话:"用户永远都不知道他们自己想要什么, 除非我们把它展示在他们面前.". 程序员有个先天的劣势, 就是长时间与机器语言打交道, 与人类的沟通能力会大大的次于普通人, 机器语言的特殊性让长时间与之打交道的程序员变得比较 "木讷, 耿直, 死板", 这个是没办法的, 如果你看到一个程序员的逻辑思维状态和口才很像销售员的话, 那完了, 你别指望他能写出好系统来. 良好的沟通能力与业务熟悉程度, 是程序员在职场中非常必要的一种技能, 也是经常被程序员所忽略的. 没有业务, 不谈技术, 不得不承认以业务驱动的公司占大多数. 小编在毕业后, 被第一家公司的老板好一个说, 说我只想着研究技术, 应该多拿出点精力关注下业务, 经过这么多年沉淀, 算是开窍了, 在以业务为驱动的公司里, 尤其是创业公司里, 代码质量, 底层架构对整个公司的影响可能并不是那么太大, 很多时候, 我们只需要出个界面给投资人讲, 而现实中有很多融资之后做得很大的公司, 代码质量和技术沉淀并不是太好, 毕竟能活下来是创业公司的首要目标.
image
喜欢的话请帮忙转发一下能让更多有需要的人看到吧. 有些技术上的问题大家可以多探讨一下, 谢谢!
来源: http://www.jianshu.com/p/b255a368200f