您当前的位置:首页 > 电脑百科 > 程序开发 > 程序员

我的20年职业生涯:全是技术债

时间:2023-08-14 15:36:29  来源:InfoQ  作者:

编译 | 刘雅梦、核子可乐、凌敏

那些年,写过的代码终将成为技术债?

1992 年,Ward Cunningham 在敏捷宣言中首次提出了“技术债”概念,主要指有意或无意地做了错误的或不理想的技术决策所累积的债务。随后,《重构》一书的作者 Martin Fowler 基于 Cunningham 的比喻,创建了一个“技术债务四象限”,包括:

  • 鲁莽 / 有意:“我们没有时间去设计”;
  • 谨慎 / 有意:“我们必须现在交付,之后再处理因为追求速度所产生的结果”;
  • 鲁莽 / 无意:“什么是分层?”;
  • 谨慎 / 无意:“我们现在知道应该怎么做了”。

前段时间,Reddit 上有关技术债的话题再次引起程序员的广泛讨论。用户 spo81rtyOP 表示,“大多数软件的实际使用寿命也就 5 到 10 年。即便软件能幸存下来,完全由过时技术栈编写这一现实也会让它的路子变得很窄。这就是软件工程师的真实命运。”

创业公司 CTO Matt Watson 则直言,他过去 20 年的职业生涯全是技术债。

Watson 13 岁开始编程,22 岁时创办了自己的第一家科技公司 VinSolutions,实现了 3000 多万美元的 ARR,并于 2011 年以 1.5 亿美元的价格将其出售给 AutoTrader。离开 VinSolutions 后,Watson 创办了一家名为 Stackify 的公司,为软件开发人员提供应用程序监控。此外,Watson 还在菲律宾创办了离岸开发公司 Full Scale ,以支持他的 SaaS 公司。Watson 透露,Full Scale 已发展到拥有 300 多名员工。

Watson 在博客中提到,当他听到有人说“我们正在快速开发 MVP,同时最大限度地减少技术债”时,他只是笑笑,因为他知道,最终所有东西都会变成技术债。Watson 在博客中介绍了自己的 20 年职业生涯发生的变化,他悲观地表示:“如果时间足够长的话,你的所有代码都将被删除。”

1“如果时间足够长,你所有的代码都将被删除”

那些早被遗忘的技术和过时的编程语言

Watson 的职业生涯始于 Visual Basic 6 的开发。从 1999 年到 2003 年,Watson 构建了多个不同的应用程序。后来,Watson 又花了很多时间进行经典的动态服务器页面(ASP)开发,自己也成为了在 Inte.NET Explorer 6 和 Netscape Navigator 制作兼容网站的专家。

但在今天来看,Visual Basic、ASP、IE6 和 Netscape 都是早已被遗忘的技术了。

与此同时,在过去的 20 多年里,很多编程语言也都“失宠”了,比如 Perl、Delphi、Fortran、FoxPro、ColdFusion。也许这些古老的编程语言还存在某些应用程序中,但大多数情况下,还应用这些编程语言的公司必须要对旧的应用程序进行现代化改造,并将其淘汰。如果你用这些过时的编程语言构建程序,最终的结果可能只有重写,因为很难再找到使用这些语言的程序员了。

在 21 世纪初,人们认为 Adobe ColdFusion 是最热门的产品,但在今天呢?Ruby on RAIls 也可能走上 Adobe ColdFusion 的老路,它已经失宠了,并且很难找到使用它的开发人员。曾经 Ruby on Rails 独有的东西,现在也可以在其他语言中使用了。

Watson 表示,编程语言来来往往,开发人员不希望学习工作中不需要的技能。同时,开发人员跳槽的速度也很快,他们总是希望自己的简历上有一些热门的新东西。

曾辉煌过的 ActiveX、JAVA Applets、Flash 和 Silverlight

Watson 最初开发的一些应用程序使用了 Internet Explorer 6 中的 ActiveX 控件。当时,需要用它们来做打印和其他一些非常不安全的黑客工作。PDF 在当时并不常见,用浏览器打印简直就是一场噩梦。

Java Applets 也曾辉煌过,但它运行缓慢,并且在电脑上安装正确版本的 Java 总是一团糟。Watson 称自己永远不会忘记处理 Java 小程序网络防火墙的噩梦。“我一点也不怀念它们,幸运的是,它消失了。”

此外还有 macromedia/Adobe Flash。当时 Flash 游戏层出不穷,许多软件都是用 Action 在 Flash 中构建的。现在,一个名为 CheerpX 的产品允许使用 WebAssembly 运行旧的 Flash 应用程序。

