2022年想做后端开发学Java还是C++更有前景?

2022年想做后端开发学Java还是C++更有前景?不知道大家在大学的时候有没有这样的疑惑,做后端开发学Java还是C++呢?可能大家和我一样,都有过这种二选一的疑惑,如果我毕业后想从事Java后端开发,那么应该按照怎么样的路线学习呢?网上关于这个话题的文章很多,但是大部分只是对知识点和模块的简单罗列,只是让大家知道有这么些东西要学,我从校招生的角度来谈一下这个话题,介绍一下我从学习C++转向学习Java的学习历程,主要讨论Java的学习路线和找工作相关的情况,谈谈我是如何在短时间内通过自学Java进入阿里和美团的。当初选择语言的纠结我大一大二的

大家好,又见面了,我是你们的朋友全栈君。

不知道大家在大学的时候有没有这样的疑惑,做后端开发学Java还是C++呢?可能大家和我一样,都有过这种二选一的疑惑,如果我毕业后想从事Java后端开发,那么应该按照怎么样的路线学习呢?

网上关于这个话题的文章很多,但是大部分只是对知识点和模块的简单罗列,只是让大家知道有这么些东西要学,我从校招生的角度来谈一下这个话题,介绍一下我从学习C++转向学习Java的学习历程,主要讨论Java的学习路线和找工作相关的情况,谈谈我是如何在短时间内通过自学Java进入阿里和美团的。

当初选择语言的纠结

我大一大二的时候学习的都是C语言和C++,主要原因是当时没有考虑就业,还有就是学校课程的安排,我当时买了很多这方面的书籍并且花了挺多精力。

后来发现自己对科研不感兴趣,就打算毕业了直接参加工作,于是去网上了解了一下程序员就业的情况,当时发现Java技术栈校招就业机会相对比较多,就选择开始学习Java相关的技术栈了。

在确定完要学习Java之后,已经到了大二暑假,也就是大三了。当时完全是从零开始,靠自己从网上看一些零碎的信息,自己慢慢摸索进行学习,也走了很多弯路,所以今天想和大家分享一下学习路线和一些心得。

对Java语言的看法

我觉得Java是一门语法比较简单的语言,相对于C/C++更容易学习,提供的就业机会也相对比较多。

学过C/C++的同学都知道,这门语言更加接近于机器底层硬件,最大的特点就是可以用指针直接操作内存,语言特性也比较多且复杂,使用起来也相对于Java来说困难一些。C++目前用的比较多的领域是嵌入式、游戏服务器端开发、算法工程系统等等。

Java在后端开发中使用的还是更多一些的,Java语言是生态是最完善的一门语言,各种开源的工具非常多也非常好用,Java是一门平台无关的语言,使用JVM隔离了底层的硬件细节,有自动内存管理功能,所以也更加容易学习和上手。但是对于校招面试来说,Java需要准备的东西也更多。

虽然相关的内容比较多,但是如果是准备找工作的话,我还是建议大家学习Java。首先是招Java开发的公司比较多,机会也比较多。其次是对于一些使用Go/C++的大厂,在校招中是没有语言倾向的,例如腾讯字节跳动,虽然我学的是Java,但是我还是能拿到它们的offer。但是相反,使用Java语言的大厂,一般是有语言倾向的,最典型的就是阿里和美团

校招Java学习的路线

当初走过的一些弯路

我当时走的弯路是,在理论学习和实践中没有做到一个很好的平衡,我当时比较重视书上理论知识的学习,忽略了在实践中去写代码,所以在这一段时间里的学习效果并不好。

其实这里有两个误区,第一个误区就是因为面试中考察八股文比较多,所以认为理论知识比较重要,而不写代码了。第二个误区是只写代码不学习理论,认为我们是做开发的,只需要尽可能多写代码就行了。

其实我们在学习的过程中,理论知识和实践动手都很重要,首先是需要学习好理论知识,因为这是面试的重点,然后在动手实践中去使用我们学习过的知识,这样能够加深我们对知识的理解和提高我们的动手能力。

学习方法

因为我们需要对Java进行系统的学习,所以我推荐大家一定要看书,因为看书能够让我们对一个技术的学习更加全面。除此之外,我们也可以通过网上的一些博客和文章,来对某一个知识点进行深入学习,因为书籍为了全面地对知识进行讲解,所以可能在一些地方的深度存在欠缺。

这也是面试过程中,面试官经常会问我们喜不喜欢看书,看过哪些经典技术书籍的原因。

还有一个可以提高我们学习效率和面试能力的方法,就是我们依靠面试题来做导向学习,在学习的过程中重点关注高频面试考点,这样能强化我们对相关知识的记忆和学习,在平常就让我们重点关注,也能更好地去应付相关知识模块的面试。

在学习过程中,一定不能偷懒,要自己多记笔记多整理,根据费曼学习法,多做知识输出才能学习得更好。

学习路线

1.Java基础

首先我们需要学习的是Java基础知识,这一部分包括数据类型、流程控制、数组、面向对象、抽象类、接口、枚举、集合类、泛型、异常处理、IO流、反射。

