您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息
三六零分类信息网 > 赣州分类信息网,免费分类信息发布

IT技术工程师成长之道

2023/2/23 11:19:49发布55次查看
近来有业内朋友与我讨论一些工作方法,聊得碎了些,今天闲来无事,索性再用文字的方式,简单描述一下我的工作方法(alien style)。当然,每个工程师都有自己的独特的成长之道,所以,本文标题拟为其中之一道,下文如果您如果感兴趣,就当消遣看看罢了。
一、找准兴趣点:认识自己
作为新手程序猿,首先要清楚的认识到,从什么开始做起,才能让自己觉得,工作,是一件非常开心的事情!
作为技术工程师,能选择作为职业方向的也不少,比如:
web前端工程师(也称fe,有的公司分的更细,比如html/css工程师、javascript工程师等)后端工程师(也称rd,诸如:php工程师、java工程师等等)客户端工程师(较多公司也将其归为rd,诸如:ios工程师、android工程师等)数据分析与挖掘(一些公司叫做bi或di,平时产品业务会少一些,主要做一些大数据分析和处理,c或者shell等脚本用的会多些)测试工程师(也称qa,主要负责各种产品功能的白盒/黑盒测试,发现其中潜在的bug,即质量检测)数据库工程师(也称dba,属线上运维工程师的一种,不过是着重负责各种数据库的管理)运维工程师(也称op,主要负责各种开发、测试、线上环境的运维,对线上服务稳定性提供保障;也是命令行用的最多的一个角色)
每一种角色,平时的工作状态必然都是不一样的,通过写码得到的成就感也是不一样的。
作为一个新码农,如果你希望自己写的代码,能最直观的变现成用户看得见摸得着的东西,因此而获得工作上的成就感,并且因此而爱上这份工作,那么选择web前端工程师或者客户端工程师,定是较好的。
倘若你更希望每天通过命令行,在线上各个服务器之间跳来跳去,并且敲一堆别人看不太懂的命令,写一堆别人看不太懂的脚本,并因此获得成就感,感觉更具有高逼格,那么选择运维工程师,一定没错了!
一些刚毕业的学生,很有必要在投简历求职之前,搞明白自己想做什么;当然,也有大部分学生是通过校招进入到公司的,具体进去以后做什么,可能都是公司随机进行分配;对于这一部分的同学,如果在入职后一段时间内无法在工作上找到兴趣点,就真该考虑申请transfer到其他team了。
工作不应该仅仅是是挣钱养家糊口的一个工具,更应该是做人做事、成长道路上的一种乐趣。做自己喜欢的事情,再辛苦,也值得(切莫误解:不是推荐大家加班,哈哈)。
二、注重沉淀:充实自己
沉淀,是能最直接证明自己有收获的一种方式,可以是文档沉淀、技术沉淀,等等
工作过程中,我们肯定会去做一些技术调研、方案分析与评审,这些东西便可以细细整理成文档,统一汇总到一个地方,比如团队的wiki专栏下,自己能去review,组里其他同学也能查看到。
在一些大项目开展过程中,或多或少会针对某一类问题创造出比较优越的解决方案,可能是一种高性能的实现方式、也可能是一种高效率的调试技巧,这些东西,稍微花点心思,都能将其作为一个类库或工具提供给组内其他同学,以此作为技术点,沉淀下来。
简单来说,可以把握这样一个原则:
能用文字记录的做事方式方法,就一定不要只靠口口相传!用嘴巴传来传去,慢慢的也就走了形了,俗话说的好,好记性不如烂笔头!好用且实用的技术实现方式,能抽取成组件或类库的,就尽量让它最大限度的复用起来,并伴之以尽量详细的使用文档!切莫针对类似的功能,在组内还不停的造轮子!多看多写多调研(有时候需要以玩儿的心态去学习);但做技术的,若无实际产出,那只叫瞎折腾,知其然而不知其所以然,效果并不佳
就我个人而言,无论是在百度,还是美丽说,所有我能够去沉淀或者帮助大家一起去沉淀的东西,一定都不会放过。
如文档方面,我们搭建了团队专属了文档平台,有项目设计与实现方案的评审文档、有项目总结的分享文档、有大型项目的排期节奏跟进文档、有技术的调研文档、有团队技术分享的文档、更有团队周报的归档专栏等等。
在技术方面,有符合团队开发规范的集成解决方案、编译工具、开发工具、前后端线上服务监控与报警系统、后端服务性能监控与分析平台等等。
在玩儿技术的这一点,比如web前端助手(fehelper)就是在百度做前端的时候,玩儿chrome扩展,一步步沉淀下来的。记得当时csdn还举办了一个chrome浏览器插件开发中国区大赛,这fehelper也迷迷糊糊拿了个三等奖。
再后来微信公众号兴起,在朋友圈铺天盖地的转发都是只有一个标题,很土;正碰上那一段时间2048小游戏在pc和wap上特别火,于是我也写了一个放到自己公众号,本着让大家一起能够在微信里玩儿起来的心态,于是搞了一套基于微信公众号分享的sdk,应用到这个小游戏里;这就是大家后来一直在使用的weixinapi。在微信一直没有推出官方版的js-sdk之前,weixinapi造福了许多人。
任何形式能让别人看得见摸得着的东西,才叫做沉淀,更是可以用来衡量价值的参考。
三、做一个项目负责人:历练自己
接受leader的命令,并能单枪匹马的把产品功能做完上线,这顶多能够算得上能做事,离会做事、懂做事还差得远
如果有一天你觉得自己能够独当一面去负责一个产品功能,不再需要导师和leader的协助,那么,是时候从更全的维度去历练自己了:主动挑起一个项目,作为项目负责人,将其推行到底!
你至少可以从这几个方面,得到更多的收获,找到更多的成就感:
分析需求,判断该项目需要涉及到的相关角色组织各角色进行项目需求评审,并分析产品功能上的技术可行性、时间成本等对需求进行功能模块合理拆分,落实前后端工程师的工作范围组织前后端工程师进行技术方案评审,并结合需求指定的上线时间判断是否需要分优先级分批次开展合理分工,产出研发排期,并汇总联调、自测、以及qa的测试工期,统一输出项目的排期跟进项目进展,结合排期review项目产出,及时发现风险点,及时调整并通报较大的项目,更有必要组织定期的站立会,以确保项目整体进展顺利项目过程中有临时新增需求、或需求变更、或技术实现方案调整,更要能条理清楚的与所有角色进行分析,放眼大局观,结合项目的整体上线要求,输出最终的调整方案,保证项目稳健开展测试前期,需要和qa明确其中的核心测试点,对于技术实现较复杂的地方,需要明确告知测试的力度,以免测试用例覆盖不全项目上线前,需要与运维工程师完成一切线上环境部署与配置,确保项目上线毫无障碍;对于涉及到边缘产品较多的项目,更需要考虑到灾备预案情况项目完成测试后,如果是较大的产品需求,需要和产品同学讨论,是否进行公司内部体验,或者线上小流量(灰度)测试;并提供合理的问题反馈渠道,收集并整理用户反馈,快速优化项目上线后,需要密切关注服务稳定性,关注用户反馈,稳定后,能进行项目上线通报组织项目组所有角色进行项目总结,分析各角色在项目配合过程中出现的问题,总结经验教训;同样也记录项目中良好的问题处理方式,最后将项目总结分享到团队;以此结束整个项目!
枪打出头鸟,只要你是带头大哥,项目出现任何问题,leader必然都会唯你是问,整个项目过程中,必然是会产生压力的!但是,如果你永远都不敢迈出这一步,又怎能知道自己能力究竟有多大呢?胸怀都是用委屈撑大的,大胆承担,没事儿!
所以,大胆去做吧,团队一定都是更喜欢敢于主动挑起责任担子的人的!
四、做一个导师:学会育人
将所有成熟的工作方式,倾囊相授,也从新人身上做自我反省
优秀的做事方式,应该得到传播,让更多的人花更少的时间去变得优秀。工作中,最好的方式,就是在自己成长以后,做一个导师,协助新人一起成长,比如:
结合新同学的工作能力、业务范围、技术兴趣点,一同分析ta成长过程中真实存在的阻力(或盲点)为新同学量身定制短期、中期、长期的成长规划,定期review成长得失,及时纠偏带着新同学一起去尝试一些大于ta现阶段工作能力的事情(业务功能、技术topic等),帮助新同学挑战自己,逐步突破自身的能力极限学会放手,做好引导和后备支撑,让新同学完完整整的去搞定一件事;栽了跟斗也不要紧,任何人成长的过程中都应该经历一些坎坷;不经风雨,又怎见彩虹?引导并督促新同学进行文档和技术各方面的沉淀,协助新同学在团队里找准自己的定位,站稳脚跟引导新同学学会分享、学会与其他角色的沟通技巧、并逐渐学会把控项目的全局观
当然,你也需要从新人成长的过程中,不断的反思自己,新人做的不够好,是我的原因吗?新人做的很好,我有功吗?
新人某个功能没做好,是不是自己没有提前review他的项目实现方案?或者自己给他的方案本身就是有问题的?新人某个项目delay很严重,是不是自己没有多去review他项目的进展?或者自己也没搞明白项目的上线计划是什么?新人某个项目bug太多,是不是自己没有尽到一个导师的指责,为他做好code review?或者自己平时的项目就是bug频出,新人只是效仿而已?新人在其他角色面前总是沉默寡言,是不是自己没有告诉他,应当大胆表达自己的想法?或者自己也不敢在人前多说话,自己也怕被拍?新人在与其他角色沟通过程中,冲突不断,是不是自己没有教给他更好的沟通方式?或者自己也不会与人沟通,自己也经常与其他角色闹得不愉快?新人用一些很巧妙的方法把某件事情完成的很漂亮,得到大家的赞许,是不是自己给了他很好的引导?或者从这件事上面,你发现自己也有不如新同学的地方,你们需要互相学习?新同学主动找你一对一沟通,进行成长总结,自我批评,这又是不是你平时的做事方式,让他学会了积极领悟?再或者,你需要思考自己是否具备这样的一个主动性,以及能够批评和自我批评?你对你的新同学足够了解吗?你对自己足够了解吗?
一个好的导师,永远都不要担心青会出于蓝而胜于蓝,因为这是好事,这是他的能力,更是你的本事!他若真能胜之于蓝,说明他足够优秀;我们要学会与优秀的人在一起,那样才能更快的成长。
五、密切关注行业动态:站得高才能看得远
技术的革新都是非常迅速的,我们绝不能仅靠项目上的产出来充实和提高自己;码农界聪明的人太多,必须把好的技术思想都吸收进来
逐渐的,需要将自己视作一个技术负责人。当然,若条件允许,可作为团队技术负责;若团队各方向划分较细,可作为某业务方向技术负责人。
多分析团队工作上遇到的一些技术难题,总结并归类,互联网行业发展至今,你所在团队遇到的绝大部分问题,在别的公司必然都经历过了。跳出来,想方法从各渠道了解发展较为成熟的公司、较成熟的技术team都在用过什么样的方式来解决这一类的问题;虽然不能照搬照抄,但最起码能从中得到更多的启发。
新技术更新的很快,尤其在web前端方面,不过多久就又出来一种新的解决方案。你应该作为一个技术痴迷者,密切关注行业的动态,看看人家都在搞什么,为什么会出现这么多新的框架、类库、工具等。举个例子,搞明白:
在没有jquery之前,大家用原生的dom也能把功能开发的很好,那为什么会出来jquery?它是为了解决什么样的问题而出现的?用它与不用它,在项目上会有什么不一样的地方?jquery已经很好用了,那百度webfe以前为什么还要在公司内部搞一个tangram?是单纯的造轮子,还是因为它的确可实现各种api定制化打包?对于jquery的老手,如果使用tangram,会有些什么不一样的地方?后来大家又一致吹捧的angularjs、backbone.js、ember.js这些又是什么鬼?都是哪个公司哪个团队基于什么样的问题才造出来的?他们用这些工具只是因为某一个产品功能,还是说这货可作为一类通用的解决方案而存在?倘若要把它们引进到自己的项目组,是否真正适用?你能从中得到什么启发,大家又能学到什么?nodejs为什么会出现?io.js为什么又会作为其分支,单独发展?后来为什么又还是merge到了一起?再比如跨平台的移动开发工具,phonegap、titanuim、xamarin、以后今年火起来的react native,为什么解决同样问题的东西,会出来如此多,更新如此的快?最后出来的东西,是否都已经具备了先辈的优良品质?它们所针对的用户群体是什么?为何能得到大众的青睐?它们和原生native有何区别?php 7都发布了,为什么你们先上服务还在使用php 5.3.29?升级php到最新版,在代码上是否需要做些兼容?开发上是否和以前有变化?带来的性能提升是否可大幅度减少服务器的数量?全文的搜索引擎,sphinx和solr都是啥?索引的效率、搜索的性能、对中文分词的支持、以及对实时索引的支持,这些维度都有什么不同?如果项目上需要使用,结合实际的需求,选择哪一个更为合适?再比如,你的团队需要对线上服务进行多维度监控,市面上已经存在的zabbix、nagios、open tsdb、或者open falcon,是否都知道这些东西能监控到那个层级?线上部署与应用的成本如何?后期�...
赣州分类信息网,免费分类信息发布

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录