让人迷茫的三十岁!从专业技能、行业知识和软实力谈一下!

640?wx_fmt=jpeg

作者:邹溪源,长沙资深互联网从业者,架构师社区合伙人!


我今年三十岁,我很迷茫,不知道未来该选择什么发展方向。

这是我无意中在社区微信群中看到的一位年轻的开发者说的话,之前他也经常会在技术群中抛出一些有深度有内容的问题,并能积极乐观的进行问题思考和探寻技术解决方案,有时候可能会错误的以为他这样一位热爱学习的开发者,在公司也一定是技术的引领者,对自己的职场规划有着清楚的认识。
所以他抛出这样的问题着实有点意外,不过细想之后,或许也属实正常是。对于30岁左右的开发者来说,从20出头的毛头小伙,逐渐成长为家庭和公司的顶梁柱,如果一直从事技术领域,大概很容易就到了瓶颈期,如下图,一个人的学习能力增长曲线,大概三年或五年左右,增长速度就会逐渐放缓。

640?wx_fmt=png

(手画的)
到了这个阶段会非常痛苦,如果身处一家优秀的公司还好,有一套完整的体系保证你持续成长,否则就得陷入了吃老本的时期,或许将一直这么平庸的下去,直到被迫退出行业。
而那些不甘如此的优秀者,都渴望去改变现状,他们们往往承受着无比巨大的压力,尤其是互联网技术飞速发展、各种新技术新方法席卷而来,究竟该如何选择技术的发展方向和个人的职场规划,这个问题自然而然就出现在他们面前。
以下是互联网开发者的“人才三角”结构,由专业技能、行业知识和软实力组成。每一个圆环均代表一个知识边界。

640?wx_fmt=png


专业技能
专业技能是开发者赖以生存的宝贵技能,而其中开发语言是最重要的一个方面。近年来飞速发展的互联网业,似乎对.NET开发者带来的冲击相当巨大,在许多城市,甚至出现了Java与.NET的招聘信息比例10比1的惊人情况,而在国内互联网公司,似乎除了同程艺龙、蔚来汽车等公司,已经找不出太多叫得上名头的大企业坚持使用.NET技术栈。
但是即便如此,这并没有说明.NET技术已经逐渐落伍,尤其在技术领域,看起来火热的市场,从来也不是一门语言所能主宰。真正优秀的开发者从来不会被语言束缚,事实上虽然掌握一门核心语言非常重要,其次在语言之外的其他专业技能,诸如设计模式和设计原则、对于算法等的理解程度,都是开发者非常重要的能力,对他的价值评估产生了非常深远的影响。
在众多专业技能中,比较争议的大概是数据库、各类组件和其他专业技能,以及DevOps和微服务。首先是这些新概念,铺天盖地而来,让人难以抗拒学习的欲望,甚至不学习,也经常会被人说成知识体系闭塞。但是学习了之后,如果得不到实践,不见得能够带来短期或长期受益。除此之外能够恰到好处的掌握好数据库和各类第三方组件(诸如Redis、Consul)等,虽然能够让开发者获得不少机会,但是却并非每位开发者都有时间或精力了解这么多东西。毕竟每天只有24小时,花时间学习了A组件,往往就得忽略其他组件。而且如果只是浅尝辄止的了解某些组件,倒不如仔细的钻研众多同类组件中的一种。
微服务容易让人陷入知识的海洋无可自拔,在宝玉老师的专栏《软件工程之美》也提到微服务架构并非软件系统的天然演进,要靠组织力量来完成。而在微服务书籍《微服务设计模式》中也提出,微服务实际上应该是一种组织架构形式的体现,而不仅仅只是一种软件架构。为了微服务而微服务,不见得会带来了团队沟通成本的提高,也不见得有利于软件系统的高效迭代。同样,为了DevOps而上容器,这样也不是一种值得推崇的策略。
我把DDD和TDD纳入到专业技能中非常重要的一环。因为DDD是一种非常重要的软件问题分析方法,从宏观来看有点像团队问题分析方法,如果时间有限,大概不太有必要独自研究,毕竟要将其实践下去,还是要更多的依赖团队,不如拉几个同事一起探究。如果没办法将DDD完美的实践下去,也不必苛求,运用好领域的分层思想,可以让软件系统尽可能可控的管理各领域的知识,实现业务知识的沉淀。
TDD看似能够让软件尽可能的减少后期的维护成本,但是要将其实践下去,取决于大环境和个人是否持续不断的刻意练习,而且需要一个漫长的周期。能够刻意练习显然是极好的,相信他一定能给你带来非常巨大的好处。
行业知识
所处行业、和行业知识是决定开发者的关键,而不是专业技能本身。例如红得发紫的电商行业,阿里巴巴或拼多多等电商平台,最能给开发者带来丰厚收益的行业,也是竞争最为激烈的行业。而例如社区团购这种新兴商业业态在长沙,也同样为长沙技术圈的从业者带来的新的机遇。
但是似乎许多行业的开发者们对本身行业知识的兴趣并不大。许多开发者往往执着于对专业技能的钻研,而忽略了对行业知识的了解。而事实上行业知识的认知深度,恰好更能体现产品的水平和公司的专业程度。如果每个人都矢志于为公司打造最专业的产品,这显然将为公司、为个人带来无穷收获。
软实力
软实力是让你我与众不同的核心关键。他体现在外在,是一个人的谈吐和为人处世的态度。他通过领导力、管理能力、表达能力等许多种形式让你的优点得以更好的表现在世人面前。
软实力,是程序员成功的关键。例如你是否能够与团队成员融洽的沟通,这能够促进你与团队成员间的相互认同、你是否能够将你打造的产品更好的展示在领导或客户面前,这有利于你和公司产品价值的彰显、你是否能用文字或PPT对你的工作进行总结,这又能体现你的组织表达能力。而你在公司与其他同事的良好沟通、与客户的良好沟通,既是在积累人脉,更是在投资未来。
我独辟蹊径的把运气列入软实力的范畴,是因为我觉得运气是很重要的一环,不过如果没有足够的软实力积累,即便有不错的机遇,也不见得有能力支撑住。
总结
在我参加工作的早期,总是片面的认为技术能力才是决定人与人区别的最大关键。但是事实上恰好相反。我们身边那些混得最好的,他们往往并不是技术最好的。他们往往更善于钻研一个行业,并从中发掘出价值。他们往往更注重软实力的培养,并通过这些软实力,获得许多常人不能拥有的机会。
优秀的开发者也善于抓住职场中的每一次挑战。他们将每段职场当做修行和学习的机会,无时无刻不忘提升自己,哪怕在小公司,也同样能创造不平凡的成绩。
短暂的迷茫不可怕,怕的是看到了迷茫还不试图改变,例如知道能力有不足,却依然忽略了对能力的积累。能力的积累从来不仅仅只是停留在纸面上的简单文字,再多的迷茫,不如从眼下开始刻意练习和主动培养。例如作为.NET开发者,如果我们需要更加深层次的了解C#/.NET技术的核心知识,沉下心看一遍《C# 7.0 核心技术指南》将解惑无穷。
无论当下我们做的什么技术,最重要的关键,就是认清楚自己的缺点,然后有意识的去改善。不必苛求昨天的自己比今天的自己优秀,努力使明天的自己比今天更优秀,坚持一个方向,总能让你获得更多机会。

