程序开发的门槛儿

王志勇 发表于 2013年03月21日 09:43

学习程序设计,目标就是要进行实际的程序开发。一旦从事程序设计的工作,就进入一个新的领域了。程序开发的门槛儿其实很高,不是所有的人都能够成为程序员,因为会受到很多方面的苛刻条件的限制,稍微不符合条件,马上就会自动放弃、自动出局,马上逃离。所以,大部分人最终都从事与计算机不相关的工作,也有更少的人是从事程序开发,因为太辛苦挣钱又少。程序开发是很艰苦的事情,是一种类似于军(隔开)人那样的严酷考验,也常常会受到外界的不理解、不尊重甚至侮辱。可以这么说,如果你能承受得了程序开发的艰苦,那么很多种苦都能吃了。其条件大致如下:

1. 工作量十分庞大。比如做成一个面包,做成一件衣服的周期,相对是比较短的。而程序要完成一个功能,里面会有大量的细小的功能,完成一项大的功能的周期是以一个星期、半个月或者更长的时间为单位。100天的工作量,决不可能在一两天内完成。
2. 对注意力集中是一种极大的考验。程序语言本身并不难,而最困难的地方是在于注意力集中。当注意力集中时,开发速度会比平时快;当注意力不集中时,开发速度会以难以想象的速度降下来
有人问编程序时是否可以听音乐?在集中的开发期,是绝对不能一边放着音乐一边编程序的。这是我的体验,并且我本人就是将近20年的音乐发烧友。因为编程序是特殊的高强度的脑力劳动,音乐会造成很大的干扰,会不同程度地降低工作效率。同样地,在写作的时候也不要听音乐,容易造成注意力不集中,或者打乱思路。除此之外,是可以听音乐的。
3. 需要有很强的执行力,顽强的毅力,把想法变为现实。很强的执行力,这一点很多人不容易做到,这也是最难的地方之一。如果不去执行,今天觉得事情太难了不想做,明天不想动弹,后天还是这样,一个星期,一个月,一年都是这样,那么事情是永远都不可能完成的。不要想着明天、后天、过些天再行动,因为一拖就会很长时间,要现在就马上开始行动,此时此刻就是行动的最好时机。你不执行,是没有人能够帮助你完成你的作品的,只有靠你自己。每一个艰难的项目,每一个艰难的功能,都要先硬着头皮开始走出第一步,然后一个项目、一个功能就会开始启动了。
4. 程序有极大的连贯性。如果不休息,一口气把一个大型的程序编写完毕需要100小时的话,如果按照正常的休息时间可能就需要2个月甚至更长的时间才能完成。因为休息之后,工作状态会大减,对前面所做的一些工作也会遗忘。如果每天工作2个小时来编写程序,每天的有效工作时间可能只有十几分钟~1个小时,有效工作时间平均为半个小时/天,因此如果不睡觉连续开发100小时可完成的程序,同样的程序每天工作2个小时就需要200天才能完成,这也是大部分人没有选择成为程序员的原因。
经常熬夜本身对身体和心理都会有极大的损害,所以程序员是决不能熬夜的。人不可能连续工作100小时,当连续不停地编程序超过24或者48小时,很可能就会猝死。
5. 程序开发要比很多种工作艰苦得多,得到的薪水回报却比很多种工作低很多。在一个健康的社会里,工作难度、工作强度和薪水成正比,但在一个不健康的社会里是不成正比的。不是每个战斗在一线的程序员都能拿到潇洒的薪水,而现实社会中特别是家人、亲人常以薪水论英雄,这时你能否做到心理平衡?因此,大多数人很快就会告别程序生涯,你的家人也可能会千方百计地阻止你开发程序。
程序开发和组装电脑哪个难?开发一个程序系统,难度是组装一台电脑的100倍、1000倍以上,但是得到的金钱回报往往比组装电脑低很多。
6. 技术方面。程序语言基础的学习,相对来说并不难。最难的地方,还是在于注意力集中。一旦注意力集中,什么事都好办了。较难的是算法,所谓算法,这里包括大量的统筹,里面会涉及到大量的逻辑关系。这些算法,书里是很难学到的,需要自己开发新的算法。很多程序都是很难读懂的,无论你处于什么样的编程水平,与一流的程序员在读别人的程序的时候,都是差不太多的,都很难读懂,读别人的程序就像读天书一样,到处都像是迷宫,这都需要花费相当多的时间才能读懂一个工程。
不要认为一流的程序员,就能很容易读懂程序。因为有很多程序,思路是不会写在程序当中的,程序是一种成品,它的过程是:“思路→程序”。而“程序←思路”,往往就很难了,这是为什么?因为3+5=8,等号右边的8是结果。如果给出一个数字8,能不能知道它是由3+5得来的?不可能知道的。而且真的确实有这样的程序,当没有开发文档时,任何人都永远无法读懂某段程序为什么要这样写。所以,很多时候就是像这样,看程序也无法知道它的思路的。实际的程序成品,远不像教程里给出的例子一样清晰简单。
开发者如果当时没有记录原始的思路,过上几个月,就会大部分忘记,常常也会看不懂自己的程序,因为思路忘了。
7. 贾金斯的创业故事,是一个有名的笑话。然而,这在程序开发里却不是笑话。对于一个程序工程,关键的功能、模块必须一个都不能少。西瓜和芝麻,一个都不能少,这并不夸张,现实就是如此。有时当做出一个功能之后,会发现与它相关的很多功能都需要跟着修改,或者必须做出新的功能相配套才能实现要实现的那个功能,于是就停下原有的工作转去开发新的配套的功能,然后再转回来开发原来的那个功能,这是常常发生的事情。如果少了一个,可能就会导致整个项目失败。同样地,当发现另一个程序中有bug,有时需要先停下手中的任务修正以前的bug。当发现bug时,是决不允许它再继续存在的。
8. 程序的内核,要远远比表面复杂得多。程序都是从无到有创造出来的,需要多复习开发过的程序,以便更加熟悉程序的内核。
9. 会遇到非常多的难题,要做好勇于独立解决问题的心理准备。
10. 程序开发是一件相当相当累的事情,正因为这个门槛儿,以及上述技术难度的原因,所以能够做别人做不到的事情。

