想要入行的新手通常会走入一个误区,就是认为学习了一门语言,就可以称为是某某语言工程师了。但事实上真的是这样吗?其实并非如此。
今天我们就来看一看,Java 开发工程师到底开发的是什么东西。准确点来说,Java后端到底在做什么?
大家都知道 Java 是一门后端语言,后端指的就是服务端,服务端代码一般运行在服务器上,通常我们运行Java 程序的服务器都是 Linux 服务器。
这些服务器在互联网公司中一般放在一个叫做机房的地方里,于是像我们这类 Java 程序员的代码一般也运行在这些机房里的服务器中。
Java 里有一个概念叫做虚拟机,你可以把它理解为一个安卓的模拟器,比如你在电脑上装了一个安卓模拟器,就可以通过它来运行安卓应用程序,比如装个 APP,手机游戏什么的。
所以当你在电脑上安装了一个叫做 JDK 的东西时,电脑里就有了 JRE 也就是 Java 运行环境,有了这个运行环境,你就可以运行 Java 应用程序了。
知道 Java 程序如何运行在计算机上之后,我们再来讲一讲平时学的一些 Java 基础知识,它们到底有什么用?
其实平时这一些 Java 基础语法都仅仅是你写代码的一些基础知识,就相当于英语中的 26 个字母,常见的有基本类型变量、for 循环、if else 等等基本语法,掌握了这些基础知识之后,你就可以上手写一些很简单的代码了。
除此之外,Java 还有一些比较特别的概念,比如面向对象的特性,其中有类、接口等概念。为什么 Java 要引入这些东西呢,其实就是想让使用者更好地进行设计、抽象和编程。
对于新手来说,你不需要理解得特别的深刻,因为这些东西只有你在你真正写代码之后才能逐步去理解。
在进入程序员这个行业后经常有人问我为什么要走Java这条路,为什么不做C++、前端之类的方向,其实吧,这个问题搁在不同人身上,回答可能也是完全不一样的。我可能还是主要以我的角度出发,来说一说为什么要选择Java这条路。
简单易学
Java是一个面向对象的编程语言,容易理解。而且略去了多重加载、指针等难以理解的概念。并且实现了自动垃圾回收,大大简化了程序设计。
跨平台
跨平台是Java最大的优势。Java运行在JVM(Java虚拟机)上,在任何平台只要安装了JVM。Java就可以运行。它架构在操作系统之上,屏蔽了底层的差异。真正实现了“Write once,run anywhere”。
安全
Java中没有指针,这样就没有办法直接访问内存了。另外Java也不容易出现内存泄露。
多线程
Java内置对多线程的支持,可以方便地在程序中实现多线程的功能。不像其他不支持多线程的语言,需要调用操作系统的多线程功能才能完成多线程的实现。
丰富的类库
经过10多年的积累和沉淀,出现了很多优秀的开源社区,如Apache和Spring。这些优秀的社区提供了很多非常好的框架,借助这些框架可以使我们不用去关注Java底层的开发,而只需关注业务的实现。
使用广泛
Java几乎是所有的互联网企业都在用,而且都是用在大项目上。这就意味着Java方面的工作比较好找,另一点是在做Java开发时如果遇到问题,可以很容易从网上找到解决办法。
教练,我想学Java!
怎么学Java,一个简单的命题,我自己也折腾了好几年,现在虽不能说是Java高手,但也算是小有所成,至少还不至于搞不懂一些基本概念和技术原理。
从我大三那一年第一次在课堂上听老师讲JAVA课程到现在,也已经快4年的时间了,回顾我的学习历程,可以说是充满艰辛的,但又是不断在进步的,所谓道路是曲折的,前途是光明的,大抵就是这个意思吧。
上课
这里的上课,一般还是指学校里的课程,不包括培训班。学校里的Java课程一般都比较简单,课程内容也不会太多,但对于当初我们这些小白来说,还是很有难度的。
比如讲基础数据类型,int、double、float分别占用几个字节,我们压根不知道为什么要这么分,讲面向对象、类和接口,更是一脸懵逼。到了期末,大家刷刷题,背背答案,也就这么过了,谁也没把这些知识太放在心上。
可能绝大部分人的大学Java课程都是这么学的,只能当成新手入门,算是为小白打开了新世界的大门。
看视频
上课和看视频的差异在于,看视频是一个自学的过程,你可以自己把握课程进度,配合完成练习。
在我初学Java的阶段,我非常喜欢看视频这种学习方法,很轻松,而且不懂的地方可以反复看,虽然效率不算高,视频质量也参差不齐,但是对新手来说,是很友好的。
慢慢地,你就会习惯通过看视频学习,并且找到自己喜欢的课程视频,尝试加速播放,配合视频完成一些练习,不断地提升自己。
去培训
培训班和大学上课不一样,整体的教学速度是很快的,并且更加注重实践,毕竟都自称是“速成班”、“包就业”,肯定要保证教学速度,同时尽快培养学员的实践能力。
看书
都说优秀的程序员总归是要看书的,书中有颜如玉也有黄金屋,更有程序员最需要学习的一些基础知识和技术原理。比如作为一个Java工程师,你必须要看过《深入理解JVM虚拟机》否则永远上不了一个档次,不了解实现原理,却喜欢直接开始做项目,就如同空中楼阁一样不可靠。
看书,需要耗费时间,精力,需要你很认真地解读那些专业名词的含义,所以阅读难度往往是一个很高的门槛。但是,读完的人都知道,必须要硬着头皮坚持下去,才能得到你要的真知。
看博客
博客,不知道从何时起,变成了技术人最活跃的领地,在博客园、CSDN,或者是掘金,segmentfault等技术社区,都可以看到一些不错的技术文章,这往往是前人通过看书、实战后提炼出来的东西。
虽然现在的博客质量也是良莠不齐,但是如果能找到优质的博客,要比你自己去提炼总结轻松多了。
有时候看书看不懂,那么就去看博客吧。
写博客
我打心底里认为输出知识才是最好的学习方法,写博客最大的好处,就是可以让自己对所写内容学的更透彻,有科学研究表明,把知识教给他人,是让自己掌握这一知识的最有效方法。
在这方面我自愧不如,只写过一些粗浅的Java文章,除此之外基本没有能写出什么有深度的技术文章,希望在有多年技术积累后,我也能写出优质的文章。