稍微硬核一点的java心路历程

java是啥?

大多数新手程序员和我一样,就是认为学习了一门语言,就称自己为某某工程师了。但事实却不是这样的java是非常吃技术的。

今天我们就来聊一聊,Java 开发工程师到底开发的是什么东西。准确点来说,Java后端到底在做什么?

基础

大家都知道 Java 是一门后端语言,后端指的就是服务端,服务端代码一般运行在服务器上,通常我们运行Java 程序的服务器都是 Linux 服务器。

这些服务器在互联网公司中一般放在一个叫做机房的地方里,于是像我们这类 Java 程序员的代码一般也运行在这些机房里的服务器中。

Java 里有一个概念叫做虚拟机,你可以把它理解为一个安卓的模拟器,比如你在电脑上装了一个安卓模拟器,就可以通过它来运行安卓应用程序。

当你在电脑上安装了一个叫做 JDK 的东西时,电脑里就有了 JRE 也就是 Java 运行环境,有了这个运行环境,你就可以运行 Java 应用程序了。

其实平时这一些 Java 基础语法都仅仅是你写代码的一些基础知识,就相当于英语中的 26 个字母,常见的有基本类型变量、for 循环、if else 等等基本语法,掌握了这些基础知识之后,你就可以上手写一些很简单的代码了。

当然除此之外还有一些特别的概念,但是对于我们新手来说我们不用理解特别深刻,有些是我们在真正写代码的之后才去理解的。

Java核心技术

java里有集合类,我们一般用List来做,所以我认为集合类作用就是让我们在编程中更好的储存数据。

事实上集合类最早是源于数据结构的,因为计算机里有很多特殊的数据储存结构,例如文件树,链表,数组等。因此这些特殊的模型可以抽象成一些常见的结构,也就是数据结构。

java中的并发编程,是为了更好的利用电脑中的cpu核心,可以提高程序并发效率。

但是并发编程的背后需要操作系统的支持,以及计算机硬件的支持,所以就我理解,Thread或是线程池可能不够,还需要我们去理解操作系统,以及计算机组成原理。

和并发编程类似,Java里也有网络编程概念,网络编程和其他语言大同小异,其实也是基于 TCP/IP 协议实现的一套 API,通过网络编程,你就可以在程序中把你想传输的数据传输到网络的另一端,有了网络编程和并发编程之后,Java 程序员的能量已经很大

为什么我要选择Java

为什么选择走Java这条路,为什么不做C++、前端之类的方向呢,其实吧,这个问题搁在不同人身上,回答可能也是完全不一样的。我可能还是主要以我的角度出发,结合一些问题,来说一说为什么要选择Java这条路。

其实我最早打算做的是游戏开发的,所以我们先聊聊游戏开发这个方向。

网易游戏在前几年对游戏开发的招聘要求是985硕士以上学历,当时我就是冲着这个要求考了研,后来却没有去做游戏开发,主要原因是游戏开发主要用的是C++,并且主要的岗位要求是客户端方向的技术,比如图形学、引擎技术,以及对C++的掌握程度。

当时自认为有一些Java基础,不愿意转C++,同时也感觉游戏行业大厂太少了,除了腾讯网易就没有什么大公司了,职业发展的空间可能也不大。自己虽然爱玩游戏,但是做开发和玩游戏毕竟是两码事。当然,近两年游戏开发的岗位需求其实还是很大的,

因为现在做游戏开发的人太少了,导致网易游戏放宽了研发工程师的标准,只要求211以上即可,所以,想要从事游戏开发的朋友,其实现在进大厂的机会可能比之前更多了。

说完游戏开发,说一说C++ ,C++ 方向和Java一样主要是做后端的,虽然游戏开发大部分也用的是C++,但是C++ 服务端的需求量确实没有Java大,加上C++ 的学习难度稍微搞一点,所以我没有选择这个方向。

当然,现在做CV等算法方向的同学都会用到C++ ,所以相对Java来说,C++ 方向选择岗位的范围可能也更多一些。不过,正如Java也能做大数据开发一样,选择方向并不是选择语言,比如你做游戏开发或者算法方向,

