软件工程师是软件项目重要的组成人员,从设计、编码调试、维护,都需要软件工程师参与,那你知道软件工程师的核心竞争力是什么?

曾经我在知乎上问过“软件工程师的核心竞争力是什么”?网友给出了很多答案:技术、代码、天赋激情、经验、想象力......

我思考过这些答案,觉得答案挺好,但是还没有突出核心竞争力,没有展现软件工程师的特点。

例如技术和代码的能力,这个是属于基础能力;天赋和激情哪个行业都需要,何况天赋不是决定性的因素。经验也很重要,但不能说明太多问题,也许有三年开发经验的程序员只是把一年的经验重复了三次罢了;想象力我觉得更适合搞艺术和科研的,因为他们需要通过想象力在未知的领域去探索,而我们软件工程师是利用已有的知识去打造产品。

我觉得软件工程师的核心竞争力,不是单一能力的体现,而应该是多种能力和价值的综合体,学习能力、解决问题能力和影响力构成了软件工程师的核心竞争力。

学习能力

软件工程师最基本的要求就是技术和代码,招聘网站上公司对招聘软件工程师的要求都是能掌握一门或多门编程语言,熟练使用工具和框架。但熟练掌握编程语言和看框架还不能构成核心竞争力,现在技术更新换代很快,也许我们现在熟悉的语言或框架过几年就没有市场了,还需要学习新的技术。

所以我觉得,编程语言、框架、工具还不能构成软件工程师的核心竞争力,能够快速学习掌握新的技术的能力才是软件工程师最基础的核心竞争力。

解决问题的能力

    技术学习了要会用才会产生价值,那软件工程师如何运用学习到的技术呢?我们可以先看看软件工程师的日常的主要工作以及需要什么样的能力去解决:

  1. 实现功能需求------需要先分析需求、然后抽象设计、实现
  2. 定位修复bug------改bug最大的挑战就是重现问题,也就是发现问题、分析问题、解决问题
  3. 重构代码、优化性能------此最难的在于发现代码问题在哪,发现性能瓶颈,寻找解决方案,最后解决

也就是说,软件工程师的日常开发工作的核心还是在发现问题、分析问题和解决问题,我们可以统称为解决问题的能力。软件工程师水平高低恰恰就是在解决问题的能力上面。

发现问题

    以前我们需要做一个抽奖系统,负责的程序员设计了技术方案让我审查,从功能来看是没有问题,但是在安全方面却欠妥。

比如用户用工具模拟用户操作反复点,这不是就能提高中奖概率,他说可以在前段增加重复点击限制,那我又说如果通过抓包工具模拟发送数据包,不也是能绕过你的前段检查么,这个就需要服务端增加uid的检查了。

同样一个抽奖系统需求,新手程序员看到的是如何实现功能,有经验的程序员会发现可能存在的安全隐患,未雨绸缪,把可能的安全问题消除掉,这就是发现问题的能力体现。

分析问题

生产环境发生故障,新手程序员通过分析把问题解决修复了,就觉得没事了,有经验的程序员会在修复后进一步分析故障产生的深层次原因,后续怎么预防类似故障再次发生,会总结出故障报告供后续经验分享。

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

解决问题

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

工作中,有些新手程序员会问我linux某个命令怎么用,API怎么用,我通常不会直接告诉他答案,因为我可能也不知道具体用法,就算知道了我告诉他一次了,下一次他也不会自己解决,我会反问他:

  1. 查过命令手册、官方文档么
  2. 有没有百度、谷歌过,很过问题别人都遇到过,也提供了解决方案,例如StackOverflow就是一个很好的地方
  3. 关键字是否再次提取优化,有的时候关键字的不合适会导致搜索出的答案不满足期望,可以尝试用英文关键字google搜索

我也遇到过很多次程序员请求别人问题时,没人回复,并不是没有人愿意帮忙,而是他的问题没有描述清楚,别人就很难知道他想表达的意思和要解决的问题。我这里建议大家《提问的智慧(How  To Ask Questions The Smart Way)》这篇文章。

