从20年开源经历出发,70 后大龄程序员谈成长、困境与突围

2023-11-08 12:10

本文主要是介绍从20年开源经历出发,70 后大龄程序员谈成长、困境与突围,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

导读:在新年前夕的全员总结大会上,涛思数据的一位 70 后研发老将收获了一份名为“最具开源精神奖”的奖项,这不仅是对他在 2021 年基于 TDengine 所做出的开源贡献的认可,更是映射出其长久以来坚持走在开源路上的不变初心。作为老一辈开源人,桑树多以资深的研发技术、乐于分享的精神、无处不传播的毅力,真正践行着开源人的使命。关于如何参与开源社区建设、如何打破 35+ 大龄程序员职场焦虑等当下的热点问题,他也沉淀下了自己的观点和思考。

       1998 到 2022

     20 余年开源路上的坚持与热爱

作为一名 70 后程序员,桑树多与开源的故事最早可以追溯至 1998 年。彼时才从哈尔滨工业大学毕业不久的他进入了一家科技公司,正式开启了自己的代码职场生涯,也打开了奇妙开源世界的大门。


从开始使用 Linux 桌面环境,到自己动手为新的硬件设备移植驱动软件,再到后来陆续参与了 Linux Kernel、MeeGo、Ubuntu 等开源软件的开发,桑树多的开源之路走得越来越深,与开源技术也结下了长达 20 余年的不解之缘。

b2d58bec4a692bca9f14ff58a9deaf17.png

图为 2011 年桑树多(左)在 Portland Linux Kernel Developer Summit 上与 Linus Torvalds(右)的合影

“从 Red Hat Linux 5.0 开始,我接触到开源,然后一步步从使用者成为爱好者,最后成为了一名贡献者。回顾过往 20 年参与开源的经历,真的不得不感叹一句受益良多。”


对于做开发的同学来说,“开源”这个概念并不陌生。近年来,伴随着云计算、大数据、人工智能等数字技术的快速发展,开源模式的热度也在不断攀升,日渐成为数字技术创新和产业数字化转型的重要模式,开源软件也成为了各大互联网企业背后的支撑力量。


从科技发展的轨道来看,参与开源的重要性不言而喻,但仍然有很多开发者以工作繁忙等为理由来闭目塞听。事实上,这并不是一件多么困难的事情,桑树多用他的亲身经历进行了说明。


“你可以先成为使用者并积极参与社区讨论,通过学习其他人解决问题的方法和代码熟悉开源软件的架构和设计思想,再进一步发展自己提交 Patch 和 PR 解决问题,成为 Contributor——在其他用户遇到自己解决过的问题时主动帮助他人,在有能力时积极贡献代码。”


“而对于开源小白来说,你可以从自身的技术兴趣出发来选择想要参与的开源方向,如果对数据库感兴趣,那 TDengine 就是一个非常适合上手学习的开源项目,如果是对消息队列感兴趣可以选择  Kafka。”


入门容易坚持却难,我们不妨从桑树多的经历中探寻一下坚持的理由。参与开源究竟给他带来了什么?

      开发者到 Contributor

     寻找参与开源的获得感

开源究竟是什么?参与开源的意义又在哪里?


“简单来说,开源的意义就是打破传统软件研发自上而下的研发模式,更多应用自组织开发模式快速迭代打造精品软件,如果你还想更加深入地从文化和理念的角度去理解开源,那可以学习一下《大教堂与集市》这本书。”


作为一个资深的开源软件开发者,桑树多的开源经历也向我们展示了参与开源到底能够带来哪些改变和帮助。


“可以负责任地讲,参与开源一定会增加自己的职场竞争力,因为这可以让你更容易接触到先进的技术,像 Linux Kernel 之类的很多开源软件,代码已经经过千锤百炼,通过阅读这些代码就可以学习其背后的设计思想。而且你还可以在开源社区内进行讨论学习,让自己能够更快地收获成长。”


此外,桑树多还认为,如果能成为一名 Contributor,通过自己编写的代码给关注的开源软件带来提升,那将是一件非常有自豪感的事情。首先自身技术实力在专家 review 的环节可以得到他人的认可;其次在 review 过程中进行观点交流也可以帮助自己学习他人的观点,发现自身的疏漏和不足;在有了一定经验之后,你也可以去帮助别人 review 代码,以此实现教学相长。


在这个过程中,桑树多跟一些专家建立了深度联系,也交到很多志同道合、热爱开源、喜欢开发的朋友。由此可见,参与开源的获得感是一种多维度的、从内到外的提升,这不光体现在技术层面,在情感层面也能获得满足感。


“还有一个参与开源的好处,那就是方便‘跳槽’”。虽然听起来不太正经,但是确实是一个行之有效的方法,因为很多公司的 HR 或者猎头都会通过开源项目来寻找一些有经验的开发者,在开源这条路上越走越深也就意味着有越来越多的工作机会向你在招手。


阅读到此,大家可能会有所好奇,桑树多与涛思数据就是这么结缘的吗?当然没有这么简单,下文中将会为大家揭晓答案。

      因开源结识 TDengine

     他选择为国产开源软件添砖加瓦

