有其他语言基础,如何转型 Java ?

2023-08-28 22:31:41 +08:00
 bigpigB

如题。 题主有 python 、golang 语言基础,主要技术栈是: python:django 、celery 常用的 web 后端,有几个 web 后台项目基础; golang:云原生 client-go 那一套,熟悉 rancher 、gin 等

现在因为兴趣想自学 java 转型。 目前简单看完了《廖雪峰 JAVA 教程》,熟悉 maven 配置等,但还是一知半解,觉得 JAVA 博大精深,生态太广了,毫无目的的学下去只会晕头转向。 我计划花半年时间,每天花费 1-2 小时学习,我的学习的目标如下:

  1. 熟练掌握 JAVA 基础,语法、常用包、模块等比如时间、http 、文件 IO 、MAP/LIST 等
  2. 熟练掌握 JAVA 面向对象、常用设计模式(虽然不限于 JAVA)、高级特性(注解、泛型、反射、多线程、函数编程等)、常用封装(比如 MYSQL 封装、Redis 封装)等
  3. 熟练掌握 Spring/Springboot 、mybatis 、Mysql 等 CRUD 开发

我后续项目实战阶段想看 mall 那一套。

现在迷惑的就是:

  1. 有没有一些简单易懂讲解 JAVA 基础的网站?我目前是打算先第一遍通读《 JAVA 核心技术 卷 I 》
  2. 后续我的学习计划安排应该如何逐步展开?
4950 次点击
所在节点    Java
48 条回复
InvalidUsername
2023-08-29 11:26:20 +08:00
<JAVA 核心技术 卷 I>, 我个人认为可行, 但肯定不是最快的。 我前几年从 cpp 学 java 就是看了这本,看的时候总结 Java 和自己已经会的语言有什么主要差异,上手很快。
然后读了<Spring 学习指南 J.Sharma>学习 spring ,在实践中逐步考究更细节的东西。

希望能给 op 一些参考。
nnegier
2023-08-29 11:28:50 +08:00
直接 kotlin 吧,java 容易写出 bug
Rache1
2023-08-29 11:34:32 +08:00
老实说,我很好奇,你们是哪儿来的动力去学习那一整套的东西 🤡

以自己的经历来看,如果学了,没用上的话,时间久了就相当于白学了。
janwarlen
2023-08-29 11:40:37 +08:00
语法熟悉下,直接 SpringBoot 练手增删改查
stevenkinwjg
2023-08-29 11:45:42 +08:00
经验这么牛,了解下语法直接写
teble
2023-08-29 11:47:26 +08:00
@nnegier 在你看来 bug 只有 null ? kt 能避免受检异常?没有 java 的基础直接上手 kt 很多东西完全不懂,static 跟伴生对象什么关系? class 默认是 final ,继承需要 open ,data class 为了解决什么问题? JVM 大多数库本身就是针对 java 设计的,加上 kt 的语法糖过多对初学者会带来很多没必要的学习成本。kt 是为了更加高效的开发而生的,但是对于初学者并不一定 Name 友好
litchinn
2023-08-29 15:12:14 +08:00
学习 spring ,我最喜欢的网站 https://www.baeldung.com/
基本是 spring 的最佳实践
penguinWWY
2023-08-29 17:11:11 +08:00
@teble 然而你说的这些别的语言也有啊,比如 python 也有 data class ,final class ,除了 staticmethod 还有 classmethod 。kt 语法糖多,python 的 magic 也不少,把 kotlin 当做一门全新语言学习没啥问题,java 本来就是一个“特性很平庸”的语言
paradian
2023-08-29 17:17:49 +08:00
趁着 Java 红利,狠狠赚一笔?
codingadog
2023-08-29 17:22:29 +08:00
又到了各路大神贬低 java 的时间( doge
qixinwuchen
2023-08-29 17:30:35 +08:00
我是 Python 遇到了印度人说我是干 /ˈpaɪθən/ 的,他竟然听不懂,我打开手机给他拼写了下 Python ,他说原来是
/ˈpaɪtən/ 我才意识到国内的 Python 大部分人发音都错了
iX8NEGGn
2023-08-29 17:39:20 +08:00
@qixinwuchen 为什么你认为印度人读的就是对的
mightybruce
2023-08-29 17:54:11 +08:00
@qixinwuchen 这印度人读的是印式英语吧,也不是英美读法,建议你去 cambridge dictionary 网站检查一下读音。
mightybruce
2023-08-29 17:56:09 +08:00
题主看起来都是把每个语言泛泛学了一下,建议一两个语言结合生态多钻研钻研,否则技术很难进步。
zachlhb
2023-08-29 18:05:50 +08:00
java 的目录结构我就受不了,每次都是从入门到放弃,还是喜欢.net 的目录结构,清晰简洁
bigpigB
2023-08-29 18:07:52 +08:00
@giter 好的大佬
bigpigB
2023-08-29 18:08:41 +08:00
@mightybruce 业余学习而已,我是看《设计模式之美》,发现里面的例子都是 JAVA ,虽然基本看的懂,但还是觉得还是基本掌握一下 JAVA 会好点
4lieS
2023-08-29 18:22:26 +08:00
代码写的多了,1 和 2 自然就会了。这边建议直接学习 3 ,直接上手入门比较快有正反馈,后续如果想深究 1 和 2 再慢慢来
boshok
2023-08-29 22:55:31 +08:00
@qixinwuchen #31 哥你把我逗笑了
amlee
2023-08-29 22:56:31 +08:00
忠告,千万别一头掉进设计模式里面。这玩意是需要一边写一边悟的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/969014

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX