为了账号安全,请及时绑定邮箱和手机立即绑定

零基础小白java学习之路

标签:
Java

<blockquote>
<p><em>工作了多年,过程中遇到经常有人问我,零基础应该学习哪门语言,C/C++、Java、Pathon还是其他的什么,今天开篇,就来聊聊这个话题。</em>
</p>
</blockquote>
<p>大家可以先看看这篇文章,了解一下我的履历,这样文章更可信:</p>
<p>
<a href="https://mp.weixin.qq.com/s?__biz=Mzg4NTIzMDk2Mw==&mid=2247483663&idx=1&sn=76ce0bdabddcb8252f24d47297733e91&scene=21#wechat_redirect" target="_blank" rel="nofollow"></a><a href="https://mp.weixin.qq.com/s/wIfb8va8YCMnsu6bmGIwpg" target="_blank" rel="nofollow">https://mp.weixin.qq.com/s/wIfb8va8YCMnsu6bmGIwpg</a>
</p>
<p><strong>老规矩先说结论:首推Java</strong>
</p>
<ul>
<li>
<p>对于一个想入门的新人来说,最重要的是先入门、上手,然后找到工作糊口。马斯洛需求层次理论告诉我们,首选要解决的就是生理需求,同学们别想歪了,这里主要指的是衣食住行。这几门语言里面,无疑Java是最好找工作的,国内很多公司都使用Java,也就是可以通过学习Java进入这个行业,然后活下来,才有机会去学习进一步的理论。</p>
</li>
<li>Java相比C/C++要容易学习,国内有阿里这样的大厂,也有相对丰富的生态。所以当有人问,他不是科班出身的时候,我就告诉他,不要怕。因为我始终觉得,只要肯努力,这里面并没有什么无法逾越的鸿沟,况且还有这么多的资料,这么丰富的生态。</li>
</ul>
<p>学习任何一门语言,不要好高骛远,也不要急于求成。学习编程和其他学习都一样,也是一个积累的过程,在任何一个行业,一份耕耘、一份收获,只要有心人,铁杵磨成针,持续耕耘总有一天会成为你心目中的大牛。</p>
<p><strong>看到这里,我们应该如何学习、入门呢?</strong>
</p>
<p>
<img class="lazyload" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" data-original="http://img1.sycdn.imooc.com//5d4e296100013d0510800793.jpg" alt="图片描述" target="_blank" rel="nofollow">开发环境:搭建Java的开发环境,学会安装JDK,建议搞清楚Java是如何进行命令行编译的,要知道path和classpath用来干嘛,然后再使用IDE进行开发。知其然也知其所以然。开发环境:搭建Java的开发环境,学会安装JDK,建议搞清楚Java是如何进行命令行编译的,要知道path和classpath用来干嘛,然后再使用IDE进行开发。知其然也知其所以然。
</p>
<ul>
<li>
<ol>
<li>开发环境:搭建Java的开发环境,学会安装JDK,建议搞清楚Java是如何进行命令行编译的,要知道path和classpath用来干嘛,然后再使用IDE进行开发。知其然也知其所以然。</li>
</ol>
</li>
<li>
<ol>
<li>基础语法:掌握基本语法:包括操作符、运算符、循环、条件判断,和基本等字符串、数组等处理。然后学习面向对象基本概念:接口、类、继承、抽象和封装;掌握多态,overwrite等。</li>
</ol>
</li>
<li>
<ol>
<li>数据结构:掌握最基本的数据结构,包括 LinkedList和 ArrayList的实现机制,Map/HashMap/Set等基本容器等使用;掌握基本的栈/队列/二叉树等。了解这些数据结构等基本实现原理,算法复杂度等。</li>
</ol>
</li>
<li>
<ol>
<li>多线程:掌握线程的基本概念,知道ConcurrencyHashMap等线程安全的容器的基本原理,知道线程同步、死锁、synchronized、Runnable接口等。</li>
</ol>
</li>
<li>
<ol>
<li>磁盘/网络IO:掌握基本等数据读取,网络编程,这一步知道原理之后就是熟能生巧,包括InputStream/OutPutStream/Socket/Http等。</li>
</ol>
</li>
<li>
<ol>
<li>数据库:这一步知道JDBC的概念,掌握其核心的步骤和API。掌握基础之后需要知道数据库事物,连接数据库使用的连接池,以及为什么要使用连接池。</li>
</ol>
</li>
</ul>
<p>以上掌握得八九不离十了,你就可以去找工作了,工作中常见的都再上面了。但是如何到中级呢?</p>
<ul>
<li>
<ol>
<li>设计模式:我们不能只做API BOY,在工作中会实现各种需求,在这个时候带着业务去实践设计模式,推荐一些书,比如《大话设计模式》《Java与模式》,看完你会知道委托、工厂模式等等一系列的概念。</li>
</ol>
</li>
<li>
<ol>
<li>数据结构与算法进阶:知道基本数据结构的实现,可以自己动手写;实践排序的各种算法和实现,包括时间复杂度;实践二叉树的实现,知道其各种遍历方式,实践动态规划算法、贪心算法、最短路径等常见算法。如果这一步学得好,那么恭喜你,可以面对国内大部分公司的面试了。</li>
</ol>
</li>
</ul>
<p>可以说从基础到进阶,和专业到计算机毕业到已经相差无几了,如果掌握90%以上,甚至科班都不如你。这个时候你可以考虑跳槽了,薪水涨涨涨!</p>
<p>但是这个不是我们终极都梦想,我们需要跨过中年危机,如何更高阶呢?</p>
<p><code>1. 思考</code>
</p>
<p>工作这么多年,其实发现人与人最大到不同,在于有些人很早就学会独立思考,有些人不会。会独立思考到人早早就规划好了自己的职业生涯,知道自己需要什么,在什么阶段做什么事情,这样差距就一步一步的拉开了。</p>
<p>同样的,对于编程Java发展到现在,被用在各种各样的情景之中,可以做后台服务端开发,可以做客户端开发,毫无为过的说它是应用最广泛的编程语言。有了上面的基础之后,还可以深入研究一下JVM的源代码,以及其实现机制,垃圾回收算法等等。</p>
<p>也可以考虑自己要不要专攻一个方向,我们的教程会以服务端的开发为蓝本,可以从Spring入手,搞清楚反射,控制反转,依赖注射,切片编程等,这些让人望而生畏的概念,入门之后就要想,为什么会有这些东西,自己能不能设计并实现。在工作中与大多数优秀的程序员交流的时候,其实大家聊到这些,让他从零开始,也会设计得八九不离十。</p>
<p><code>2. 架构:</code>
<br />这个时候,我们就算是高阶开发程序员了,要思考更多的东西,同时负担的工作也会更重要了。比如负责设计一个服务的架构,需要思考高并发、分布式,如何提供更健壮稳定搞笑的后台服务。到了这一步,一些常见的后台架构也会有常见的模式,但是不同的业务决定了不同的情况,这个时候,需要我们深入思考,一般没有什么捷径,需要靠自己的悟性、对业务敏感性。
</p>
<p>这个时候我们就算一个有些修为的高阶IT狗了,年薪30W不是梦想,甚至更高。</p>
<p>程序员的编程世界是简单的,永远都是有付出就会有收获。这里也是一个平等自由国度,只要学习就会有进步。</p>
<p>这里有学习的乐趣,也有征服的快感</p>
<p>愿你Enjoy!</p>

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
1
获赞与收藏
2

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消