论IT入门
软件开发的核心是什么?是问题和解决问题的方法。前者用IT术语说是需求。后者用IT术语说是算法。
一、那从前者讲又可分成两个比较大方面:
(1)找问题:这方面的真谛往往掌握在用户手中。比较会找问题的人呢在公司里职务一般为项目经理,也可美其名曰领域专家。 我觉得某些同志很悲哀,在一个公司混了3,4年,连公司的盈利模式、公司的产品,有哪些竞争对手,这个行业的最新动态等等都不清楚。但他硬是觉得自己做程序那么久了,应该转向管理了。
这方面关键在多留心,可借助Gooooooooooooooooooooooooooooooog。
(2)描述问题:核心在于有通用形式化的语言或工具。如UML。当然很多人都习惯用Word来表达。
这里涉及到一个方法论的问题。一个非常大,想着就晕的问题,我们怎么描述
呢。一个最有用的工具是系统论。说白一点把大问题分解成n个(n<7,8)小问题,如此不已,直到你想着不晕。
其实,会描述问题,那万里长征就走完了一大半了。 从好的描述结构就会出来一个好的系统架构。恭喜,你又成为了很时髦的系统架构师。
《设计模式》,《软件体系结构-一门初露端倪的学科的展望》这两本地球人都知道的书,我再吐血推荐一次。
二、后者呢本质就是数学。戴一个算法的有色眼睛,整个计算机科学的就是关于算法的一门科学。
如《操作系统》、《计算机网络》就是一大堆问题的算法的结合。(如生产者&
消费者问题、如时钟同步算法、选举问题)。当然,某一算法有他特定的适用环境;某一问题有多种解决方案,需要权衡。
我坚信这一点:最好的解决方案是简洁的,优美的。
书店里的计算机书大多是垃圾。算法方面有耐心的话可翻翻三卷本《计算机程序
设计艺术》。《数学与猜想》是本他山之玉。
三、郭靖如果跟江南七怪学一辈子,最多使七怪变成八怪,永远成不了超一流高手。
计算机方面的东邪西毒列表在《图灵奖》,《先驱奖》之类的介绍书籍上有。
罗罗嗦嗦写呢这么多,其实我自己也很垃圾。我一直想写一点关于计算机哲学
方面的东东,到现在还是一直在想。正如化了很多银子的书的后半截都很干净一样。
昨夜秋风