这篇文章总结于我们公司十三位使用Java作为开发语言的程序员前辈,方方面面近四千字。

作为十大编程语言榜首的Java,真的太多人学也有太多要学的东西了,以至于后台总有人问Java该怎么学,甚至还有具体问编程问题的。

乘此机会,整理Java程序员的从入门到精通之路,分享一下这么多年来我们公司Java程序员的学习心得。

为了这篇文章,我是费尽口舌,软磨硬泡收集到信息之后,又花了一整个星期才终于写完。

内容框架如下:

1.职业规划

2.学习安排

3.实操技巧

这一点专门针对大多数人所说的「大部分时间都在写着重复的业务代码,感觉成长很低」这一问题。

一,职业规划

职业道路该怎么走?

因为题主已经明确了自己想要成为「真正的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,你必须得会一些其他辅助性的语言。

所以,关于学习规划,我会分为下面三个部分来讲:

1.编程通用知识

2.Java的学习步骤

3.其他编程语言的学习

编程通用知识:

算法

编译原理

数据结构

操作系统

网络原理

很多人都会问,学这些有什么用?我编程又用不到。

这里我举个例子,都说学习就像盖房子,而基础学习就是打地基,没有地基能不能盖房子?当然可以!

但是你的房子想建高是不可能了,你的房子想建牢靠也是不可能的了。

所以,为了你之后的学习更顺畅,一定要耐着性子哪怕逼自己也要把这一块给啃下来。

这直接决定了你之后的发展高度。

Java的学习步骤

这一块分为学什么以及怎么学两部分。

学什么

1.语言基础

说白了,就是学习这门语言的基本语法。

需要注意一点的是学习Java语言基础的时候,一定要多动手,不要觉得自己理解了就跳过去了。不然等你真的要实操的时候,你会发现有很多细节是你之前忽略了的,而这些细节阻碍了你的整个编程。

下面是推荐的一些书籍以及课程:

书籍:《Head First Java》《Java核心技术》

2021最新版Java学习视频,书籍教程,面试题,PDF文档,都是经典干货!

学到最后,你能掌握下面这些知识就够了:

2.进阶学习

1.多线程高并发

2.Web开发

它们的学习顺序应该是从上到下,因此最先学习的应该是前端开发的HTML/CSS/JS三种语言。

学完这方面的内容后,你可以试着自己写一些页面。要求是尽量做的漂亮一点。

接下来,你需要学习的是Servlet/JSP(J2EE)部分,这部分是Java后端开发必须非常精通的部分,因此这部分是这三部分中最需要花精力的。

还是那句话,一定要多动手。

3. 数据库使用

你需要学会使用数据库,mysql是个不错的入门选择,而且Java领域里主流的关系型数据库就是mysql。这部分一般在你学习Servlet/Jsp的时候,就会接触到的,其中的JDBC部分就是数据库相关的部分。你不仅要学会使用JDBC操作数据库,还要学会使用数据库客户端工具,比如navicat,sqlyog,二选一即可。

4、开发框架

开发过程中一般为了提高效率,会使用一些JavaWeb框架,而这也是你需要掌握的。

目前比较主流的是SSM框架,即spring、springmvc、mybatis。

学习这个框架,经常接触到一个叫maven的工具,这个工具也是你以后工作当中几乎是必须要使用的工具。所以在你学习搭建SSM之前,可以先了解一下maven的知识,不需要太深入,只要大概即可,进一步的学习可以边用边学。

至于学习三个框架的搭建,你一定要可以快速的利用它们三个搭建出一个Web框架。

学完之后,你可以尝试着做一个简单的增删查改的Web项目,检验学习成果。

其他编程语言的学习

作为一个程序员,不可能靠一种语言走遍天下。所以你还要拓展至少一种其他语言。

至于,精通Java之后的编程语言该如何选择,首先就得看你自己的工作需要。

怎么学?

每个人的学习方法都不一样,有的人喜欢边做项目边学习,有的人则喜欢学一段时间做一个项目,有的人喜欢看书学,有的人喜欢看视频学,这些都不是问题,重要的是找到适合你自己的。

但下面这几点,最好还是不要去做了,因为我带了这么多人,敢这样做的都是事倍功半,结果惨不忍睹。

1.一味的对着别人的代码去敲。

刚开始不会做只有跟着别人敲,这不是问题,问题是跟着别人敲了之后你要自己理解自己记忆把它变成自己的东西。照着别人代码敲一遍两遍哪怕三遍,除了让你看得仔细点,练了打字外并没有其它任何帮助。