2019 年中一次偶然的工作契机,桑树多成为了 TDengine 的 Contributor。可能是出于对一位 50 岁大龄程序员两个月写出一万八千多行代码的震惊和敬佩,也可能是因为对国产开源软件投入了越来越多的关注,总之在种种原因的作用之下,不久后他选择加入涛思数据。


当我了解到年届 50 的 Jeff(涛思数据创始人陶建辉)还在继续写程序,并且打造出 TDengine 这个产品的经历后,我就开始在 GitHub 上关注 TDengine,然后惊喜地发现中国的团队也能开发出精品开源软件。在深入地了解下我越发觉得,TDengine 并不是一款被凭空创造的产品,而是真正地在解决现实中的实际问题,而且正是凭借这一点,其用户和市场规模也都在稳步增长。”


目前桑树多在涛思数据主要负责 TDengine 的生态应用研发工作,致力于让更多人能够在更多场景和环境下更容易使用。尽管已经拥有很丰富的工作经验,但猛然调转方向到一个自己涉猎并不是很深的技术领域,如桑树多这般的技术老将也不免需要适应一段时间,“遇到最大的困难主要是之前技术方向不在数据库,对数据库的学习需要从头开始,但好在通过大家的热情帮助和自己的努力也算是摸到数据库的边儿了。”


对于桑树多而言,从加入涛思的那一刻开始,自己的全部精力就投入到了 TDengine 的优化和发展中。由于 TDengine 是使用 C 语言开发,对很多开发者而言门槛略高,对此桑树多也提出了一些不同的看法。


“TDengine 的代码质量很高,模块之间划分总体上比较清晰,文档也较全,社区相对也很活跃,遇到问题能够及时得到帮助,对于有志于学习数据库核心代码的同学来说门槛高不是一个难以攻克的问题。如果你对 C 语言并不熟悉,那我建议你也可以从学习 TDengine 生态应用软件的源代码开始,还可以通过学习 TDengine 的测试脚本来学习如何对基础软件进行测试。”


目前 TDengine 支持 Java、Go、Python、C#、NodeJS、Rust 等多种语言的连接器,发展至今,其代码量也越发庞大,想要充分理解其整体的设计也是一件比较有挑战的事情。如何才能对 TDengine 的设计和模块进行一个快速且深入地了解,桑树多也作了相应解答。


“首先 TDengine 不仅进行了代码开源,文档也实行了全面开放,其中不仅是使用文档,连设计文档都是公开的,静下心来阅读完这些文档会给到你很大的帮助。此外 TDengine 的编译和部署过程极其简单,自己就可以实现代码下载编译运行,还可以通过 GDB 等调试工具看到所有执行过程,和代码对照起来学习会非常容易。”


正如桑树多所说,开源软件本质上就是要扩大影响力,积极打造生态社区,遵从业界规范,使软件之间可以更容易互通和互操作,继而进一步推动科技和行业的进步。在桑树多等一众涛思人的努力下,作为国产开源软件的一员,TDengine 正在向着这个方向加速攀登。


而回过头来,我们从桑树多加入涛思数据的经历中也能悟出一个道理,只要拥有一颗乐于学习的心和一双善于发现机遇的眼睛,年龄就不会成为限制自身前进的阻力,反而经年累月积攒下来的经验和见识会成为纵横职场最锋利的“武器”。

      从 20+ 到 35+ 程序员

     打破常规向更多领域突围

近年来,随着业内大龄程序员被频繁清退等职场新闻的不断发酵,在程序员的圈子里,“35+ 门槛”“青春饭”等充斥着焦虑的话题甚嚣尘上。一批批年轻人从校园走进社会,俗话说长江后浪推前浪,一浪更比一浪强,那伴随着他们的成长,“前浪”真的会被拍死在沙滩上吗?


或许我们可以从桑树多的经历中寻找一下答案。作为一名 70 后,他早就超越了 35 这个所谓的“大龄”门槛,但他仍然活跃在职场之上,甚至凭借着沉淀多年总结出的技术经验、阅尽千帆后输出的深刻观点,成为了公司里一些后辈所追逐学习的存在。对于如何打破程序员圈子中 35+ 大龄焦虑症这一现象,桑树多也有自己的看法。


“大龄程序员在国外很常见,我见过很多国外程序员四、五十岁还依然奋斗在一线编程工作上,很多顶尖软件项目的维护者往往也是大龄程序员。随着国内人口红利的下降,相信更多企业也会越来越重视大龄程序员的价值。而我们自身也应该保持初心,积极了解软件行业的发展趋势,把自己过去的经验更多应用到有前景的新领域中。只有不断发现、学习和创新,才能不断进步、不被时代所抛弃。”


大龄程序员前进的动力是打破常规,向更多领域突围,年轻的程序员往往有更多的选择,但偶尔也会因行差踏错、定性不足而蹉跎光阴。


