如何构建并提高自己的核心竞争力?

上一篇文章聊到了软件工程师的核心竞争力主要分为三个方面:快速学习能力、解决问题能力和个人影响力,且核心竞争力的培养和提高需要长时间实践和积累,并不是短时间就可以达到的。这篇文章, 来聊聊如何培养和提高自己的核心竞争力。

如何提升快速学习能力

学习能力是软件工程师最基本的核心竞争力,快速学习能力决定了掌握技术的速度,并且是解决问题能力的前提。要培养快速学习能力的前提,是构建自己的知识体系。那么如何构建自己的知识体系呢?我个人有如下几点建议:

  • 在某一个技术领域深耕;

  • 向相近领域逐步横向扩展;

技术的深度与广度

这其实是一个技术的深度与广度的话题。之前很多同学问我,技术的深度和广度,哪个更重要?我认为在不同的阶段,有不同的侧重点,而非单独的只能二选一。

职场生涯前期,我个人的看法是应该在技术的深度上投入更多的精力,在细分的技术领域做到一定程度的熟练掌握,成为某个圈子里面前20%优秀的人。当然,由于技术是成体系的,在这个过程中,你会触类旁通的掌握一些其他领域的知识,这个阶段我称之为“以点破面”。

当在某个细分领域达到一定程度后,可以横向扩展,投入较多的精力去学习了解和你擅长领域有直接关系的技术知识,扩大自己的已知面,这个过程中所收获汲取的知识,又会反过来帮助你解决之前的一些困惑,总体来说是相辅相成的。这个阶段我称之为“构建知识体系”的过程。

只有你将一个领域的知识深度掌握和吃透,才能高效的迁移到其他领域,构建自己的知识体系。

业务比技术更重要

遇到过一些同学,唯技术论,觉得只要技术比较优秀到哪儿都是香饽饽。但技术真的有这么大作用么?不见得。在讨论这个结论之前,首先要明确一点:技术的价值是通过业务运营的增长来实现的。简单来说就是,技术需要更好的支撑业务的发展,通过业务的增长来体现自己的价值。大家可以看看下面这张图:

如果你想学习自动化测试,我这边给你推荐一套视频,这个视频可以说是B站播放全网第一的自动化测试教程,同时在线人数到达1000人,并且还有笔记可以领取及各路大神技术交流:798478386   

【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)_哔哩哔哩_bilibili【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)共计200条视频,包括:1、接口自动化之为什么要做接口自动化、2、接口自动化之request全局观、3、接口自动化之接口实战等,UP主更多精彩视频,请关注UP账号。icon-default.png?t=N7T8https://www.bilibili.com/video/BV17p4y1B77x/?spm_id_from=333.337&vd_source=488d25e59e6c5b111f7a1a1a16ecbe9a

图片

我们在日常工作中,要实现一个需求,也要考虑到需求的特点/用户使用场景,然后再制定对应的技术方案。工作经验多了之后,我自己也明白了一个道理:越靠近业务和商业化,越容易赚钱/体现自己的价值。因为业务的增长结果便于量化的,技术该如何量化?这是个很有意思的话题。

如何提升解决问题能力

解决问题能力是软件工程师的进阶核心竞争力,其实具备这种能力的人大家在日常工作中应该都遇到过。

线上出现了某个问题,大家都束手无策时,有个同事可以逻辑清晰有条不紊的快速分析和解决问题,往往具备这种能力的人在职场中也是有一定的影响力的,或者说大家对他能力和经验是有口皆碑的。那么如何提升解决问题能力呢?

大家可以参考我前面写的软件工程的文章,软件工程的初衷是防止软件系统出现风险而构建高质量软件系统的方法论,它的理念也可以用于解决问题。

培养解决问题能力,可以从日常工作中遇到的问题着手,遵循如下几点步骤:

  • 明确定义问题:问题是什么?影响了哪些模块?造成了哪些影响?和它有依赖的模块是否受到影响?

  • 定位拆分问题:造成这个问题的原因是哪些因素?之前是怎么做的?之前的做法有哪些不足和遗漏?

  • 提出方案并解决:针对问题的解决方案是什么?从哪些方向去解决?执行解决方案,观察效果直至问题得到解决;

  • 复盘并跟进优化:全面复盘问题出现的前因后果以及解决后的效果,分析不足,找到改进措施并跟进落地优化结果;

上面的几点,在日常工作中用于提升解决问题能力是有很大帮助的,但还有个更好的方式,就是应急预案。

预案的作用是什么?

从技术角度来讲,任何一个细微问题都可能导致生产出现重大故障,因此针对性的设计对应的预案就显得至关重要。

