适用于初中级工程师成长方法,2021加油!

3,769 阅读22分钟

注:本文所有方法均适用与各个方向的初中级工程师成长,文中所举出的一些关于技术的例子虽是前端范畴的,方法不局限于职业。如果有任何错误或者建议可以在评论区留言,谢谢🙏

1、不要畏惧英文

互联网上很多优秀的技术资源和社区的内容都是英文,如果畏惧英文,就没办法从中汲取富有营养的知识,也没办法跟上技术的发展潮流,那么技术能力就会很难再上一层,技术的眼界就会受限,所以需要去突破语言这关。

A、从改变语言环境开始

你可以将手机、电脑、平板、各种APP的语言设置为英文,让自己的平时习惯都处于英文环境中,慢慢的去适应。

B、用英文开始入侵

比如写一份英文版本的项目ReadMe文件、PRD文档,或者将你的每天的一些想法用英文记录下来,将一些使用中文记录的日常替换成使用英文来记录。

C、阅读英文技术文章和文档

尝试去阅读英文文档或者翻译英文的技术文章,哪怕是借助翻译工具,这样不仅仅能开阔技术视野,还能让自己进一步的适应英文环境,接触更多的生词和专业术语。而技术文章或者对应的技术文档中会出现该技术的一些专业术语,拿 React 框架来举例,比如 Stateless Component、Stateful Component 这样专属某一项技术的专业术语,在你搜索问题的时候使用这些专业术语能起很大的作用(后面的内容会提到)。

D、进一步学习英语

大学四级六级没过,并不能阻挡你继续学习英语。一门额外的语言技能可以很好的助力职业发展,可以利用一些英语学习工具和学习教程,根据自己的情况来制定目标和学习计划。

2、善用工具

除了平时开发工作本身的工具来提升开发调试的效率之外,分享一些其他的工具,这些工具不仅仅可以辅助开发工作,对于个人其他方面的成长提升也有帮助。

A、科学上网

前面说到互联网中很多优秀的技术资源的内容都是英文的,这些基本上都需要科学上网的工具才得以访问,所以要学会使用科学上网工具,透过它访问国外的各个技术社区和资源平台,接收到最新的技术资讯和学习资源,探索更宽阔的世界,关于这点就不过多讲述。

B、Google搜索

在平时的开发工作中如果遇见了问题,经常会使用搜索引擎来搜索问题,使用Google搜索引擎搜索问题,其搜索结果的丰富性和准确性都要远超越其他搜索引擎,但这个也需要借助科学上网的工具来使用。很多技术问题大都数前辈都已经踩过坑,但也基本上都是发布在国外的技术社区中,国内的一些搜索引擎都是抓取国内的内容,不仅仅重复冗杂质量低,还不少广告。

使用搜索引擎也是有一定的方法和技巧的,可以有效的提高搜索问题的效率和精准性,关于这部分的内容请参见下面的 #提升搜商

C、Grammarly

这是一款英文写作辅助工具,拥有英文语法错误监测功能,如单词的用法、语句的搭配等。能够在英语写作或学习时进行更好的提升,从而有效提升写作效率。使用 Chrome 插件可以在网页的文本输出框中检测你的英文语法错误,像在 Github 上进行 Code Review 时需要留下英文的 Comment,那么试试它,相信你会爱上这款工具。
image.png

D、Deepl

在用 Google/有道翻译?来用用这款翻译工具,DeepL是一款基于机器学习和神经网络技术,并支持多语言的翻译工具,翻译会比其他翻译工具更加的贴和日常当中的语句。多有贴近?可以看看下面例子的对比。

PEOPLE MAKE A lot of noise. Cars rumbling along streets, planes roaring overhead, feet slapping the sidewalk—these and other actions create countless tiny vibrations in the ground. A global network of seismometers registers those oscillations 24/7. But since world leaders have urged citizens to stay home and maintain social distancing to slow the coronavirus pandemic, the hum of daily life has quieted.


这是一段有关于新冠的新闻。

下面是 Google 翻译的结果:

