林杰:程序员依然是草根跨越阶级的最佳途径之一 | 程客有话说

《程客有话说》是我们最新推出的一个访谈栏目,邀请一些国内外有趣的程序员来分享他们的经验、观点与成长故事,尝试建立一个程序员交流与学习的平台,也欢迎大家推荐朋友或自己来参加我们的节目,一起加油。

本期我们邀请的程序员林杰,开发者从业时间近25年。

1、请自我介绍一下。

嗯,我叫林杰,98年左右通过制作个人网站进入互联网开发这个行业的。然后在外企、事业单位、民营企业都有担任过软件开发工程师的角色。我自己有2个较为知名的个人项目:一个叫嘻哈之城,一个叫快试音。

目前的话,我主要是担任企业的技术顾问,从事一些软件项目开发和技术团队管理的工作。

2、什么时候开始接触互联网的?如何成为一名程序员的?它为何吸引你?还记得第一次写的代码吗?

托了家乡是国家第一批光钎小镇的福,我在97,98年就开始接触互联网了,那时全国大部分地区还在用56k猫拨号上网,而我们已经是10M光纤了。现在回想一下确实是吃到了时代的红利,也占到了地域的先发优势。

我的第一行代码并不是大家所想象的“hello world”,而是类似这么一句: <font size=96pt>你好</font>, 老前端应该知道这其实是句html4的语法(可能现在已经没有font这个标签了),他的效果是打出2个巨大的“你好“。

为什么第一行代码是这个呢,因为在那个上古互联网时代,还没有qq、msn这些,那时最热闹的交流平台其实是聊天室和BBS,而这句话在一些没有过滤html代码的聊天室可以起到炸屏的效果,诸如此类的还有:marquee跑马灯标签,alert弹出窗之类的;就是这些有趣的效果吸引我投入web开发的。

3、分享一下自己的技术成长过程?学习使用过哪些语言与工具?它们的优点与缺点?

现在回想一下的话,最早期的时候应该是在小天才学习机上的basic编程,然后胡乱学了些foxBase,但说实话那时候算法那些没学明白,倒是foxBase的sql语句用了一辈子。30年前是select where,30年后还是select where。

然后真正开始接触行业应用,最早期的时候其实是受了国内一个著名的开源论坛《雷傲论坛》的影响,有学习过一些Perl语言(但是这个好像昙花一现没多久就没人用了),然后随着《动网先锋》等一批asp项目兴起,逐渐接触了asp,.net,sqlserver,IIS这些;因为我一直以来都是偏web的,所以像html,css,js这些是很早就掌握的了,工具方面的话主要就是Macromedia的3剑客:Dreamweaver,fireworks,flash这些;

到了中后期互联网这块开始流行lamp了,基本上就迁移到linux生态下了,最早没有云服务的时候,经常穿着羽绒服去机房维护服务器。这个占了整个职业生涯中的很长一段时间,我到现在还对lamp,lanmp下的生态如数家珍。 然后近期的话已经转golang和rust这些现代语言了,工具也早就转jetbrins全家桶了。你要说好坏的话,那肯定是越新越好,但是每个技术和工具的诞生都是有他的时代背景的,那些在历史上出现过的东西,其实就是在它那个时代最好的选择。

在技术视野上,我觉得我的选择还是有一定前瞻性的,我一开始就是看好web b/s架构的,所以客户端这块,早期的vb,C++,C#包括后来的安卓,ios我其实是没有投入太大精力的,但是没想到现在真的还就是web一统天下了,现在市场上有一大半的客户端是用web技术开发的,即使是移动端也是各种基于web的跨平台方案,每每想到学了快30年的html,css,js现在还能用,感觉是占了大便宜。 但其实也不是每次都能押对路线,回望整个技术生涯,我也学了许多被废弃的东西:flash,coldfusion,vb,cgi这些;现在好多人害怕自己学的技术会过时,然后又怕要学新的,其实大可不必,很多工具和技术虽然被淘汰了,但是他的内在思想和模式是会被其他技术传承的,这会大大降低你以后的学习成本。

