软件工程师的核心竞争力是什么-笔记

前言

干了几年的开发,最近也在思考我的核心竞争力是什么。现在是90后出道了,我该怎么不被替代呢。最近看极客时间《软件工程之美》发现了几个要点。以下是学习笔记。

作者提出软件工程师的核心竞争力,不是单一能力的体现,而是几种能力和价值的合集。学习能力、解决问题能力和影响力构成了软件工程师的核心竞争力。从三个方面说一说。

核心竞争力

1 学习能力

招聘网站上招聘软件工程师的要求,都需要能掌握一门或者多门编程语言,会熟练使用工具、框架。所以最基本的要求是技术和代码。但熟练掌握一门编程语言、框架,还不能构成核心竞争力。因为现在技术更新迭代很快,

现在你熟悉的语言或者框架,可能过几年就没有太大的市场了,需要学习新的技术。所以快速上手一门技术能力的体现。

2 解决问题的能力

软件工程师的日常工作,工作日常都是:

  • 实现功能需求——需要先分析需求,然后抽象设计,最后实现;
  • 修复Bug——改Bug最大的挑战是重现问题,也就是发现问题,然后再分析问题,最后解决问题;
  • 重构代码、优化性能——对代码重构,优化性能,最难的地方其实在于发现代码问题在哪,发现性能的瓶颈,后面再去寻找解决方案,最后再解决。

也就是说,软件工程师这些日常开发工作的核心还是在发现问题、分析问题和解决问题,统称为解决问题的能力。这几个能力看起来没什么稀奇,但是要仔细分析,其实软件工程师的水平高低,恰恰就体现在解决问题的能力上面。

解决问题过程又分为:

发现问题

    提出一个好问题

分析问题

    软件工程师经常遇到的一个问题就是生产环境发生故障,新手程序员通过分析也能把问题修复,但修复完了就觉得没事了。而有经验的程序员,会在恢复后还会进一步分析故障产生的深层次原因,以及以后可以怎么预防类似的故障再次发生。分析问题,不仅是分析表面的问题,还需要去分析问题深层次的原因,以及思考预防同类问题的机制。

解决问题

在发现问题和分析问题后,解决问题相对会容易一些。但有时候明明知道问题在哪,但不知道怎么解决也是很苦恼的事情。

一般都是通过解决方式:

1)查过官方文档

2)用准确关键字去搜索

3)请教其他同事,注意这是最后一步。如果别人给你说搜搜xxx,就能解决问题,是不是自己也觉得自己很菜。

影响力

为什么有些程序员的技术水平、解决问题能力差不多,而有的升职加薪的机会更多?有的不需要去找工作,总有工作来找他们?这其中的差别,就在于他们的影响力不同。

 

如果提升核心竞争力

1如何提升学习能力

提升学习需要经构建自己的开发知识体系,那么怎么构建呢?

首先需要在一个技术领域深耕

每个人精力其实很有限,专注在一个技术领域容易在短时间取得成绩,同时也相当于建立起了最初的知识体系,同时可以建立自信

,只有一个领域的知识你真正吃透,才能有效地共享到其他领域

其次往相近的领域逐步横向拓展

    在一个技术领域达到一定深度后,可以开始横向扩展。最好是往相近的领域扩展,因为这样你之前的知识有很多是可以共享的,容易快速取得成绩。

如何提高解决问题的能力

第一步:明确问题

解决问题,最重要的一步就是要明确问题是什么。透过现象看本质,去明确问题背后是不是还有其他问题

第二步:拆分和定位问题

一个复杂的问题,只有经过拆分,才好找到本质的问题

第三步:提出解决方案并总结

遇到问题问自己两个问题:

  • 下次有这种问题怎么解决,是不是可以做的更好?
  • 这种问题是不是可以预防?如果可以,应该怎么做?

通过总结,就可以进一步提升解决问题的经验

如何提升影响力

影响力是有价值有意义的事,要取得这样的成绩,要实力、要机缘、还要坚持,

可以从以下几个方式入手:

在某个领域做出了足够牛的成绩

有些程序员能在某一个技术领域做到一定深度,做出了常人难以达到的成绩,比如说PHP开发组核心成员的鸟哥惠新宸,写Vue框架的尤雨溪,前端的Winter。做到他们这样,基本上就不用担心影响力的问题了

做事情超出预期

你做事情的结果能超出预期,就会让人对你刮目相看,别人会看见,以后有机会总会先想到你。

帮助其他人就是在帮助自己

分享

可以在公司或者团队内部做分享,多写博客分享技术经验

作者提到刘未鹏的一篇文章《为什么你应该(从现在开始就)写博客》,很不错。

总结

作者提出的三点技能,在以后工作中不断实践,毕竟我写这边笔记也是为了写博客积累影响力。

猜你喜欢

转载自blog.csdn.net/samz5906/article/details/112995688