人们发出很多噪音。汽车沿着街道嗡嗡作响,飞机在头顶咆哮,双脚拍打人行道,这些动作和其他动作在地面上产生了无数微小的振动。 全球地震仪网络记录这些振荡24/7。 但是,由于世界领导人敦促公民留在家里并保持社会距离,以减缓冠状病毒的流行,所以日常生活的嗡嗡声已经平静下来。


这是 DeepL 翻译的结果:

人们制造了很多噪音。街道上隆隆作响的汽车、头顶上轰鸣的飞机、拍打人行道的脚步,这些行为和其他行为在地面上产生了无数微小的振动。全球的地震仪网络24小时不间断地记录着这些振荡。但自从世界各国领导人敦促公民呆在家里,保持社会距离,以减缓冠状病毒的流行,日常生活的嗡嗡声已经安静下来。


“全球地震仪网络记录这些振荡24/7。” 与 “全球的地震仪网络24小时不间断地记录着这些振荡。” 这两句话的差异就能体现 DeepL 更能贴合日常。

如果这个差异不能体现,那么试着翻译下面这句:

货拉拉不拉拉布拉多!


Google 翻译结果:

Labrador, Labrador!


Deepl 翻译结果:

Cargo puller does not pull Labrador!


哈哈,是不是很因吹斯挺?!

E、Miro/ProcessOn

善用思维导图工具梳理和呈现脑中的思路,也可以用来去构建自己的知识图谱。

ProcessOn是一个国内的在线画图工具,支持流程图、思维导图、原型图、UML图等图形的绘制。
image.png

而 Miro 则是国外的一个在线协同白板平台,最大的特点就是用无限白板来自由组织和编辑元素,比如内置的形状、文字、连线、便签等,除此之外,它还支持创建思维导图、看板、图表,以及 iframe 嵌入、网页截取。还可以安装 App,来插入诸如谷歌文档、Dropbox 等等。
image.png

这两款工具的共性与差异性其实能从官网的介绍中就能明白,可以根据自己的需求来选择。如果你偏向于脑暴、自由发挥组织那么可以选择 Miro,但是 Miro免费版只支持 3 个画板,私密分享、高清导出等额外的特性会受限,但是免费版对于个人来说已经基本上是够用了。如果你更习惯于用 xmind 这类的软件来梳理和构建知识图谱,那么可以选择 ProcessOn,它可以发布自己的模板来获得收益,也可以将自己的读书笔记,分析亦或是经验流程图公开上传,学习交流。

欢迎读者在下方评论区说说自己觉得很好一些工具。

3、提升搜商

在互联网时代,知识已经被搜索引擎索引,所以想要获得怎样的答案,取决于提出了什么样的问题。搜商就是用来代表一个人的搜索能力,搜索能力越强,那么不仅仅可以提升解决问题的效率,甚至还可以帮你节约金钱。如果在你需要一些学习资源时,不用在某宝或者其他平台上以高额的价格进行购买,利用好搜索引擎就会极大可能获取到低价或者免费的学习资源,甚至质量会更高。

A. 搜索思路

1、使用英文进行搜索
基于前面第一点的内容,因为要跨过英语这个语言关,建议使用 Google 搜索引擎作为搜索问题的首选工具,并将关键词进行英文化。这需要积累一些专业的英语词汇,比如自动补全(auto complete)、右键菜单(context menu),上下文(context)。**

2、正确组织关键词
之前有见过一些同学在搜索问题的时候直接输入完整的问句,更狠的直接输入一段话来将问题描述得明明白白,生怕浏览器不理解你的问题。或者还有在开发工作中出现错误时,直接把整个错误信息粘贴进行搜索,但是里面还附带这文件名、文件路径,代码行数等不相关的信息,这极大的降低了搜索的准确性。正确的方式是把一些无关紧要的信息过滤掉,搜索引擎是根据关键字去匹配的,而不是把搜素引擎当作钢铁侠中的 Jarvis。

3、递进式搜索,调整关键词
在搜索的时候会出现无效的答案冗杂的情况,那么就需要进一步的调整关键词,去组合关键词、添加限制性关键词进行过滤。比如什么语言环境、什么系统、什么技术栈、什么错误码等等,就像形容你心中钦慕的对象一样,只有词语来把对象进行具体化,眉毛怎么样,眼睛怎么样,嘴唇怎么样,额头怎么样,发质怎么样,发色怎么样,脸型怎么样,肤质如何,气色如何,身姿如何等等,而不是只有一句“她很美”就完事了。

