技术更迭,一往无前
文/楠木大叔 转载自 【智客工坊】
导读
-
唯一不变的是变化本身
-
工具升级还是技术升级?
- 开发工具的迭代
.NET
技术的迭代- 面子与里子
-
小猴子掰玉米的故事
- 被新技术按在地上摩擦
- 我们真的变强了吗
-
条条大路通罗马
- 回字有四种写法
- 技术和商业模式
-
技术人的核心竞争力是什么
- 技术是行业附属
- 行业经验才是核心竞争力
-
新时代的工匠精神
唯一不变的是变化本身
“唯一不变的是变化本身”
弹指间,干技术工作近十年。从刚走出大学校门的翩翩少年,到如今的中年大叔,令人印象最为深刻的莫过于技术的更迭。而这种更迭,不一定是进步和创新,有时候就像一种潮流的轮回。你先沏一杯茶,听我慢慢道来。
工具升级还是技术升级?
开发工具的迭代
visual studio 开发工具,我想大家都不会陌生,宇宙第一IDE的称号绝非浪得虚名。过去的十八年里,这款开发工具的升级越来越频繁,从3年一更,到2年,甚至一年一更。功能越来越强,软件也是越来越大,安装完差不多需要10个G。
做C#开发的童鞋可能都是Visual Studio的深度用户。笔者不属于技术的发烧友,对技术和工具的选择,更多是基于团队和实际业务。在我的印象中,我会2~3年升级一次这个开发工具。有时候是为了适应新团队的开发步调,大家开发工具保持一致,有时候是因为需要使用到.net的新特性,比如core。
.NET
技术的迭代
- 199x-2003年 COM/ActiveX 时期
- 2002-2010年 WinForm/WebForm 时期
- 2007-2013年 WPF 时期
- 2009-2016年
ASP.NET MVC
时期 - 2014-至今 UWP(Universal Windows Platform)时期
- 2016-至今 .NET Core 时期
以上是从比较宏观的角度来划分的,实际每个阶段的技术变迁都比这个多,比如从C# 2.0 到 3.0增加了ling,lamada表达式新特性,各种语法糖等。尽管笔者跟随脚步多年,但限与工作场景,也有很多框架和技术没有在实际工作使用过。
值得注意的是,.NET Core的出现相比以前的各个阶段具有突破性——支持跨平台。具体的细节在我的一篇文章中有所提及《[.NET Core 跨平台](https://www.52interview.com/book/18》。
面子与里子
回顾VS工具的变迁和.NET 的发展历程,笔者最大的感受是每一次的迭代并不是如大家期望的那样,具有很大革命性。即便是.NET Core
的出现也只能算的上C#自身的突破,毕竟java,php,ruby等从开始就具备了跨平台的属性。
然而,对于每个.NET
从业者来说,微软的每一次升级可能都会给他们带来一次学习成本。边学边丢,似乎成了一种常态。
如果没有从实质上的帮助开发者提升效率,反而不断地变换着增加学习成本,那么这种技术上的迭代,只能被定义为你工具上的迭代(而不是升级)。
小猴子掰玉米的故事
有一天,一只小猴子下山来。它走到一块玉米地里,看见玉米结得又大又多,非常高兴,就掰了一个,扛着往前走。小猴子扛着玉米,走到一棵桃树下。它看见满树的桃子又大又红,非常高兴,就扔了玉米去摘桃子。小猴子捧着几个桃子,走到一片瓜地里。它看见满地的西瓜又大又圆,非常高兴,就扔了桃子去摘西瓜。小猴子抱着一个大西瓜往回走。走着走着,看见一只小兔蹦蹦跳跳的,真可爱。它非常高兴,就扔了西瓜去追小兔。小兔跑进树林子,不见了。小猴子只好空着手回家去。
被新技术按在地上摩擦
大多数当下的主流,不过是昙花一现或潮流的轮回。
从上面总结的技术迭代历程来看,技术也是有潮流的,在不同时期可能会流行不同的技术。比如,在20122014年,你去面试,总会被问到,“请讲一下什么是MVC?“,20142016年,比较流行MVVM。然后,2018年到2019年,流行前后端分离开发模式,中台,现在大家都在提微服务等等。当然,这里面会有很多技术细节和名词,但是一旦你去实践和落地之后就知道他们其实大部分干的事情都差不多。
然后,大多数人都认为这是趋势,这是主流。你不用这个技术就是不够专业。所以,大家都在鼓吹,你要保持持续学习新技术。你可能干了好几年,然后被一群入行才半年的年轻人按在地上摩擦。
我们真的变强了吗
笔者罗列了自己过去8年间粗略使用过的技术,当然读过的书和涉猎而未实际应用的不会罗列,具体的一些附带框架(如EF,WCF等)不会罗列。
这里面很多技术是当时流行的,随着时间的推移,随着团队的更迭不断变化。
我们经常说,过去十年(2010~2020)是互联网发展的黄金十年,也是技术发展最快的十年。然而,认真回顾这十年,技术的发展是否真的如外界所言那么繁荣, 身处其中的我们是否变得更强?我相信996现象会给大家一个合理的解释。
条条大路通罗马
公元前3世纪罗马在统一意大利之后,由一个小小的城邦发展成为强盛的国家,社会相对稳定,经济发达,文化繁荣,人民安居乐业。为了便于自己的军事和政治统治,它修建了以罗马为中心向四面八方幅射的大道,使交通更加便利,从而沟通了各城市和行省之间的文化交流,促进了商业贸易,各地产品如葡萄、橄榄、金属、纺织品、陶器、玻璃、谷物、酒等等的贸易交换达到了空前兴盛的程度,对人民生活产生了深刻的影响,于是欧洲各地便有了“条条大路通罗马”这样的俗语,比喻一件事物处于人心所归的地位,能吸引来自各方面人力物力。后来用它比喻要办成一件事情或达到一个目的,其方法是多种多样的。
回字有四种写法
孔乙己显出极高兴的样子,将两个指头的长指甲敲着柜台,点头说,“对呀对呀!……回字有四样写法,你知道么?”我愈不耐烦了,努着嘴走远。孔乙己刚用指甲蘸了酒,想在柜上写字,见我毫不热心,便又叹一口气,显出极惋惜的样子。
笔者在参加工作的早年参加过一场的面试,这家公司但是还是比较大的互联网公司。面试官问了一个让我印象深刻的问题。”请说出你知道的jquery选择器种类?“,我当时答了4种,尽管自己确实看过锋利的jQuery》这本书,但是常用的也就不到6种。然后,面试官很鄙视的说到,他知道的有36种。
在工作中,我想大家也会有遇到这样的同事。比如,总是会听到有些同事说,”webservice过时了,我们都用微服务了“,".NET
Framework过时了,我们都用core了"。在笔者看来,技术就是工具,我们的目的是解决问题,如果能够善用查询技术解决问题,目的就达到了。
技术和商业模式
技术是工具,使用技术给用户提供服务。你做一个网站,用户不会关心你使用的是什么技术,而只会在乎你的服务否优质。
商业驱动还是技术驱动
我相信,确实存在这技术驱动商业的公司。但是,笔者不才,入行这么多年,都是在商业驱动技术的公司待过。
笔者所理解的商业驱动技术,就是技术给公司的业务服务。说的直白有点,技术在很多公司是成本部门,即便是技术产品的公司。当然,BAT这种量级的公司不清楚。大部分公司的技术部门并没有太多的话语权,要么是市场部驱动技术部,要么是产品部驱动技术部。业务驱动技术,技术为商业目的服务。
技术人的核心竞争力是什么
技术是行业附属
铁打的公司,流水的技术。
互联网曾经对传统行业造成的降维打击是令人印象深刻。互联网的确改变了人们的生活方式。于是,几乎所有行业都在接入互联网。
大部分公司是业务主导,技术服务于产品和业务,技术是业务的辅助。技术投入成本是很大的,也是需要时间积累。一旦业务萎缩,首先需要开源节流的多半是技术部门。所以,互联网从业人员的流动性一直居高不下。那么,技术人的核心竞争力是什么?
行业经验才是核心竞争力
技术本身是中立的,技术是工具,但遗憾的是很多技术不能自己养活自己。技术可以服务于制造业,可以服务于电商,可以服务于旅游业。只有依附于某个行业,技术才能产生价值。
所以,行业经验才是核心竞争力。
新时代的工匠精神
无论你哪所大学毕业,无论你的工种和职称,你身无匠心、手无技巧、提供不了精准、专业、享受式服务,你就不是匠人,而多半是个职场混子。——《于千万人之中,你是匠人》
技术圈的人常以码农自居,笔者不以为然,笔者更倾向于匠人。现代的互联网技术人,其实和二三十年前的铁匠,泥瓦匠,木匠其实差不多。所以,”造轮子“一词用得相当贴切。
互联网在中国发展了近二十年,技术基本上照搬国外。商业模式的创新,甚至算不上,毕竟也是起源于国外。
新时代的吾辈,不能在指望着别人发现矿,我挖矿。要敢于去发现新矿。