V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
bear2000
V2EX  ›  Java

应该怎么自学 Java 后端啊?

  •  1
     
  •   bear2000 · 2020-06-14 20:41:11 +08:00 · 5608 次点击
    这是一个创建于 1383 天前的主题,其中的信息可能已经有所发展或是发生改变。
    大学生,由于疫情还不能回校,自学中,目标 Java web 后端。

    学校老师教的东西实在脱节,想自学却没有一个好的教程或者优秀的规划,只能靠自己一点一点 google,一点一点摸索,一点一点啃,教学视频也没找到很好的,效率比较低。

    我想能自主做出一个项目,能写在简历上的那种,各位 V 友大神们,有没有一些关于自学的建议啊,或者各位是如何通过自学大大提升水平的?学生党实在太难了!!!
    40 条回复    2020-06-17 09:13:13 +08:00
    zifangsky
        1
    zifangsky  
       2020-06-14 21:02:35 +08:00   ❤️ 5
    前期可以看点基础视频入门,后面推荐看书系统地学习。至于应该看哪些书,我给你推荐一份我之前总结的书单吧: https://mubu.com/doc/nZ4n8i424
    bear2000
        2
    bear2000  
    OP
       2020-06-14 21:26:47 +08:00
    @zifangsky 谢谢
    zhuangzhuang1988
        3
    zhuangzhuang1988  
       2020-06-14 21:38:53 +08:00
    既然是大学生,
    把<算法 4>来回看, https://book.douban.com/subject/19952400/
    脱节啥的不存在的
    yukiloh
        4
    yukiloh  
       2020-06-14 21:41:16 +08:00 via Android
    你打开招聘网站,筛选薪资高的看他们 jd 都要什么经验,然后列出来搜一下是个啥玩意
    zhgg0
        5
    zhgg0  
       2020-06-14 21:51:26 +08:00 via iPhone   ❤️ 2
    求建议太难了,发现问了一圈后还是不知道该怎么办,大家给的建议很难匹配你的现状。
    storypanda
        6
    storypanda  
       2020-06-14 21:56:52 +08:00
    @zhgg0
    自学确实挺难的,我之前买了一大堆书,现在看书里不是有错误就是语言过时导致很难看得下去,详见我的掘金沸点且欢迎评论:
    https://juejin.im/pin/5ee086d8f265da1bac60abb0
    我的自学之路比较久,现在还是在看 raywenderlich 自学了,在家提升自己。
    storypanda
        7
    storypanda  
       2020-06-14 21:58:28 +08:00
    或许你可以试试用中学?首先你语言基础如何,不妨开始一个项目试试,我最近准备写一下我的 Android 和 swift 自学之路的文章,准备发在我的博客上。
    hello2060
        8
    hello2060  
       2020-06-14 22:01:03 +08:00 via iPhone
    如果不想自己找资料呢,可以看点网上的教程,视频的最好。可能有些会讲到现在已经不流行的东西那也无所谓了,知道点来龙去脉也好。

    java 么就是 spring 喽,能翻墙会英语的 youtube,udemy 也行,中文么淘宝买点视频就行。哈哈想我当年做 C++的就花了一天时间 udemy 上找了个课程看看就找到了第一份 java 工作嘿嘿
    lidlesseye11
        9
    lidlesseye11  
       2020-06-14 22:06:27 +08:00
    大学生能搞好数据结构和算法就不错了。再掌握几个设计模式就超过大多数了。。要是还能涉猎下 JVM 和 JUC 我觉得就到头了。。。哦,数据库 /大数据什么的也可以看一下。
    至于项目,真的,等工作了比你自己现在搭空中楼阁的学习效率高得多。
    而且你们没有大作业吗?认真做,校招的话就那些就行。如果还怕面试不知道说什么,可以拉几个同(da)学(tui)找个比赛参加下。。
    bear2000
        10
    bear2000  
    OP
       2020-06-14 22:13:04 +08:00
    @lidlesseye11 基础自我感觉都掌握得差不多了,数据结构、网络、算法、操作系统等,就是缺个项目,学校里做的课程设计都太简单了,感觉拿不出手,比赛的成绩也不好,主要是为了校招简历充实一些。谢谢你的建议
    bear2000
        11
    bear2000  
    OP
       2020-06-14 22:14:53 +08:00
    @hello2060 感觉就是缺一个做过东西的人手把手教我,比如我写 springboot,有些细节的东西急切想知道,又没有人可问,唉,总之就是没有氛围,到头来只能自己一点一点查,有点慢。谢谢你的建议
    bear2000
        12
    bear2000  
    OP
       2020-06-14 22:16:03 +08:00
    @zhgg0 确实,我也很无奈(摊手
    hello2060
        13
    hello2060  
       2020-06-14 22:17:43 +08:00 via iPhone
    @bear2000 我把我微信给你吧 MTYxODAwMDk= 工作时间你有问题可以问我,我就当给自己查漏补缺了嘿嘿
    m1ch3ng
        14
    m1ch3ng  
       2020-06-14 22:19:07 +08:00 via Android
    b 站搜狂神说
    bear2000
        15
    bear2000  
    OP
       2020-06-14 22:23:11 +08:00
    @hello2060 好的
    bear2000
        16
    bear2000  
    OP
       2020-06-14 22:23:45 +08:00
    @m1ch3ng 我去看看
    MarkLeeyun
        17
    MarkLeeyun  
       2020-06-14 22:58:10 +08:00
    视频----->书----------->github
    StillLearing
        18
    StillLearing  
       2020-06-14 23:32:35 +08:00
    咱俩情况挺像,可以相互交流一下。嘻嘻
    EminemW
        19
    EminemW  
       2020-06-15 00:09:19 +08:00
    这东西真的挺难的,我看个 MySQL 原理相关的东西,每个文章讲的都不一样,还是要看源码自己理解
    EminemW
        20
    EminemW  
       2020-06-15 00:10:31 +08:00
    就 MVVC 的实现原理,网上就有好几个版本的文章,这些人像是从各个地方复制内容拼接完成的
    CodeForFree
        21
    CodeForFree  
       2020-06-15 00:41:28 +08:00
    去 b 站搜索黑马 Java,跟着进度走。前期不要过于钻牛角尖,后面等能做一下小项目。在系统的看一下书之类的。
    NPC666
        22
    NPC666  
       2020-06-15 01:47:31 +08:00
    不建议上来就学原理,先学会怎么去使用工具而不是先学会造工具,不要纠结于算法和底层实现。等熟练使用了再返回来了解它们。
    araaaa
        23
    araaaa  
       2020-06-15 01:49:14 +08:00 via iPhone
    实习
    securityCoding
        24
    securityCoding  
       2020-06-15 08:32:43 +08:00   ❤️ 2
    @storypanda 我也是自学的,毕业一年自学了 6 个月出来找了份 java 后台 , 一路走过来感觉还行
    tianshiyeben
        25
    tianshiyeben  
       2020-06-15 08:53:01 +08:00
    QingStone
        26
    QingStone  
       2020-06-15 08:56:06 +08:00 via Android
    我是今年本科毕业,发现只会前端不好找工作,于是开始自学 Java 。可以一起组队学哈~
    zzzmh
        27
    zzzmh  
       2020-06-15 09:20:28 +08:00
    推荐 2 个网站吧
    慕课网和尚硅谷
    慕课的免费的 java 可以先看起来,熟悉一下基础,如果预算充足可以买个收费课程
    尚硅谷会经常有免费开源的上课视频在他官网公布,讲的挺细致,尤其是东北口音很提神
    TyCoding
        28
    TyCoding  
       2020-06-15 09:28:38 +08:00
    我建议 看大学基础教材 -> 看视频 -> 做开源项目 -> 阅读高 star 的开源项目。切身体会,我是大三,写了几年代码感觉作为在校生还是不要把精力过多放在做项目( CRUD )上,还是要学习计算机最基础的知识,数据结构、算法、计算机原理、网络原理。
    当然基础知识是最枯燥的,我是比较浮躁的,所以我当初就是看完 Java 基础就想赶快看 Spring 框架,然后想学 Vue 框架,做项目,学习 SpringCloud,因为我会认为基础知识学了用不到,想能尽快参与项目开发有所成果。
    我感觉很多人都有这样的想法,会觉得开源项目 star 高是不是就是能力的体现,就沉迷于做项目了。实际工作中大一点的公司都是考察计算机基础知识,框架那种东西你在学习阶段的后期花几个月时间学一下就行了。
    作为一个应届生,能参与多牛的开源项目?又能写出来多牛的项目?如果能力不是太出众就和普通人差不多,还是要重视基础,多写文章。总之,我的建议要在大学时间拆分好,总体规划自己某些时间段需要学的东西,先学计算机基础再学各种框架。
    我的 GitHub: https://github.com/TyCoding 。我是切身体会,你会从我的开源项目中就知道如果基础不好,这些 star 意义不大。
    xingjue
        29
    xingjue  
       2020-06-15 09:41:46 +08:00
    大学生打好基础,这样才有机会进大厂 大学生熟练 curd 面试没多大用
    bear2000
        30
    bear2000  
    OP
       2020-06-15 09:42:10 +08:00
    @TyCoding 感谢
    WhereverYouGo
        31
    WhereverYouGo  
       2020-06-15 09:59:06 +08:00
    学 springboot 就完事了,自己搭起来,再往里面塞 mybatis 、redis 、日志系统、鉴权系统啥的。
    apostle
        32
    apostle  
       2020-06-15 10:33:27 +08:00 via Android   ❤️ 1
    基础基础!作为应届生我面过一些大厂,基础尤为重要,操作系统,计网,数据库,数据结构与算法,java 语言基础包含 jvm 之类的是必问知识点,过了这关你才能有机会和面试官聊项目。深入学习一下 redis 消息队列 外加一点框架特性和原理是额外提高面试官打分的关键。
    mineqiqi
        33
    mineqiqi  
       2020-06-15 10:37:25 +08:00
    @EminemW Multi-Version Concurrency Control
    bear2000
        34
    bear2000  
    OP
       2020-06-15 11:20:38 +08:00
    @apostle 好的,感谢
    inktiger
        35
    inktiger  
       2020-06-15 11:21:13 +08:00
    你可以找一个你能勉强理解的别人做好的后台小项目,然后自己根据他的代码,自己搭建一套模仿写出来,最好是别硬抄,尽量遇到不懂的就百度 google 一下他写的有什么用,我始终觉得,刚学这个,看理论很难有大的突破的,看得多了自己还没有任何进步对信心又是一层打击,所以实践中慢慢摸索,这样能有进步,到最终也有成品,到公司面试也有说词
    danbai
        36
    danbai  
       2020-06-15 11:34:33 +08:00 via Android
    分享一下我学的教程吧。 链接:https://pan.baidu.com/s/10E4hwlGT1QEl2CUutlHa1A 提取码:9y70
    BigBrother1024
        37
    BigBrother1024  
       2020-06-15 15:06:44 +08:00
    我目前也在自学,通过看书+实践
    先看 java 基础《 Java 核心技术 I 》
    然后大体过下 《 Java 核心技术 II 》
    然后《 Spring 实战》
    然后 github 找到一个完整的项目,大体看下 https://github.com/macrozheng/mall
    然后自己学着搭一个小项目

    后续
    《 Java 编程思想》
    《深入理解 Java 虚拟机》
    zifangsky
        38
    zifangsky  
       2020-06-15 19:40:59 +08:00
    @NPC666 #22 赞同你这个观点,初学者还是先学会怎么用工具(比如:各种框架、中间件),等把工具的基本用法搞熟练了再去研究其实现原理。
    shiguiyou
        39
    shiguiyou  
       2020-06-16 09:12:25 +08:00
    我还记得我当年看的《疯狂 Java 》...
    hellofrank
        40
    hellofrank  
       2020-06-17 09:13:13 +08:00
    如果自学领悟能力欠佳,还是跟着视频学,要多练习,看的再多不如动手做一遍。
    ps:
    java/python qq 技术交流群:731376782, 欢迎各位大佬进群交流
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1179 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 18:18 · PVG 02:18 · LAX 11:18 · JFK 14:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.