大学那会也被这个问题被困惑了大半年,直到毕业拿了几个大厂offer

才发现语言的选择也就那一回事,我猜不少人刚入门的人依然被这个问题困扰着,所以决定认真分享一波我的经历。

如果你还处于大一,大二,或者刚刚入门阶段,那么我认为,语言的选择并不重要,更重要的是底层/通用基础的学习,例如数据结构,算法,计算机网络这些,因为这些语言,是存在很多相同的特性的,例如你学习了 C++,后面要转 Java,那么其实还是可以很快就上手的。

而且,等到了差不多毕业去应聘校招的时候,其实公司并不会对语言有严格的要求,例如你要面试后端的岗位,那么 Java,C++,Python,Go 等,随便熟悉一门就可以了,反正我当时自己学习的是 Java 技术栈,面腾讯时,特么没问过我一句 Java,投递了其他公司的 C++ 岗位,面试时,跟面试官说我学的是 C++ 就可以了,面试官就不问 C++ 了,而是着重问别的知识,例如项目,算法,计算机基础等等。

所以我认为,对于学生而言,语言的选择并不重要,当然,工作了多年的另说,因为学生和工作多年的还是不一样,这里有个学习成本在这里,但是对于学生的话,毕业入职公司之后,其实你工作的内容和你掌握的技术栈不一定是匹配的,例如你学的是 Java,入职的第一个项目,可能需要你使用 python,Go 啥的,不过你完全不用担心自己没学过,因为公司会给你很多时间去学习,而且你学过 Java,学起其他语言会很快的。而对于工作多年的,一入职可能就需要你要有产出,不会给你很多时间学习,当然,工作多年的语言都选好啦,并不存在这个疑惑。

所以呢,我认为学习哪个语言都可以,看你自己喜欢哪个语言,大一和大二那会,我还是建议大家多花时间在基础知识的学习上,例如数据结构与算法,操作系统,计算机基础,数据库等等,因为这部分知识,无论是对你未来的求职 还是个人的成长,都有非常大的帮助。

然后呢,确定自己的技术栈,是要走前端还是要走后端,这些反而比语言的选择更加走重要吧,因为这会影响你后期很多知识的学习,前端和后端,除了基础知识的学习外,后面的学习还是有挺多的区别的。

如果你实在不知道怎么选择,那我就建议你走 Java 后端开发吧,按照目前的行情,Java 后端找个工作还是不难,很多公司也都有 Java 后端的岗位,当然,如我上面所说,你基础知识掌握的好,到时候面其他后端开发也是完全可以的。

下面我也总结了一套 Java 后端的学习路线,跟着这套学习路线,校招水个中大厂的 offer,概率还是挺大,到时候记得帮我点个赞就好啦

一、Java 入门

注意,下面所有推荐的书籍,大家都可以在这里下载到:【干货分享】计算机书籍很贵?别瞎找了,我发现了一个宝藏github,贡献给大家

一开始肯定要了解一波 Java 语言的特性,很多人都关心一开始看什么资料,其实我不推荐入门阶段看的太多太杂,因为你不知道哪些是有用的,哪些是过时的,或者在目前阶段用不到的。

对于初学者尤其是没有一点编程基础的人来说,要渡过这个从零到一的过程,往其实是非常艰难的,挫败感会非常强。如果有人领路,或者选择一门优质的课程,效果会好的很多。没事,这篇文章就来当作你们的领路人!!!

下面这些学习资料都是我曾经读过或者看过的,没看过的我也不会介绍。还是那句话,资料和视频都是辅助,顶多领你入门,剩下的还是靠自己。

学习书籍推荐:《Java核心卷1》,这个算是入门书籍吧,入门书籍我看的不多,暂时介绍这一本,大家可以去网上搜索,但个人感觉看完这本书差不多了。

有一些基础的可以看《Java编程思想》,这本书也很好,解决了我很多疑惑,不过有点难度,我是选择性看的。

Java 编译器推荐用 IntelliJ IDEA,安装步骤自己百度去搜索。

视频推荐:这里推荐高琪Java300集,b 站搜索就可以了。讲的还是挺好,入门的话,感觉看前面 100 集就可以了。

二、Java 进阶

想要靠 Java 来吃饭,单单靠看书刷视频肯定是不够的,咱们还得深入学习一波 Java 语言的特性,为了让大家少走弯路,我总结了如下核心知识:

集合模块:主要是包括各种常用集合:例如 Set(包括HashSet,TreeSet), Map(包括 HashMap,HashTable),List(包括ArrayList,LinkedList)等等,上面列举的都得学习它的源码

多线程:synchronize,volatile,线程池,并发包(如lock等等),太多了,学了你们自然知道,我也不说的太详细了。

推荐看《Java 并发编程艺术》+《Java并发编程实战》,这两本就够了,《Java并发编程艺术》感觉得看三四遍才行,第一遍看了就忘光了,第二遍会有其他的收获,第三遍就可以吊打面试官了,书籍的下载方式我上面已经说了。