B. 搜索技巧

由于搜索技巧的内容篇幅较多,找到一片讲述比较清楚的文章,可以看看这篇文章

4、学会正确的提问

这一部分的内容承接上面的【提升搜商】的内容。

在平时的开发工作或者学习中遇见问题是很正常的事情,但是遇见问题的时,不要随便或者立即问其他人,先利用搜索引擎搜索一下,大部分的问题其实都能在搜索引擎上搜到,以免浪费大家的时间,另外,问题代表着突破自我的一个机会,给自己一定时间努力的去解决它,每一次畏惧就是一次退步,每一次突破就是一次积累。在尽力解决但无果的情况下,再考虑寻求他人的帮助,但提问的方式是有一定讲究的,因为不正确的提问浪费的是你和帮助者的时间,无法高效率的解决现有问题。常常在社区或者技术群里能看到一些这样提问:

你(有人)用过 xxx 吗?

xxxx 操作抛出问题,该怎么解决?

xxx 进行 xxx 操作,为什么不行?有人知道吗?

此时,[黑人脸+问好号.jpg]。

这里大家可以阅读下《提问的艺术》这本书,这是一本教你如何通过富有技巧性的提问来提高沟通效率并提升自身影响力的书。

Github 上一些开源项目会有 Issue Template,最主要的目的也是让提问者更仔细的去描述遇见的问题,让维护者更容易明白以及给出帮助。

5、以金钱换时间

可能有人看到这里会说,本身就是用时间来换金钱,为什么要用金钱换时间呢?是的,没错,无论我们工作还是做其他的一些事情,从收益上来讲基本上就是为了金钱,但是要会算账,通俗点说就是性价比。

买手机或者其他电子设备的时候,常常关注的就是性价比,对于电子产品来说,计算性价比的公式可以这样来比喻:成交价 / (硬件 + 生态 + 交互 + 体验 + 售后) = 性价比。那么相对的,一件事情的性价比可以简单的这样计算:花费的时间 / 收益,这个收益可以指金钱或者非物质的东西(知识、幸福、感情等等)。就像工作的性价比就是时薪来衡量。那么什么情况下需要金钱换时间呢?那就是收益很低,却需要花费大量时间。

A、尽量付费软件服务

在平时的学习和工作中,会很频繁的使用一些软件,比如 IDE、思维导图工具、Office套件、Sketch等等,那么这些软件基本上都是付费的或者需要升级解除高级功能限制,有一些会选择寻找替代品,或者进行破解。那么在这个过程中很大的可能是把大量的时间用在寻找替代或者破解版上面。但是你如果进行付费,不仅仅可以立马使用高级功能,可以享受有保障的售后服务,还省下很多时间专心做原本要做的事情,可能省下时间产生的价值就已经超过了软件的付费。

B、互联网的时间收割机

很多互联网公司其实都有一个注意力商人的角色,他们的产品基本上都是在想尽一切办法来吸引用户的注意力,而注意力就是用户的时间。甚至烧大笔的钱来搞所谓的优惠活动,吸引用户和其身边的人一起参与,而最后这些用户的流量换来的价值是远远的超过的投入的资金,而参与活动时的各种关注和各种转发,所花费的时间就换了一百块。用长远的目光去看待收益,把时间和注意力花费在有价值的事情上,所带来的增长会是呈指数级的。

6、多逛逛技术社区

多逛逛国内外的技术社区,目的是保持对技术的的敏感度和感受技术的发展潮流,其中的技术博文、学习资源和最佳实践都能让你受益匪浅。

  • Github
  • Medium
  • Thenextweb
  • Twitter
  • dev.to
  • StackOverflow
  • Hackernews
  • ...

7、多参与技术大会

参与技术大会并不是为了能在现场掌握多少知识或者在朋友圈“凡尔赛”。

A、开阔视野

开发者大会的内容一般都是技术的发展趋势、行业的动向和解决方案。比如如何做的技术拆分、如何进行架构设计、如何通过技术解决业务问题、一些技术会向什么方向演进等等。所以开发者大会对于开发者来说是开阔视野和获取思路的途径,不至于自己闭门造车。对于参会者本身来说也需要一定的技术积累,不然大会的内容可能不容易吸收。