从业务角度来讲,无论技术做任何的改动和优化,最终的目的都是为了业务目标的达成。而系统的稳定性,无论从用户体验还是业务目标达成的角度来看,都是不可忽视的一环。

因此预案的作用就呼之欲出:从技术的角度出发,为业务目标的达成提供多维度的稳定性保障

如何制定预案?

在我看来制定预案是一个经验+评估的问题。常见的制定预案的方式如下:

  • 从日常的线上问题着手,汇总问题和解决方案,复盘得到TODO项和落地验证;

  • 从系统设计和业务需求分析角度开始,前置性的进行评估分析,设定对应的预案;

  • 从用户体验和用户行为分析角度出发,优化用户操作过程和交互逻辑,避免类似问题;

最后的经验之谈
  • 所有预案都需要经过评估分析;

  • 没有验证的预案都是潜在的风险;

  • 预案都是有风险和成本的,避免过度设计;

  • 预案的最终目标是保障业务目标达成,而非秀技术;

如何提升个人影响力

提升个人影响力可能很多同学会觉得摸不着头脑,那我换句话形容大家应该就懂了:提升在团队的话语权。

那么如何提升自己在团队中的影响力(话语权)呢?我自己有如下几点经验:

在某个领域有足够深的造诣

这点对技术同学来说很好理解,厉不厉害出来show一圈就知道。

“talk is cheap, show me the code”,这句经典名言大家都懂得。

工作可以达到超出预期的结果

我到现在还记得之前就职的某家公司CTO的一句话:打硬仗,拿结果。

扩展来说,应该是解决复杂的问题,做难度更大的项目,拿到超出预期的结果。

影响力是需要在实践中来获得认同的。

当然,如何达到超出预期的结果,建议大家学学“期望管理”,这是个很有意思的软技能。

乐于帮助他人并且主动进行分享

帮助他人很好理解,无论是日常工作中帮同事解决技术难题,还是在技术社区帮助同行分析解决问题,都可以获得认同。

分享方式更多,无论是企业内部技术/业务分享,还是行业大会/技术沙龙/直播都可以分享自己的实践经验、职场心得。

当然,分享这件事要看个人的性格。我个人性格并不是那种特别外向的社交性格,我更愿意通过写文章写博客的方式来和大家交流,分享自己的经验。就像大家在看到这篇文章的时,就是我在分享的一种方式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/128716.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

里氏代换原则