微软曾推出一个名为 Silverlight 的 Flash 竞品。对于 C# 开发人员来说,这实际上是一个非常棒的框架。Watson 的公司也曾用 Silverlight 构建了一些非常棒的东西。不过后来,苹果在浏览器中放弃了对 Flash 和 Silverlight 的支持,从而终结了它们。

下图是十多年前,Watson 在 VinSolutions 中使用 Silverlight 构建财务计算器的屏幕截图。Silverlight 现在早已不复存在,他们用 Java 重写了它,但 Watson 认为,新版本没有旧版本酷了。

开发工具的变化有多快?

2004 年还没有 IOSAndroid,当时,Watson 曾为 Compaq PDA 编写了一个应用程序,用于跟踪汽车经销商的库存。它是用 C# 编写的,用于在 windows CE 上运行的 .NET Compact Framework 中。

这个 PDA 有一个 100 万 像素的摄像头,只要外面是阴天,照片就会糟糕些。这个应用程序很早以前就被淘汰了,但在 2005 年时它还很前卫。

Swift

Swift 是另一个很好地说明开发工具变化速度之快的例子。苹果公司发布 Swift 后,就很难再证明用 Objective C 编写代码是合理的了。虽然在某些用例中仍然需要用 Objective C,但 Swift 明显更易于开发,并且是向前迈出的重要一步。

Watson 认为,现在任何用 Objective C 编写的应用程序都可能是技术债了。

WebForms

在为构建 Web 应用程序编写了疯狂的内联脚本之后,Watson 很乐意使用新的 ASP.NET Web 表单,其服务器端控件大大简化了开发。它们的目标是让创建 Web 应用程序变得像在 Visual Basic 6 中一样简单。开发者可以在服务器端构建可重用的 UI 组件以呈现给浏览器,就像今天使用 100% 的 Java 所做的那样。

WebForms 并不完美,但它是一个相当大的提升。在 Ruby on Rails 出现并普及了用于开发 Web 应用程序的 MVC(Model-View-Controller,模型 - 视图 - 控制器)框架之前,它一直运行得很好。

MVC 很快就淘汰了开发者制作的所有 Web 表单应用程序。Watson 认为,任何网页形式的东西都绝对是技术债。

MVC

不知不觉中,每种编程语言就都支持 MVC 框架了。Watson 也曾转而使用 ASP.NET MVC 做所有的新功能。它无处不在,包括 Django、Laravel、Symfony、Spring 等。

快进到今天,MVC 已经过时了。现在一切都是在 React、Angular、Vue 和其他框架中完成的。在此之前,开发者还会使用 Java 框架。在 Stackify 工作时,Watson 还曾使用过 Knockout,这是一个相当流行的前端框架。

但在今天,还有人记得 Knockout、Ember、Aurelia、Meteor、Backbone、Handlebars 这些框架吗?它们都“失宠”了,甚至被划分为技术债。毫无疑问,第一代前端框架输给了 React 和 Angular。

Angular JS

2015 年,谷歌创建了 Angular,Angular 迅速成为最受欢迎的前端框架。2016 年,Angular 进行了一次重大升级,不再向后兼容。这意味着,原始版本中的任何内容现在都是技术债。

Watson 曾在项目中使用过旧版本的 Angular,如今却成了他必须升级的主要技术债。

过时的 SOAP 和 WCF

在 REST API 和 JSON 成为事实上的标准之前,另一种选择是 SOAP,它代表简单对象访问协议,主要由基于 XML 的 Windows 通信框架(WCF)来使用。它使得调用 Web 服务并通过自动代码生成代理类来正确调用服务变得更容易。

Watson 职业生涯中最糟糕的一个项目,就是要弄清楚如何在他的公司和另一家供应商之间通过 WCF 和 SOAP 使用安全证书。SOAP 和 WCF 的承诺令人惊叹,但随着时间的推移,维护它简直是一场噩梦。

微软决定不再支持 .NET Core 中的 WCF,REST、gRPC 和 GraphQL 现在才是首选。尽管如此,有个社区项目最终使 CoreWCF 得以继续发展。

随着时间的推移,开发者用来调用 Web 服务的技术类型已经发生了变化。旧的方式仍然有效,但大多数人可能更愿意淘汰它们。

此外还有编程语言的版本更改问题。无论是 Ruby、php、.NET 还是其他语言,它们通常需要改写大量的代码,甚至是完全重写。