4、你最欣赏的顶级程序员有哪些?如何成为一名优秀程序员?

技术层面的话,像Linus、 Igor(nginx开发者)这些都是我比较敬佩的大神,但是我本身更喜欢开发C端产品,所以像张小龙、马斯克、中本聪这些自带产品经理属性的工程师更受我的爱戴。相对于底层的开发,对我来说直面C端用户会更有趣更有挑战,也会获得更多的反馈。

至于如何成为一名优秀的程序员;每个人都他有不同的出生背景和成长经历,没有固定的方法论或成长途径; 但我前几天看到知乎上有个帖子:《吃什么样的苦,才能成为月入6万的程序员?》 我觉得这个问法本身就很有问题,优秀的程序员必然不会把做开发看做是吃苦,他们肯定都是很享受开发的过程,享受一次次攻克难题后带来的正反馈;所以与其问如何成为一名优秀的程序员,不如先问问自己是否能从编程这件事上获得快乐?

5、写代码20多年,你如何评价程序员这个职业?它给带给你的影响有哪些?

其实我并没有持续20年连续不断地做开发,程序员这个职业,5年一个小瓶颈,8年一个大瓶颈; 小瓶颈是指5年左右,基本上你对你能接触到的业务肯定已经了如指掌了,剩下的那些不懂的基本上都是用不到的。然后你会觉得在你所处的工作范围内,已经没有什么挑战了。这个时候会有些自我膨胀,或者说就直接停留在这个舒适圈,不再追求成长了。

大瓶颈则是指你可能会对整个计算机行业产生厌倦,如果你对计算机互联网的热爱不是那么的执着,那时你会发现你的身边的同学朋友,做销售、做管理、甚至体制内的都会获得更高的薪酬回报,这时你就会产生一种怀疑:计算机行业是否对自己来说有前途?很多人熬不过这个8年的瓶颈,可能就会选择转行。

我就经历过这样的周期,在我从事互联网行业的第二个8年,我就减少了对开发的关注,专注到产品经理和增长黑客这块去了,所以当你感觉到达瓶颈期的时候,如果不想放弃,有2条路可以选择:1要么深究技术往底层在走走,为基础设施做出一定的贡献。2要么成为T型人才,积累更多的领域经验,项目经验、管理经验这些。

程序员这个职业,我觉得最大的好处就是:可以培养你的思维逻辑闭环;大家都知道,一段函数从if开始,到else分支,到最后的return结束。这个流程,其实可以把世界上的万物万事都套进去。甚至可以说就是我们这个世界的底层运行原理,一旦你掌握了这个思考方式,很多问题的答案在程序员的思维里都是很容易就找到的。

另外,我认为,在现在这个社会,个人要做到价值最大化,就是要建设个体与世界的对话通道: 音乐家用音乐与世界对话,导演用电影表达自己,作家用文字构建自己的世界;而程序员就是用软件和世界对话,然后软件这个载体,它有些好处:它有网络边际效应,具有指数级传播的可能性 开发对外的依赖很低,独立开发者一个人也可以完成一个很庞大的项目,它和世界的对话可以做到实时互动,这些特性都是难能可贵的,我小时候的梦想是做个发明家,我觉得软件开发者就是当代的发明家群体,我坚持认为在未来10年中,程序员依然是实现自己的发明梦想以及和世界对话的最具性价比职业。

6、你在国内外大厂,国企、民企都工作过,有何不同,有何相似?

我早期有在yahoo之类的国外互联网巨头工作经历,肯定没有现在的国内大厂卷,那时相对来说还是比较轻松和惬意的,主要还是以人为本,相对来说更容易wlb一些。

国企/事业单位的话,其实不建议还在成长期的程序员去,大部分的体制内单位对技术的追求并不高,可能需要花时间研究一些技术以外的事情,长时间待在那里,很容易进入舒适圈,降低自己的竞争力。

民企的话,会更锻炼自己的能力,如果能找到一个处于成长期的公司,自己的能力也会随着公司的成长同步成长。