各种文件流:file,inputStream,outputStream等等,反正就是各种文件流,看书时你们自然会看到,必须多实践,不详细介绍。

虚拟机:虚拟机是必须学习的了,重点是GC部分,推荐看《深入理解Java虚拟机:JVM 高级特性与最佳实践》,一本就差不多够了,多看四五遍就行了。

其他:还有很多,如反射,注解,异常等。

三、JavaWeb 入门

学了上面那么多,啥程序、网站也没写出来,有点难受?没事,这个时候,我们就要开始撸网站了,如果是以 Java 作为开发语言的,那么 JavaWeb 是必须学的了。这个时候你可以入门学习下这些(注意,不用深入,快速找个视频入门就可以了

1、mysql、html+css+js 、 tomcat、xml等。推荐看视频,自己去搜索 JavaWeb的视频,那么哪里不会补哪里,这些知识,几个小时就可以入门一门的了。至于 msyql,入门推荐看《mysql不知必会》,进阶看《mysql技术内幕》,看完就差不多了。

2、servlet+jsp 系列。

不建议直接学习框架,也是应该先学习 servlet,这些底层才是最重要滴。servlet可以跟着视频学,至于 jsp 其实很少用了,不过还是可以了解一下。

### 四、框架的学习框

Servlet 写太麻烦了,只有认真学过 servlet 的人才能吹框架的好处,所以必须先学 servlet 再来学习框架,主要有三大框架:Spring + SpringMVC + Mybatis。

其实 SpringMVC 也是属于 Spring 吧,MVC 只是一种思想,这里学习顺序是先建议学习 Spring,直接看视频入门学习就可以了,后面再买书,掌握到什么程度?最后是要能知道一些原理,例如IOC,AOP的原理,使用了什么设计模式等等。

不过现在搭 ssm 太麻烦,基本都是用 SpringBoot 了,所以 SpringBoot 也必须,之后有时间的话,也要学习下 SpringCloud.

五、中间件的学习

必须学的中间件:redis,Redis 基本面试必问,工作也基本的都会使用到,所以必须掌握,推荐书籍《Redis 设计与实现》、《Redis开发与运维》。两本书刷完,就差不多了,或者说第一本书刷完就差不多了。

其他的话,像消息队列啊,分布式等相关框架,有时间也可以学习一波。

六、一个完整的项目

把上面的 Java 基础以及框架学了,就要做个完整的项目了,我只能说,项目非常非常重要,这时候自学以及跨行业的劣势就非常大了,因为面试的过程,一定会问项目,而且必须是你自己亲自做过的项目,假如你只是看视频,没有动手实践,很容易就会被问懵。所以一定一定一定要亲自动手做一个项目。

当然不是说这个问题就成了死结了,大家可以选择实操课程去解决自己在项目经验上的缺失,特别是那种基于真实项目的课程。

一定要至少做一个项目;一定要至少做一个项目;一定要至少做一个项目;

关于项目的推荐,楼主也正在总结收集中,后面应该会整理出来。

七、计算机基础的学习

看过我文章的都知道,我一直强调计算机基础的重要性,所以这里必须列举要学的有哪些。主要包括:计算机网络 + 操作系统 + 数据库 + 汇编 + 计算机组成原理 + 编译原理 等等。

假如你没那么多时间去学习的话,我给你列个优先级吧

1、计算机网络 + 操作系统

2、数据库 + 计算机组成原理(数据库相应你们可能已经先学过 MySQL 了)

3、汇编 + 编译原理

这方面我也总结了一份计算机基础的学习资料:计算机专业必看的几门视频教程

另外,算法的学习也是必经之路,这里给大家推荐一个大佬的刷题笔记

BAT大佬的刷题笔记太经典

最后

以上无论是视频还是书籍,我都千辛万苦帮你找来了,书籍直接这个 GitHub 上找:【干货分享】计算机书籍很贵?别瞎找了,我发现了一个宝藏github,贡献给大家。后面会慢慢更新一些高质量的资料。

绝对有帮助,别忘了送个赞呗,楼主泪目感谢。

作者简洁

作者:大家好,我是帅地,从大学、自学一路走来,深知算法计算机基础知识的重要性,目前专注于写这些底层知识,提升我们的内功,帅地期待你的关注,和我一起学习,点击了解我四年大学学习之路 转载说明:未获得授权,禁止转载

萌新,C++、Java、Python 选择哪个好?相关推荐

  1. (萌新笔记)python的复习笔记

    简介:python,作为我在暑假入门的第一门语言,我发现它特别简洁和实用,因此我想记录我的python学习过程,现在刚刚大一入门(我比较弱鸡,所以本文可能会有记录很多我初学时遇到的问题,还请大家斟酌观 ...

  2. 萌新的java学习之路——第一周

    萌新的java学习之路--第一周 第一周的学习 这是我学习Java的第一周,写这个博客更多的时为了总结自己这一周的学习情况,如果有人看到我写的博客,有什么问题的话,可以问我.虽然我也是一个小白,但我会 ...

  3. 崩坏3九游服务器稳定吗,为什么崩坏三萌新入坑推荐选择官服而非渠道服,盘点几个必要的理由...

    崩坏三做为一款角色扮演类二次元手游,从16年公测10月份公测至今已经三年多了.自发布后凭借着在渲染.画质和游戏内核上的出众表现力,一时间被誉为国产手游的动作画质巅峰,受到了众多玩家的好评. 也有越来越 ...

  4. python 字体颜色_超萌新级的Python学习心得——字体颜色

    概要:本文讲的是Python语言中在命令行中显示不同字体颜色的方法,如有错误,欢迎指正. 正文: 开发过程中,为了方便调试代码,以及处理错误信息,基本上是需要输出一些文本的,例如在使用try-catc ...

  5. python 人脸替换_萌新如何用Python实现人脸替换?

    翻译:小马哥 编辑:船长 还记得吗?去年冬天,在国外 AI 圈有个事情闹得很火:知名论坛 Reddit 上忽然出现一个叫 deepfakes 的大神,借助神经网络实现了人脸替换,让一些好莱坞女星&qu ...

  6. python 新运算符定义_【干货系列之萌新知识点】python与变量和运算符

    一.注释 注释一行:# 为注释符 注释多行:'或者"为注释符 二.print输出 print()函数,作用是打印一些信息语屏幕上. 例如:print("hello world!&q ...

  7. 写给萌新们的Python安装及环境配置(anaconda,pycharm,GPU)教程

    系列文章目录 文章目录 系列文章目录 前言 Anaconda简介 python是什么 问啥要用anaconda 二.anaconda下载安装 配置基础环境 Pycharm安装 Pycharm使用con ...

  8. 创造与魔法241服务器系统什么时候修好,《创造与魔法》萌新小课堂——如何选择服务器...

    大家好这里顾思,带大家了解服务器和如何选择服务器. 服务器的选择和查找:分类查找 SID查找 服务器大分类 关于服务器的介绍: [不同服务器是不同的平行世界]:对于每一个账号,不同的服务器最多有三个角 ...

  9. 萌新如何用Python实现人脸替换升级看高级程序员一步一步带你进阶

    还记得吗?去年冬天,在国外 AI 圈有个事情闹得很火:知名论坛 Reddit 上忽然出现一个叫 deepfakes 的大神,借助神经网络实现了 人脸替换 ,让一些好莱坞女星"出演" ...

  10. java炸弹游戏_java制作数字炸弹游戏-萌新疑点,Java语言交流,技术交流区,鱼C论坛 - Powered by Discuz!...

    2021-1-4 12:17:00 import java.util.Scanner; public class Demo { public static void main(String[] arg ...

最新文章

  1. Microbiome:所谓的“富集培养”获得的微生物真的都是被“富集”出来的吗?
  2. hdu 5277(最大团问题)
  3. firebird 3.0 开发者指南_11月19日召开 2020 vivo开发者大会报名正式开启
  4. html:(14):给div命名和table标签
  5. 1.Python数据类型、方法
  6. win7变成xp风格了怎么改回_微软看了会沉默,把 Windows 10 变成经典 98 风格
  7. MATLAB GUI多界面切换问题及其他相关问题
  8. 微积分基本概念相关证明 —— 导数与极限(洛必达法则)
  9. 第二期!团队开发spring会议~day8
  10. 在mac 上安装 mpkg
  11. 软件测试面试题:简述什么是静态测试、动态测试、黑盒测试、白盒测试、α测试 β测试?
  12. oracle 正版识别,正版Oracle产品价格
  13. C 语言判断某年是否为闰年该月有多少天
  14. ps无法打开计算机缺失文件,ps打开出现dll文件丢失怎么解决
  15. cesium--entity
  16. python人像录制加声音_Python自动化测试入门必读
  17. 关于ModbusTCP通讯汇川PLC
  18. 晶捷生物|医疗设备及医药行业SAP成功案例
  19. Price action价格行为交易法
  20. Microsoft office 2007 word PPT 转pdf的插件

热门文章

  1. 乱码原因产生和解决方案
  2. 转: Github上关于iOS的各种开源项目集合
  3. 【开源】技术宅硬核跨年,DIY墨水屏日历:自动刷新位置、天气,随机播放2000多条「毒鸡汤」...
  4. 软件版本A.B.C这些数字分别代表什么意思
  5. 联盛德 HLK-W806 (十三): 运行FatFs读写FAT和exFat格式的SD卡/TF卡
  6. neo4j算法插件-GDS安装
  7. Blender创作流程01-软硬件配置
  8. Phaser3初体验
  9. STIL和WGL的例子文件
  10. HTML, CSS学习笔记(完整版)