热文导读 | 点击标题阅读

一份年薪30万的Android面试宝典,附答案

吊炸天!74款APP完整源码!

程序员,除了写好代码,你更应该学会这些!

原文地址:http://leijun.blog.techweb.com.cn/archives/date/2008/10

最近,和UCWEB同事讨论,怎么才能把我们的UCWEB做到极致。我说,“手机上的平台非常多,如果想做好,需要足够多、足够优秀的程序员。优秀的程序员如何定义呢?首先必须热爱写程序,其次必须是一个完美主义者。只有这样的人,才能把事情做得极致。”

   说着说着,我怀念起我过去写程序的日子,从1987年到1996年,那是一段阳光灿烂的日子。几年前我无意中从网上找到了1996年在金山西点BBS上写几篇帖子,现在读来感慨万千。谢谢当年的网管Tony Low,他收藏了我的文章,使当年的文章能保留至今。

   重贴此文,纪念我已经远去的长达十年的程序员生涯!

我的程序人生路

1996年5月写于金山西点BBS

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

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

当我学会一些后,发现自己特别喜欢写程序。我是八七年上的武汉大学计算机系,大一下学期才有专业课。当我有资格上机的时候,发现电脑世界太美妙,就一头扎进去。当时用的是 Motorola 68000 (相当 于 Intel 8088), 540K 的内存,运行的 UNIX 操作系统,八个人一起用。大二学PC,又过了一学期,开始出现在老师的实验室,帮忙干活,当时就写了现在很多人用的 RI (RAMinit, 清内存的小工具, 看来我还是最早一批写 Shareware 的人)。又过了一个学期,开始和校外的公司接触。大二暑假,也就是1989年8月,和一个朋友组建了 Yellow Rose 软件小组,写了我第一个商品软件 BITLOK 0.99。后来自己创业办过公司,也写过一些其他的软件。

大学毕业后,分到研究所,不太适应那里的气氛,就在1992年初加入金山软件,开始了职业程序员的生涯。后来成了金山软件研发部门的主管,但我一直都是一线的程序员。

编程的感受 

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

我刚接触电脑就发现电脑的妙处,电脑远没有人那么复杂。如果你的程序写得好,你就可以和电脑处好关系,就可以指挥电脑干你想干的事。这个时候你是十足的主宰。每每你坐在电脑面前,你就是在你的王国里巡行,这样的日子简直就是天堂般的日子。电脑里的世界很大,编程人是活在自己想象的王国里。你可以想象到电脑里细微到每一个字节、每一个比特的东西。

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

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

当我刚有一点本事的时候,我也和大家一样觉得编程辛苦,也想三十岁后干别的。当我年长一点后就发现了自己的无知。一个人大学毕业就二十一二岁,有点水平的时候可能二十五,接着就是过日子诸多事情。一切搞掂的时候,也许就是三十五岁。如果这样的话,我们就不用选择程序人生的道路。电脑进入中国时间并不短,但真正大规模开始用,还是八五年 PC 开始的,因此国内真正写电脑程序的人最长也就写了十几年(不知道是否还有这样的人)。由于电脑应用在国内时间比较短,国内开发的主力是三十五岁以下的年轻人为主。但这不表示程序员如同红粉佳人般的容易衰老。美国主力工程师以三十四十多岁的人为主。

开始的时候,我们觉得我们没有什么不能做的(现在还能听到这样的豪言壮语),而且更要命的是好象我们特别聪明,特别适合开发软件,比老外强得多。当我们真正接触那些杰出的开发人员的时候,发现他们太厉害了,都有十多年的开发经验。虽然也有很多年轻人做了很多好东西,但绝大多数的产品出自这些有丰富开发经验的程序员的手。刚毕业的时候,编程不仅仅是爱好,而且也成了一辈子的工作。整天不知道写些什么东西,觉得特别没劲,找不到感觉,特别灰心。后来,才明白,只有全身心地投入,程序才会有感觉。

写程序的活特别费脑子,也特别累,但我喜欢,可以肯定我会干上一辈子,虽然我没有打算一生只干这一件事。用一生来编程序是一件既容易又困难的事。如果碌碌无为,为交差写点程序,这样的日子太好混了。但如果想全身心地写程序,写十年就不是一件容易的事。现在我不少朋友都洗手了,有时我也想“用什么电脑呀,Windows 外的世界不是也很大吗?”。面对电脑的时候,立刻顿悟:写程序还是自己最擅长的事,也是最喜欢的事。

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

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

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

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

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

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

我们换个工种来看,石匠应该是熟练工种,属于工人,更和艺术似乎沾不上边。但正是这些石匠,给我们留下多少文物古迹,如乐山大佛、莫高窟等等。应该说这些石匠给我们留下了无穷的文化财产。现代软件工业已具相当规模,很多软件的完成需要的是大兵团作战。一名普通程序员接受编写某一模块的任务后,往往只是写代码,发挥的余地很小。在大项目中,很多程序员只能了解到和自己所编模块相关的很局部的细节,另外还受到开发环境的限制,真的很难体会到自己在从事”艺术”创造,更多的时候是感到自己在从事重体力劳动。有的时候还担心自己苦苦参与的这个项目究竟有没有意义,是不是在同类产品中有竞争力,会不会开发出来以后就因为硬件的发展,操作系统的换代而过时……

我认为编程的工作和石匠比较相似,有技术活,更多的是体力活。不管怎么说,写出一个好软件不是一件容易的事。

这两种想法都有片面性,编程应该说两种属性都有。编程不仅仅是技术,也还是艺术。编程是技术活,才有可能大规模进行,才会有软件工程和软件工厂。也正是编程是艺术,才会有如此多的好产品,让大家如痴如醉。