这部分的学习我推荐《Java核心技术 卷一》这本书, 跟着书上的例子敲代码后,自主编写代码,并完成课后练习。不推荐看《Java编程思想》,虽然是最经典的一本书,但是对新手十分不友好。

在学习完基础的语法之后,我推荐大家学习一下Java核心类库相关的知识,这是一个重点,也是这个部分在面试中考察比较多的内容。这里我推荐一本书《Java修炼指南》,这是一本侧重于面试热点的书,里面有这些类库的详细解读,例如基础类(Object、String、包装类)、集合类(HashMap、ArrayList、ConcurrentHashMap)等等,还有并发包里面一些类的解读。

2.Java虚拟机

我推荐大家学习这部分的原因有两点,第一点是这部分经常在面试中被考察到,第二点是学习这部分能够加深我们对Java语言的理解。

这部分知识比较偏理论化,我建议大家看周志明老师的《深入理解Java虚拟机》这本书的其中若干个核心的章节,我建议大家学习的章节有Java内存区域与内存溢出异常、垃圾收集器与内存分配策略、虚拟机类加载机制、Java内存模型与线程、线程安全与锁优化等几个章节,这些章节也是这部分内容的重点。学习完这几个章节后,我们就可以对JVM的核心功能有一个大体的了解,对相关的原理也有了一个简单的认识,接下来学习这部分常考的面试题就行了。

3.Java并发

为什么Java并发我推荐大家在Java虚拟级之后学习呢?因为我觉得Java一些锁和同步机制的实现原理,比如syncronize关键字、volatile关键字、锁升级的过程、并发包,都与JVM底层原理有关,所以我建议在学习这部分之前,先学习一下Java虚拟机。

这部分的重点是Java线程模型和线程的生命周期、syncronize关键字的实现原理、锁升级的过程、volatile关键字的实现原理、JUC并发工具类、线程池的作用原理实现等等。

关于这部分我看过几本书,这部分我推荐大家看《Java并发编程的艺术》这本书,这本书是阿里巴巴两个非常资深的技术专家写的,写得非常深入浅出。

4.Spring框架

这部分我建议大家以掌握使用为主,因为这毕竟是一个工具嘛。根据面试考察的重点掌握一下核心的原理就够了,例如Spring的基本概念、SpringIOC的实现原理、SpringAOP的实现原理、SpingBean的管理。如果我们简历对这块内容只是简要写几点,一般面试官都不会对这块内容进行深入考察,我也建议大家不要在简历上写阅读过Spring源码,因为对Spring深入学习的学习成本也比较高,防止被面试官深挖这块内容。

学习Spring我建议大家以上手使用Spring框架为主,可以去github上找一两个项目来看一看,如果实在想看书,可以看《Spring实战》这本书。

5.MyBatis框架

这部分我同样也建议大家以掌握使用为主,这部分在面试中考察的相对较少,我甚至几乎没有被问到过,我简历上也没写MyBatis相关的东西。

结尾

最后要强调的一点就是,我觉得学习的过程中最重要的两点就是学习规划和坚持努力,我相信大家只要肯好好规划和用心学习,也一定能取得效果的,希望大家在这一点上能有信心。

推荐阅读:Java后端学习路线(适合零基础和非科班的同学)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/160759.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 数据仓库中如何使用索引

    数据仓库中如何使用索引

    2021年11月26日
  • 个性化推荐算法总结[通俗易懂]

    个性化推荐算法总结[通俗易懂]读书笔记|《推荐系统实践》-个性化推荐系统总结对于推荐系统,本文总结内容,如下图所示:一、什么是推荐系统1.为什么需要推荐系统为了解决互联网时代下的信息超载问题。2.搜索引擎与推荐系统分类目录,是将著名网站分门别类,从而方便用户根据类别查找公司。 搜索引擎,用户通过输入关键字,查找自己需要的信息。 推荐系统,和搜索引擎一样,是一种帮助用户快速发展有用信…

  • doc2vec和word2vec(zigbee简介及应用)

    作者:GidiShperber在本文中,你将学习什么是doc2vec,它是如何构建的,它与word2vec有什么关系,你能用它做什么,并且没有复杂的数学公式。介绍文本文档的量化表示在机器学习中是一项具有挑战性的任务。很多应用都需要将文档量化处理,例如:文档检索,web搜索,垃圾邮件过滤,主题建模等。但是,要做到这一点好的方法不多。很多方法使用众所周知但简单化的词袋方法(BOW)…

  • ajax跨域的解决办法_java如何解决跨域问题

    ajax跨域的解决办法_java如何解决跨域问题什么是跨域问题?跨域问题来源于JavaScript的”同源策略”,即只有协议+主机名+端口号(如存在)相同,则允许相互访问。也就是说JavaScript只能访问和操作自己域下的资源,不能访问和操作其他域下的资源。跨域问题是针对JS和ajax的,html本身没有跨域问题。查看浏览器开发者工具Console报错:Failedtoloadhttp://a.a.com:8080/A/FromServlet?userName=123:No‘Access-Control-Allow-Origin’

  • clion 2021.3激活码破解方法

    clion 2021.3激活码破解方法,https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

  • Mysql5.5升级到5.7的过程已经踩到的坑

    Mysql5.5升级到5.7的过程已经踩到的坑

    2021年10月22日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号