当 .NET Core 刚发布时,它是专为在 linux 上运行而设计的更新、更轻、更快的 .NET 版本。基本的 C# 代码都很容易移植过来,但没有人会在真实的应用程序中只使用基本代码。然而,在复杂的企业应用程序中,想要升级时可能会出现许多潜在的问题。这就成为了一笔必须解决的重大技术债。否则,开发者最终会陷在一个古老的版本中。

这些主要版本的更新,最终会成为重大的技术债项目。

Watson 在 Stackiy 遇到的最大挑战之一是卡在了旧版本的 Elasticsearch 上。有一次,它们对其工作方式进行了一些重大的更改,但这些更改并不完全向后兼容。Watson 的团队大量使用了它,于是所有的升级工作都变成了海量的技术债和升级项目。

所有的代码都将被替换

在 Stactify 时,Watson 曾为 6 种编程语言构建了自己的跟踪 / 测评分析库,这项工作的工作量令人难以置信。随着 OpenTelemetry 出现,Watson 过去的这些工作变得毫无用处。既然可以使用开源的行业标准,为什么还要自己管理呢?Stackiy 正在慢慢地消除那些 Watson 帮忙构建的.NET 测评分析器。

Watson 在职业生涯早期开发的几个应用程序都已经被终止了,因为这些公司被收购了,并且决定使用完全不同的技术。

Watson 认为,随着时间的推移,你会看到你创造的几乎所有的东西都会因为各种原因而被废弃和替换,或者现在就已经都是基于旧技术的了。大多数软件的使用寿命都很有限,比你想象的要短。所有的代码最终都变成了技术债,每个人都想用更现代的方式重写,或者业务需求发生重大的变化。

诚然,在企业界,更有可能拥有似乎永远存在的内部应用程序。像铁路或大型银行这样的公司使用同样的基于大型机的软件已经有 40 年了。

Watson 预测,WebAssembly 最终会超越当今的前端开发,一个全新的世界将不断发展。

2一切终将变成技术债?

在做新项目时,大家总是希望将技术债降至最低。但 Watson 认为,不可能不产生技术债,因为根本没有十全十美的东西。随着时间的推移,今天完美的东西将来也会不完美,因此,我们需要学会与不完美共存。

而技术债的另一面是,随着时间的推移,一切都会慢慢“腐烂”——要么在升级到最新版本方面存在重大问题,要么由于更新的操作方式而最终失宠。

“一切最终都会变成技术债,否则项目就会夭折。如果幸运的话,你的代码能存活足够长的时间,从而成为别人的技术债。如果时间足够长的话,你的所有代码都将被删除。”Watson 在博文的最后说道。

Watson 的观点引发了很多开发者的讨论。赞同者认为自己过去做的很多工作最终都被取代了,辛苦编写的代码可能几年后就没有了用武之地;反对者则认为不应如此悲观,因为有些代码真的可以长青不老。

Reddit 用户、前几年刚退休的开发者 vital_chaos 提到,他这辈子在编写代码方面投入了 40 年时间,在他参与过的所有技术要素当中,只有一种至今仍在得到实际应用:

“我的团队从 1988 年起着手开发一款应用程序,直到 1994 年正式开发完成,这就是 Deltagraph。如今,它的持有公司已经在新冠疫情的冲击下倒闭。据我所知,我做过的所有其他工作最终都被取代了,或者是雇主倒闭,总之成果消失在了历史的长河中。当然,有些可能仍被使用,这个我也不敢完全确定。

所以我觉得虽然很多事情在做的时候看似无比重要,老板也总在催促要加班加点完成任务,但事后回头再看,这些辛苦编写的代码很可能几年之后就丧失了生命力!”

用户 spo81rtyOP 也非常认可 Watson 的观点:“感谢你让我确定,有这种感觉的不单是我自己。我觉得大多数软件的实际使用寿命也就 5 到 10 年。之后,因为企业倒闭或者其他原因,软件被替代的可能性会非常高。即便它能幸存下来,完全由过时技术栈编写这一现实也会让它的路子变得很窄。这就是软件工程师的真实命运。”

用户 com2kid 表示,他曾于 2008 年前后在微软工作,当时他看到过一个版权为 1994 年的头文件,里面还有作者姓名。搜索后发现,那位程序员已经在微软当上副总裁了。所以他认为,有些代码真的可以长青不老。

