《Thinking in Java》阅读笔记第1篇:开篇

一、信息形式——“大脑信息工程学”



我从事认知方面的探索已有五六年,时至今日,已经渐进成熟,故尝试运用个人自创的知识来演示学习当中的一些独特技巧,欢迎“诸神”留言指教。

  这种技巧就是展现独特的信息形式

在认知工作方面(如果有一门学科形容它的话,我愿意称之为“大脑信息工程学”),本系列的笔记侧重于对传统学术类教材的信息形式的修改,通过这种“特殊”的修改,以达到提升学习效率的目的。

这也是我长期没有发表博客的最重要原因——如果文章没有独创性,便不值得我发表。

二、大师之作 != 完美



  尽管《Thinking in Java》(中文译作《Java编程思想》),在Java界,在世界范围内,好评如潮。

  《Thinking in Java》这本书的质量,的确超出一般,也够厚的,有近900页,普遍认为这本书是Java的“入门”作品(真让人汗颜啊)。但是“金无足赤,人无完人”,《Thinking in Java》这本书,对于初学者而言,看起来真的是晦涩难懂,即便有了一两年经验的人,能轻松看完的怕是也并不多吧,笔者也才进入Java行业2年2个月的时间。截至目前为止,认真读完了的内容也才三分之一。

  《Thinking in Java》的缺陷在哪?

  一、太厚。内容太翔实,反倒会让人的头脑迷失其中,不能顾全其完整的逻辑。等量的知识,不同的人写出来,厚度肯定是不一样的,自然也会存在不同程度的信息冗余(请记住:信息 != 知识);

  二、少数地方逻辑相对混淆,用词不严谨。比如说,书中的“Java”,有时候你搞不清楚它是在说Java虚拟机,还是指Java语言还是什么的,也就是说,这本书在“翔实”方面并非完美;

  三、当代的学术类书籍(以大学教材为典型代表),当然也包括《Thinking in Java》这本书,在信息排版上真的是太过时了。

  以上几点,就是这本书的主要缺陷。

三、本系列博客的独创之处



  既然列出了以上三点个人所谓的“缺陷”,那么我就要在博客笔记当中消除以上几大缺陷。但是对于第三点,可能力有不逮,因为我现在还没遇到一款优秀到让我发挥克服第三点缺陷的文本编辑工具。

  一、独特的信息形式,便是本博客的最大亮点。

    鉴于本平台的编辑器排版能力有限,自然会约束我的表达能力,所以折损肯定是存在的,而且比较突出。

  二、除了信息形式,有几点原则:

    1、删繁就简,去伪存真。前面说了,信息 != 知识,情况往往是,信息媒介信息量 > 知识最低需要的信息量。换句话说,“把书读薄”。

    2、丰富的有机连接。教材这种古板的信息媒介,往往容易偏重某一个层面,而忽视另一层面或其他层面。比如往往表现了信息的纵向连接,而忽略了信息的横向连接。

  至于是否有显著成效,还得仰仗诸位在阅读的过程中参考本系列笔记,如有帮助,那笔者甚是欣慰。

四、博客规划



  本系列博客一共22篇,加上本篇算是23篇,也就是《Thinking in Java》这本书一章的笔记作为一篇博客。

  大致的计划是这个月详详细细地阅读完(过年中间还有好多天可能会中断,我尽力而为)。

  今天开始开更,2018年2月2日。

原文地址:https://www.cnblogs.com/InformationGod/p/8406192.html

时间: 2024-07-30 04:19:45

《Thinking in Java》阅读笔记第1篇:开篇的相关文章

Effective Java阅读笔记——创建和销毁对象(一)

