前段时间在豆瓣上无意间看到一个帖子“我为什么把thinking in java 读了10遍”,是11年的帖子,下面评论至今,各种声音都有,不过大多数还是佩服和支持的。我个人来讲也是非常支持的,而且也打算再读《Thinking in Java》,上学那会老师再三强调:“读书百遍,其义自见!”,但是对于程序猿,不光要读,而且要实践。

一、为什么要再读

上一篇,我曾经说过,如何在Java界立足,凭借的就两点:

1、基本功,包括:Java基本知识,(Java编程思想、Effective Java),Java进阶(Java虚拟机、Java设计模式)、网络相关(这个时代没有网络就没有一切,Java网络编程、HTTP权威指南、TCP/IP协议),计算机系统相关(编译原理、深入理解计算机系统等)这些都是根本,所谓万变不离其宗,在掌握这些基本功的基础上,再学习新技术,面对日新月异的新技术时就会游刃有余。

2、将琐碎知识串联起来的能力,也就是归纳总结能力。无论是在工作中还是学习中,起初用到的知识是东一块、西一块,其实许多东西都是关联的,通过系统的梳理形成自己的知识体系,打造属于自己的专属领域,这也是在Java界立足的根本。

对于很多程序猿来说,或许都有体会,一本编程类的书,特别是像《Thinking in Java》这样阐释内部原理的书读一遍是不行的;在编程一段时间之后(遇到各种问题)再读此书,有些问题就会豁然开朗,比如“==”和“equals”的区别、为什么覆盖equals时总要覆盖hashCode、为什么向上转型是自动的向下转型却需要Cast,为什么要使用Enum类代替常量,等等这些问题,在读此书后都会找到答案。借用此书绪论中的话:

Like any human language, Java provides a way to express concepts. If successful, this medium of expression will be significantly easier and more flexible than the alternatives as problems grow larger and more complex.
You can’t look at Java as just a collection of features—some of the features make no sense in isolation. You can use the sum of the parts only if you are thinking about design, not simply coding. And to understand Java in this way, you must understand the problems with the language and with programming in general. This book discusses programming problems, why they are problems, and the approach Java has taken to solve them. Thus, the set of features that I explain in each chapter are based on the way I see a particular type of problem being solved with the language. In this way I hope to move you, a little at a time, to the point
where the Java mindset becomes your native tongue.Throughout, I’ll be taking the attitude that you want to build a model in your head that allows you to develop a deep understanding of the language; if you encounter a puzzle, you’ll feed it to your model and deduce the answer.

书中所有的概念或者模式的建立都是为了解决特定问题的,如果理解了这些,就能够高效、快速的使用Java。

二、怎么样读

1、实践

书读完之后贵在实践,不要“眼高手低”,特别是对于咱们程序猿来说,实践是检验真理的唯一标准,这句话非常恰当。书只是对代码的一个解读,唯有编码才能检验其是否正确。要把学到的都一点一点用到项目中去,例如要用Enum类代替常量

替换之前:

public static final String AUDIT_WAIT = "审核中";
public static final String AUCTIONING = "竞买中";
public static final String ENDAUCTION = "竞买已结束";
public static final String AUCTION_WAIT = "等待竞买";

替换之后:

public enum BidProductStatus{AUDIT_WAIT("审核中"), AUCTIONING("竞买中"), ENDAUCTION("竞买已结束"), AUCTION_WAIT("等待竞买");public String getDesc() {return desc;}public void setDesc(String desc) {this.desc = desc;}private String desc;BidProductStatus(String s) {desc = s;}}

2、读源码

有一句话,程序猿们应该都知道“Read The Fucking Source Code”,简称“RTFSC”,就是读源码。想知道其内部原理吗,那你就读源码吧,别无办法!就像Spring,为什么那么牛逼,一个功能,一个配置文件或者一个注解就搞定了,怎么做到的,去读源码吧!你会发现,经典的开源框架将Java运用到了极致,而且你还会学到设计模式。我的《Spring应用》专栏就是在读Spring源码的基础上完成的,而且我还要反复去研读。

三、总结

一个简单的工作反复的做,你就成了“专家”!此次为再读、后面或许还会有再在读、或许会读十遍呢,谁知道呢。以上纯属个人观点,在此记录、以兹鼓励!