B:社交活动

参与大会的人基本上与你都是同样的岗位或者相关的岗位,从大会的另个角度来说,这是就是一场社交活动。而社交则是可以给自己来带来潜在的机会,比如新的朋友、好的就业机会、兴趣相投的人、与业内大佬更进一步的机会。这些都是可以在大会中自己去捕捉的。

大家可以阅读下勾三股四的《我对技术会议的一些看法》,这里面对技术会议有一些更详细的阐述。

6、拆解分析能力

拆解分析其实是一种结构化思维,拆解 = 结构化,分析 = 思维。在平时的生活或工作中,有意识的去训练自己的拆解分析能力,慢慢地你会发现完成方案的时候效率更高了,处理问题的时候更稳了,自己的技术能力或者其他方面的能力更精进了。

把你所面临的问题进行结构化,尽量去把问题的粒度变得更小,然后逐个的进行分析解决,这样不仅仅能清晰的看到整个问题所要处理的细节,还可以把问题的的不稳定性降到最低。

举一个简单的例子,在平时的开发工作中都会遇到任务拆分的这个情况,敏捷开发中最为常见,那么问题拆分出来后,还需要进一步拆分吗?

  • 任务拆分后还可以拆分成子任务吗?
  • 拆分后的任务是否对现有的任务有阻塞?有需要如何解决?
  • 每个任务的单元测试需要支持到什么程度?
  • 每个拆分后的任务会对当前项目会造成什么样的变动及影响?
  • 每个拆分后的任务需要调度什么资源来支持?
  • 任务完成后是否留有完善和优化空间?有,需要如何解决?
  • 该任务完成后是否对团队有建设性的作用?有,需要如何整理并分享?
  • ....


一步步拆分,一步步思考,一步步反问自己,把整个问题进行拆分,然后分类结构化,细腻化。

借用曹大的一段来进一步说明拆解分析:

拆解分析说白了,就是把别人的产品,技术,运营手段,琢磨透了。琢磨透了之后你是山寨,还是创新,这是两说,但能琢磨透了,至少可以证明你的能力和水平是足够专业的。

好的游戏策划,会拆解市面上最成功的游戏,理解并理清玩家在游戏中的成就感,付费欲望,游戏关卡的难度,数值设计的心得,游戏是如何通过这些控制玩家情绪,既不能让玩家过于轻松,缺乏挑战性,也不能让玩家过于沮丧,失去继续闯关的动力。

好的产品人员,会拆解市场上成功的产品,交互设计,功能诉求设计,转化率提升的细节和真实用户的反馈。

好的技术人员,会拆解行业巨头或开源产品的技术方案,设计理念,优化技巧,一些实际解决问题的方法和思路。

好的运营人员,会拆解成功运营者的套路和方法。


从此刻开始,有意识的锻炼自己的拆解分析能力吧,它会给你的成长带来高能的燃料。

7、CS基础很重要

有很多人是通过自学或者培训班的方式来进入在互联网大门的,而其中有很大一部分人会忽略一个及其重要的点,那就是CS基础。

CS基础是软件工程师成长的一个基石,底层基础决定上层建筑,如果你用拆解分析的方式来拆解你现在岗位所利用的技术栈,那么最后也会到计算机原理、操作系统那一层去。

还是拿前端的范畴来举一个例子,作为一个前端开发者,了解浏览器的工作原理是很有必要的,在你探视浏览器的内部时,你会发现浏览器由用户界面、渲染引擎、网络模块、JavaScript解释器等等组成的,而 Chrome 是多进程架构,想要了解各个进程之间是如何协作的,那么你得知道进程是如何调度管理的,这部分属于操作系统的基础知识。随后你了解到渲染流程中会有 HTML Parser 来将 HTML 字节流转换为 DOM 结构,在转换的流程中需要根据W3C-HTML5 标准生成各种标记(token),而这部分又涉及到编译原理的词法分析。所以归根结底,各个技术栈都是建立在CS基础上的。

image.png

