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