热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

高级工程师和初级工程师之间的一道坎

毕业几年,在很多事情上磕磕碰碰,最后还是走着普通工程师的道路。一般的三年升高级的坎,也是遇到了,什么样的工程师可以作为一个高级工程师。这里的高级工程师指的是真的写代码的工程师,而不是所谓的管理

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

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

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

一、能力

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

1、知识体系化

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

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

2、代码设计能力

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

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

3、代码重构能力

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

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

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

二、对于产品的思考

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

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

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

三、思考问题的高度

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

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

四、你能否Own起一个项目

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

 

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

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

 

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

 


推荐阅读
  • 本文介绍了在 iOS 应用中如何设置状态栏字体颜色,包括全局设置和页面特定设置的方法。 ... [详细]
  • ABP框架是ASP.NET Boilerplate的简称,它不仅是一个开源且文档丰富的应用程序框架,还提供了一套基于领域驱动设计(DDD)的最佳实践架构模型。本文将详细介绍ABP框架的特点、项目结构及其在Web API优先架构中的应用。 ... [详细]
  • 本文介绍了如何在Fragment中嵌套ViewPager,并解决常见的显示问题。 ... [详细]
  • PostgreSQL 12 版本预览:分离 max_wal_senders 和 max_connections 的连接槽处理
    本文介绍了 PostgreSQL 12 中的一项重要改进,即 max_wal_senders 参数不再计入 max_connections,从而解决了流复制连接槽不足的问题。 ... [详细]
  • Android异步处理一:使用Thread+Handler实现非UI线程更新UI界面Android异步处理二:使用AsyncTask异步更新UI界面Android异步处理三:Handler+Loope ... [详细]
  • 我在一个UIImageView上附加了一个UILongPressGestureRecognizer,但无论如何配置,它都无法检测到长按手势。然而,当我将其替换为UITapGestureRecognizer时,后者却能正常工作。这究竟是怎么回事? ... [详细]
  • 短视频app源码,Android开发底部滑出菜单首先依赖三方库implementationandroidx.appcompat:appcompat:1.2.0im ... [详细]
  • SvpplyTable: 实现可扩展和可折叠的菜单动画
    SvpplyTable 是一个示例项目,旨在实现类似 Svpply 应用程序中的可扩展和可折叠的菜单动画效果。该项目托管在 GitHub 上,地址为 https://github.com/liuminqian/SvpplyTable。 ... [详细]
  • PBO(PixelBufferObject),将像素数据存储在显存中。优点:1、快速的像素数据传递,它采用了一种叫DMA(DirectM ... [详细]
  • 使用 Jupyter Notebook 实现 Markdown 编写与代码运行
    Jupyter Notebook 是一个开源的基于网页的应用程序,允许用户在同一文档中编写 Markdown 文本和运行多种编程语言的代码,并实时查看运行结果。 ... [详细]
  • 本文介绍了 Android 开发中常用的滚动视图组件 ScrollView 和 HorizontalScrollView 的基本用法和注意事项,帮助开发者更好地处理屏幕内容超出显示范围的情况。 ... [详细]
  • vue引入echarts地图的四种方式
    一、vue中引入echart1、安装echarts:npminstallecharts--save2、在main.js文件中引入echarts实例:  Vue.prototype.$echartsecharts3、在需要用到echart图形的vue文件中引入:   importechartsfrom"echarts";4、如果用到map(地图),还 ... [详细]
  • 本文介绍了在 iOS 开发中设置图片和视图圆角的几种方法,包括通过 layer 设置圆角、使用贝塞尔曲线和 Core Graphics 框架,以及使用 CAShapeLayer 和 UIBezierPath。每种方法都有其优缺点,适用于不同的场景。 ... [详细]
  • iOS snow animation
    CTSnowAnimationView.hCTMyCtripCreatedbyalexon1614.Copyright©2016年ctrip.Allrightsreserved.# ... [详细]
  • WPF项目学习.一
    WPF项目搭建版权声明:本文为博主初学经验,未经博主允许不得转载。一、前言记录在学习与制作WPF过程中遇到的解决方案。使用MVVM的优点是数据和视图分离,双向绑定,低耦合,可重用行 ... [详细]
author-avatar
寒落落
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有