7、分享一下在「程序员客栈」的远程工作经历?

今年有一个技术顾问的项目就是在程序员客栈上接的,他们是一个基于开源代码二次开发的项目,由于原来的基础架构并没有考虑到高并发这些场景,当用户的业务高速发展后,就遭遇到了性能瓶颈,最后由我带领团队重新设计了系统架构重构了底层核心代码,大大提升了核心模块的业务承受能力。

这个项目受到了客户极大的好评,也是今年我以远程合作形式完成的一个难度较大的项目。

大部分的远程项目都是处于从0-1阶段,创始人对于技术团队这块的把握还不是很充分,远程合作的形式给到了他们相对大的选择范围以及灵活的成本控制。

对于开发者个人而言就是时间安排相对自由,缺点就是沟通起来稍微有点麻烦,还有就是无法感受到那种团队一起合作共事的氛围。

顺便给自己打个广告,https://www.proginn.com/wo/757422,这是我的客栈主页链接(uid:757422),欢迎找我做项目,技术咨询。可以“发布需求”后让客户经理免费帮您联系我。

8、如何看待996与35现象?

我反对的不是996,而是无意义的表演式工作,低效率的摸鱼式工作,以及为了kpi而制造出来的需求。

很久以前我所在软件公司有种开发方式叫封闭式开发:把一群程序员关在宾馆里1个月,开发好了再出来,在这种强度面前,996根本不值一提。但是那时大家其实都很有干劲,因为有明确的目标,也有目标完成后明确的奖励,以及伴随项目而来的迅速成长。

就我个人来说,有时当我进入沉浸式开发的时候:头一抬,窗外天黑了;头又一抬:窗外天亮了。当你进入心流状态的时候,时间都在你这里不存在了,更不会在意什么996。

至于35+这个现象,确实目前市场是遇冷了,企业招人的门槛提高了,但大的原因还是经济周期下行导致的,但其实没什么的,在这之前,2000年互联网泡沫一波,2008金融危机也一波,既然是周期总有波峰波谷,中国经济的韧性很强,大家都很勤勉,乘着寒冬苦练内功,提升自己竞争力,等到春暖花开,还是能绽放光彩的。

35-50岁的工程师,正是经验,效率,资源达到顶峰的阶段,有需求的企业不会视而不见的。

9、程序员与嘻哈文化的碰撞,这个很有意思,分享一下嘻哈之城这个项目的始末?

年轻读书的那会儿,很喜欢街舞说唱这些东西的,早期国内的互联网也没有这方面的资讯,也没有一个什么可以让你去交流的地方,所以就去动手做了这么一个人网站。

这是我的第一个个人网站,它在很长的一段时间内都是嘻哈文化在中国传播的重要节点之一。我在这个网站上收获了很多,除了技术本身,你会有机会接触到你的一线用户,从而将自己摆脱出单纯的开发者角色,更多的会以产品和运营的眼光去看待技术在整个链路中的作用。

作为一个拥有一定人气的站点,我早在0几年就接触到了高并发,安全攻防,社区治理这些问题,这些都极大的锻炼了我的架构能力,产品运营意识,让我不单单是一个只会开发的程序员,而是一个拥有 产品、研发、运营能力的覆盖整个项目生命周期的大全栈。

另外一个较大的收益是:研发这条路有时枯燥而寂寞,一个相对成功的个人产品,会时刻给你带来正向的激励,有了激励就会有信心在这条漫长的路上持续走下去。

以前互联网还不是那么普及的时候,那时候有很多网友访问了我的网站会给我写信。我记得有一位很远的边防站解放军战士,他们可能是一个礼拜去他们那个山脚下的县城网吧去上网,在我的网站上看一些街舞的视频然后回去练习,然后写信过来感谢我说每周访问我网站就是他最大的盼望,那个时候就觉得还真的蛮有意思,在中国这么大一个地方,这么一个偏远的一个国境线上,这么枯燥的站岗放哨生活,有人会因为你的项目对生活充满热情,这个时候你会感觉有很多的动力。

