photoshopcs6书籍推荐 CS专业书籍(科学与技术类)应该怎样阅读?
粗略来讲,读书总是为了成为一个怎么样的人,读旁的书是如此,读CS的书也是。
那读计算机类书籍是要成为一个怎样的人呢?
我认为在于两方面,一个是公共而抽象的,那就是得到思想上的启发,这和读别的书感受到事物存在与结构的深刻道理是相通的,最后得到的,是善于思考问题的自己;另一个则是私人而具体的,那就是在某一个领域了解地比较深入,在这个领域能做出不俗的东西。
而且这两方面还是互相促进的,共同创造出一个新人。
我想,最后的结果就是,脑子里有一套计算机人特有的思维方式,善于抽象思考,能快速分清事物的架构、关系与层次,并且也能在某个领域快速写出方案,对自己写的东西心里面有数。
比如同样是设计模式,可以用在代码里面,让结构松耦合但又不失紧凑,也能作为一种为人处世的办法,来指导自己有条不紊地处理编程以外的事物;
比如信息论,作为多个学科的支撑性理论,善于从其中发散出来,用更高的眼光审视算法设计与编程范式;比如可见拙见:
但是当然也不能眼光太高不接地气,最后当然需要动手写出东西来的,只是我这里谈这么多眼光要高的事,是因为我见过的很多程序员眼光够低,实在是高不起来,人虽然很聪明,但只有技术的聪明,没有艺术的智慧。
上面说完了,我的个人看法是:
1.知己知彼
计算机领域虽广阔,但整体大概可以粗略三分:
一是抽象的数学与算法;
二是具象的计算机结构与编译系统;
三是如何操作、做事的设计模式与经验。
我在这里之所以这么粗略地三分,是因为在我看来这三项大致满足所谓的“正交性”,大家也可以感受一下。其余的部分,比如语言设计、特殊系统实现等,大都是以上三者矢向作用的结果。
有了这个三分结构之后,就可以大致地给书贴标签了,也可以给自己的能力评个大致的优劣了,了解到自己哪里存在短项,然后按图索骥补充。
知己知彼,百战不殆,此为第一步。
2.两种路线
这两种阅读与学习的路线分别是“先广后精”与“先精后广”。顾名思义,前者说的是广泛涉猎然后专精于一个领域,后者说的是先在一个领域内做出成绩然后再扩展自己的知识。
这两条路都可以成功。如何选择呢?这取决与你的性格。
“先广后精”适合那些对一个事物了解地足够清晰才下手去做的人;“先精后广”则适合那些务实的、以结果为导向的人,即便不了解系统的原理,他们也能做出不错的成果。
用足够长的时间来分析你自己的性格,选择不同的路走向成功,这个是第二个需要明确的。
在这里,对于选择“先广后精”的人,我的建议是:
开始学习理论的时候,不要想着动手实现什么,以弄懂为准,选择好书让自己学好计算机系统、编译原理、数学(离散、线代、数分三块)、设计模式等知识。推荐的学习步骤与资料可见:
对于选择“先精后广”的人,我的建议是:
可以从学习某些具有DSL(领域专用语言)特征的语言入手,比较好入手,比如网站设计用到的html+css,比如用于描述简单算法与数据分析的python(在描述算法与数据分析领域,python具有一定的DSL特征,出这些领域,python则是综合性的);另外可以选择学习用的比较广泛的java,结合设计模式(也就是前人的设计经验)、模仿他人写法,写小网站、插件或者桌面小应用,通过写来理解书上的知识;
3.交叉阅读
交叉阅读指的是通过阅读多种表述来理解同一个理论乃至学科。
具体来说,就是对同一个理论,比如某几种算法,通过阅读多种描述,尝试从不同人那里了解,从而加深认识。
比如排序的几种算法,都讲烂了,但是很多书都是越讲越分散,毫无灵光,唯《》这本针对研究生的书,前半部分讲的很好,让人对各种排序算法有了一个整体的认识;而另外一本《》也讲排序,虽然相对前者略分散,但是清晰易懂,利用图形化示例让人直观地看到了排序体的变化,印象深刻。
这两相结合来理解,岂不美哉?
如果你涉猎广泛,还会发现很多地方都非常适合交叉阅读来深入理解。
4.利用设计模式的知识来指导自己的学习
拿Java来说,就我看过的书,无论是简单的《xx天掌握Java》还是略复杂而经典的《Java编程思想》,都会讲到泛型,但是都没有讲泛型究竟是对应什么需求的。
当然,你会说,书里面讲,泛型这个东西,是为了在运行时再提供数据类型,大大增强了程序的抽象性以及语言的动态性。但是,为什么我需要增强语言的动态性?为什么我有运行时再确定类型的这个古怪的需求?
对于初学者而言,关于泛型的知识便变得古怪了,不知道要用来干嘛,即便学了,也会慢慢忘掉。
那么究竟应该如何理解泛型呢?
其实,泛型要在了解一些设计模式的情况下才能理解它的深刻性——设计模式强调要把变化的部分和不变的部分分开,变化的部分分离出来成为了接口,不变的则写死了作为特性。其中,变化的部分在实现的时候,委托给了接口来实现,从而构建了面向接口编程的模式。这种面向接口编程的模式,再抽象化,就变成了“运行时确定类型”的样子,是一种设计模式的体现。而泛型,则是java作为语言级的、对设计精神中的“面向接口编程”的实现。(虽然这里讲的略抽象,但只要结合一个实际例子一下子就理解了。)
——这就是泛型为什么会被需要。
同样的,还有反射,还有基于反射的各种框架的实现,比如Spring,都是需要一步一步来好好理解设计模式来理解的,不然你学了也不知道有什么用。
说的更远,还有包括语言的演变部分,为什么要加入新特性?lambda表达式为什么要加进来?如何看懂经典的代码?
各种语言如何会那样设计?是对哪些常见问题的反应?
再更远,一些讲测试、重构乃至于如何成为好的程序员的书与经典文章,为什么要那么做?更深入一些的原因是什么?
——都取决于是否好好学习了设计模式。
推荐初学者看看两本:《head first 设计模式》以及《冒号课堂》。
5.推荐必看的一点书
(1).数学与算法:《》、《》、《》、《》、《》;
(2).计算机系统与编译原理:《》、《深入理解计算机系统》、《》、《》;
(3).设计模式与经验:《冒号课堂》、《设计模式》、《》
另外可关注我建立的豆列:,主要是数学、计算机、经济学、金融学方面的好教材推荐。
更多阅读
计算机科学与技术专业就业方向 就业前景 经济学就业方向及前景
就业现状1、网络工程方向就业前景良好,学生毕业后可以到国内外大型电信服务商、大型通信设备制造企业进行技术开发工作,也可以到其他企事业单位从事网络工程领域的设计、维护、教育培训等工作。2、软件工程方向就业前景十分广阔,
转载 信息工程,电子科学与技术专业好不好就业前景 环境科学就业前景
原文地址:信息工程,电子科学与技术专业好不好(就业前景)作者:水晶之恋一、信息工程,电子科学与技术专业好不好(就业前景,留学),与电气自动化,热动,土木比怎么样 ?浏览次数:510次悬赏分:10 |解决时间:2010-7-18 01:01 | 提问者:匿名我不太了解这两个
F食品质量与安全专业食品科学与工程专业 食品科学专业
食品工程A食品工程毕业之后一般做什么?近几年的就业率和收入怎么样,能不能说一下你们毕业班的情况?食品方面的工作很累,而且大多数要下工厂的话,地方也很偏,不过相对重工业来说,轻工适合女生,我现在在做果汁,真的很枯燥,也很无聊,想学这行的
光信息科学与技术”专业就业领域 环境科学专业就业前景
光信息科学与技术”专业就业领域—— 光电子产品与技术领域 全世界光电子技术产业的市场规模己达1万亿美元。国外光电子产业主要在美国、西欧和日本。近十年来,中国的光电子技术产品市场的年增长率,始终保持在两位数的高速增长势头。
微电子科学与工程专业排名-2013-2014年中国大学本科教育分专业排 大学认知科学排名本科
2013-2014年微电子科学与工程专业排名排 序学校名称水 平开此专业学校数1北京大学5★ 612清华大学5★ 613电子科技大学5★