package com.jmj.principles.dmeo2.after;/*** 四边形接口*/ public interface Quadrilateral {double getLength();double getWidth();}package com.jmj.principles.dmeo2.after;/*** 长方形类*/ public class Rectangle implements Quadrilateral{private double length;priv…

windowCPU虚拟化已禁用解决方案

windowCPU虚拟化已禁用解决方案 1. 前言 window电脑要安装Docker或者VMware虚拟机就需要开启windows自身的虚拟化功能,除了在设置上要开启Hyper-V只要还需要开启CPU的虚拟化功能,而CPU的虚拟化则需要通过进入BIOS设置中开启 2. 检查是否开启了虚拟化功…

探索Linux世界:从基础到高级

标题 探索Linux世界:从基础到高级 🚀第一章:Linux入门篇第二章:掌握Linux基础命令第三章:文件操作的艺术第四章:征服vi/vim编辑器第五章:掌握Linux全部命令 文末赠书 博主 默语带您 Go to New W…

C# .NET Core API Controller以及辅助专案

准备工作 Windows 10Visual Studio 2019(2017就有可以集中发布到publish目录的功能了吧)C#将方法封装(据说可以提高效率,就像是我们用的dll那种感觉新增专案作为我们API的辅助专案(作用类似dll,此处,你也可以在你自己的API专案里建文件夹,但…

MCSM面板搭建教程和我的世界Paper服务器开服教程

雨云游戏云VPS服务器用Linux搭建MCSM面板和Minecraft Paper1.20.2服务器教程。 本教程演示安装的MC服是Paper 1.20.2版,其他版本也可以参考本教程,差别不大。 本教程使用Docker来运行mc服,可以方便切换不同Java版本,方便安装多个…

Ubuntu安装步骤

点击文件 --> 新建虚拟机: 找到第一章下载的ubuntu镜像文件,然后下一步 自定义名称和位置,然后下一步 根据需要定内存,2G以上即可: 单个文件即可 点击完成 回车,然后等待安装 回车 回车 回车 按上下键找…

QWidget 实现九宫格图案解锁

前言 最近需要实现一个九宫格图案解锁功能,查看网上的方案,基于QWidget的方案全网搜来搜去就一篇 Qt编写自定义控件:图案密码锁, 都是炒来炒去的同一篇,代码还比较复杂,运行后在PC端还是可以的,但是运行在arm机器上,就卡顿,或者容易断开手势连接线,各种不友好,于是自…

【python高级】asyncio 并发编程

【大家好,我是爱干饭的猿,本文重点介绍python高级篇的事件循环,task取消和协程嵌套、call_soon、call_later、call_at、 call_soon_threadsafe、asyncio模拟http请求、asyncio同步和通信、aiohttp实现高并发实践。 后续会继续分享其他重要知…

leetcode刷题 - SQL - 中等

1. 176. 第二高的薪水 筛选出第二大 查询并返回 Employee 表中第二高的薪水 。如果不存在第二高的薪水,查询应该返回 null(Pandas 则返回 None) 。查询结果如下例所示。 666中等的第一题就上强度 强行解法 select max(salary) as SecondHighestSalary from Emp…

多维详述MediaBox互动直播AUI Kit低代码开发方案

本专栏将分享阿里云视频云MediaBox系列技术文章,深度剖析音视频开发利器的技术架构、技术性能、开发能效和最佳实践,一起开启音视频的开发之旅。本文为MediaBox最佳实践篇,重点从互动直播AUI Kit的核心能力、技术架构、快速集成等方面&#x…

Seata之AT模式

目录 AT模式的引进 AT模式前提 AT模式的工作流程 案例流程梳理 AT模式的原理 具体使用 优缺点 小结 AT模式的引进 我们XA模式有死锁(协议阻塞)问题:XA prepare 后,分支事务进入阻塞阶段,收到 XA commit 或 XA…

【手写模拟Spring底层原理】

文章目录 模拟Spring底层详解1、结合配置类,扫描类资源1.1、创建需要扫描的配置类AppConfig,如下:1.2、创建Spring容器对象LyfApplicationContext,如下1.3、Spring容器对象LyfApplicationContext扫描资源 2、结合上一步的扫描&…

vue3 文字轮播打字机效果

实现效果 1.安装依赖 npm install duskmoon/vue3-typed-js 2.html <div class"title_left_1"><Typed :options"options" class"typedClass"><div class"typing"></div></Typed> </div> 3.ts…

Vue 组件化编程 和 生命周期

目录 一、组件化编程 1.基本介绍 : 2.原理示意图 : 3.全局组件示例 : 4.局部组件示例 : 5.全局组件和局部组件的区别 : 二、生命周期 1.基本介绍 : 2.生命周期示意图 : 3.实例测试 : 一、组件化编程 1.基本介绍 : (1) 开发大型应用的时候&#xff0c;页面往往划分成…

行情分析——加密货币市场大盘走势(11.10)

大饼今日继续上涨&#xff0c;正如预期&#xff0c;跌不下来&#xff0c;思路就是逢低做多。现在已经上涨到36500附近&#xff0c;目前从MACD日线来看&#xff0c;后续还要继续上涨&#xff0c;当然稳健的可以不做。昨日的策略已经达到止盈&#xff0c;也是顺利的落袋为安啦。一…

局域网下搭建SVN服务器

文章目录 1. 下载SVN服务器(VisualSVN Server)2. 安装SVN服务器(VisualSVN Server)3. 下载并安装TortoiseSVN4. 搭建SVN服务器 1. 下载SVN服务器(VisualSVN Server) 下载地址 2. 安装SVN服务器(VisualSVN Server) 默认安装即可 Location&#xff1a;VisualSVN Server的安装…

【chat】2:vs2022 连接远程ubuntu服务器远程cmake开发

大神们是使用vs远程连接和调试的:C++搭建集群聊天室(三):配置远程代码编辑神器 VScode我尝试过vs++ 和 clion 都不错。在 Visual Studio 中配置 Linux CMake 项目 比较麻烦的就是要配置CMakeSettings.json ,而且会自动做复制指定远程 Linux 目标,则会将源复制到远程系统 …

《单链表》的实现(不含哨兵位的单向链表)

目录 ​编辑 前言&#xff1a; 链表的概念及结构&#xff1a; 链表的实现&#xff1a; 1.typedef数据类型&#xff1a; 2.打印链表 &#xff1a; 3.创建新节点&#xff1a; 4.尾插 &#xff1a; 5.头插&#xff1a; 6.尾删 &#xff1a; 7.头删&#xff1a; 8.查找节…

刚安装的MySQL使用Navicat操作数据库遇到的问题

刚安装的MySQL使用Navicat操作数据库遇到的问题 一、编辑连接保存报错二、打开数据表很慢三、MySQL的进程出现大量“sleep”状态的进程四、执行sql脚本报错&#xff0c;部分表导不进去五、当前MySQL配置文件 一、编辑连接保存报错 连接上了数据库&#xff0c;编辑连接保存报错…

winform打包默认安装路径设置

点击安装程序的 Application Folder 修改属性中的 DefaultLocation