用户 chesterriley 则想象了一个极端可能:也许未来终有一天,人们会继续使用 100 年前就编写出来的代码。最终的大赢家可能会是 Unix 实用程序或者 TCP/IP 代码之类,又或者是某些编译器、运行时引擎或解释器。还有来自 Linux 或 Windows 等操作系统的代码。人们可能突然发现,自己修复的错误居然诞生自 100 多年前。

也有开发者认为,有些代码受到当前炒作趋势的影响很大,而 Web 开发应该就是其中最典型的代表了。考虑到过去二、三十年间 Web 开发领域发生的一系列根本性变化,这种情况也在情理之中。

用户 Otis_Inf 拥有 28 年从业经历,他表示,他还记得网景(Netscape)发布背景图像的那一天,cgi 处理程序中的 Perl 脚本也曾经是常态。无论是当年还是现在,技术的发展速度都相当惊人,开发者必须适应新的做事方式——包括提交给 cgi 处理程序的静态 html 页面,也包括异步获取部分新元素来构成视图的客户端渲染页面。

当然,也有些代码并没真正受到当今炒作的影响。有趣的是,这类代码大多集中在服务器端。虽然一直有强大的力量在“颠覆”微服务、Lambda 函数等服务构建方式,但如果忽略掉这些实现细节,那服务器的内存空间里肯定还有 db+ 服务在运行、也还有空闲周期没有利用起来。

Otis_Inf 认为,IBM DB2 仍能运行 30 年前的 SQL 代码是有原因的,这个原因就是组织仍然依赖这些功能。或者说,根本就没有足够多的人把它“重写”成新代码。那这些代码是“烂代码”或者说“技术债”吗?还是得看具体情况。你家的锤子可能也用了十来年了,它过时了吗?如果还能干活,那就没过时。只有当代码确实需要变更,但却没人处理这项工作时,它才会真正沦为“烂代码”。

“我希望看到当下诞生的新项目能始终牢记长期可维护性的重要意义,甚至把它当作一项基本设计前提。毕竟真的没多少人有能力维护陈旧软件项目。尽管地球人口仍在增加,但掌握足够技能来维护这些古早软件的开发者数量一直都跟不上。”

3国内技术从业者怎么看?

针对技术债问题,InfoQ 曾采访过国内一些技术从业者。

百分点 CTO 刘译璟认为,判断技术债务的重点在于“哪些事情是应该做的”,它是一个因组织而异、因项目而异、因人而异的过程,例如以下一些方面:

  • 组织上要求做但没做的:制度、流程、规范、分享学习等;
  • 业务和技术上要求做但没有做的:功能、性能、安全、高可用、扩展、监控、辅助工具等。

如果按照软件工程环节分类,技术债务可以分为:需求分析、方案设计、架构设计(逻辑架构、功能架构、数据架构、部署架构、运行架构等等)、编码、测试、发布等。如果按照产出物类型分,可以分为:

  • 文档类:管理过程文档、需求分析文档、设计文档、测试案例文档等;
  • 代码类:代码、脚本、规范等;
  • 软件包类:产品软件包、依赖软件、依赖资源等;
  • 环境类:开发环境、测试环境、预上线环境、生产环境等。

至于如何决定要重写还是继续维护,需要判断“继续维护的收益”和“重写的收益”哪个更大,来决定继续维护还是重写。可以综合考虑如下几方面的收益:

  • 开源:提升现有业务收入、支持新业务的开拓;
  • 节流:节省维护人员、节省运营费用;
  • 组织:人员结构调整、组织能力培养。

债务是避免不了的,时刻判断“持有债务的价值”,当价值很低时要尽快处理。

腾讯研发总监王辉表示,如果人力、物力和工期等资源丰富,能去优化的就都可以做到极致。但通常,资源都是不丰富的,或者说是捉襟见肘的,那就要根据实际业务情况来看。腾讯一向的方式是“先抗住再优化”,项目是否真的到了非优化不可的地步,是否真的到了不优化随时都可能宕机的时候,如果先抗住了,就等业务占领了市场,站住了用户,到了项目进度慢下来之后,一些优化再开展起来,此时可以要求高可用、高性能、高并发等。

“如果项目资源允许,一些稍微过度的优化和重构,个人认为是可以被接受的,保持团队的技术热情是不错的,但如果资源不允许,就要数着钱花,判断技术债务的合理性,如何更好的还债,是否真的到了非还不可,是否真的到了影响业务发展,需要与业务优先级一起看,业务错过一个时间窗就可能永远错过,有些技术债务还可以后期再还。”王辉总结道。

参考链接

