编程并不是一件太难的事.doc_第1页
编程并不是一件太难的事.doc_第2页
编程并不是一件太难的事.doc_第3页
编程并不是一件太难的事.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

编程并不是一件太难的事之(二) . 今天与大家谈谈如何成为一个程序员。如果你没有开发过正式项目也没有在软件公司工作过。你一定想问:我们与真正的程序员有多大距离?他们懂得的是否一定比我们多?他们是怎样工作的 在回答上述问题之前,先测试一下大家是否是一个合格的程序员。大家先花一分钟看以下几句代码,看看有没有错误: (已知 a、b、c均为整数) if( a != 0 ) c = b-10; b = b/a; 如果编程是为了玩玩,应付一些Excel表格计算,上面程序问题不大。如果应用在真正的编程项目中,上面的程序可能会令你的系统崩溃一百次。 如果你现在还崇拜着那些病毒或恶意代码制造者,那么你编程的方向一定走错了。这并不是道德的问题。发现别人程序漏洞并攻击它不难,这是比写一个没有漏洞的程序容易一千倍事。有一次我在某移动通讯公司测试一个短号集群网之类的系统。发现稍微升格一下权限、做一些小手脚就可以查看别的用户档案及所发信息。如果这被居心不良的人利用,是非常危险的。我想为此问题找个解决方法。然而想来想去,就是没有合适的。因为解决了旧问题,又会引发新的问题 好,现在回到上面的程序,大家可能会说出很多模棱两可的错误,比a,b,c有可能超出取值有范围啦,或者多线程运行时会怎么怎么样啦很遗憾告诉你,这不是一个程序员的判断!我并不是说你说错了,只是想说你很混乱。因为严格来说,没有一句代码是可证明绝对安全的,我们经常是在安全与现实情况中取舍。初级程序员的特点是思路很不清晰,反应常常书上曾经告诉过我什么,书上要我怎么做,只求运行通过。这有点象政府人员写年度考核,上交也不知道到底谁看了,有没有看,但是不敢不写。程序员特点是象会计师,必须要思路清晰、理性,因为他要对程序负责。 程序员对除0的操作很敏感,他会觉得上面程序编写代码的风格不对。分析结果如下。 虽然已知 a、b、c均为整数,但还不知它是怎样定义的,如果定义成如下这样,错误就来了。 int a,b; int& c = a; / c是a的引用,即a与c总是同一个值 b = 10; if( a != 0 ) /虽然在此a不等于零 c = b-10; /但因执行了此一句 b = b/a; /a变为了0,程序崩溃 真正编程的时候,就不会象上面那么容易找到错误了。面对数万行的代码,每一行都可能有错误,程序员应该怎么做,大家心中应有数了。 我有个准程序员朋友,或者说是个想成为程序员的朋友。一天到晚看书,坚持了很长时间。我开玩笑地说帮他接个项目,他回答说:“不行,还有很多书未看呢?唉,这么多书,究竟何时才算完?”坚持是一个伟大的品质,但要正确的坚持才会成功。也许我的朋友有一天侥幸进入软件公司才发觉,所做的事情,与看多少书是无关的。公司一般有很多现在代码、库、架构等等。初进公司,你可能面对的是一个全新的培训,学习一个全新编程方式。 很多准备步入编程界的朋友,总自以为是地认为编程界是这样或那样子,以为进入软件公司就是埋头写代码、写代码其实不然,我所认识的几个“程序员”,一直做的都只是测试和搜索资料的工作。 编程并不是一件太难的事,因为我们和真正的程序员距离不大。那么,我们应该如何学习,为成为正式程序员做准备呢? 我觉得是在关键的知识点,原理性的问题上要有高层面和理性的认识。 所谓高层面,就是在纷繁复杂的应用中找到共通,比如去某个地方旅游,我们不是记住坐什么车,走哪一条路,转多少个弯,而是学会看地图。这样,日后我们要去更多地方,也胸有成竹。 所谓理性,就是对问题有一个明明白白的认识。比如大家争论先有编译器还是先有操作系统的时候,你要的结论不是查探第一个编译器比第一个操作系统迟或早;也不是鸡生蛋、蛋生鸡的问题没法讨论。你要的结论是没有操作系统也可以有编译器,同样没有编译器也可以有操作系统。虽然他们相辅相成,但不能归为父子关系,理论上它们最终都只是一段程序代码。 当然,更好的方法,就是看一个项目从立项到完成的全过程。你就会发觉什么东西是主要的,什么东西是次了。什么错误可以犯,什么错误绝对不能犯 为什么我想用最近编写“名捷排课王3.0”做案例。因为网上能见到的排课程序成百上千,有些还价格不菲,但差不多都是很烂很烂的程序。我测试了市面上知名的排课程序,觉得大多数都有些玩票的特征,可有可无的功能一大堆,必须要有的功能却实现不了。有些排课软件,几十个工具按钮,以功能多为荣。有的排课还搞个口令登录框,难道课程表要防止被教师发现?“名捷排课王3.0”做案例,对过比较,很容易让大伙明白怎么构造一个有用的软件。 大伙可能认为我是出于个人狭隘,自己写了排课软件就踩其他的。事实我对自己写的也不太满意,但至少能解决实实际际的问题。一次我去某教育部门推销自己的排课软件,被轰了出来,原因是“从来没见过一款排课软件不是害人的”。但我还是坚持回头演示了自己的排课软件,最后得到他们的认可采用,并说这是他见到的唯一一款实用的排课软件。同样,我对某些地方的交警也很有意见,也不是我个人狭隘。有一次,我要从东莞托运一台摩托车回茂名。临行前,我开摩托车到市场买菜,打算煮一顿饭吃后才回家。途中被交警拦截查证件。其时,我的证件就在离我500米不到的宿舍内。我马上回宿舍拿了证件,但交警们看也不看,坚决扣留了两天。几乎罚光了我身上的钱。因没够钱托运,我只能自己避开几乎所有的收费站,连续开了20个小时摩托车,行程770公里,才回到茂名老家当很多类似的事件发生在你身上的时候,你才发觉,他们不是维持交通,而是维护钱袋,对一班这样的人,你能不狭隘吗? 昨天我曾经说过,想花点时间,用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论