一,职业规划
职业道路该怎么走?
因为题主已经明确了自己想要成为「真正的Java开发工程师」,所以这里只介绍Java相关的职业规划。
Java这门语言可以发展的方向很多,如果想走开发这一条路的话,至少有七种选择:
- 传统领域:
后端开发:Java、Shell、Python、SQL
全栈开发:Java、HTML、CSS、JavaScript、Shell、Python、SQL、PHP
移动开发:Java、C、C++、Python 游戏开发:Java、 C#、C++
- 新兴领域:
AR/VR:Java 、C#,、C++
物联网:Java、C、Python
计算机视觉:java、C++ 、Python
了解完了一门语言可能的职业发展方向之后,你就可以根据你的个人喜好以及当下情况,选择不同的方向钻研。
因为你的人生是你自己的,我只能给你提供道路,没办法帮你选择。所以第一步,我只能帮你到这里了。
二,学习规划
通过上面的分析,你可以看到,不管你走哪条道路,你都不能只会一门编程语言,也就是说真正的java开发工程师不能只会用Java,你必须得会一些其他辅助性的语言。
所以,关于学习规划,我会分为下面三个部分来讲:编程通用知识Java的学习步骤其他编程语言的学习。
编程通用知识:
很多人都会问,学这些有什么用?我编程又用不到。
这里我举个例子,都说学习就像盖房子,而基础学习就是打地基,没有地基能不能盖房子?当然可以!但是你的房子想建高是不可能了,你的房子想建牢靠也是不可能的了。所以,为了你之后的学习更顺畅,一定要耐着性子哪怕逼自己也要把这一块给啃下来。这直接决定了你之后的发展高度。
Java的学习步骤
这一块分为学什么和怎么学两部分。
学什么
1.语言基础
说白了,就是学习这门语言的基本语法。
需要注意一点的是学习Java语言基础的时候,一定要多动手,不要觉得自己理解了就跳过去了。不然等你真的要实操的时候,你会发现有很多细节是你之前忽略了的,而这些细节阻碍了你的整个编程。
Java零基础
2.进阶学习
1.多线程高并发
2.Web开发
它们的学习顺序应该是从上到下
接下来,你需要学习的是Servlet/JSP(J2EE)部分,这部分是Java后端开发必须非常精通的部分,因此这部分是这三部分中最需要花精力的
3. 数据库
使用你需要学会使用数据库,mysql是个不错的入门选择,而且Java领域里主流的关系型数据库就是mysql。这部分一般在你学习Servlet/Jsp的时候,就会接触到的,其中的JDBC部分就是数据库相关的部分。你不仅要学会使用JDBC操作数据库,还要学会使用数据库客户端工具,比如navicat,sqlyog。
4、开发框架
开发过程中一般为了提高效率,会使用一些Java Web框架,而这也是你需要掌握的。
目前比较主流的是SSM框架,即spring、springmvc、mybatis。学习这个框架,经常接触到一个叫maven的工具,这个工具也是你以后工作当中几乎是必须要使用的工具。所以在你学习搭建SSM之前,可以先了解一下maven的知识,不需要太深入,只要大概即可,进一步的学习可以边用边学。至于学习三个框架的搭建,你一定要可以快速的利用它们三个搭建出一个Web框架。
学完之后,你可以尝试着做一个简单的增删查改的Web项目,检验学习成果。
其他编程语言的学习
作为一个程序员,不可能靠一种语言走遍天下。所以你还要拓展至少一种其他语言。
至于,精通python之后的编程语言该如何选择,首先就得看你自己的工作需要。
怎么学?
每个人的学习方法都不一样,有的人喜欢边做项目边学习,有的人则喜欢学一段时间做一个项目,有的人喜欢看书学,有的人喜欢看视频学,这些都不是问题,重要的是找到适合你自己的。但下面这几点,最好还是不要去做了,因为身边这样学习的人很多,敢这样做的都是事倍功半,结果惨不忍睹。
1.一味的对着别人的代码去敲。
刚开始不会做只有跟着别人敲,这不是问题,问题是跟着别人敲了之后你要自己理解自己记忆把它变成自己的东西。照着别人代码敲一遍两遍哪怕三遍,除了让你看得仔细点,练了打字外并没有其它任何帮助。
因为模仿复现不是关键,思考才是关键。你要能做到思考学习别人思路后,脱离书本和博客,完全自己实现功能。只有这样,你的学习才是有效的。
2.想着一口气吃成个胖子
这一块的情况稍微少见,但也不是没有,有的人急于求成,学习只学个大概只求个会用,没有做到知其然还知其所以然。
一个典型的例子,我两年前带的应届生,北京一所高校来的。当时他做的那部分出了点问题,我就推荐了一本书给他,让他看完后把这个问题解决,因为不是很急,我说一个星期搞定就行了。结果两天后,他就跑过来跟我说书看完了,问题也解决了。我问他怎么做的,他说他看了个大概后直接照着书上做了。
技术这玩意儿,不是看了个大概能照着做就会了,一口气吃不成个胖子,必须得扎扎实实地把事情做好。所以不要试图一次性解决所有问题,
这里给个建议:可以将每天的学习过程拆分成小块,分阶段学习,这样的效率会更高些。说完了第一点如何学习基础知识,接下来说说第二点如何巩固基础知识。
方法千千万,最有效的我认为还是刷题,有方法的刷题。下面这个刷题方法很普通但也很实用。
刷题方法:
- 第一遍:可以先思考,之后看参考答案刷,结合其他人的题解刷。思考、总结并掌握本题的类型,思考方式,最优题解。
- 第二遍:先思考,回忆最优解法,并与之前自己写过的解答作比对,总结问题和方法。第三遍:提升刷题速度,拿出一个题,就能够知道其考察重点,解题方法,在短时间内写出解答。
- 整理了一份关于java的系统化资料,从Javase- ssm-springcloud,包括了面试题,PDF电子书,网上商城项目,个人博客项目,分布式项目等都有想学习Java或者转行,大学生都非常实用
- 最新Java精讲视频,PDF书籍教程,面试题
三,实操技巧
这一点专门针对题主所说的大部分时间都在写着重复的业务代码,感觉成长很低这一问题。
如何找项目练手:
- 做一些实操性强的个人项目,自己练练手
- 写技术文章
把你自己弄懂的东西教给别人,让别人也能看懂,一整套下来,你会将自己理解的东西掌握的更透彻更深入。也算是一种不错的实操方式了,能让你的基础更加牢固。
- 接一些开发兼职
这是三种方法中实操性最强的一种了,这也是最快最有效的方法了,毕竟编程这件事,光有理论是不够的,动手实践才是关键也是最终目的。但兼职也有很多坑很多小门道,你首先得注意项目是不是靠谱,像那种没有需求文档的就不要接了。
祝愿大家顺利拿到自己想要的offer。