要学的远不止C++ ,做大数据方向,Java也只是很小的一部分而已。

除此之外,前端、测试、移动端等方向也有很多机会,这些方向的学习难度可能要稍微简单那么一点,所以有很多女生会选择这些方向,如果你想进大厂却对自己不是很有信心,那么这些方向也是很不错的选择

我是如何学Java的?

教练,我想学Java!

怎么学Java,一个简单的命题,我自己也折腾了好几年,现在虽不能说是Java高手,但也算是小有所成,至少还不至于搞不懂一些基本概念和技术原理。

从我大三那一年第一次在课堂上听老师讲JAVA课程到现在,回顾我的学习历程,可以说是充满艰辛的,但又是不断在进步的,所谓道路是曲折的,前途是光明的,大抵就是这个意思吧。

第一个方法:上课

这里的上课,一般还是指学校里的课程,不包括培训班。学校里的Java课程一般都比较简单,课程内容也不会太多,但对于当初我们这些小白来说,还是很有难度的。

比如讲基础数据类型,int、double、float分别占用几个字节,我们压根不知道为什么要这么分,讲面向对象、类和接口,更是一脸懵逼。到了期末,大家刷刷题,背背答案,也就这么过了,谁也没把这些知识太放在心上。

可能绝大部分人的大学Java课程都是这么学的,只能当成新手入门,算是为小白打开了新世界的大门。

第二个方法:看视频

上课和看视频的差异在于,看视频是一个自学的过程,你可以自己把握课程进度,配合完成练习。

在我初学Java的阶段,我非常喜欢看视频这种学习方法,很轻松,而且不懂的地方可以反复看,虽然效率不算高,视频质量也参差不齐,但是对新手来说,是很友好的。

慢慢地,你就会习惯通过看视频学习,并且找到自己喜欢的课程视频,尝试加速播放,配合视频完成一些练习,不断地提升自己。

第三个方法:培训

培训班和大学上课不一样,整体的教学速度是很快的,并且更加注重实践,毕竟都自称是“速成班”、“包就业”,

肯定要保证教学速度,同时尽快培养学员的实践能力。(对于想学习的朋友我推荐开课吧技术人必备的java表白神器,零基础即可学习,赠大厂面试礼包,学数据大屏项目,掌握真正发布上线项目,掌握从0到上线完整流程,获得万能过关大厂简历,提高求职简历含金量)

第四个方法:看书

都说优秀的程序员总归是要看书的,书中有颜如玉也有黄金屋,更有程序员最需要学习的一些基础知识和技术原理。比如作为一个Java工程师,你必须要看过《深入理解JVM虚拟机》否则永远上不了一个档次,不了解实现原理,

却喜欢直接开始做项目,就如同空中楼阁一样不可靠。

看书,需要耗费时间,盘仙人精力,需要你很认真地解读那些专业名词的含义,所以阅读难度往往是一个很高的门槛。但是,读完的人都知道,必须要硬着头皮坚持下去,才能得到你要的真知。

第五个方法:看博客

博客,不知道从何时起,变成了技术人最活跃的领地,在博客园、CSDN,或者是掘金,segmentfault等技术社区,都可以看到一些不错的技术文章,这往往是前人通过看书、实战后提炼出来的东西。

虽然现在的博客质量也是良莠不齐,但是如果能找到优质的博客,要比你自己去提炼总结轻松多了。

有时候看书看不懂,那么就去看博客吧。

第六个方法:写博客

我打心底里佩服那些能写出优质技术文章的大牛们,他们总是非常准确地提炼出一个个概念,并且加以总结,有的甚至可以把这些枯燥的知识点变成生动的故事或者是漫画。

这样的大牛很多,比如刘欣老师,程序员小灰。

写博客最大的好处,就是可以让自己对所写内容学的更透彻,有科学研究表明,把知识教给他人,是让自己掌握这一知识的最有效方法。

结语:

这些方法的共同特点就是,你需要实践,不管是书上的、博客上的、自己写的、参考别人的,最终还是通过实践来加以巩固。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pxr007

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值