软件工程师的核心竞争力

1.学习能力
对于软件工程师来说,最基本的要求是技术和代码。能快速学习掌握编程语言、框架、工具的学习能力才是软件工程师最基础的核心竞争力。

2.解决问题的能力,包括

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

3.发现问题,有经验的程序员,会发现可能存在的安全隐患,未雨绸缪,把可能的安全问题消除掉。这就是发现问题的能力体现。

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

分析问题,不仅是分析表面的问题,还需要去分析问题深层次的原因,以及思考预防同类问题的机制。

5.解决问题

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

通常措施有:

“查官方文档”——基本上大部分 API 在官方文档都有说明的;
“去搜索”——很多问题已经有人遇到过,而且还把解决方案都贴出来了,比如 StackOverflow 就是个很好的地方;
“更换关键字——很多时候没找到结果就是因为关键字没选好,比如用中文关键字很难搜索出匹配的技术帖子,改成英文使用谷歌就可以找到更多更合适的结果;

6.影响力.你需要通过一点点技术成长的积累,需要通过一个个成功项目的积累,需要通过一篇篇技术文章分享的积累,需要通过一次次帮助其他人成长的积累。而一旦形成足够的影响力,就会变成软件工程师职场发展最牢固的护城河。

 

posted @ 2021-01-22 23:53  peogre  阅读(178)  评论(0编辑  收藏  举报