雷军:我的程序人生路

news/2024/6/1 20:28:08 标签: 程序人生, 职场和发展

今天有朋友发给我一篇我在20年前在BBS上写的帖子。那还是1996年,我们通过电话线拨号连接到西点BBS上飙帖子玩的年代。那是一个互联网混沌初开的年代,那是一个BBS和Email几乎主宰了全部互联网的年代,那是一个青春的理想和热血沸腾的年代。

我是一个程序员,一个软件工程师。到今天,我也依然是一个程序员,一个软件工程师。

本文是20年前我对程序人生的一点看法。20年后的今天,重读之后,这依然是我对程序人生的态度。

程序人生

[题记]如果程序人生的话,这条路太漫长

程序人生"这个词是什么意思,刚开始时我并不明白。这个词源于业余BBS站,站上PROGRAMMER栏目的中文名就是这个词,英文翻译过来就是"程序员”,但程序人生又比程序员多了很多含义,似乎多了一种沧桑感。但不管这么多,讲讲编程感受不算跑题。

首先我先讲讲自己的路,这样也许大家才能相信我的坦诚和我的这篇编程感受的真实性。这些感受是我个人感受,不全面的地方,请大家指正。

我的程序人生

我并非天生喜欢电脑,上高中时也没有想过程序员的生活。我学电脑非常偶然,小时候的一个好朋友上大学时选择了电脑专业,为了和这个朋友有更多的共同语言,我也选择了计算机系,开始步入程序人生的道路。

当我学了一点电脑知识后,就发现电脑将是我人生的最爱。读书时,我不是特别会搞关系的人,同学关系说不上差,也好不到那里去。我是八七年上的大学,我们大一下学期才有专业课。当我有资格上机的时候,发现电脑世界太美妙,就一头扎进去。当时用的是Motorola 68000 (相当于Intel 8088), 540K的内存,运行的UNIX操作系统,八个人一起用。

大二学PC,又过了一学期,开始出现在老师的实验室,帮忙干活,当时写了现在还有人用的RI(一个清内存的小工具)。又过了一个学期,开始和校外的公司接触。大二暑假,和一个朋友组建了Yellow Rose组,写了我第一个商品软件BITLOK 0.99。后来开过公司也写过一些软件。

大学毕业后,分到研究所,不太适应研究所的气氛。调槽到金山软件公司,开始了职业程序员的生涯。后来成了北京金山软件公司的经理,但我还是一名程序员。

编程的感受

—程序员活在自己想象的王国里—

我刚接触电脑就发现电脑的妙处,电脑远没有人那么复杂。如果你的程序写得好,你就可以和电脑处好关系,就可以指挥电脑干你想干的事。

这个时候你是十足的主宰。每每你坐在电脑面前,你就是在你的王国里巡行。这样的日子简直就是天堂般的日子。

电脑里的世界很大,编程人是活在自己想象的王国里。你可以想象到电脑里细微到每一个字节、每一个比特位的东西。

—我爱编程这个工作,可以肯定我会干上一辈子—

不少人认为程序员最多干到三十五岁就可以收山换环境了,脑子也差不多该歇歇了,体力也不支了。并认为写程序是年轻人的事情,到了一定岁数,估计没什么人再当程序员了。

当我刚有一点水平的时候,我也认为编程辛苦,也想三十岁后干别的。当我年长一点后就发现了自己的无知。一个人大学毕业就二十一二岁,有点水平的时候可能二十五,接着就是老婆加上孩子和房子等等诸多事情。

一切搞掂的时候,也许就是三十五岁。如果这样的话,我们就不用选择程序人生的道路。

电脑进入我国时间不短,但真正大规模开始用,还是八五年PC开始的,因此国内真正写电脑程序的人最长也就写了十几年(不知道是否还有这样的人)。由于电脑应用在国内时间比较短,国内开发的主力是三十五岁以下的年轻人为主。但这不表示程序员如同红粉佳人般的容易衰老。美国和台湾开发以三十四十多岁的人为主。开始的时候,我们觉得我们没有什么不能做的(现在还能听到这样的豪言壮语),而且更要命的是好象我们特别聪明,特别适合开发软件,比老外强得多。当我们真正接触那些杰出的开发人员的时候,发现他们太厉害了,都有十多年的开发经验。虽然也有很多年轻人做了很多好东西,但决大多数的产品出自这些有丰富开发经验的程序员的手。

刚毕业的时候,编程不仅仅是爱好,而且也成了一辈子的工作。整天不知道写些什么东西,觉得特别没劲,找不到感觉,特别灰心。后来,才明白,只有全身心地投入,程序才会有意识。

写程序简直是在自杀,巨费精力巨费脑子巨累。但我爱编程这个工作,可以肯定我会干上一辈子,虽然我没有打算一生只干这一件事。用一生来编程序是一件既容易又困难的事。如果碌碌无为,为交差写点程序,这样写两辈子的人都有。但如果想全身心地写程序,写十年就不是一件容易的事。现在我不少朋友都洗手了,有时我也想"用什么电脑,Windows外的世界不是也很大吗?"。面对电脑的时候,立刻顿悟:电脑还是自己最擅长干的事,也是最顺手的事。