再读《Java编程思想 》相关推荐

  1. 再读《SAP德国造》

    再读<SAP德国造> 这本书早在2003年已经阅读.书名<SAP德国造>,但这本书确实是中国造,作者并非SAP人,也非德国人.但这本书还是有一定水准的,把SAP这个低调的德国公 ...

  2. 一个 SAP 开发工程师在 SAP 德国总部出差的见闻系列 2:Walldorf 附近的小旅馆

    本系列第一篇文章 一个 SAP 开发工程师在 SAP 德国总部出差的见闻系列 1:出差 ≠ 公费旅游 发出来之后,有读者留言:德国房子怎么这么矮啊? 这是因为,SAP 德国总部,坐落在距离法兰克福约1 ...

  3. 【学术相关】直博和读完硕士再读博,在能力上的差距有多大?

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 来自:机器学习初学者 直博和读完硕士再读博,在能力上的差距有多大? 高赞回答一 作者: ...

  4. 【学术】直博和读完硕士再读博,在能力上的差距有多大?

    直博和读完硕士再读博,在能力上的差距有多大? 高赞回答一 作者:胖博士 链接:https://www.zhihu.com/question/425860957/answer/1549964990 能力 ...

  5. 人工智能德国造 “弱AI“强势登场

    https://www.toutiao.com/a6673249163565597191/ 2019年德国政府用于AI研发的预算为5亿欧元.在德国联邦政府近期正式发布的<德国联邦政府人工智能战略 ...

  6. 老问题,SQL保存图片。保存以后再读出来,发现stream的大小不一致。虽然老,但没搜到结果。...

    老问题,SQL保存图片.保存以后再读出来,发现stream的大小不一致.虽然老,但没搜到结果. Delphi / Windows SDK/API http://www.delphi2007.net/D ...

  7. 讨论下直博和读完硕士再读博,在能力上的差距

    直博和读完硕士再读博,在能力上的差距有多大? 高赞回答一 作者:胖博士 链接:https://www.zhihu.com/question/425860957/answer/1549964990 能力 ...

  8. 负样本的艺术,再读Facebook双塔向量召回算法

    负样本的艺术,再读Facebook双塔向量召回算法 Facebook这篇Embedding召回的论文,之前已经有几篇文章涉及过了,分别是<Embeding-based Retrieval in ...

  9. 32岁武汉硕士毕业4年后重新高考,考上本硕需再读8年:“不是一时冲动”

    全世界只有3.14 % 的人关注了 爆炸吧知识 9月5日,程传坤收到了湖北中医药大学的录取通知书. 7月8日下午5时10分,32岁的程传坤走出湖北省武汉市新洲一中考点,一脸轻松,拿着准考证特意在新洲一 ...

  10. 聊聊内卷之下,直博和读完硕士再读博该怎么选择?

    大家好,我是写代码的篮球球痴,转发一篇考研读博的文章,希望对大家求学生涯有所帮助. 大家好,我是千与千寻,在上一篇推送之中,我们讨论了,五年之内博士是否会出现内卷,阅读量相当的高啊,在那篇推送中,我说 ...

最新文章

  1. 码农技术炒股之路——数据库管理器、正则表达式管理器
  2. redis命令_Redis 命令执行过程(下)
  3. FM之RKD_WORD_WRAP
  4. python子进程的输出不可见_python-输出子进程调用的命令行?
  5. 不藏了,这些Java反射用法总结都告诉你们
  6. 【leetcode】Permutations
  7. Java 图片验证码的实现和模拟简单的登录
  8. fiddler自定义显示目标IP和时间
  9. 孙鑫VC学习笔记:第十三讲 (三) WM_FILE_NEW消息响应原理
  10. 阿里巴巴达摩院发布2019十大科技趋势:语音AI在特定领域通过图灵测试...
  11. 华为手机的快应用是什么?如何使用快应用?
  12. SDUT—Python程序设计实验六(字典与集合)
  13. React-Navigation的goBack()跳转到指定页面,以及不同栈之间的页面的返回操作
  14. H.265及最新芯片模组技术现状和研究方向
  15. 商城系统开发,使用微信服务号好?还是小程序?
  16. 时间片轮转法:平均周转时间
  17. 团队第一次作业(软工C#造梦厂)
  18. Time.deltaTime 用法
  19. 深入理解JVM虚拟机第三版疑问解析
  20. java jms 消息服务_Java消息服务JMS详解

热门文章

  1. java带参数的构造方法_java练习本(20190603)
  2. mysql两个修改事务相互阻塞_MySQL 5.7并发复制和mysqldump相互阻塞引起的复制延迟...
  3. 如何设计 user 表?加入第三方登录呢?
  4. ivar和property
  5. 利用JDBC工具类 模拟用户登录!
  6. SNF软件开发机器人2018最新更新内容
  7. [CQOI 2018]社交网络
  8. 列表ListBox、ListView、GridView 排序
  9. python day 1 homework 1
  10. 向Windows 日志管理器写入系统程序日志信息