当然,即使程序开发再困难,只要坚持不懈,多用功,是能够完成一件优秀的作品、完成一项复杂和庞大的工程的。别人在打游戏的时候,你在学习知识或者编程序,收获是截然不同的。

附:本文比较重要,是经过很多次修改而写成的,都是我的个人经验,以后想到什么内容还会不定期修改、添加内容,我是从2002年开始从事编程。本文请不要转载,内容以本页为准,如果需要分享,请复制本文的链接即可。

4条评论:
1   2013-06-02 10:58
请教勇哥,您的博客写作后台的编辑器是怎样的,是kindeditor之类的可视化编辑器还是纯文本编辑器?
2   自由勇 2013-06-02 11:58
目前是纯文本编辑器。
3   xsgftgg 2015-06-17 06:01
程序员的心声!
4   麒麟 2017-07-17 12:07
博主 , 你最近不怎么上博客了吗? 加我QQ 微信wellmecome 可以吗 交流下 轻松创业的想法

发表评论:
名字: (*必填)
博客: (可省,仅限于Blog地址)
验证码: p48u58r68e78 (*必填)

正文:

  记住信息?

直接发送Trackback到此文章

说明:本评论系统不支持HTML代码。(您的留言需要审核,审核规则请见这里。)

文章分类 Category:
真相与UFO Truth and UFO
编程 Program
PHP
Blog的发展 Development
为什么写博客 W-do we Blog
互联网 Internet
BBS社区研究 Community
QQ研究 QQ Research

置顶的文章:
程序开发的门槛儿
为什么不能夸孩子调皮?
我的3种博客写作方法
最大的公益事业是UFO
再谈四维空间
开发文档和程序注释
Arsue Blog程序的扩展
独立微博开发之设想