—高级程序员不是追求的目标—

有的人学习编程技术,是把高级程序员做为追求的目标,甚至是终身的奋斗目标。后来参与了真正的商品化软件开发后,反而困惑了,茫然了。

一个人只要有韧性和灵性,有机会接触并学习电脑的编程技术,就会成为一个不错的程序员。刚开始写程序,这时候学得多的人写的好,到了后来,大家都上了一个层次,谁写的好只取决于这个人是否细心、有韧性、有灵性。掌握多一点或少一点,很快就能补上。成为一个高级程序员并不是件困难的事。

当我上学的时候,高级程序员也曾是我的目标,我希望我的技术能得到别人的承认。后来发现无论多么高级的程序员都没用,关键是你是否能够出想法出产品,你的劳动是否能被社会承认,能为社会创造财富。成为高级程序员绝对不是追求的目标。

—编程不仅仅是技术,还是艺术—

有人认为编程是一种熟练工种,也有人把编程说成是艺术创作。这两种意见争论比较激烈。

我们换个工种来看,石匠应该是熟练工种,属于工人,更艺术似乎沾不上边。但正是这些石匠,给我们留下多少文物古迹,如乐山大佛、莫高窟等等。应该说这些石匠给我们留下了无穷的文化财产。

现代软件工业已具相当规模,很多软件的完成需要的是大兵团作战。

一名普通程序员接受编写某一模块的任务后,往往只是写代码,发挥的余地很小。在大项目中,很多程序员只能了解到和自己所编模块相关的很局部的细节,另外还受到开发环境的限制,真的很难体会到自己在从事"艺术"创造,更多的时候是感到自己在从事重体力劳动。有的时候还担心自己苦苦参与的这个项目究竟有没有意义,是不是在同类产品中有竞争力,会不会开发出来以后就因为硬件的发展,操作系统的换代而过时…

我认为编程的工作和石匠比较相似,有很多是技术活甚至是体力活,但编写优秀软件是件很难的事。这两种想法都有片面性,编程应该说两种属性都有。编程不仅仅是技术,也还是艺术。

编程是技术活,才有可能大规模进行,才会有软件工程。也正是编程是艺术,才会有如此多的好产品。


http://www.niftyadmin.cn/n/5209479.html

相关文章

Linux系统编程 day04 文件和目录操作

Linux系统编程 day04 文件和目录操作 1. 文件IO1.1 open 函数1.2 close函数1.3 read函数1.4 write函数1.5 lseek函数1.6 errno变量1.7 文件示例1 读写文件1.8 文件示例2 文件大小的计算1.9 文件示例3 扩展文件大小1.10 文件示例4 perror函数的使用1.11 阻塞与非阻塞的测试 2. 文…

Python工具箱系列(四十六)

PDF(Portable Document Format)是一种便携文档格式,它基于PostScripty这种脚本语言。 ​​ PDF文档操作 PDF(Portable Document Format)是一种便携文档格式,它基于PostScripty这种脚本语言,它…

2016年8月18日 Go生态洞察:Go 1.7版本二进制文件缩小

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

bootstrap插件的基本使用

1.更新表格数据(根据行索引:仅更新一个单元格) var rows {index : index, //更新列所在行的索引field : "status", //要更新列的fieldvalue : "正常" //要更新列的数据 } $(#table_Id).bootstrapTable("updateCel…

巧用ChatGPT快速提高职场晋升力、搞定数据分析玩、转新媒体运营

文章目录 一、引言二、ChatGPT在日常工作中的应用场景1. 客户服务与支持2. 内部沟通与协作3. 创新与问题解决 三、巧用ChatGPT提升工作效率1. 自动化工作流程2. 信息整合与共享3. 提高决策效率 四、巧用ChatGPT创造价值1. 优化产品和服务2. 提高员工满意度和留任率 五、总结与展…

Oracle通过MyBatis执行批量插入与更新问题

最近看一个老项目,使用的Oracle数据库,发现要使用MyBatis执行批量操作还是不太一样。 下面我们来看一下,Oracle数据库,如何使用MyBatis来批量插入和更新。 批量插入 因为Oracle和MySQL的insert还不太一样,Oracle不能…

数据结构重点知识点复习——第六章 图

目录 一、图的基本概念 二、图的存储结构 邻接矩阵(顺序存储) 邻接表(链式存储) 十字链表法(有向图) 邻接多重表(无向图) 三、图的遍历 四、图的应用 一、图的基本概念 二、图…

TCP 重传、滑动窗口、流量控制、拥塞控制的剖析

TCP 是一个可靠传输的协议,那它是如何保证可靠的呢? 为了实现可靠性传输,需要考虑很多事情,例如数据的破坏、丢包、重复以及分片顺序混乱等问题。如不能解决这些问题,也就无从谈起可靠传输。 那么,TCP 是…