因为模仿复现不是关键,思考才是关键。你要能做到思考学习别人思路后,脱离书本和博客,完全自己实现功能。只有这样,你的学习才是有效的。

2.想着一口气吃成个胖子

这一块的情况稍微少见,但也不是没有,有的人急于求成,学习只学个大概只求个会用,没有做到知其然还知其所以然。

一个典型的例子,我两年前带的应届生,北京一所高校来的。当时他做的那部分出了点问题,我就推荐了一本书给他,让他看完后把这个问题解决,因为不是很急,我说一个星期搞定就行了。结果两天后,他就跑过来跟我说书看完了,问题也解决了。我问他怎么做的,他说他看了个大概后直接照着书上做了。

技术这玩意儿,不是看了个大概能照着做就会了,一口气吃不成个胖子,必须得扎扎实实地把事情做好。所以不要试图一次性解决所有问题,这里给个建议:可以将每天的学习过程拆分成小块,分阶段学习,这样的效率会更高些。

说完了第一点如何学习基础知识,接下来说说第二点如何巩固基础知识。方法千千万,最有效的我认为还是刷题,有方法的刷题。

下面这个刷题方法很普通但也很实用,推荐给你:

第一遍:可以先思考,之后看参考答案刷,结合其他人的题解刷。思考、总结并掌握本题的类型,思考方式,最优题解。

第二遍:先思考,回忆最优解法,并与之前自己写过的解答作比对,总结问题和方法。

第三遍:提升刷题速度,拿出一个题,就能够知道其考察重点,解题方法,在短时间内写出解答。

在这里,给大家推荐两本书还有一些学习网站,能够让大家学得更轻松些。

三,实操技巧

这一点专门针对题主所说的「大部分时间都在写着重复的业务代码,感觉成长很低」这一问题。

如何找项目练手:

1.做一些实操性强的个人项目,自己练练手

田纳西大学助理教授奥斯汀·亨利结合自身经验,给出了一份“程序员都应该尝试的挑战性项目”清单,包含下面六个项目,我之前做了一遍觉得还不错,推荐给大家:

  • 文本编辑器

  • 2D游戏-太空侵略者

  • 编译器-Tiny BASIC

  • 迷你操作系统

  • 电子表格

  • 电子游戏机模拟器

有哪些适合新手的练手Java项目?

从事IT行业多年,用Java,前端,知Python,有多年的开发经验。如果你正在入门学习Java可以申请加入我的Java学习交流圈:766328863。文件我上传了我做Java这几年整理的一些学习手册,面试题,开发工具,PDF文档书籍教程,需要的话你们都可以自行来获取下载。

每一个项目都存在不同的挑战,比如文本编辑器就要求在不使用GUI框架中内置的文本框组件的情况下,搭建支持光标移动、选择、插入和删除操作的文本框并将文本文档存储在内存中。

如果你能解决掉这些项目中的这些问题,然后把项目独立完整的做出来并且运行成功,你的能力肯定能再上一个台阶。
2.写技术文章
大家想必都知道费曼技巧,这也是其中的一种应用了,把你自己弄懂的东西教给别人,让别人也能看懂,在这个过程中你肯定还是要把一个完整的项目给做出来的,一整套下来,你会将自己理解的东西掌握的更透彻更深入。
也算是一种不错的实操方式了,能让你的基础更加牢固。
3.接一些开发兼职
这是三种方法中实操性最强的一种了,没有之一。
而且不用说,这也是最快最有效的方法了,毕竟编程这件事,光有理论是不够的,动手实践才是关键也是最终目的。
但兼职也有很多坑很多小门道,你首先得注意项目是不是靠谱,像那种没有需求文档的就不要接了。

30 张Java 的思维导图,全面梳理构建 Java 的知识体系

来源:开发屋(公众号)