所以如果想让自己在编程这条路上走的更远和更稳,那么能够抽出空余时间去补补这些基础是很有必要的。

8、不要给自己设限

做一名软件工程师,而不是前端工程师;做一名软件工程师,而不是IOS开发工程师;做一名软件工程师,而不是安卓开发工程师;不要给自己设限,从自身出发,辐射周围与自身相关的,多维度多角度的看待自己,看待产品。技术为产品服务,但技术并不是产品的唯一,支撑产品的还有很有其他因素,而这些也和技术息息相关,只有更好让产品生长,你才能得到更好的成长。

9、开始项目的复盘

有回顾、归纳、总结,才有成长。通过回顾项目以往的处理细节,一些技术方案的产生的实际效果如何,怎么进行衡量,对比之前的项目,哪些技术方案在特定的场景中更为有效,看看是否还留有技术债,项目中每个知识点是否都已熟练掌握级运用,项目的流程和质量是否有进一步优化、提升的空间,如何在将来做得更好。

A. 回顾

  • 最开始项目想要达到的目标或者意图是什么?
  • 预先制定的计划是什么?
  • 预选设想要发生的事情是什么?
  • 项目的实际情况与预想的差异?


C.归纳

  • 设定几个维度去划分整个项目,具体的业务是否可以分类进行整理?
  • 每个技术方案的效果和业务场景是否有特定性和通用性?
  • 技术方案效果的评估可以用哪些数据指标来进行衡量?
  • 哪些有待提升和注意的地方?
  • 有哪些做得好的地方?


D.总结

  • 项目的整个过程中学到了什么?
  • 做的好的地方如何保持?
  • 做的不好的地方如何提升?
  • 解析来可以做什么?


项目的复盘不仅仅可以让你再学习一次,为之后的项目做更好的服务,在你更新简历的时候也不会为写些什么或者没有亮点而发愁了。

10、主动分享

分享的表达方式是多样化的,可以是文档的方式,可以是会议的方式,不管以什么方式,主动分享、积极参与分享在整个成长的过程中也是很重要的一环,这一能力是很多人都欠缺的。对于文档,偏向于写作表达,对于会议,就偏向于语言表达,无论哪种表达能力,都是在向你的受众表达你的意图和内容,越强的表达能力,受众就能越完整清楚的明白所表达的内容,感受到内容的真实性和你的主张。

好的作家,一段文字就能让带着你去向远方。

好的演讲家,一段演讲就能调动你的喜怒哀乐。

好的导演,一段视频就能给你身临其境的感受。

他们都是在进行表达,而分享就是锻炼表达能力的一种。在你准备分享的过程中,你会去论证并确认分享的内容,这让你更加严谨。分享内容还需要进行归纳分类,层层递进,这让你思维更加清晰有逻辑。分享的时候还需要调动受众的情绪或者使其受你感染,支持你的主张,这让你更能把控现场,更有气场。分享锻炼的不止表达能力,一场成功的分享是多种优秀能力组合使用的表现。

所以,不管是一份技术文章或文档,还是一场内部的技术分享,只要是一次分享,就主动积极的去参与吧,多次分享后,你会看到自己与之前不同的地方。

11、主动规划你的职业

这世界上一部分人是因为兴趣使然,选择了自己的职业和发展道路,这是很幸运而美好的,因为兴趣是可以给自己正向反馈的,但是有很大一部分人并不是也不能根据兴趣来优先选择,因为没有那个机会或者资源支持,只能被动的选择,就像有一部分转行进入互联网的开发者,其实之前的职业他们并不喜欢,转入互联网行业也只是因为高薪。但高薪相比之前只是一时的,如果不主动的去规划自己的职业,那么一段时间后将会遇见瓶颈,各种迷茫和焦虑就会随之而来,可能会发生再次转行的情况。不能根据兴趣来选择自己的发展道路,这不是最糟糕的,最关键的是要主动的思考,规划自己的职业,这样才会让道路更清晰,自我发展的曲线才会尽可能的符合预期。

最后

希望以上方法能对此时阅读的你的有所帮助或者给你提供一些成长的思路,这些也是这一年自己更透测的领悟,艰难的2020已过去,2021会更加美好!未来可期!大家一起加油,共同成长!