你有好的文章想和大家分享欢迎投稿,直接向我投递文章链接即可


Java和Android架构

微信扫描或者点击下方二维码领取Android\Python\AI\Java等高级进阶资源

关注后回复“百度”、“阿里”、“腾讯”、“资源”有惊喜

公众号:JANiubility

欢迎加入我们的Java和Android架构圈,已有近1000人加入学习交流,更多学习资源更新,更多交流进步

更多学习资料点击下面的“阅读原文”获取

雷军:我十年的程序员生涯相关推荐

  1. 雷军 | 我十年的程序员生涯

    文章来源与编辑 深度智能眼 文仅交流侵删 雷军回忆: 最近,和UCWEB同事讨论,怎么才能把我们的UCWEB做到极致.我说,"手机上的平台非常多,如果想做好,需要足够多.足够优秀的程序员.优 ...

  2. 雷军—我十年的程序员生涯

    内容转自:http://blog.sina.com.cn/s/blog_4b0e23c90100b2qf.html 最近,和UCWEB同事讨论,怎么才能把我们的UCWEB做到极致.我说,"手 ...

  3. 雷军-我十年的程序员生涯

     最近,和UCWEB同事讨论,怎么才能把我们的UCWEB做到极致.我说,"手机上的平台非常多,如果想做好,需要足够多.足够优秀的程序员.优秀的程序员如何定义呢?首先必须热爱写程序,其次必须是 ...

  4. 雷军:《我十年的程序员生涯》系列之三(失败的大学创业经历)

    // 转载自雷军2008年11月10日写的博客.以下内容为博客原文: 不少人想白手起家.空手套狼,在今天的商业社会里这是非常不现实的一件事情.我特别想问:你为什么不能先做能力及资源上的积累后再创业呢? ...

  5. 雷军:《我十年的程序员生涯》系列之二(我赚的第一桶金)

    // 转载自雷军2008年11月5日写的博客.以下内容为博客原文: <我十年的程序员生涯>系列之二:我写BITLOK的这七年 1989年8月,大二暑假,我和王全国合作写了我的第一个正式作品 ...

  6. 我十年的程序员生涯----雷军(写于1996年)

    最近,和UCWEB同事讨论,怎么才能把我们的UCWEB做到极致.我说,"手机上的平台非常多,如果想做好,需要足够多.足够优秀的程序员.优秀的程序员如何定义呢?首先必须热爱写程序,其次必须是一 ...

  7. 蓦然回首,十余年的程序员生涯最后就只剩下了这些!希望我犯过的错误你不要再犯!

    前言 蓦然回首,本人已经加入互联网企业十年有余,十年光阴一晃即逝,这十年中我获得了很多,技术能力.培训.出国.大公司的经历,还有很多很好的朋友.但再仔细一想,这十年中我至少浪费了五年时间,这五年可以足 ...

  8. 一位10年程序员生涯的总结与经验忠告分享

    展望未来,总结过去10年的程序员生涯,给程序员小弟弟小妹妹们的一些总结性忠告 走过的路,回忆起来是那么曲折,把自己的一些心得体会分享给程序员兄弟姐妹们,虽然时代在变化,但是很可能你也会走我已经做过的1 ...

  9. [转]程序员生涯总结

    作者:金蝶中间件公司CTO袁红岗 不知不觉做软件已经做了十年,有成功的喜悦,也有失败的痛苦,但总不敢称自己是高手,因为和我心目中真正的高手们比起来,还差的太远.世界上并没有成为高手的捷径,但一些基本原 ...

最新文章

  1. scikit-learn系列之如何存储和导入机器学习模型
  2. DataGrid中添加DropdownList时的数据绑定
  3. 计算属性一般是没有set方法, 只读属性 ||计算属性的缓存
  4. 【模拟】P1067 多项式输出
  5. [转]小硕3年是怎样发6篇SCI的
  6. android两个耳机能连两部手机吗,AirPods使用技巧:如何让耳机同时连接两台手机...
  7. Linux Shell脚本专栏_批量主机远程执行命令脚本_08
  8. 九度 OJ 1451 错排 动规
  9. 利用WinDriver开发PCI设备驱动程序
  10. Stream Editor 流编辑器命令
  11. 蓝牙定位网关-蓝牙网关通过三角定位获取蓝牙设备的位置
  12. python热力图参数_python3.5数据处理——百度地图热力图传值
  13. Oracle怎样创建共享文件夹,OracleVirtualBox虚拟机如何实现文件夹共享
  14. 回味宋朝——文化的盛世
  15. sd和sem啥区别_生物统计学-标准差(SD)和标准误(SEM)有何区别.pdf
  16. 是对计算机系统或其他网络设备进行,计算机信息系统是由计算机及其相关的和配套的设备、设施(含网络)构成的,按照一定的应用目标和规则对信息进行()等处理的人机系统。...
  17. CISP证书价值如何
  18. 点菜系统服务器,电子菜谱点菜系统
  19. netstat查看系统TIME_WAIT状态个数
  20. 五子棋项目结束总结_五子棋和画板项目总结

热门文章

  1. Android完美支持MathML显示公式方程
  2. 数据结构学习笔记(王道)
  3. 小学生搞了自己学校的网站!
  4. BMPFont使用教程--免费的位图字体制作工具
  5. 知行合一:知其然知其所以然
  6. 低调做人 高调做事
  7. 《快速念咒——MySQL自学入门指南》:第2章——从表中获取更多数据(前言)
  8. 千万下载量开源软件托管给陌生人 植入恶意代码窃取用户密币
  9. 吴晟:浪迹天涯的骨灰级开源爱好者
  10. 【北邮人福利】微软office和windows完全免费了