https://blog.visionarycto.com/p/my-20-year-career-is-technical-debt

https://www.infoq.cn/article/xgP9W*MC6Svi9Zcqd5KX

https://news.ycombinator.com/item?id=35955336

https://www.reddit.com/r/programming/comments/13ihrtx/my_20_year_career_is_technical_debt_or_deprecated/



Tags:技术   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
SASE技术应用落地的五个关键趋势
在Gartner 最新发布的《2023网络技术成熟度曲线》报告中认为,SASE技术已经开始走出最初的技术炒作期,将逐步迈向新一轮的实用落地阶段。在Gartner发布的《Hype Cycle for Ente...【详细内容】
2024-04-01  Search: 技术  点击:(9)  评论:(0)  加入收藏
域名跳转技术你知道有什么用吗?
域名重定向,又称为域名转向或域名跳转,是一种网络技术,它允许网站管理员将一个域名指向另一个域名或者一个具体的网页地址。这样,当用户在浏览器中输入一个域名时,会被自动重定向...【详细内容】
2024-03-26  Search: 技术  点击:(5)  评论:(0)  加入收藏
苹果手机将搭载百度AI技术?百度人工智能A股小伙伴有这些
财联社3月24日讯(编辑 若宇 俞琪)据华尔街日报周五晚间报道,苹果在中国寻找本土生成式AI提供方,苹果讨论了在中国的设备中使用百度的人工智能技术。受该利好消息刺激,百度美股周...【详细内容】
2024-03-26  Search: 技术  点击:(10)  评论:(0)  加入收藏
国家安全部:95后“技术宅”遇间谍网络勾连,共享国家级项目数据后次日举报获奖
国家安全部微信公众号3月25日发文介绍一起网勾案件,全文如下:2023年,某高新技术企业的青年设计师阿强,拨打国家安全机关12339举报受理电话称,某科技论坛上一名昵称“暗影Dark”的...【详细内容】
2024-03-25  Search: 技术  点击:(18)  评论:(0)  加入收藏
“只要能看到脸的都能换” 滥用“AI换脸”技术伪造女明星涉黄视频 法院判了!
“AI换脸”相信大家都不陌生。只需要一张照片,通过人工智能深度合成技术,任何人都能成为视频中的主人公,甚至连表情和动作都能以假乱真。然而,这项新技术,却让一些人产生了不良想...【详细内容】
2024-03-22  Search: 技术  点击:(11)  评论:(0)  加入收藏
古人没有指纹技术,为何还要按指纹画押?专家:我们低估老祖宗了
现代科技比较发达,能够用很多方式识别身份,比如指纹识别和面容识别等。这些身份识别的方式广泛应用于生活之中,我们日常使用的手机,以及公安机关刑侦过程都离不开这些方式。指纹...【详细内容】
2024-03-21  Search: 技术  点击:(14)  评论:(0)  加入收藏
汽车OTA技术解析:它是什么以及有何作用?
汽车OTA技术,即Over-The-Air技术,是一种空中下载技术,通过移动通信的接口实现对软件进行远程管理。简而言之,它允许车主通过手机应用程序或互联网连接直接向车辆发送更新,而无需...【详细内容】
2024-03-19  Search: 技术  点击:(14)  评论:(0)  加入收藏
在 SQL 中写了 in 和 not in,技术总监说要炒了我……
WHY?IN 和 NOT IN 是比较常用的关键字,为什么要尽量避免呢?1、效率低项目中遇到这么个情况:t1表 和 t2表 都是150w条数据,600M的样子,都不算大。但是这样一句查询 ↓select *...【详细内容】
2024-03-18  Search: 技术  点击:(5)  评论:(0)  加入收藏
五种技术买点的再次详述
这篇分享贴的开头,我先讲一下周末部分朋友的问题。第一种技术买点:到达压力位时经过调整后, 再次出现的阳线买点,买点阳线的成交量小于第一次达到压力位时的阳线的成交量上图是...【详细内容】
2024-03-18  Search: 技术  点击:(11)  评论:(0)  加入收藏
编程二十年,38岁谷歌程序员的16条建议,涉创业、技术淘汰、拿大厂offer……
以能够让项目自负盈亏,并在这一约束下优化其增长的方式来管理和调整项目,这是这个世上最厉害的本事。距离我正式开始编程的工作已经过去二十年了。在这些年里,我有以下收获: 获...【详细内容】
2024-03-10  Search: 技术  点击:(4)  评论:(0)  加入收藏
▌简易百科推荐
AI程序员上岗 垂类大模型应用迎来井喷期
能自动写代码的“AI员工”、逐渐告别不够好用的智能客服,无需费时费力开发的工业AI控制器……随着人工智能大模型能力开始深入多个行业,IT、工业生产、金融、服务...【详细内容】
2024-04-07    千龙网  Tags:AI程序员   点击:(3)  评论:(0)  加入收藏
首个AI程序员上岗,码农们暂且不必过度焦虑
“AI程序员上岗”或许是噱头,但淘汰焦虑仍然近在咫尺,需要积极面对。全文2418字,阅读约需7分钟 撰稿 / 马尔文(媒体人)编辑 / 何睿 校对 / 张彦君▲随着相关技术的突飞猛进,AI也在...【详细内容】
2024-04-07    新京报  Tags:AI程序员   点击:(5)  评论:(0)  加入收藏
为何大语言模型不会取代码农?
译者 | 布加迪审校 | 重楼生成式人工智能(GenAI)会取代人类程序员吗?恐怕不会。不过,使用GenAI的人类可能会取代程序员。但是如今有这么多的大语言模型(LLM),实际效果不一而足。如...【详细内容】
2024-03-21    51CTO  Tags:大语言模型   点击:(21)  评论:(0)  加入收藏
AI程序员Devin:通过了面试,但不一定适合职场
昨天,AI圈上演了第一场“大男主爽文”:一个少年成名的编程天才,组建起仅有10人的编程界奥林匹克“梦之队”,在全球瞩目的科技风暴正中心创办了一家公司。成立不到两个月,其推出的...【详细内容】
2024-03-18    甲子光年  Tags:AI程序员   点击:(13)  评论:(0)  加入收藏
微软AI程序员登场,10倍AI工程师真来了?996自主生成代码,性能超GPT-4 30%
新智元报道编辑:桃子 润【新智元导读】全球首个AI程序员Devin诞生之后,让码农纷纷恐慌。没想到,微软同时也整出了一个AI程序员——AutoDev,能够自主生成、执行代码等...【详细内容】
2024-03-18    新智元  Tags:AI程序员   点击:(15)  评论:(0)  加入收藏
李彦宏称程序员职业将不复存在,周鸿祎:程序员热十年内不会减弱,AI时代更需要程序员
李彦宏称程序员职业将不复存在,周鸿祎:程序员热十年内不会减弱,AI时代更需要程序员3月10日,360创始人周鸿祎在社交平台上发文称,“大模型将替代程序员?未来不用学编程了么?我认为,程...【详细内容】
2024-03-11    九派新闻  Tags:程序员   点击:(21)  评论:(0)  加入收藏
李彦宏最新发声,“程序员”职业将不复存在!
在3月9日央视的《对话》·开年说节目上,百度创始人、董事长兼CEO李彦宏表示,以后不会存在“程序员”这种职业了,因为只要会说话,人人都会具备程序员的能力。“未来的编程...【详细内容】
2024-03-11    红星新闻  Tags:程序员   点击:(18)  评论:(0)  加入收藏
编程二十年,38岁谷歌程序员的16条建议,涉创业、技术淘汰、拿大厂offer……
以能够让项目自负盈亏,并在这一约束下优化其增长的方式来管理和调整项目,这是这个世上最厉害的本事。距离我正式开始编程的工作已经过去二十年了。在这些年里,我有以下收获: 获...【详细内容】
2024-03-10    CSDN  Tags:程序员   点击:(4)  评论:(0)  加入收藏
鸿蒙开发岗平均月薪超1.8万,成为计算机人才和程序员的求职新选择!
智联招聘发布的《2024年春招市场行情周报(第一期)》显示,2023年9-12月,鸿蒙相关职位数同比增速从33.8%攀升至216.1%,鸿蒙相关职位的投递人数同比增速从132.1%攀升至380.1%。春节...【详细内容】
2024-02-26  晓枫侃科技    Tags:鸿蒙开发   点击:(25)  评论:(0)  加入收藏
AI最先砸了程序员饭碗?90%码农认为找工作变难,大学生也要调整职业规划
图片来源:由无界 AI生成想不到AI最先影响到的打工人,居然是程序员。最近外媒一个有超过1万程序员参与的职业调查显示,90%的程序员都认为现在找工作变得更难了。仿佛一夜之间,程...【详细内容】
2024-01-12    新智元  Tags:程序员   点击:(78)  评论:(0)  加入收藏
站内最新
站内热门
站内头条