题主今年大四, 计算机专业,找了一份 java 后端开发的工作, 明年毕业入职, 想在入职前给自己充充电。
题主小白一只, 跟着慕课网的 java 职业路径看了前三部分, 最后的框架部分还没看完。 但是觉得视频讲的不一定深入, 而且里面有的知识好像有点过时比如 jsp。
在知乎上搜索有个大神推荐了下面的书单:
java 核心技术
java 编程思想
算法 4
敏捷软件开发原则模式与实践
java 并发编程实战
深入理解 java 虚拟机
Head First 设计模式
effective java
J2EE development without EJB
买之前想问问大家觉得这些书怎么样, 有哪些值得一看, 哪些不太好?
大家如果有推荐的书 或是视频 或是其它渠道的学习方法与心得 还请与我分享一二, 感激不尽~~~
1
Mistwave 2019-01-14 19:31:13 +08:00 via iPhone
建议楼主优先看 Java 核心和算法第四版 这个算基础
然后可以辅以 Spring Boot 实战 敲一点代码 接下来才是进阶,这部分完全可以工作后再看:jvm/effective java/设计模式 |
2
bajie 2019-01-14 19:35:31 +08:00
当年我自学 js 的时候,被知乎大神推荐过 js 权威指南,看得我是头大如斗,一度怀疑自己的智商,后来还是看高程三才入门,所以一开始你千万别选那种可以当字典的书来看
|
5
xiaoidea 2019-01-14 20:21:48 +08:00
个人愚见,从初级 java 进阶第一本应该看的书应该是《 java 并发编程实战》
|
6
jeffersonpig 2019-01-14 20:34:34 +08:00
@bajie js 跟 java 不是同一个东西吧?
|
8
tail2 OP 咋收藏的比回复的还多···
|
9
Narcissu5 2019-01-15 08:57:22 +08:00
不同意一楼,我认为对于新手来说核心技术并不重要,能出东西才是第一位的
首先就是《 Effective Java 》,新人能写出规整的代码绝对会让人眼前一亮的,先把代码写好了写工整了,其它的才有的谈。 |
10
aaronysj 2019-01-15 09:29:21 +08:00
先看一遍,工作一年再看一遍,工作两年再看一遍。
|
11
bajie 2019-01-15 10:21:29 +08:00
@jeffersonpig 我只是举例而已,编程思想这本书不就和 js 的权威指南差不多,通篇各种概念,和字典差不多吗
|
12
xiaowangge 2019-01-15 11:31:57 +08:00 2
|
13
shijingshijing 2019-01-15 11:49:03 +08:00 via iPhone 1
@Narcissu5 可拉倒吧,我这个写了 N 年 c 和 c++的看 effective java 有些都整不明白,你一上来就推荐这个。这本书适合写了一段时间 java 想提高自己的编码和设计水平的 java 程序员看,里面的东西其实是最佳实践,绝不能一上来就看,看也看不懂。里面提到的工厂模式,订阅模式要有设计模式的基础才能知道为什么这种情况在 java 里面用这个模式最合适。
我建议新手还是 head first java 看起来,然后 Think in Java (有点老了),然后开始实战积累经验,做了几个项目后,边做边看设计模式、jvm、并发,然后进一步深入 jvm 是怎么实现的,effctive java,concurrent practice 那本。 算法其实不需要了解很深入,链表,哈希表,二叉树,字符处理等基础的就够了,最短路径,红黑树,动态规划根本不需要看。 |
14
shijingshijing 2019-01-15 11:55:25 +08:00 via iPhone
我个人认为 c 转 c++再转 java 每次都需要突破。
从 c 到 c++主要是面向过程到面向对象的思想转换; 从 c++到 java 主要是从面向特定机器编程模型到面向通用机器的编程模型,所以才需要了解 GC 和 jvm,其实学习 jvm 某种程度上相当于重新撸一遍 x86 和 ARM。 |
15
micean 2019-01-15 14:00:55 +08:00
个人觉得的顺序是
1. 语法 2. maven+spring+常用第三方 lib 3. 常用的 map 和 collection+并发 4. 字节码+jvm 设计模式在自己写了几年代码之后自然就领悟了 |
16
Narcissu5 2019-01-15 14:01:37 +08:00
@shijingshijing 《 Effective Java 》在 google 是当作编码规范来用的,编码规范这种东西能有多难?
我觉得可能你受 C++的影响太深了,C++的 OO 是残废的,实际上如果你真的用 OO 的方式来写代码你就会发现 EJ 里面写的都是些不言自明的东西。有或者我们看的不是一本 EJ。。。。 |
17
shijingshijing 2019-01-15 16:03:23 +08:00 via iPhone
@Narcissu5 拜托你先弄清楚 coding standard 和 best practice 的区别再说好么?二者有重叠但绝不是一回事好么?实现一个项目有多种方法,根据自身实际情况,针对某种场景,找出最适合的实现方法这个叫 best practice 好么?不是强制性的,但这样做是兼顾可扩展性,可维护性,系统性能等多方面的出的最佳方案。coding standard 很多都是强制性的,比如命名规则,注释方式。
c++不是残废而是给你选择太多了,新手上来就像小孩子逛糖果店这个很好那个也不错,最后弄出来的东西就可能出现有的地方发育的非常完美,但有的地方烂的流脓(最典型的就是内存泄漏)。Java 把某些方面限制死了,然后针对一些场景进行了某种折衷处理,带来的好处是能在总体上保持某种程度健康( GC 和 jvm )。 我始终认为真正会的人用 c++和 c 写出来的东西是优雅的,让他们去用 java 写反而难受。比如 linux 下的那些小工具,还有 Adobe 全家桶,Firefox 系列这种生产力工具。 |
19
tumi9527 2019-01-15 16:40:00 +08:00
没有编程经验,head first java,有经验,核心一,先入门再说,然后看个框架,做个小网站啥的,之后在看设计模式之类
|
22
PazuLee 2019-01-16 01:04:54 +08:00
一只加班狗尝试回答下:看全了太难,就算局限在 java,也分很多方向。CRM ?基础框架?还是所谓互联网公司的高并发系统?关注点都不太一样。建议描述更清晰些。
|
23
tail2 OP @PazuLee 都 1 点了你还在加班!?小白一只, 目前还没入职也不知道去了公司做哪块, 只知道是 java 后端,只想在入职前打好基础到时候别跟不上进度拖后腿_(:з」∠)_
|
24
lancelock 2019-01-16 10:54:30 +08:00
转行写 java 6 个月,到现在只看了一本 java 核心技术 卷 1,感觉自己是在太懒散了
|