学点Java里的编程思想(r12笔记第65天)

按照自己之前的计划,我觉得得看看关于开发的东西了,因为我对于并发,锁的认知总是有一个局限性,自己也在地铁上做了些功课。有了这个想法,再有拿起书的勇气,那就是一个开始了。

每个圈子都有自己喜爱的图书,就如同Oracle圈子对于Tom的《Oracle编程艺术》,MySQL圈子对于《高性能MySQL》,Java圈子也有自己的,在我的印象中,应该就是《Java编程思想》了。

程序员其实还是容易偏执,在我们的生活中这种例子屡见不鲜,比如php是世界上最好的语言,几方竟然能大很长时间的口水战。程序员也有数据库行业类似DB-Engines的排行榜,是开发语言排行榜,Java语言如同数据库界Oracle的地位,也常年占据榜首位置,相对而言,语言之前的竞争更加激烈和白热化,优势和差距都不是很大。

Java程序员的圣经

我的家里有个书架,已经很久没怎么读过书了,已经快摆满了杂物。书桌上有一本2007年的第四版的《Java编程思想》,书龄到现在已经10年了,但是看着里面的技术点滴,还是很有意思的,但是也存在太多的遗憾。

每每到这个时候,我才会发现很多东西似曾相识,但是自己却没有记下笔记,没有了笔记,也就没有了当时学习的轨迹,也就意味着很多内容我需要重新再看一遍,再感悟一遍。所以我越发觉得学习笔记是个好东西,得坚持。

我总是能够从书里找到一些共鸣的地方,比如Bruce这样说道:Java的设计者曾经说过,设计这门语言的灵感来自c++.尽管如此,学习Java,基本上不用参考c++,我也是这样做的。

对于一些技术的学习,比如泛型,就很有必要和c++进行比较。了解c++模板的某些方面,有助于理解泛型的基础,这就如同学习MySQL的的锁机制和Oracle的联系起来,虽然不同,但是可以加深理解。同时,重要的一点是,你可以了解很多技术的局限是什么,以及为什么会有这些限制,最终的目的就是帮你理解,只有了解了边界,才能成为程序高手。只有知道了某个技术不能做到什么,才能更好的做到所能做的。这一点上来说,也是工程师的几个阶段:从思考能做什么到思考不能做什么。

《Java编程思想》我目前喜欢的是第21章并发和第18章 I/O系统,因为这些方面和数据库的关联更大一些,也是我学习的一个突破口,而对于数据库中,高并发设计一直以来也是我们所关注的,而有时候难免会有瓶颈的认知存在。最近做了些功课,发现困扰自己,觉得不错的网络资料,里面的很多观点在书里都有系统的讲解,所以就是这本书了。而I/O系统方面,对于缓冲器的实现和持久化我更感兴趣,这些希望能够从再次的苦旅中找到一些共鸣和借鉴的地方。所以我的一个基本观点是从开发的角度来理解一些问题的原理,会更加水到渠成。

几种技术的比较

我在毕业的时候,做开发类工作,最开始接触的就是Java Swing相关的技术,当时使用的还是Spring Rich Client的框架,接触了各种项目之后,发现框架真是层出不穷,没过多久就能听到一些新鲜的技术框架等等,而同时工作中大家对编程技巧尤其注意,总是会尽可能的用到设计模式方面的东西,而一个产品中总是会有若干的模块,也参与了不少模块的开发测试工作,到了亚信的时候,全部的模块都得熟悉,印象最深的一次,我连操作都没弄熟,下午就要给客户验收测试,当时自己学习的压力可想而知。而到了后来的工作中,我发现架构真是一门很精深的艺术,里面总是会有很多设计的原则和理念,这一点上不得不佩服很多老外的技术沉淀,从这个层面,我能够加深很多地方的理解,会把一个事情从一个更加全面的角度来考虑,得到一些更为细致的影响范围和风险评估。

这样一个基本的感受,对于我来说,还是存在着一些困惑,这些到底有什么样的关系。有时候自己都理不清楚,直到一次看架构类的书籍,看到了下面的对应关系,才豁然开朗。

这也是我上面描述的几种技术场景的一个关系图,这样一来,你在学习的时候也会有的放矢,而不是蒙着头逮什么学什么。

原文发布于微信公众号 - 杨建荣的学习笔记(jianrong-notes)

原文发表时间:2017-05-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏about云

一个架构师谈什么是架构以及怎么成为一个架构师

问题导读: 1.架构的定义是什么? 2.什么是架构之美? 3.架构师都要会做什么? 新年新事,来点轻松的话题。我们调剂一下后再继续讲CAS SSO...

37550
来自专栏程序员维他命

《高效能程序员的修炼》- 读书笔记

笔者找到了这本《高效能程序员的修炼》:本书作者是Stack Overflow的创始人Jeff Atwood,内容是有关代码以外的,需要每个程序员思考和注意的事情...

12820
来自专栏CSDN技术头条

一只猪的 Scrum 开发经历

Scrum 是一种方法论,有很多术语、定义、规则。 本文不是讲 Scrum 理论,而是从应用的角度,讲述我自身 Scrum 实践的经验体会。理论运用到实践中时,...

55160
来自专栏VRPinea

忆往昔,谷歌I/O大会曾经的那些辉煌成就你真的了解吗?

30890
来自专栏程序员的知识天地

前端菜鸟是这样入门学习的,点进来!

现在从事IT方向的人有很多。由于Web前端薪资水平高,职业前景广阔,岗位缺口大,就业口径宽,想通过学习Web前端开发从而进入到该行业工作的人越来越多。当然也有很...

23410
来自专栏云计算认知升级

剑指 Firebase ,云开发—— 腾讯云的小 B 战略能行么?

小程序推出云开发已经有一段时间了,我自己也已经深度的体验了小程序云开发,自此,写下一篇文章来谈一谈我眼中的云开发。

44720
来自专栏程序员互动联盟

开发游戏需要懂几种语言?

玩游戏这么简单的事情,是个人都会。三岁孩童都会偷菜,打怪。特么逗我,你说那个游戏没通关你告诉我?我就一地地道道国人,除了汉字没听说有其它啥啥玩意儿。 今天我们来...

48090
来自专栏Java帮帮-微信公众号-技术文章全总结

【大牛经验】一位10经验架构师,聊Java

黄勇,从事近十年的 JavaEE 应用开发工作,现任阿里巴巴公司系统架构师。对分布式服务架构与大数据技术有深入研究,具有丰富的 B/S 架构开发经验与项目实战经...

683100
来自专栏JAVA高级架构

一位10年Java工作经验的架构师聊Java和工作经验

黄勇( 博客),从事近十年的 JavaEE 应用开发工作,现任阿里巴巴公司系统架构师。对分布式服务架构与大数据技术有深入研究,具有丰富的 B/S 架构开发经验与...

54980
来自专栏前沿技墅

踏上架构旅途 思考从未止步

普通程序员是编写代码的人。编写代码的方式有很多,只要能让程序跑起来,能正确地处理业务流程和对数据进行计算,就可以说“会编写代码”。程序员需要熟悉整个程序的逻辑及...

9520

扫码关注云+社区

领取腾讯云代金券