前言
干了几年的开发,最近也在思考我的核心竞争力是什么。现在是90后出道了,我该怎么不被替代呢。最近看极客时间《软件工程之美》发现了几个要点。以下是学习笔记。
核心竞争力
1 学习能力
招聘 站上招聘软件工程师的要求,都需要能掌握一门或者多门编程语言,会熟练使用工具、框架。所以最基本的要求是技术和代码。但熟练掌握一门编程语言、框架,还不能构成核心竞争力。因为现在技术更新迭代很快,
现在你熟悉的语言或者框架,可能过几年就没有太大的市场了,需要学习新的技术。所以快速上手一门技术能力的体现。
2 解决问题的能力
软件工程师的日常工作,工作日常都是:
- 实现功能需求——需要先分析需求,然后抽象设计,最后实现;
- 修复Bug——改Bug最大的挑战是重现问题,也就是发现问题,然后再分析问题,最后解决问题;
- 重构代码、优化性能——对代码重构,优化性能,最难的地方其实在于发现代码问题在哪,发现性能的瓶颈,后面再去寻找解决方案,最后再解决。
也就是说,软件工程师这些日常开发工作的核心还是在发现问题、分析问题和解决问题,统称为解决问题的能力。这几个能力看起来没什么稀奇,但是要仔细分析,其实软件工程师的水平高低,恰恰就体现在解决问题的能力上面。
解决问题过程又分为:
发现问题
提出一个好问题
分析问题
软件工程师经常遇到的一个问题就是生产环境发生故障,新手程序员通过分析也能把问题修复,但修复完了就觉得没事了。而有经验的程序员,会在恢复后还会进一步分析故障产生的深层次原因,以及以后可以怎么预防类似的故障再次发生。分析问题,不仅是分析表面的问题,还需要去分析问题深层次的原因,以及思考预防同类问题的机制。
解决问题
在发现问题和分析问题后,解决问题相对会容易一些。但有时候明明知道问题在哪,但不知道怎么解决也是很苦恼的事情。
一般都是通过解决方式:
1)查过官方文档
2)用准确关键字去搜索
3)请教其他同事,注意这是最后一步。如果别人给你说搜搜xxx,就能解决问题,是不是自己也觉得自己很菜。
影响力
为什么有些程序员的技术水平、解决问题能力差不多,而有的升职加薪的机会更多不需要去找工作,总有工作来找他们中的差别,就在于他们的影响力不同。
如果提升核心竞争力
1如何提升学习能力
提升学习需要经构建自己的开发知识体系,那么怎么构建呢p>
首先需要在一个技术领域深耕
每个人精力其实很有限,专注在一个技术领域容易在短时间取得成绩,同时也相当于建立起了最初的知识体系,同时可以建立自信
,只有一个领域的知识你真正吃透,才能有效地共享到其他领域
其次往相近的领域逐步横向拓展
在一个技术领域达到一定深度后,可以开始横向扩展。最好是往相近的领域扩展,因为这样你之前的知识有很多是可以共享的,容易快速取得成绩。
如何提高解决问题的能力
第一步:明确问题
解决问题,最重要的一步就是要明确问题是什么。透过现象看本质,去明确问题背后是不是还有其他问题
第二步:拆分和定位问题
一个复杂的问题,只有经过拆分,才好找到本质的问题
第三步:提出解决方案并总结
遇到问题问自己两个问题:
- 下次有这种问题怎么解决,是不是可以做的更好li>
- 这种问题是不是可以预防可以,应该怎么做li>
通过总结,就可以进一步提升解决问题的经验
如何提升影响力
影响力是有价值有意义的事,要取得这样的成绩,要实力、要机缘、还要坚持,
可以从以下几个方式入手:
在某个领域做出了足够牛的成绩
有些程序员能在某一个技术领域做到一定深度,做出了常人难以达到的成绩,比如说PHP开发组核心成员的鸟哥惠新宸,写Vue框架的尤雨溪,前端的Winter。做到他们这样,基本上就不用担心影响力的问题了
做事情超出预期
你做事情的结果能超出预期,就会让人对你刮目相看,别人会看见,以后有机会总会先想到你。
帮助其他人就是在帮助自己
分享
可以在公司或者团队内部做分享,多写博客分享技术经验
总结
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!