所以我对广大研发同学建议:如果时间和精力允许,还是可以开发一个属于自己的作品,不管是c端产品也好,底层框架,第三方插件也好,即使失败了无人问津,你也会发现他带来的回报会远远大于你的付出。

10、是否用过AI辅助写代码的工具?感受如何?它对程序员的影响有哪些? 目前来说ai在我这里基本上完全替代了搜索引擎,并且gpt4的一些插件也成为了我工作不可或缺的部分。

以前有句话叫:所有pc时代的软件都值得重新做个app,后来区块链火了,大家又说所有web2的东西都值得web3再做一遍。那么今天:所有的互联网产品都值得用ai再重新做一遍。

我之前有很长的一段创业经历,那时其实是有自研团队的,我们的工作模式基本上是senior工程师负责一些核心的模块,然后junior会去做一些简单初级的工作。

在ai改变开发流程的今天,我有时感觉似乎1个人+ai就可以达到以前一个团队的效果。 ai的出现,确实对于一些初级工程师会造成冲击,但是对于独立开发者,其实是迎来了一个最美的时代,个人的能力会在ai的加持下被无限放大。

11、从快播、字节的技术无罪,到ChatGPT的强大使人类产生恐惧,如何看待技术的“价值观”?

技术的进步犹如历史的滚滚车轮,任何阻挡技术进步的人都似螳臂当车。掌握先进技术的人就是掌握生产资料的人,你不参与革命,以后只有被别人革命的份。

但确实每个时代都不缺没有道德底线的研发人员,阳光照不到的地方就是会有阴影,负面的东西总是无法避免,作为研发人员我们还是要恪守道德底线,将负面的影响控制在最低范围内,让大部分人享受到的是技术进步带来的便利。

我从98年担任个人站长的那一刻起,就和无数的黑客攻击者斗争,有的时候他们赢,有的时候我赢,此消彼长,道高一尺魔高一丈的事一直发生,最后回顾一下,其实并没有特别大的损失,有时候只要保证力量在正义这边就行了,无须过于担忧新技术带来的影响。

12、对于自己或者程序员的未来,有何畅想或期待?

在2023这一整年中,我作为评级面试官参加了客栈的几十场面试,这其中有大厂的高P,也有和我差不多年纪的大龄开发者,也有培训班毕业1,2年的新人。

但是在和部分研发同学沟通后我看到了:有些人在公司的流水线上做螺丝钉,超过自己职责范围的东西一概不知;有些人虽然从业10年以上,但是经验和水平还停留在入行的前3年中;还有些人只是看着做开发可以挣到钱,那里有钱就去那里,始终找不到自己的正确定位和兴趣所向。

今年是疫情开发后的第一年,市场上充斥各种开源节流,降本增效的新闻,处处弥漫着it人35+的焦虑,起初我也被这样的情绪所笼罩,但后来我发现事情并不是完全这样的:

如果将失业等同于无所事事;那其实我身边热爱计算机互联网行业的人是没有真正失业的;

他们有的人在3,4线城市做远程工作,有的人在做自己的产品创业,有的人在接外包开发,有的人在学习提升某一门技术;总的来说只要调整好自己的心态,降低预期总是能找到适合自己的位置的。

作为独立开发者,更应该在打好技术基础的前提下,判断自己适合走底层路线还是应用路线,如果是底层路线那就应该早点接受更高阶的系统性学习专攻分支领域,如果走应用路线,就应该多增加对行业的观察,对生活的观察,对前沿技术趋势的观察。找到用户的痛点和刚需去开发一款有一定市场价值的产品,同时培养自己除了开发之外的其他技能:产品力,运营能力,沟通能力等等;

互联网计算机行业,底层的基因是创新,github上几千万的用户就是我们热爱创新并热衷分享的最好证明,一个基因是创新的行业,它永远能焕发出勃勃生机:从web1的bbs、电商、网游到移动互联网的app,AR/VR,到区块链的web3,到大数据ai时代,我们从未停下创新的脚步,

