最害怕的东西,最应该去突破
初衷
之前博主在博客园已经陆续发了几十篇文章,但总体并没有一个很好的串联,在内容编排上也存在许多问题,因此特地将之前的文章做一个整理。
一是将原有文章进行润色,让表达更加生动清晰,二是尽可能的将各个知识点连接成线,整理出自己的一套体系,并剔除其中的错误。
本系列文章不会鼓吹Java怎么怎么好,也不打算尝试怂恿那些在Java边缘徘徊的人来学习Java,只想根据自己的学习经验来给那些想要学习Java却不得其法的人提供一点自己的经验和看法。
Java 入门篇
是为零基础的人准备的,内容不多,主要包括环境搭建、IDE设置和使用等方面的介绍,最后会以一个简单的程序结束本篇。
通过本篇的学习,你可以掌握以下内容:
- 如何搭建 Java 开发环境
- 如何使用 IDEA 进行开发
- 完成简单的 Java 代码
编程的世界观
编程写代码其实跟玩游戏很相似,不断学习,不断提升,然后写代码来完成各种工作,就跟打怪升级,赚钱买装备,最终打倒BOSS是一样的。
每一款好的游戏都有一个较为统一完整的世界观,也会有一个统一的背景设定,你需要先接受和理解这个设定的背景,然后慢慢了解这个游戏的完整世界观,这样才能真正融入这个游戏。
比如说,《剑网3》
的世界观设计一直遵循“纯武侠,真江湖”设计,背景设定便是唐宋时期,武林纷争,各大门派先后崛起,而你出身草芥,通过自己的努力,不断完成各种新手任务来提升等级,然后加入门派,再通过不断升级武器装备、完成各种副本来提升自我。
又比如《饥荒》
这款游戏,是关于一名科学家被恶魔传送到了异世界荒野的故事,游戏的主题是生存,所以你的目标是尽可能的利用各种资源来存活更长时间,同时要抵御各种外来威胁来保证自己的安全。
如果把编程开发也比作游戏的话,它更像是《我的世界》这样的自由度很高的沙盒游戏。有的人会将《我的世界》玩成一款生存游戏,享受被僵尸追杀的快感,有人会将它玩成一款建筑游戏,打造属于自己的王国。带着不同的目的人,会有完全不同的游戏体验。
编程也是如此,在编程的世界里,你拥有的是一个万能工厂,而你是一位工程师,在这里你可以生产出任何产品,汽车、轮船、火箭,如果你足够厉害,甚至可以创造一个新的世界,所有你需要做的,便是给出合格的设计图,接下来的事情,交给这个万能工厂
就好了。
每个人拥有这个万能工厂
的人都有着不同的目的,有的人只是为了参观,有的人是为了制作出性能强悍的跑车,有的人是为了制作自己用的小玩具,而有的人只是为了用它来谋生。不同的目的就会有完全不同的前进方向,也会有完全不同的体验,有的人会觉得枯燥,有的人会觉得无聊,而有的人却会感觉激情四射,爱不释手。如果你能真正体会到其中的乐趣,那么你一定会爱上这个工厂。
但做出一张好的设计图
并不是一件简单的事情,所以你需要不断的学习它的规范,设计出符合规范的设计图
,才能使用这个万能工厂
正确生产出你想要的产品。
等到你真正掌握了这个规范,就会发现,只满足于正确性还远远不够,于是渐渐的会开始追求效率和美感。为了提高设计效率,前辈们已经总结出很多种设计模式
,适用于不同的应用场景,掌握了它们,在设计产品的时候便能更加随心所欲。
而关于编程美学,也是一门用经验堆积起来的学问。毕竟,作为工程师的我们,需要与其他工程师不断交流切磋,我们会观摩欣赏别人的设计图
,也会把自己的设计图
和别人探讨。所以设计图
不仅仅是为了给这个万能工厂来运转,也是为了阅读。
当然,这都是后话了。
Java编程的世界观
Java
是一门高级编程语言
,所谓的高级,是相对于汇编等机器语言
而言的,有更高层次的抽象,更加接近自然语言和数学公式,基本脱离了机器的硬件系统。
前面说到,每种编程语言都是一个万能工厂
,Java
也有一个万能工厂
。不同语言代表的不同工厂有着各自的擅长领域。
目前来说,Java
的主流应用领域便是 Web/APP后端开发
、嵌入式设备
、大数据
、安卓开发
,当然,Java
也可以开发桌面应用程序,也可以写游戏,但那些并不是 Java
擅长的领域。就像你可以用菜刀砍树,用斧头切菜一样,可以做,但是会有些别扭,有其他更好用的工具为什么要选择这样蹩脚的方式呢。
不要忘了你的目标,如果你是为了探索和享受其中的乐趣,那可以尽管去做。如果是为了完成某项功能,那请别忘了,这些工厂都只是一个工具而已,你的最终目的是实现你的要的功能。
吾生也有涯,而知也无涯。以有涯随无涯,殆已!
简单来说,不管黑猫白猫,能抓住耗子的猫就是好猫。
所以对待各种编程语言,首先要保持理智和克制,他们都只是一个工具,通常来说,我们的目的是为了解决问题,不要陷入对某种语言的盲目崇拜的陷阱里,脱离场景而进行语言之间的对比是毫无意义的。
Java
有很多开发方向,本系列文章将主要以 JavaWeb
开发为目标进行探索,利用 Java
这个大工厂来开发网站后端应用,为我们的前台页面提供强劲稳定的功能支持。
相对于桌面开发而言,JavaWeb
开发更多的时候开发出的产品是默默的在后台工作的,需要通过前台 html
页面或者 手机app
,亦或是 桌面app
才能进行间接的交互。
比如你打开淘宝,看到的那些页面架构和好看的图片大都是前端和UI的功劳,而你看到的那些文字和数字内容,大都是后端的数据驱动的成果。(当然,现在可能更多的功劳又要归功于基于大数据的推荐系统了)
但不要因此而觉得 Java
后端开发很无聊,其实一个网站的后端就像一个程序的大脑,绝大部分的数据逻辑处理是由后端完成的,不仅要负责对数据进行处理,还需要跟数据库,各种消息中间件打交道,利用各种算法来实现特定的功能。
前端则负责展示处理后的结果,并做出相应的响应,是一个应用的门面。前端侧重展示和交互,后端侧重程序的逻辑,都是为了提供更好的用户体验,只是着力点不一样而已。
Java
这个大工厂能量无穷,想要完全掌控它的妙用需要一段较长的修炼时间,毕竟想要设计一张足够精巧的设计图纸并不是一件简单的事情,所以需要不断的学习。
这个过程难免会遇到挫折和困难,其中很多坑对于新手而言是致命的,最简单的比如环境安装,很多人的兴趣就是夭折在环境的折腾上。其实很多坑,早有无数人踩过,也有很多人在网上分享过相关的解决办法,所以当你遇到问题的时候,可以先上百度找找,你要相信一定有人遇到过同样的问题,如果没找到,想想换个姿势搜索。
当然也许苦苦搜寻之后,还是无法解决你的问题,这时候,来自共同学习的小伙伴的支持就显得弥足珍贵了,为此,博主创建了一个QQ群【529253292】,这里也许可以找到你想要的答案。
Java
的学习深造过程,就像是升级打怪过关卡,每个知识点都有些小boss,把它们打倒后便能获得相应的经验值,可以提升你的等级,但是随着你的等级的提升,这些小怪小boss对你的修炼的帮助已经聊胜于无了,于是你需要进行更艰难的修炼,去挑战更厉害的boss。
起航
在这个世界里,自由度很大,大到也许会让刚接触的你迷失方向,不知所措。所以本系列文章将会提供给你一条前往 JavaWeb
开发的修炼道路,虽然并不一定是最优路线,但至少总体方向不会错,如果你刚好想往这个方向发展,那么本系列文章将会给你提供一些帮助。注意,本系列文章主张的是夯实基础,先修炼内功,然后再修炼外功,所以如果你想要的是捷径,想要知道如何在一两个月之内找到工作,那么这个系列文章可能不太适合你。
当你的经验累积到一定的值时,就能获得相应的头衔,在 JavaWeb
的发展中主要有两条升级路线,一条是技术路线,一条是管理路线,大致就像这样:
两条路线的升级加点方式不太一样,但是都是当技术积累到一定程度后才能选择不同的升级路线。
所以,年轻的勇士,不要犹豫了,拿起你的桃木剑,在 Java
这个世界探索出自己的道路吧!