四千字干货 - 十三位Java工程师的学习心得
cac55 2025-05-07 23:02 15 浏览 0 评论
史上最强Java学习大全,多亏我足够无耻,才从公司十三位Java程序员口中问出方法来。
没错。
这篇文章总结于我们公司十三位使用Java作为开发语言的程序员前辈,方方面面近四千字。
作为十大编程语言榜首的Java,真的太多人学也有太多要学的东西了,以至于后台总有人问Java该怎么学,甚至还有具体问编程问题的。
乘此机会,整理Java程序员的从入门到精通之路,分享一下这么多年来我们公司Java程序员的学习心得。
为了这篇文章,我是费尽口舌,软磨硬泡收集到信息之后,又花了一整个星期才终于写完。
内容框架如下:
- 职业规划
- 学习安排
- 实操技巧
这一点专门针对题主所说的「大部分时间都在写着重复的业务代码,感觉成长很低」这一问题。
一,职业规划
职业道路该怎么走?
因为题主已经明确了自己想要成为「真正的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
本文不做其他编程语言的发展道路以及非开发道路的职业分析,如果感兴趣的话,可以移步作者的另外一篇文章,里面有非常详细的介绍。
计算机专业学什么语言好找工作?www.zhihu.com
了解完了一门语言可能的职业发展方向之后,你就可以根据你的个人喜好以及当下情况,选择不同的方向钻研。
因为你的人生是你自己的,我只能给你提供道路,没办法帮你选择。所以第一步,我只能帮你到这里了。
二,学习规划
通过上面的分析,你可以看到,不管你走哪条道路,你都不能只会一门编程语言,也就是说「真正的java开发工程师」不能只会用Java,你必须得会一些其他辅助性的语言。
所以,关于学习规划,我会分为下面三个部分来讲:
- 编程通用知识
- Java的学习步骤
- 其他编程语言的学习
编程通用知识:
每一个知识点后面,我都放了一门推荐课程,如果自觉掌握扎实,可以跳过。
- 算法
算法导论-麻省理工:
https://www.bilibili.com/video/BV1Tb411M7FA?from=search&seid=12004933714620194673www.bilibili.com
- 编译原理
编译原理-哈工大:
https://www.bilibili.com/video/BV1zW411t7YE?from=search&seid=7656665281813628810www.bilibili.com
- 数据结构
数据结构-浙江大学
https://www.bilibili.com/video/BV1JW411i731?from=search&seid=5548436889164823839www.bilibili.com
- 操作系统
计算机操作系统精讲-华中科技大学
https://www.bilibili.com/video/BV1Wb411H7Ge?from=search&seid=4742768788475129453www.bilibili.com
- 网络原理
计算机网络原理 -哈尔滨工业大学
https://www.bilibili.com/video/BV1gb411k7gd?from=search&seid=5937420088890690226www.bilibili.com
很多人都会问,学这些有什么用?我编程又用不到。
这里我举个例子,都说学习就像盖房子,而基础学习就是打地基,没有地基能不能盖房子?当然可以!
但是你的房子想建高是不可能了,你的房子想建牢靠也是不可能的了。
所以,为了你之后的学习更顺畅,一定要耐着性子哪怕逼自己也要把这一块给啃下来。
这直接决定了你之后的发展高度。
Java的学习步骤
这一块分为学什么以及怎么学两部分。
学什么
1.语言基础
说白了,就是学习这门语言的基本语法。
需要注意一点的是学习Java语言基础的时候,一定要多动手,不要觉得自己理解了就跳过去了。不然等你真的要实操的时候,你会发现有很多细节是你之前忽略了的,而这些细节阻碍了你的整个编程。
下面是推荐的一些书籍以及课程:
书籍:《Head First Java》《Java核心技术》
视频:
Java零基础教程视频
https://www.bilibili.com/video/BV1Rx411876f?from=search&seid=15227919425633671150www.bilibili.com
学到最后,你能掌握下面这些知识就够了:
2.进阶学习
1.多线程高并发
推荐课程:
马士兵2020年最新Java多线程高并发讲解:
马士兵2020年最新Java多线程高并发讲解——20年架构师告诉你Java多线程与高并发应该怎么学_哔哩哔哩 (゜-゜)つロ 干杯~-bilibiliwww.bilibili.com
2.Web开发
它们的学习顺序应该是从上到下,因此最先学习的应该是前端开发的HTML/CSS/JS三种语言。
课程:
HTML5+CSS+JS全方面解析
【星月教你做网站】HTML5+CSS+JS全方面解析,附上节课回顾word文档帮助记忆,最新最全的HTML5教程—_哔哩哔哩 (゜-゜)つロ 干杯~-bilibiliwww.bilibili.com
学完这方面的内容后,你可以试着自己写一些页面。要求是尽量做的漂亮一点。
接下来,你需要学习的是Servlet/JSP(J2EE)部分,这部分是Java后端开发必须非常精通的部分,因此这部分是这三部分中最需要花精力的。
Servlet和JSP
Servlet和JSP(JAVAEE基础)【北京尚学堂·百战程序员】_哔哩哔哩 (゜-゜)つロ 干杯~-bilibiliwww.bilibili.com
还是那句话,一定要多动手。
3. 数据库使用
你需要学会使用数据库,mysql是个不错的入门选择,而且Java领域里主流的关系型数据库就是mysql。这部分一般在你学习Servlet/Jsp的时候,就会接触到的,其中的JDBC部分就是数据库相关的部分。你不仅要学会使用JDBC操作数据库,还要学会使用数据库客户端工具,比如navicat,sqlyog,二选一即可。
MySQL 基础+高级篇- 数据库 -sql -尚硅谷
https://www.bilibili.com/video/BV12b411K7Zu?from=search&seid=11418667468726396464www.bilibili.com
4、开发框架
开发过程中一般为了提高效率,会使用一些Java Web框架,而这也是你需要掌握的。
目前比较主流的是SSM框架,即spring、springmvc、mybatis。
学习这个框架,经常接触到一个叫maven的工具,这个工具也是你以后工作当中几乎是必须要使用的工具。所以在你学习搭建SSM之前,可以先了解一下maven的知识,不需要太深入,只要大概即可,进一步的学习可以边用边学。
至于学习三个框架的搭建,你一定要可以快速的利用它们三个搭建出一个Web框架。
课程:
mybatis-spring-springmvc-Java一站式学习
https://www.bilibili.com/video/BV1mE411X7yp?from=search&seid=15801924176319161348www.bilibili.com
学完之后,你可以尝试着做一个简单的增删查改的Web项目,检验学习成果。
其他编程语言的学习
作为一个程序员,不可能靠一种语言走遍天下。所以你还要拓展至少一种其他语言。
至于,精通python之后的编程语言该如何选择,首先就得看你自己的工作需要。
或者,你可以参考下面的这篇文章。
怎么学?
每个人的学习方法都不一样,有的人喜欢边做项目边学习,有的人则喜欢学一段时间做一个项目,有的人喜欢看书学,有的人喜欢看视频学,这些都不是问题,重要的是找到适合你自己的。
但下面这几点,最好还是不要去做了,因为我带了这么多人,敢这样做的都是事倍功半,结果惨不忍睹。
1.一味的对着别人的代码去敲。
刚开始不会做只有跟着别人敲,这不是问题,问题是跟着别人敲了之后你要自己理解自己记忆把它变成自己的东西。照着别人代码敲一遍两遍哪怕三遍,除了让你看得仔细点,练了打字外并没有其它任何帮助。
因为模仿复现不是关键,思考才是关键。你要能做到思考学习别人思路后,脱离书本和博客,完全自己实现功能。只有这样,你的学习才是有效的。
2.想着一口气吃成个胖子
这一块的情况稍微少见,但也不是没有,有的人急于求成,学习只学个大概只求个会用,没有做到知其然还知其所以然。
一个典型的例子,我两年前带的应届生,北京一所高校来的。当时他做的那部分出了点问题,我就推荐了一本书给他,让他看完后把这个问题解决,因为不是很急,我说一个星期搞定就行了。结果两天后,他就跑过来跟我说书看完了,问题也解决了。我问他怎么做的,他说他看了个大概后直接照着书上做了。
技术这玩意儿,不是看了个大概能照着做就会了,一口气吃不成个胖子,必须得扎扎实实地把事情做好。所以不要试图一次性解决所有问题,这里给个建议:可以将每天的学习过程拆分成小块,分阶段学习,这样的效率会更高些。
说完了第一点如何学习基础知识,接下来说说第二点如何巩固基础知识。方法千千万,最有效的我认为还是刷题,有方法的刷题。
下面这个刷题方法很普通但也很实用,推荐给你:
第一遍:可以先思考,之后看参考答案刷,结合其他人的题解刷。思考、总结并掌握本题的类型,思考方式,最优题解。
第二遍:先思考,回忆最优解法,并与之前自己写过的解答作比对,总结问题和方法。
第三遍:提升刷题速度,拿出一个题,就能够知道其考察重点,解题方法,在短时间内写出解答。
在这里,给大家推荐两本书还有一些学习网站,能够让大家学得更轻松些。
三,实操技巧
这一点专门针对题主所说的「大部分时间都在写着重复的业务代码,感觉成长很低」这一问题。
如何找项目练手:
1.做一些实操性强的个人项目,自己练练手
田纳西大学助理教授奥斯汀·亨利结合自身经验,给出了一份“程序员都应该尝试的挑战性项目”清单,包含下面六个项目,我之前做了一遍觉得还不错,推荐给大家:
- 文本编辑器
- 2D游戏-太空侵略者
- 编译器-Tiny BASIC
- 迷你操作系统
- 电子表格
- 电子游戏机模拟器
每一个项目都存在不同的挑战,比如文本编辑器就要求在不使用GUI框架中内置的文本框组件的情况下,搭建支持光标移动、选择、插入和删除操作的文本框并将文本文档存储在内存中。
如果你能解决掉这些项目中的这些问题,然后把项目独立完整的做出来并且运行成功,你的能力肯定能再上一个台阶。
2.写技术文章
大家想必都知道费曼技巧,这也是其中的一种应用了,把你自己弄懂的东西教给别人,让别人也能看懂,在这个过程中你肯定还是要把一个完整的项目给做出来的,一整套下来,你会将自己理解的东西掌握的更透彻更深入。
也算是一种不错的实操方式了,能让你的基础更加牢固。
3.接一些开发兼职
这是三种方法中实操性最强的一种了,没有之一。
而且不用说,这也是最快最有效的方法了,毕竟编程这件事,光有理论是不够的,动手实践才是关键也是最终目的。
但兼职也有很多坑很多小门道,你首先得注意项目是不是靠谱,像那种没有需求文档的就不要接了。
这里我分享一篇很实用的文章,不仅教你如何判断项目是否靠谱,还整理了国内外总计24家IT类兼职平台的特点及区别,希望能对你有所帮助。
相关推荐
- unetbootin中文版:能够将Linux系统装进U盘的U盘启动盘制作工具
-
unetbootin中文版是一款能够将Linux操作系统装进U盘或移动硬盘的U盘启动盘制作工具,制作好的U盘启动盘能够用于电脑的维护和系统还原等操作,使用起来非常地不错。该软件不会基于操作系统使用特定...
- 实用之选,实用之改:DELL 戴尔 灵越14CR-4528B 小改作业
-
昨天发布了一篇三脚架,今天有时间也写写早就准备写的DELL戴尔灵越14CR-4528B作业吧。话说上个笔记本还是2006年底买的华硕A6JE,电脑挺不错的,在家上上网也够用了,就是转轴设计缺陷,容...
- 教你如何制作一个启动U盘,从此电脑不用找专人做系统
-
在电脑使用中,老是遇到卡顿,蓝屏,重启等很多故障,大多都是因为自己日常使用习惯而造成的,很多用户在下载软件的时候不知不觉中都被安装许多乱七八糟的软件,当电脑乱七八糟的东西过多的时候我们就重新来装一个系...
- 8、Deepin操作系统启动盘(系统盘)制作
-
1、在Deepin官网https://www.deepin.org/zh/download/下载原版Deepin操作系统2、同时在Deepin官网https://www.deepin.org/zh/d...
- 电脑死机怎么办,电脑如何使用U盘重装系统
-
电脑死机是我们最常遇到的系统故障,遇到死机时通常重启就可以解决,不过系统损坏引起的死机就只能重装系统,那么电脑死机如何重装系统呢?下面来看看电脑死机怎么办如何使用U盘重装系统_小白一键重装系统官网。 ...
- bootmgr is compressed无法启动系统
-
bootmgriscompressedPressCtrlAltDeltorestart,电脑启动后无法正常开机出现了这样的字样,就是说明你的C盘驱动被压缩解决方法:1、使用系统光盘或者...
- 新手教程!如何分辨BIOS启动列表(菜单)中的各种启动项
-
在BIOS启动菜单中识别各类启动项,是新手安装系统或调整启动顺序的必备技能。下面用最直观的方式,为你梳理常见启动项及其含义,帮助你快速上手:一、传统存储设备启动项1.Floppy(软盘驱动器)对应...
- 带回家的MINI客厅电脑,自学成才,分享U盘装系统教程
-
刚好老家新装修了房子,客厅买了个大电视,本来是想在客厅弄台主机,接电视玩,大屏幕玩的才爽,但是台式机箱太占地方了。网上逛了一圈,发现有专门的客厅电脑,就搞了一个,外形不错,放客厅很有档次,主要是主机太...
- 电脑基础知识:BIOS简介及其与Windows操作系统的关系
-
什么是BIOS?BIOS,全称BasicInputOutputSystem,即“基本输入输出系统”,是一段固化在电脑主板芯片上的底层固件程序。它类似于一款极简化的操作系统,负责电脑开机时的硬件初...
- win 7 系统注册表文件丢失或损坏,求不重做系统的解决办法!
-
粉丝问题解答:win7系统注册表文件丢失或损坏,求不重做系统的解决办法!解决方法:你只需要有启动盘即可,不需要其他的。之所以要求启动盘,是因为下面要对系统文件进行还原覆盖,所以不能用原系统启动。用...
- UEFI怎么装Win7 小编呕血解难点!
-
自从广开言路之后,小编就被你们害苦了,这不,一条评论又让小编彻夜难眠。另外某些小伙伴坐不上沙发后提出要上墙的需求,其实呢只要大家提出的问题具有普遍性、有难度、而且适合小编做微信内容的话,都有机会将你们...
- 固态攻坚战——ASUS 华硕k45v换固态、拆机清灰教程
-
作者:蘑菇爱上我现在固态白菜价固态对于电脑体验的提升还是很大的对于固态存储芯片的问题没什么好说的有钱mlc,没钱tlc,不需要考虑什么寿命的问题,我用了一年多的m600,写入才3TB品牌很重要,主控...
- MBR启动报错?Win10不重装一样能好!
-
Win10一遇到启动故障,很多小伙伴可能就会抓瞎,这可怎么弄,我不会修复啊!其实大可不必惊慌,就像这种最常见的Winload启动错误,多半都是MBR分区表丢失造成的(UEFI分区模式的几乎没有这种故障...
- 从零开始:硬盘手动装系统全攻略
-
手动安装操作系统是计算机技术必备的基本技能。对于初学者来说,可能会感到有些挑战。但通过掌握硬盘手动装系统方法,你可以亲身体验整个安装过程,进而更好地理解操作系统的工作原理。本文将详细介绍硬盘手动装系统...
- 电脑开机后显示File:BCD错误0xc000000f
-
WIN7\WIN8\WIN101、一个win864位PE。这个64位PE的相关文件,路径在boot\BOOT.WIM实机测试,开机后显示File:\EFI\Microsoft\Boot\BCD,...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- 如何绘制折线图 (52)
- javaabstract (48)
- 新浪微博头像 (53)
- grub4dos (66)
- s扫描器 (51)
- httpfile dll (48)
- ps实例教程 (55)
- taskmgr (51)
- s spline (61)
- vnc远程控制 (47)
- 数据丢失 (47)
- wbem (57)
- flac文件 (72)
- 网页制作基础教程 (53)
- 镜像文件刻录 (61)
- ug5 0软件免费下载 (78)
- debian下载 (53)
- ubuntu10 04 (60)
- web qq登录 (59)
- 笔记本变成无线路由 (52)
- flash player 11 4 (50)
- 右键菜单清理 (78)
- cuteftp 注册码 (57)
- ospf协议 (53)
- ms17 010 下载 (60)