zoukankan      html  css  js  c++  java
  • 高级工程师和初级工程师之间的一道坎

    毕业几年,在很多事情上磕磕碰碰,最后还是走着普通工程师的道路。

    一般的三年升高级的坎,也是遇到了,什么样的工程师可以作为一个高级工程师。

    这里的高级工程师指的是真的写代码的工程师,而不是所谓的管理岗,当然带初级工程师还是必要的。

    一、能力

    能力上不去,这个说不过去。能力这个我总结了一下,一共分为几个方面的能力:

    1、知识体系化

    基础知识要成体系化,这也是我近期比较喜欢的一种学习方式,体系化学习。

    这样的知识体系会比较牢固,而且对于知识的了解和综合使用能力会更加地高。

    2、代码设计能力

    我们上级跟我说,你现在写代码跟普通的刚毕业的学生的区别不应该只在于满足需求,你应该从框架层面,更高的层面来思考这个问题,形成框架,并且让代码的可读性,可维护性,通用性更强。

    简单地说,就是具有一定的抽象能力,把实际问题转成代码,然后设计合理,有必要的话写出一套合适的框架性代码,然后才是实现功能。

    3、代码重构能力

    并且具有重构代码的能力,其实重构是一件非常难的事情。

    重构的目的是什么?要想清楚这个事情,为什么需要重构,是重构还是修补?是因为性能不行,还是可读性不行,还是太多多余的代码,无用逻辑,还是设计不合理,还是方案陈旧需要使用新的解决方案替换?什么情况下要用什么样的手段。

    需要对原有的逻辑理解透彻,对原有的代码也有非常深入的理解。深入思考后,设计出一套重构的方案,这个才是重构的真正意义。

    二、对于产品的思考

    这个非常重要,因为一个功能,照着做出来就行了,结果有一些逻辑真的不通,或者不合理的地方。你能不能有自己的思考和理解,还是说就是按着这样做出来。

    如果一个功能,产品做原型的时候没有考虑到,而你是实施的人,你能不能发现这个不合理的地方,你有没有这样的想法。

    如何发现这个不合理的地方呢,首先,需要对产品有一个完整的理解,需要有一定的产品思维,这个功能是为了解决什么问题,为了实现什么样的目的。这样做能不能达到这样的效果,在做的时候多思考这个问题。

    三、思考问题的高度

    如何从Owner的角度/高度来看待这个问题以及要求自己,把自己摆在那个位置上然后进行思考,自己应该做到什么。

    如果我是这个项目的Owner,那么我是否应该了解整个项目的设计,达到的目的,整个项目的了解程度是否应该要比别人更加深入,当遇到问题的时候,我能不能快速定位解决,是不是要review其它人的代码,是否要考虑整个项目的设计,框架是否合理,有没有可以完善的地方。

    四、你能否Own起一个项目

    这个应该就是综合能力的体现了,如果给你两个人,做一个项目,项目如何设计,人员如何分配,如何保证工期,如何保证质量,如何保证线上问题的快速响应等等的问题。

    综合起来思考,当一个高级工程师并不容易,所需要的条件和要求也是非常高的。

    系统性地分析问题,根据自己身的条件综合对比,可以快速补齐短板,增强综合能力。

    互联网寒冬来了,这个寒冬,对于不够优秀的人来说会非常寒冷。努力让自己优秀,才能四季如春。

  • 相关阅读:
    C++泛型指针的正向与逆向循环读取的改进方法
    C++泛型指针的正向与逆向循环读取时报错Expreeeion:vector iterator + offset out of range问题
    模块“Project”的符号未加载
    简单的验证码Winform程序
    Dapper.Database<TDatabase>QueryMultiple()报错
    IE6IE7 div样式做的下拉框被遮住问题
    统计数据库已分组的表数据行数
    linux远程下载文件 的两种方法之 ftp命令和scp命令
    Oracle多表连接查询区别
    小程序(三)
  • 原文地址:https://www.cnblogs.com/yingbing/p/9860744.html
Copyright © 2011-2022 走看看