原本以博客为主,在众多朋友的支持下,今年决心写一本java书籍,不论是否能收到大家的关注,也会尽心去写好每一条内容。
其实目前java方面的书籍十分多,而高手看来,十本书有8、9本是垃圾书,要么是本身写得不好,或者没有阐述到真正想要的,要么是抄来抄去。
也许我写书带着两个目的,一个是我写的是否能给你带来价值,否则我没必要写。第二如果市面上有差不多的书,我写着更没意思,我希望解决某些人群,在成长中遇到困难所可能想要看到的一本书,请看下面介绍。
我写书的主旨是为何呢?
我(大家可以叫我小胖或胖哥),我还不敢说自己能否真正写出真正具有含量的书籍,不过在这些年的工作中还是有一些沉淀,这些沉淀不仅仅是技术本身,而更多在于一种功底、思想、方法、手段和态度。另外,我在帮助很多朋友在给他们解决问题的过程中发现他们很多时候缺的并不技术,而是上面描述的这些东西,其实有些时候他们在问我前,也许我也不清楚他们所用到的技术,甚至于他们用到的技术我都没听过,但是我确实可以搞定他们提出的问题,而且也能很快告诉它是为什么。另外,从我工作一来,可能最自信的就是“快”,经常会出现一个人做事情比几个人快的情况,也许你可能会认为是马虎或很多事情没做到位,但是也许我不是这样,我可能比别人做得更好。我相信这不仅仅是所谓的“经验”,也更加不相信这些是“天赋”,因为我刚毕业的时候就是这样了,喜欢去想和比人不一样的一些事情,另外我也不算是一个很聪明的人,只能说不算一个太笨的人,我相信所有人都能做到,所以我写下这本书,希望哪些还在迷茫中人能得到成长。
简单来说,其实很多人就在黑夜的岸边摸着石头过河,但是因为某些方法、心态等因素在河里逗圈,我希望我这本书能给你一跟绳子,甚至于是一座桥,但是过河还是需要靠你自己的勇气和决心。
书中包含什么内容?
也许在本书中,知识是一个引导,如何深入、沉淀以及提升自我成为关键,倡导“学海无涯”,任何人不可能懂所有的事情,所以你更加应该学会的是一种快速学习的能力,快速掌握本质的能力,快速进入某种领域的能力。
我不是在写代码大全,也不可能写得全,社会在不断进步与发展,IT技术几年一个花样,也许你还会跨行业工作,跨技术领域和业务领域去工作等等,你可能将面对很多人生中没面对的问题,尤其是在这个技术飞速变化的时代中,我相信这些东西是宝贵的财富,而不仅仅是一个技术如何去使用。
我也不会对某些板块的内容做十分十分全面的介绍,因为也介绍不完,也没有意义,因为明天就可能会有新版本、新特征出来,但是他们主体脉路和思想是不会发生大的变化的。
书中第一篇会以6章内容来介绍基础功底,说明一个java程序员应该掌握的哪些知识,我也相信大家对国外很多程序员的敬仰之心,而我们也并不应该比别人差太多,一个好的java程序员是否成天只会写点java普通的业务代码呢?遇到问题你是否能真正解决?也许你看完功底篇会了解一些东西。
继而第二篇5个章内容介绍源码阅读,会用一些很多java程序员会用到的源码来讲解,希望读者“千万千万不要”就我写到的源码而纠结太多,因为你可能根本用不到这些源码,我写源码的目的是让很多纠结于如何看源码的人(有人看源码说头大,有人看源码说记不住),了解到如何去看源码,看源码前应该有哪些技术储备,看源码你应该学到些什么,看源码的目的和初衷是什么,作者的思想是什么,为何要这样设计,我如果做架构师的时候该如何考虑?我希望你最终做到即使这东西我没玩过,但是并不代表我完不了,也许我十来分钟就可以玩得比很多人玩了很久的人还要顺。
在第三篇中3章内容介绍设计者,因为一个好的java程序员你迟早要走上这条路,而这条路并不是你明天要做设计师,今天才开始学习的内容,是一个刚开始至少在意识上就该去培养的,所以我写了这些内容,我会用一些实例来带着大家一起设计,也许这些设计也不是最好的,但是我希望你能学到设计的方法和思路,而不要过于纠结于例子,学会触类旁通。我也会从 实例使用中带出一些“设计模式”,但是可能不全,也让大家不要纠结于设计模式本身,很多时候当你没有那种经历,死记硬背或生搬硬套往往适得其反,我会在这里告诉你如何利用设计模式,它的存在不是为了“耍酷”,而是由它存在的价值和意义。并且它就像武侠中的招式是死的,人才是活的。
在第四篇中,会用2章内容实例模型,就2章,因为我原本不想写这一部分内容,不过既然提到了java,就还是会提一些实现层面的事情,会用一些案例从设计到实现的过程,我们是如何思考的,如何考虑用户体验,如何面对残酷的需求变化,如何面对技术创新与重复制造上的纠结、如何面对一些协作问题、如何做一些测试等等。
最后一篇,将会有6章内容,算是扩展篇、论道篇章,除了对一些程序员应该了解的知识:UI、集群、分布式等之外,也总结一些“坑”,通过坑也许你更加了解到一些东西需要认清本质,甚至于表面上的不一定是最真实的。同时我们以前看看如何去量化与权衡一些技术的使用,是否该使用,我们不拍脑袋用数字说话。最后说明一个程序员应该找到自己的立足点,认识到或找到自己平凡的工作中真正的价值,找准自己的技术和业务方向,深入去挖掘进而创新。
我写书的风格?
我曾经也是一个连计算机是什么都不知道的人,我写的不一定是完全准确的东西,我只希望它能给你帮助,而我写的正是希望看着有兴趣的书籍,而不是看着想睡觉的书籍,甚至于不是干IT的人也能看懂一些的书籍,我会尽量这样去写,带有一定的调侃,带有一些武侠,尽量用简单的方式来表达,希望各位可以开心读书、快乐成长,只是这种表达欠缺严谨性,可能会误导读者,我也会尽量说明一些:我说的是这个意思,而不是那个意思。
另外出于对知识的尊重和技术本身的深度,在某些内容上同样会说得比较严肃。
最后,我虽然会写源码、实例,但是书中大部分篇幅都“不是靠贴代码”来完成的,绝大部分内容都是手工敲打完成,也许会利用一些网络上出现的例子,但是一般都会经过一些完善、修改和整理后,尽量好懂的方式来呈现。
为何写这么杂?
前面有所介绍,其实这是我认为一个java程序员应该具备的一些素质,因为我并不是在写技术本身,而是在通过功底、设计、实例、源码等来探讨我们平时所用到的各种各样的思想、方法、心态,如何炼就个人,另外在技术方面一个人的面的扩展也是一个点深入的重要支撑,很多时候就是相关的知识让你对你的专业领悟更加深刻。而至于你要深入那个方向和领域,是你自己的选择,在最后一章中我希望你能逐步思考后找到自己的方向。
适合的人群?
本书很多内容比较调侃和轻松,带有故事性,用简单的方式说明问题,所以第一类适合的人群就是那些想要快速找到一些东西感性认识 的人,其次是一些思维方式比较怪异,简单问题都喜欢复杂化的人,我希望你能放松心情来理解技术本身的道理。甚至于一些门外汉,不是做IT的人,也许你的工作和IT技术人员打交道,曾经你可能是抬头敬仰,某一天也许你可以和他侃侃而谈。
另外一类就是成长中迷茫的人,也许你觉得自己的工作很没意义,也许不知道该从哪里去学习或发展,也许你觉得现在做得太杂找不到定位,也许这本书可以给你一些建议。
不适合的人群?
假如你是一位牛人,这本书真不适合你,因为无法助你从牛人变成大师;
假如你是做客户端的,本书适合你的内容很少,因为很多内容都是围绕服务器为基础展开的。
最后如果大家支持我写好本书,我也会竭尽所能写好本书,由于纯手工写,加上平时工作较忙,编写速度会稍微慢一些,现在写好了2章多一些的初稿,本书在4-6个月左右可能会与大家见面。