以过来者的身份,桑树多从自身经验中沉淀出一套方法论,“写代码有个DRY(Don't repeat yourself)原则,对个人职业生涯或者技术方向也很适用。人生短暂,不要浪费时间做重复的事,而要尽可能提升自身技术的深度和广度,增加更丰富的体验,参与开源是个好办法。”


开源贯穿了桑树多职场纵横的几十年,使他受益良多,如今,他把这个成长的“秘诀”分享了出来,期待能够帮助到更多迷茫的开发者。“也希望随着越来越多开发者的加入和关注,国产开源之路能够越走越顺畅。”


最后,赠送出一张 20元优惠券,邀您加入中国最大IoT物联网开发者社区获取1000+行业资料。

a38f2fff92844db76668b90b7897b42a.png

往期推荐

☞ 中国云计算第一股关停 IoT云服务

☞ 2022年IoT平台趋势:私有化部署

☞ 国内MCU行业发展研究报告

☞ 2021年4G通信模组企业排行

☞ 国内4大 IoT物联网平台选型对比

☞ 云厂商的[IoT物联网平台]不香了吗?

776899caa723c5769bfbf927f7edb5f7.gif

这篇关于从20年开源经历出发,70 后大龄程序员谈成长、困境与突围的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/369761

相关文章

阿里开源语音识别SenseVoiceWindows环境部署

SenseVoice介绍 SenseVoice 专注于高精度多语言语音识别、情感辨识和音频事件检测多语言识别: 采用超过 40 万小时数据训练,支持超过 50 种语言,识别效果上优于 Whisper 模型。富文本识别:具备优秀的情感识别,能够在测试数据上达到和超过目前最佳情感识别模型的效果。支持声音事件检测能力,支持音乐、掌声、笑声、哭声、咳嗽、喷嚏等多种常见人机交互事件进行检测。高效推

客户案例:安全海外中继助力知名家电企业化解海外通邮困境

1、客户背景 广东格兰仕集团有限公司(以下简称“格兰仕”),成立于1978年,是中国家电行业的领军企业之一。作为全球最大的微波炉生产基地,格兰仕拥有多项国际领先的家电制造技术,连续多年位列中国家电出口前列。格兰仕不仅注重业务的全球拓展,更重视业务流程的高效与顺畅,以确保在国际舞台上的竞争力。 2、需求痛点 随着格兰仕全球化战略的深入实施,其海外业务快速增长,电子邮件成为了关键的沟通工具。

金融业开源技术 术语

金融业开源技术  术语 1  范围 本文件界定了金融业开源技术的常用术语。 本文件适用于金融业中涉及开源技术的相关标准及规范性文件制定和信息沟通等活动。

安全管理体系化的智慧油站开源了。

AI视频监控平台简介 AI视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。用户只需在界面上进行简单的操作,就可以实现全视频的接入及布控。摄像头管理模块用于多种终端设备、智能设备的接入及管理。平台支持包括摄像头等终端感知设备接入,为整个平台提

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

K8S(Kubernetes)开源的容器编排平台安装步骤详解

K8S(Kubernetes)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。以下是K8S容器编排平台的安装步骤、使用方式及特点的概述: 安装步骤: 安装Docker:K8S需要基于Docker来运行容器化应用程序。首先要在所有节点上安装Docker引擎。 安装Kubernetes Master:在集群中选择一台主机作为Master节点,安装K8S的控制平面组件,如AP

MiniGPT-3D, 首个高效的3D点云大语言模型,仅需一张RTX3090显卡,训练一天时间,已开源

项目主页:https://tangyuan96.github.io/minigpt_3d_project_page/ 代码:https://github.com/TangYuan96/MiniGPT-3D 论文:https://arxiv.org/pdf/2405.01413 MiniGPT-3D在多个任务上取得了SoTA,被ACM MM2024接收,只拥有47.8M的可训练参数,在一张RTX

【C++学习笔记 20】C++中的智能指针

智能指针的功能 在上一篇笔记提到了在栈和堆上创建变量的区别,使用new关键字创建变量时,需要搭配delete关键字销毁变量。而智能指针的作用就是调用new分配内存时,不必自己去调用delete,甚至不用调用new。 智能指针实际上就是对原始指针的包装。 unique_ptr 最简单的智能指针,是一种作用域指针,意思是当指针超出该作用域时,会自动调用delete。它名为unique的原因是这个

HomeBank:开源免费的个人财务管理软件

在个人财务管理领域,找到一个既免费又开源的解决方案并非易事。HomeBank 正是这样一个项目,它不仅提供了强大的功能,还拥有一个活跃的社区,不断推动其发展和完善。 开源免费:HomeBank 是一个完全开源的项目,用户可以自由地使用、修改和分发。用户友好的界面:提供直观的图形用户界面,使得非技术用户也能轻松上手。数据导入支持:支持从 Quicken、Microsoft Money

开源分布式数据库中间件

转自:https://www.csdn.net/article/2015-07-16/2825228 MyCat:开源分布式数据库中间件 为什么需要MyCat? 虽然云计算时代,传统数据库存在着先天性的弊端,但是NoSQL数据库又无法将其替代。如果传统数据易于扩展,可切分,就可以避免单机(单库)的性能缺陷。 MyCat的目标就是:低成本地将现有的单机数据库和应用平滑迁移到“云”端