类通常提供一个公有的构造器方法,以此来让客户端可以获取自己(类)的一个实例.但是在创建对象时,应该首先考虑利用静态工厂方法代替构造器来返回一个实例.利用静态工厂方法而不是公有的构造器有几个优势: 静态工厂方法有(不同的)名字 构造器方法都有相同的名字,就是类的名字.区分不同构造器的方法是通过观察方法的签名确定的.方法的签名包括方法名,方法参数的类型,数目以及顺序,方法的返回类型不是方法签名的一部分.无法通过构造器方法名区分不同的构造器,只能通过参数的不同区分,这种情况下(特殊情况下有可能参数类型

《你的灯亮着吗》阅读笔记之第一篇与第二篇

首先我看到的是“走出问题的乌托邦”,这小小的七个段落就我让我有点没有搞懂,感觉像是研究问题的一本哲学书,感觉很苦恼,尤其不爱看书的我加上这样热的天气,让我很烦躁,最终导致对那些绕来绕去的话让我很蒙圈,但是我还是咬牙一个字一个字的坚持读了下来. 我还在想这本书没有目录吗?就是一段段的像是前面七段话这样的文章吗?后来我发现我错了,原来还是有目录的,目录就藏在这七个小小的段落之后,但是看到目录后我更蒙圈了,第一篇:问题是什么?.第二篇:这个问题是什么?.第三篇:什么事真正的问题?.第四篇:这是谁的问题

Effective Java 阅读笔记——方法

38:检查参数的有效性 每当编写方法或者构造器的时候,应该考虑它的参数有哪些限制,在方法的开头处对参数进行检查,并且把这些限制写入文档. 注意: 对于公有方法,应该使用@throws标签在文档中说明违反参数值限制会抛出的异常 对于非公有的方法,通常使用断言来检查他们的参数:断言如果失败,抛出AssertionError:如果没有起到作用,本质上也不会有成本开销 private void sort(long a[]){ assert a != null; } 对于构造函数中的,或者参数将会被保存,

程序开发心理学阅读笔记——第I篇

1.软件的任务是为了解决某一特定的问题,而软件开发者的任务却需要解决一系列问题.2.温伯格说,我们不能要求每个人都聪明异常,能够解决所有难题:但是我们必须持续思考,因为只有如此,我们才能明白自己在做什么.的确,只有明白我们在做什么,我们或许才知道应该怎么做吧.3.“写作本书的主要目的只有一个——启动一个新的研究领域:作为一种人类行为的程序开发,或者简而言之,程序开发心理学.”或许这是我阅读本书的一个大的前提吧,了解它的目的.作为人类行为的程序开发阅读程序4.管理人员清楚:在程序开发过程中,人也是

Effective Java 阅读笔记——并发

66:同步访问共享的可变数据 synchronized:1互斥,阻止线程看到的对象处于不一致的状态:2保证线程在进入同步区时能看到变量的被各个线程的所有修改 Java中,除了long或者double,“读”或者“写”一个变量是原子的.注意:是读或者写单个动作是源自的,而不是读写这两个动作整体是原子的. 由于虚拟机会对代码进行优化,所以可能会导致一些错误:可能你想的是在另一线程中改变done的值来终止while循环,但是优化之后却无法做到这样.要避免这样的优化错误,就必须对done同步. //优化

[Guava源码阅读笔记]-Basic Utilities篇-1

写该系列文章的目的是记录Guava源码中个人感觉不错且值得借鉴的内容. 一.MoreObjects类 //MoreObjects.ToStringHelper类的toString()方法:对于字符串拼接的写法蛮不错的,此前本人一直用比较挫的方式:不管三七二一,先拼接然后再subString() @Override public String toString() { // create a copy to keep it consistent in case value changes bool

Effective Java 阅读笔记——枚举和注解

30:用enum代替int常量 当需要一组固定常量的时候,应该使用enum代替int常量,除了对于手机登资源有限的设备应该酌情考虑enum的性能弱势之外. 31:用实例域代替序数 应该给enum添加int域,而不是使用ordinal方法来导出与枚举关联的序数值.(几乎不应使用ordinal方法,除非在编写像EnumMap这样的基于枚举的通用数据结构) //WRONG public enum Fruit{ APPLE, PEAR, ORANGE; public int numberOfFruit(

全端Web开发 使用JavaScript与Java 阅读笔记

计算机科学领域只有两大难题:缓存失效和命名. REST(Representational State Transfer)技术,他建议一种Web服务消息传递的风格. 第一章:因变而变 企业家总在寻求变化,他们适应变化,并把它当作一种机遇. J2EE和JSP经过完善变成了JEE和JSF. 现代的客户端-服务器架构里,服务器更大程度上负责相应客户端的请求,提供资源的访问方式(通常使用XML 和JSON交换信息).在过去的服务器驱动模型中,页面(和与之相关的数据)都在服务器端生成完毕,一起返回客户端在浏

构建之法阅读笔记第六篇—代码复审

金无足赤,人无完人,这句话同样适用于代码,任何刚写出来的代码,都不可能是非常完美的,就像人一样,每个人都有这样或那样的缺点,需要我们自己或求助他人帮我们找出自身的缺点和不足,并加以改正,让自己不断的向完美靠近,这同样适用于程序,经过自己和团队其他成员的审核,检查,将程序中的bug和缺陷找出来并改正,让程序不断的向完美靠近.接下来就让我们谈谈如何复审. 首先,复审的人不可能只是自己,仅是自己不可能将程序中的bug全部找出来,还要依靠团队中对自己这部分比较熟悉的人审核,这样效率也比较高.审核的目的主