这样的发现问题、分析问题和解决问题的能力才是程序员的能力才是核心竞争力

影响力

    解决问题的能力的确是软件工程师很重要的一种能力的体现,但是还不能完全体现出软件工程师的核心竞争力。

为什么很多程序员的技术水平、解决问题能力相差无几,但有的升值加薪的机会就很多?有的不需要自己去找好工作,总有好工作主动来找他?这其中的差别,就是在于他们的影响力不同。

有些程序员做事情认真靠谱,在公司形成好的口碑和印象里,大家愿意与之共事;有的乐于助人,分享自己的经验,和别人亦师亦友,在团队有很高的威望;有的有独特的项目、公司或行业经历比如阿里巴巴大厂的几年架构师经验,在业界有知名度;有的写自己的技术博客,做技术讲座,成了技术大V,在技术圈子有一定的影响力;这些影响力不是一朝一夕形成的,但却是一个软件工程师最核心的价值体现。

我们需要通过一点点技术成长积累,一个个成功项目的积累,一篇篇技术文章分享的积累,一次次分享经验的积累,而形成足够的影响力。

所以综合来说,软件工程师的最核心竞争力是

  1. 最底层、最基础的是学习能力,通过学习能力,快速掌握新的技术
  2. 中间层就是解决问题的能力,利用学习到的技术去发现问题、分析问题和解决问题
  3. 最上层就是影响力,核心竞争力的综合体现

下图的金字塔图,我们称之为软件工程师的竞争力金字塔:

    我们需要注意,三层缺一不可,我们必须打好基础,才会让我们竞争力持久而不是昙花一现。

软件工程师竞争力金字塔的意义

我们需要训练自己的学习能力,日常工作中实现一个个功能,做一个个项目的过程都是在锻炼和提升我们的能力,工作中不但要把自己的事情做好,还要能够帮助别人成长,最大化的利用好所在平台和行业的经历,转变成我们的经验和影响力,工作之外也多分享自己的经验,打造自己的品牌。

我们可以通过如下问题考察软件工程师的能力:

  1. “项目中遇到过哪些复杂的问题”
  2. “都是怎么去解决的”

通过问题的答复,我们可以继续深入,“当时是怎么考虑安全性问题的?”“如果访问量增加一倍,会有什么影响?”从回答问题中我们就可以对他的能力有个初步了解。

最后我们还可以考察他的学习能力:

  1. “最喜欢的编程语言是什么”
  2. “如何学习这门语言的”
  3. “如何学习一门新的编程语言”

作为软件工程师,我们就需要自下而上,锻炼自己的学习能力,积累解决问题的经验,工作过程中形成影响力,一点点去构建自己的核心竞争力。