这样一个充满生机的行业你何须担忧因为一时萧条而从此一蹶不振?未来的数十年间,程序员依然是草根跨越阶级的最佳途径之一,也是实现自我价值的最好选择之一。

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

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

相关文章

2023-12-19 二叉搜索树的最小绝对差和二叉搜索树的众数和二叉树的最近公共祖先

二叉搜索树的最小绝对差 关键信息&#xff1a;二叉搜索树表明了树有序的&#xff01;遇到在二叉搜索树上求什么最值啊&#xff0c;差值之类的&#xff0c;就把它想成在一个有序数组上求最值&#xff0c;求差值 # Definition for a binary tree node. # class TreeNode: # …

微信私域管理工具如何帮助企业提升销售业绩?

现如今&#xff0c;微信已经从社交通讯软件&#xff0c;慢慢被默认为常规办公软件&#xff0c;工作沟通、业务洽谈、网络会议等都在微信上进行&#xff0c;完全变成职场首选的社交工具。 但受限于微信平台&#xff0c;许多公司在微信私域营销方面面临诸多挑战。 微信私域管理工…

调用第三方http接口 hutool工具类

1、引入依赖 <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.8.0.M2</version> </dependency>2、请求组装 String params"<BSXml>" " <MsgHeader>&…

Leetcode—16.最接近的三数之和【中等】

2023每日刷题&#xff08;六十四&#xff09; Leetcode—16.最接近的三数之和 实现代码 class Solution { public:int threeSumClosest(vector<int>& nums, int target) {sort(nums.begin(), nums.end());int s 0;int diff INT_MAX / 2;int n nums.size();int a…

四级作文考前积累(个人蒟蒻向)

观点类 With the giant leap of the economy,nowdays the youngsters have different opinions upon gratuation Some think that....,while others think that.... Personally ,i perfer the former,the letter. The following reasons can account for my preference. Fi…

计算机试题

选择题 在计算机中&#xff0c;RAM代表什么&#xff1f; A) Random Access MemoryB) Read-Only MemoryC) Real-time Access MemoryD) Remote Access Memory答案&#xff1a;A) Random Access Memory TCP和UDP之间的主要区别是什么&#xff1f; A) TCP是面向连接的&#xff0c;U…

光伏收益计算工具:助力可再生能源发展的关键

随着全球对可再生能源需求的不断增加&#xff0c;光伏发电作为清洁、可再生的能源形式&#xff0c;越来越受到人们的关注。然而&#xff0c;要评估光伏系统的经济效益和投资回报&#xff0c;需要一个准确的光伏收益计算工具。 光伏收益计算工具是一种专门用于计算光伏系统发电量…

Ridge Lasso Regression解决线性回归的过拟合(Overfitting)(基于波士顿房价预测)

目录 介绍&#xff1a; 1、过拟合 2、Lasso regression 3、 Ridge regression 4、 Lasso regression 和 Ridge regression一定优于LinearRegression吗 一、 Linear Regression 二、Ridge Regression 三、Lasso Regression 四、Ridge Regression和Lasso Regression 五、…

Linux常用命令详解

文章目录 Linux常用命令详解一、Shell&#xff08;执行的任务—翻译&#xff09;二、Linux命令1、Linux命令的分类内部命令与外部命令的区别命令执行过程 2、Linux命令行的格式通用的命令行使用格式 3、编辑Linux命令行的辅助操作4、获得命令帮助的办法内部命令help命令的“--h…

100GPTS计划-AI写作VersatileWriter

地址 https://chat.openai.com/g/g-zHErU9z9m-versatile-writer https://poe.com/VersatileWriterGPT 测试 翻译:要求将给定的英语语句翻译成中文。 总结:给出一段文本,要求进行概括和总结。 问答:根据给定段落,提出相关问题并给出答案。 推理:给出前提,进行多步推理并得…

2024吃透软件测试面试最全八股文攻略,一周学完让你面试少走99%的弯路