近期的主题:
2017.7第2篇
auiou.com今天换上了KVM
CentOS, Debian, Ubuntu三种VPS系统的LAMP属性小结
Debian 6.0和Ubuntu 14.04新装机的参数记录
Linux VPS的速度优化
Nginx与.htaccess
CentOS 6新装机的参数记录
auiou.com的VPS的内存占用测试
2016年8月第一帖
不喜欢锻炼身体的朋友
看《第五空间》
看《爱情公寓》的一点感想
生命的意义在于每一天都是人生的开始
安卓机顶盒收到小记
人生中最可怕的事情是拖延
不能贪吃/不能贪喝/不能贪凉
“世面”和人生意义
计划推出一个重要的“网络存档”(网络记事本)快速小程序
最近几个月博客更新减缓的原因
汽车越来越多
编写完成了清爽的贴吧浏览程序/贴吧占用内存测试
猫/无线路由器/瑞银无线网卡 最简单有效的散热方法
最近录制的歌
家用无线路由器选购的一些建议
网络电视机顶盒选购的一些建议
无线路由器当作无线交换机实例
2013-08-08:人生的意义&谨言慎行
怎样对治重症的拖沓的毛病?
磊科NW336无线网卡使用感受
腾达311R无线路由器频繁掉线解决一例(其它品牌和型号可能也适用)
网络电视杰科T1使用感受(杰科T1/T2/T3怎么样?)
人为什么会无聊?无聊的时候该做什么?
2013-07-14:看不见的全息摄像机
想法:2013-07-12
有趣的植物3:景天科多肉植物
有趣的植物2:米邦塔食用仙人掌
最有趣的植物
想法:2013-06-30
好好地修心
中国现代和未来的黑人问题/广州黑人
KVM主机竟然死机
想法:2013-06-13
行人的过错
为什么不能夸孩子调皮?/怎样教出一个好孩子?
打招呼的一瞬间
欢迎哥们儿们加我的QQ
好心一定会有好报
拜金女的下场都是不好的
最近很忙,写作的思路断了
狂做好事,消除烦恼
最大的公益事业是UFO/怎样做UFO研究?
  

王志勇:程序设计者。
1980-09-26 (37周岁)

版权声明:本博客所有文章,均符合原创的定义,禁止转载,违者将必究;正确的方法是贴原文的标题和网址即可。

与此相关的链接
自由勇专栏 | Arsue官方Blog
Gratitude | Time | Auciou
matnue | aucist | Taimt | Caimt | ac315 | Arsue | IC Search | TDNote | HKANS | aroat | Vaimt Panel | txfor | 网树 | cdfor | aufirm | Emxel | ixnes | AnyDiary | Tuarm | Tovate | Urtal | coumit | cersta | tratom54.91.38.173 2017-12-18_13:42

Blog存档 Archives

2013年08月(9)
2013年07月(6)
2013年06月(7)
2013年05月(22)
2013年04月(17)
2013年03月(20)
2013年02月(21)
2013年01月(6)
2012年12月(3)
2012年08月(8)
2012年07月(4)
2012年06月(4)
2012年05月(6)
2012年04月(13)
2012年03月(11)
2012年01月(7)
2011年10月(8)
2011年09月(4)
2011年08月(2)
2011年06月(2)
2011年05月(6)
2011年04月(10)
2011年03月(16)
2011年02月(16)
2011年01月(15)
2010年12月(12)
2010年11月(9)
2010年10月(3)
2010年05月(4)
2010年01月(7)
2009年12月(10)
2009年11月(4)
2009年10月(8)
2009年09月(24)
2009年08月(20)
2009年07月(6)
2009年06月(11)
2009年05月(16)
2009年04月(20)
2009年03月(29)
2009年02月(18)
2009年01月(15)
2008年12月(17)
2008年11月(10)
2008年10月(13)
2008年09月(8)
2008年08月(4)
2008年07月(5)
2008年06月(9)
2008年05月(12)
2008年04月(15)
2008年03月(26)
2008年02月(22)
2008年01月(29)
2007年12月(30)
2007年11月(28)
2007年10月(30)
2007年09月(8)
2007年08月(8)
2007年07月(21)
2007年06月(23)
2007年05月(31)
2007年04月(34)
2007年03月(29)
2007年02月(18)
2007年01月(41)
2006年12月(23)
2006年11月(10)
2006年10月(10)
2006年09月(29)
2006年08月(33)
2006年07月(17)
2006年06月(30)
2006年05月(4)
2006年01月(3)
2005年09月(4)


Copyright © 2006-2017 auiou.com All rights reserved.
此Blog程序由王志勇编写 已经发布在Arsue