软件开发个人看法


  转载的, 虽然只是团体看法, 但是写的很到位。

  踏实

  偶然在网上看到《由c#风潮想起的-给初学编程者的忠告》一文. 其中一个角度:防止急躁, 倡议踏实的学习办法, 我是很认同的, 但总觉该文作者标题-给初学编程者的忠告太大, 所以在其文列出的一些具体的操作办法上我认为可以讨论, 好像本人在某次公司总结会上就《软件开发, 我们积累的是什么?》为题跟同事聊了半个多小时后, 其中一个同事提到希望我能持续把这个题目细化, 就刚入行的他们具体该如何发展有更具操作性的指引, 事先我是跟他们说这只是我在这一行呆了5年多的领会, 谈指引还太远, 只是可以提出来大家思考、讨论。

  不要过度抬高编码

  不要真的认为不少巨匠级的计算机技术研究者是不懂编程的, 做软件开发编码是最最基础的东西, 只要踏踏实实的掌握好这个基础你才有办法往上走, 不论做剖析做设计做项目管理你都需求能清楚东西是如何完成的?可不可以完成?否则肯定出现大量的:设计是设计, 编码是编码, 产品都是代码人员从头到尾完成的, 终究需花多少时间, 难度有多大, 开发人员说了算, 质量/本钱/进度全是黑匣子. . . 景象, 如果你是做编码那编码就更重要了:). 所以关于有志从事这个行业(软件开发)的团体来说, 必需先从注重编码开端. 过了这一关才能去考虑做系统剖析, 做项目管理. . .

  软件开发的各个环节是相辅相承的, 剖析有剖析的重要, 设计有设计的重要, 编码有编码的重要, 测试实施也各有其位置, 任何一个环节搞不好就好像我们熟悉的木桶理论, 最薄弱的一个环节制约着其总容量.

  既然编码重要, 那该如何学编码?

  专心学好一门语言

  算算本人用过的语言也不少(括弧里为运用该语言写的比较有代表性的东东), c(dos版的图像/图标编辑工具, 96年的《电脑报》有引见), c++(可自定义方块外形的方块游戏, 被收录于99年《软件》杂志的附送光盘上), 汇编(dos汉字系统, 97年底完成), pb(学校自动排课/排考模块, 98年), asp(一套web版的企业信息系统, 99年), vb(企业信息系统的核心组件, 99年), delphi(工作流平台, 组件式gis系统等), java(delphiclient+j2eeserver协同完成), (规则引擎), phh. . .

  看起来好象也不少, 回过头来想想本人真正认真学过的语言只要一个, 就是c, dos年代的tc2. 0, 用它写了大量的小程序, 比较系统的了解了编程是怎样一回事, 记得那个时分看到什么软件都要琢磨它是如何完成的?如果让我来完成该如何做?也模拟了不少东西, 虽然多是很表面的模拟但对本人编程思想的锤炼很有益处. 后来用其它语言基本上都只是翻翻协助, 然后找找其demo代码来看看, 很快就可进入形态.

  语言都是差不多的, 重要的是编码的思想, 具备了该思想语言就只是工具了, 用什么工具完成都差不多, 该思想的形成是需求磨练的, 就是专心运用一门语言来磨练(甚至需求有咬文嚼字的孔已己作风), 然后可一理通百理通, 不然你只是浮于表面的去学再多的语言都没有. 都不能拿来做真正的开发. 都不能了解编码的外延.

  如在往年招聘面试的时分看到太多写着什么语言都精通(或熟练)的毕业生, 我习用的办法是给他(她)一张纸一支笔, 让他(她)用本人最了解的语言写一个算阶乘的函数, 这个问题你一看肯定说很简单, 好, 接着我会往下问, 可以有多少种办法来完成:循环, 递归…还有吗?你能写出多少种来?(代码基本结构形式的考察). 代码质量如何?有没有考虑错误处置(太多人写的代码会进入死循环比如输入的是正数)?int的上限是多少, 用long?如果输入值比较大, 算得出后果吗, 该如何去完成可以计算很大数的该函数?. . . 看着他(她)写出来的代码一个个问题的问就得了, 不论你用什么语言, 不论你精通多少种语言, 我只问这些用什么语言来解决问题都需求的基础的东西, 就是编码的思想.

  在学专注门语言的基础上新东西当然要跟, 不然在这个行业你是很难混下去的, 但有这学专注门的前提后, 你跟起来就轻松了, 而不必总是得追~

  基础很重要

  面试的时分我普通都会问, 基础知识学得如何?普通重点问的是:《数据结构》, 《编译原理》, 《数据库原理》的内容. 至于《由》文提到的:《汇编语言》, 《windows程序设计》我是不会问的. 这些是可以进一步学习的东西, 但对现在的开发来说不是必需的. 《软件工程》我向来不问, 教材理论跟实践差得太远了~

  开发语言《数据结构》很重要, 不懂数据结构很多编码就是蛮干, 而且往往把简单问题复杂化, 甚至复杂到不能够解决. 认真学习《数据结构》并多做尝试用你熟悉的语言去完成外面的算法,zocai佐卡伊淘宝旗舰店 你会发觉世界真奇妙~不要认为你不会去开发编程语言不需求学习《编译原理》, 《编译原理》外面包括了太多开发软件的奇妙的思想案例, 认真领会你肯定会被其解决问题的办法折服, 从中你能领会到很多东西, 对当前做软件(不论是设计还是编码等)大有协助, 外面有很多现存的办法可用在你的项目中, 而这些跟《数据结构》是互为补充的. 在这些基础上接上去《设计形式》一书你也一定得看看.

  很多运用都离不开数据库, 最终总得找个地方来操纵, 存储, 剖析数据, 关于范式, 关于锁, 关于sql, 关于笛卡儿那一套你总得了解了解, 不然无法入手, 这就需求好好学习《数据库原理》了. 单纯知道几条sql语句是远远不够的, 如何保证数据的完整性, 安全性?如何提高效率等等都需求这些基础的支持~

  当然英文也是基础, 看英文资料确实重要, 不单是书, 还有网络上的大量资料, 论坛…看的时分别害怕就是了, 毕竟都是受过初等教育的, 英语也学了那么多年最少都有点底吧, 配合这两个工具:《金山词霸》及google, 不懂的单词即指即译, 但很多名词或基础知识不是靠单词解释能清楚的, 配合搜索引擎查查相关资料看看, 记住一点, 看到不懂的东西多看几遍, 默记一小会, 日积月累你能看懂的东西就多了。

  最后, 兴趣也很关键。

posted on 2011-05-19 17:20  jiyizhen3721  阅读(191)  评论(0编辑  收藏  举报