1. 请自我介绍一下(需简单清楚的表述自已的基本情况&#xff0c;在这过程中要展现出自信&#xff0c;对工作有激情&#xff0c;上进&#xff0c;好学) 面试官您好&#xff0c;我叫###&#xff0c;今年26岁&#xff0c;来自江西九江&#xff0c;就读专业是电子商务&#xff0c;…

文件包含的提升刷题

上一篇文章&#xff1a;一篇文章带你入门文件包含-CSDN博客 已经开始入门了文件包含&#xff0c;那现在开始拔高提升刷题&#xff01; 1. 拿到题目后啥也没有&#xff0c;所以也不知道要读取啥文件&#xff0c;那就查看源代码。 直接看if的条件就可以知道一定要设置cookie&a…

【linux】(ubuntu)下 QT 出现的问题

错误一&#xff1a;Make 运行QT程序以后出现这样的错误。 【解决方法】 我的ubuntu版本是18.04.4&#xff0c; 原因1&#xff1a;没有更换软件源 原因2&#xff1a;没安装相关 软件包 注意&#xff1a;这一步很有可能卡死这一步&#xff0c;所以如果一直卡在这并且进度…

第三讲GNSS相关时间系统和转换 第四讲观测值的产生和分类 | GNSS(RTK)课程学习笔记day2

说明&#xff1a;以下笔记来自计算机视觉life吴桐老师课程&#xff1a;从零掌握GNSS、RTK定位[链接]&#xff0c;从零掌握RTKLIB[链接]。非原创&#xff01;且笔记仅供自身与大家学习使用&#xff0c;无利益目的。 第三讲 GNSS相关时间系统和转换 GPS卫星的位置在时间过程中是…

docker中如何使用Arthas

docker中如何使用Arthas 一、操作步骤1、首先拷贝arthas包下来&#xff1a;2、其次选中你需要查看的容器ID&#xff1a;3、拷贝arthas程序包到容器目录下&#xff1a;4、进入到容器目录5、进入到第3步映射到容器的路径&#xff0c;并使用ll查看是否存在 arthas-boot.jar6、使用…

论文笔记 | ICLR 2023 WikiWhy:回答和解释因果问题

文章目录 一、前言二、主要内容三、总结🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 一、前言 ICLR 2023 | Accept: notable-top-5%:《WikiWhy: Answering and Explaining Cause-and-Effect Questions》 一段话总结:WikiWhy 是一个新的 QA 数据集,围绕一个新的任务…

C++ 学生信息管理 系统之增,删,改,查

学生信息管理 系统之增&#xff0c;删&#xff0c;改&#xff0c;查 #include <stdio.h> #include <stdlib.h> #include <string.h>#define MAX_STUDENTS 100 // 最大学生数量 #define MAX_NAME_LENGTH 50 // 姓名最大长度// 学生结构体 typedef struct {c…

势能相关难维护的用分块——分块过程维护跨块的:CF1491H / P7446

https://www.luogu.com.cn/problem/P7446 https://www.luogu.com.cn/problem/CF1491H 看到题&#xff0c;发现只有减&#xff0c;就和势能有关。维护势能&#xff0c;像这种题&#xff0c;树形ds显然不好做&#xff0c;所以可以去考虑进行分块。 考虑分块。每个块记录一个 …

无监督学习 聚类

无监督学习概述 无监督学习方法概述 监督学习 在一个典型的监督学习中&#xff0c;训练集有标签y&#xff0c;我们的目标是找到能够区分正样本和负样本的决策边界&#xff0c;需要据此拟合一个假设函数。 无监督学习 在无监督学习中&#xff0c;我们的数据没有附带任何标签y&…

我的创作纪念日1024

机缘 过去的1024个日子里&#xff0c;我在专业发展、职场和发展、科技创新创业、软件开发、人工智能、虚拟现实、区块链等栏目分享了一些工作和学习的建议和体会。尤其是在2022年&#xff0c;我连续发布100篇的博文&#xff0c;不仅仅是行为艺术&#xff0c;更是发自内心的分享…