做java开发入职半年。对未来很迷茫,该如何发展?相关推荐

  1. 做为初入职的Web前端开发,应该如何尽快提高自己的能力?

    [做为初入职的Web前端开发,应该如何尽快提高自己的能力?] 说前端要懂后端的纯粹是扯淡+2货. PS:实在受不了一群蠢货了. 什么叫懂后端? 马丹你们先弄清楚什么叫懂后端好了. 不写过三年五年的后端 ...

  2. Java工程师入职——配置环境及安装开发工具

    很多新人对于进入新公司,大部分都是从发新电脑新系统开始(你好,我是小娜,让我来帮你....),电脑上各种开发环境都是从无到有,所以接下来小编从安装java到配置环境变量到eclipse等进行一系列环境 ...

  3. 【R言R语】系列之算法工程师入职半年的总结与感悟

    0 导读 这是我入职半年后写在公众号里的一篇文章,在此分享到CSDN上,希望能和CSDN上的朋友们一起交流学习CV算法以及相应的知识.也欢迎大家关注我的公众号WeThinkIn. [R言R语]系列之算 ...

  4. 雷军:年轻人入职半年内不要对战略和业务提意见,很多想法都不靠谱

    整理 | 王晓曼 出品 | 程序人生 (ID:coder _life) 5月24日,在2021年小米校招生培训会上,雷军建议新员工在入职公司的前半年,不要对公司战略和业务提出任何意见,要多听.多看.多 ...

  5. 入职半年小结 | 给应届校招算法同学的几点建议

    入职刚好满半年,趁这个时间做一些总结和分享.总体而言,入职半年以来,通过自己学生生涯时期的积累为团队和项目做出贡献,取得了业务收益,不仅仅提高了自己的自信心,也赢得了同事的信任.我也借此机会对半年来的 ...

  6. 应届生入职半年被裁员了,我该怎么办?

    最近,一位入职半年的读者咨询我,入职快半年了,组里要把他调到测试岗位,咨询我该怎么办? 以下是读者的问题: 仲哥,求助求助!!!首先我描述一下我情况,我今年7月进去一家公司嵌入式开发岗位,试用期前三个 ...

  7. 在一线做Java开发,月薪达到两万的都是什么水准?

    在一线做Java开发,月薪达到两万的都是什么水准?下面和小编一起来看看吧! 第一个是基础 比如对集合类,并发包,类加载,IO/NIO,JVM,内存模型,泛型,异常,反射,等有深入了解,最好是看过源码了 ...

  8. java实习生入职第一天,你该干点什么???

    摘要: 大JAVA实习生入职第一天,所需必备常识问题. 以下是你该了解的模块说明: 你应该了解公司一些事情. 你应该为公司准备的事情. 第一天上班你该做什么. 1,首先你应该了解公司的实习生政策,以及 ...

  9. 13篇顶会!25岁成985高校博导,入职半年发ICML,网友:万点暴击

    难道高校都这么卷了?近日,重庆大学计算机学院25岁博导入职半年发表了一篇ICML顶会论文,这是该学院首次在ICML上发表学术论文,引发网友热议. >>>> 95后NTU博士毕业 ...

最新文章

  1. 各种友(e)善(xin)数论总集,从入门到绝望2
  2. 使用python 创建快捷方式
  3. 521分云南考生被北大录取!仅超一本线1分
  4. mysql amd.dll 后门_DLL后门清除完全篇
  5. 拿到软银巨额投资后,通用无人车部门Cruise可能要单独IPO了
  6. SCCM 2007系列教程之四在工作组环境内实现SCCM客户端
  7. 视频课程更新,机器学习、数理统计、矩阵分析、运筹视频教程
  8. nginx 配置支持URL HTML5 History 模式 与 设置代理
  9. Hi3559AV100的MPP系统绑定实现
  10. cisco 思科三层交换机配置命令
  11. ApiPost测试接口直接生成API文档
  12. Redis集群单点故障:corrupted cluster config file.
  13. 旋转角度计算(旋转手势)
  14. 珍藏了很久的特效例子,分享给前端感兴趣的同学
  15. Python 条形图、饼图、直方图、阶梯图解析
  16. Java——环境变量的配置
  17. Centos7 安装RVM
  18. 手机一键去水印的软件有什么
  19. 二进制#逻辑计算#与(∧)、或(∨)、非(¬)、异或(⨁)#与,或,非,异或的运算法则#与,或,非,异或运算的基础代码
  20. java基于springboot家庭水电燃气网上交费系统

热门文章

  1. 无法复制到远程计算机,大神为你分享rdpclip.exe导致远程桌面无法复制粘贴解决方法...
  2. 北京市公务员的能力要求,考完京考的感想
  3. buuojCTF [WUSTCTF2020]level11
  4. iis网站无法启动,提示ox8ffe2740错误
  5. 低功耗蓝牙模块带屏蔽罩的作用有哪些
  6. 关于docker的文件清理:CODE: 14 DESC: service not available now, maybe d isk full, CL: 0.92 CQ: 0.92 INDEX: 0
  7. [Lisp]用 sbcl, asdf 和 cl-launch 编写可分发的 lisp 程序 -- 转载
  8. linux 开机企鹅LOGO修改
  9. 5G NR物理层各个步骤各项参数梳理记录
  10. 《YOLOv8改进实战专栏》专栏介绍 专栏目录