如有收获,点个在看,诚挚感谢640?wx_fmt=png

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

误用.Net Redis客户端工具CSRedisCore,自己挖坑自己填

前导  上次Redis MQ分布式改造完成之后, 编排的容器稳定运行了一个多月,昨天突然收到ETL端同事通知,没有采集到解析日志了。赶紧进服务器看了一下,用于数据接收的receiver容器挂掉了, 尝试docker container start [c…

Java——类加载机制

** 一、什么是类的加载 ** 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。类的加载的最终产品是位于堆区中的Class…

.NET中国峰会议题征集

月初做的调查《》,参与人数576人,愿意参与分享.NET Core经验的142人,今天发起分会场主题演讲和闪电演讲议题.2014年微软组织成立.NET基金会,微软在成为主要的开源参与者的道路上又前进了一步。2014年以来已经有众多知名公司加入.N…

一些学习教程资料等你来拿

近期整理自己的云盘中发现近年来私藏了很多学习资料和教程,本着独乐乐不如众乐乐的精神,特将其分享出来供有兴趣的童鞋学习。进入公众号,输入关键词"敏捷"/"agile"/"scrum",即可获得敏捷开发类别的…

Java——编译与反编译

** 一、基础知识 ** 1.1 编程语言 在介绍编译和反编译之前,我们先来简单介绍下编程语言(Programming Language)。编程语言(Programming Language)分为低级语言(Low-level Language)和高级语…

程序员自家种水果,新鲜包邮配送

上次猕猴桃的活动<好多小伙伴&#xff0c;买了一箱尝过后又下单了好几箱。事实证明&#xff0c;品质才是销量的最佳保证。有些粉丝找到我说&#xff0c;自己家也有果园自己种水果&#xff0c;都是当天采摘当天发货的纯天然水果。于是他们给我寄了一些自家种的苹果、香瓜、冬…

【招聘(广州)】-年薪30W起-自助打印领域业内第一

印萌是一家为高校打印店提供整套“无人自助打印”解决方案的互联网科技公司&#xff0c;已获得数百万元融资&#xff0c;公司正向盈利。目前产品覆盖清华大学、北京大学、中山大学、复旦大学、浙江大学等700多所高校&#xff0c;多达1800间打印店&#xff0c;累计为全国1200万大…

尾递归

1、递归 简单的来说递归就是一个函数直接或间接地调用自身&#xff0c;是为直接或间接递归。一般来说&#xff0c;递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时&#xff0c;递归前进&#xff1b;当边界条件满足时&#xff0c;递归返回。 用递归需要注意以…

多场景抢红包业务引发.NETCore下使用适配器模式实现业务接口分离

事情的起因我们公司现有一块业务叫做抢红包&#xff0c;最初的想法只是实现了一个初代版本&#xff0c;就是给指定的好友单发红包&#xff0c;随着业务的发展&#xff0c;发红包和抢红包的场景也越来越多&#xff0c;目前主要应用的场景有&#xff1a;单聊发红包、群聊发红包、…

设计模式——创建型模型

目录 单例模式&#xff08;singleton&#xff09;构建模式&#xff08;Builder&#xff09;原型模式&#xff08;Prototype&#xff09;工厂方法模式&#xff08;Factory&#xff09;抽象工厂模式&#xff08;Abstract Factory&#xff09; ** 一、5种创建型模型 ** 1.1 单…

【C】KoobooJson在asp.net core中的使用

版权声明&#xff1a;本文为博主原创文章&#xff0c;遵循 CC 4.0 BY-SA 版权协议&#xff0c;转载请附上原文出处链接和本声明。本文链接&#xff1a;https://blog.csdn.net/j_teng/article/details/100924973“KoobooJson是一款体积小巧没有任何依赖且性能表现强劲的Json工具…

【DevOps进行时】C/S端界面自动化测试:微软UIAutomation实践

在界面自动化测试领域里存在许多流行的自动化测试工具&#xff0c;例如目前比较受欢迎的开源自动化工具Selenium、Katalon&#xff1b;HP旗下知名的商业软件Unified Functional Testing(更名前叫QTP)&#xff1b;隶属于IBM以数据驱动测试的RTF&#xff08;Rational Functional …

代码编辑器横评:为什么 VS Code 能拔得头筹

2015 年 4 月 29 日的 Build 大会上&#xff0c;微软发布了 Visual Studio Code 第一个预览版本。短短四年时间里&#xff0c;VS Code 高速成长。根据 2019 年 2 月的 PYPL Top IDE index 的排名&#xff0c;VS Code 的涨势迅猛&#xff0c;在所有编辑器与 IDE 中排名第六&…

设计模式——结构型模型

一&#xff1a;目录 1. 装饰者模式&#xff08;Decorator&#xff09; 2. 代理模式&#xff08;Proxy&#xff09; 3. 组合模式&#xff08;Composite&#xff09; 4. 桥接模式&#xff08;Bridge&#xff09; 5. 适配器模式&#xff08;Adapter&#xff09; 6. 蝇量模式&#…

利用Helm简化Kubernetes应用部署(1)

目录利用Helm简化Kubernetes应用部署 Helm基础 安装Helm 使用Visual Studio 2019为Helm编写一个简单的应用 利用Helm简化Kubernetes应用部署Helm是Kubernetes生态系统中的一个软件包管理工具&#xff0c;有点类似于Linux操作系统里面的“apt-get”和“yum”。结合上一节内容&am…

设计模式——行为型模式

一&#xff1a;目录 1. 策略模式&#xff08;Strategy&#xff09; 2.状态模式&#xff08;State&#xff09; 3.责任链模式&#xff08;Chain Of Responsibility&#xff09; 4.解释器模式&#xff08;Interpreter&#xff09; 5.命令模式&#xff08;Command&#xff09; 6.观…

网络编程——常用协议解析

** 1、网络基础知识 ** 1.1> 什么是OSI模型 OSI 模型(Open System Interconnection model)是一个由国际标准化组织?提出的概念模型,试图?供一个使各种不同的计算机和网络在世界范围内实现互联的标准框架。 它将计算机网络体系结构划分为七层,每层都可以提供抽象良好的…

在 ABP vNext 中编写仓储单元测试的问题一则

一、问题新项目是基于 ABP vNext 框架进行开发的&#xff0c;所以我要求为每层编写单元测试。在同事为某个仓储编写单元测试的时候&#xff0c;发现了一个奇怪的问题。他的对某个聚合根的 A 字段进行了更新&#xff0c;随后对某个导航属性 B 也进行了变更&#xff0c;最后通过仓…

TCP协议——三次握手与四次关闭

1. TCP协议基础 网络编程基础见&#xff0c;传送门 TCP是面向连接的&#xff0c;无论哪一方向另一方发送数据之前&#xff0c;都必须先在双方之间建立一条连接。 在TCP/IP协议中&#xff0c;TCP协议提供可靠的连接服务&#xff0c;连接是通过三次握手进行初始化的。 三次握手…

TCP协议——流量控制和拥塞控制

** 一、流量控制 ** 1.1 什么是流量控制 Sender won’t overflow receiver’s buffer by transmitting too much, too fast. &#xff08;防止发送方发的太快&#xff0c;耗尽接收方的资源&#xff0c;从而使接收方来不及处理&#xff09; 1.2 流量控制的一些知识点 &#x…