软件工程师的核心竞争力是什么相关推荐

  1. 软件工程师的核心竞争力(学习能力,解决问题的能力,影响力)

    原文链接:https://blog.csdn.net/rendong_yang/article/details/89703724 文章目录 一.软件工程师的核心竞争力 1.学习能力 2.解决问题的能力 ...

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

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

  3. AI 芯片崛起!FPGA 工程师的核心竞争力在哪里?

    [CSDN 编者按]随着 AI 芯片在争议中崛起,FPGA(现场可编程门阵列)芯片架构也开始受到关注,但大部分人仍对其保持着知之甚少的状态.作为一种硬件可重构的体系结构,FPGA 在很长一段时间内都被 ...

  4. 测试工程师的核心竞争力----打卡第九天

    我以我们团队招聘功能测试和测试开发工程师为例,带你了解一下测试工程师的核心竞争力到底是什么. 案例一来自我们的资深功能测试工程师招聘.当时,有一位拥有近 9 年测试经验的资深测试候选人,我对他的简历还 ...

  5. 什么是FPGA工程师的核心竞争力

    这个问题是老石在知乎上看到的,大家的回答都是"调板子"."debug"."硬件实现"等等.作为FPGA工程师,老石看了实在要报以一个礼貌的微 ...

  6. 软件测试人员的核心竞争力,软件测试工程师的核心竞争力是什么?

    在测试行业,很多人会认为,测试工程师这个岗位其实是很容易被替代的,工作了3年5年会的东西,一个应届生稍加培养也能做,那么企业会选择谁可想而知.所以在学习的过程中,我们首先要找准自己的定位,先搞清楚你的 ...

  7. 09. 软件测试工程师的核心竞争力是什么

    文章目录 例子: 传统测试工程师师应该具备的核心竞争力 第一项核心竞争力,测试策略设计能力 第二项核心竞争力,测试用例设计能力 第三项核心竞争力,快速学习能力 第四项核心竞争力,探索性测试思维 第五项 ...

  8. 【测试工程师的核心竞争力是什么】

    测试工程师的核心竞争力是什么 第一项核心竞争力,测试策略设计能力 第二项核心竞争力,测试用例设计能力 第三项核心竞争力,快速学习能力 第四项核心竞争力,探索性测试思维 第五项核心竞争力,缺陷分析能力 ...

  9. 软件测试工程师的核心竞争力是什么?

    我以我们团队招聘功能测试和测试开发工程师为例,带你了解一下测试工程师的核心竞争力到底是什么. 案例一来自我们的资深功能测试工程师招聘.当时,有一位拥有近9年测试经验的资深测试候选人,我对他的简历还是比 ...

  10. 算法工程师的核心竞争力

    工作以来一直在思考算法工程师这个岗位的核心竞争力,自己的心路历程分为三个阶段. 第一阶段 这一阶段我认为算法工程师的核心竞争力是对模型的理解,对于模型不仅知其然,还得知其所以然. 于是我把目标检测的经 ...

最新文章

  1. c语言实现图形界面实现四则运算,C语言实现四则运算的生成器
  2. 面试官:Redis用过是吧?那你讲讲Redis都有哪些监控指标?
  3. JVM:查看java内存情况命令
  4. Failed to resolve:com.android.support:appcompat-v7
  5. python怎么学最快-零基础怎么样才能学好Python?Python入门必看
  6. 2021-11-30
  7. 推荐 7 个学习 TypeScript 的宝库,2021 是时候给自己加薪了!
  8. python判断字母数字_Python判断字符串是否为字母或者数字(浮点数)的多种方法
  9. eclipse32位python版下载_python之(3)Python Eclipse+PyDec下载和安装教程(超级详细)...
  10. RAD Studio 2010 环境设置(转)
  11. acer软件保护卡怎么解除_Acer软件保护卡
  12. activemq中怎么知道推送消息是否成功_ActiveMQ入门
  13. 关于大小端转换整理总结(包含原始方式、Qt方式)
  14. 摩尔庄园不同服务器账号互通吗,摩尔庄园手游不同区可以一起玩吗 服务器互通情况分享...
  15. chrome插件实现简单网页实时翻译
  16. 不使用转换器,DWG转DXF能否快速完成呢?
  17. Kali Linux渗透测试——无线渗透
  18. 无线系列 - MIMO波束赋形技术研究
  19. 塔木德分财产,有图,快速过关
  20. 高效能管理之要事第一 时间管理表格

热门文章

  1. 工业无线开关量信号传输器
  2. linux测试upnp,UPnP linux新手入门
  3. 私有云的优缺点_私有云服务器的优缺点
  4. (C语言课程设计)学生选修课程系统设计
  5. 人活一辈子到底为了啥?(人生苦短 我要学人工智能)一万年太久,只争朝夕。
  6. Problem 1 东风谷早苗(robot.cpp/c/pas)
  7. ConcurrentHashMap的使用场景
  8. Vue复刻华为官网(三)
  9. 总结一个技术总监的教训和经验
  10. 四川为何紧急叫停某知名声乐演员计划在川23场次个人巡演活动?