分享开发前辈多年总结——Java程序员的学习心得。

面试了阿里,滴滴,网易,蚂蚁,最终有幸去了网易【面试题分享 前言 15年毕业到现在也近三年了,最近面试了阿里集团(菜鸟网络,蚂蚁金服),网易,滴滴,点我达,最终收到点我达,网易offer,蚂蚁金服二面挂掉,菜鸟网络一个月了还在流程中… 最终有幸去了网易。 但是要特别感谢点我达的领导及HR,真的非常非常好,很感谢他们一直的关照和指导。 面试整体事项 简历要准备好,联系方式一定要正确清晰醒目,项目经历按照时间倒序阐述,注意描述自己在项目中承担的职责,简历的模板尽量选择简洁的,毕竟程序员大部分还是喜欢简单明了的。 推荐boss直聘,我觉得很好用(不是广告)。 一般的整 阅读详情

这篇文章总结于我们公司十三位使用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

计算机专业学什么语言好找工作? - 知乎

了解完了一门语言可能的职业发展方向之后,你就可以根据你的个人喜好以及当下情况,选择不同的方向钻研。

如果你决定选 Java 的话,可以先看看我整理的这份 java学习手册,里面涵盖了 Java 所有的知识点,包括 Java 语法、Java 集合框架、Java IO、Java 并发编程和 Java 虚拟机,内容不多,只讲重点。

因为你的人生是你自己的,没办法帮你选择。所以第一步,我只能帮你到这里了。

二.学习规划

通过上面的分析,你可以看到,不管你走哪条道路,你都不能只会一门编程语言,也就是说「真正的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开发,如果在学习Java的过程当中有遇见任何关于学习方法,学习路线等方面的问题,你都可以点击  加入 Java技术讨论组,这里面聚集了很多正在学习Java技术的初学者,也有不少从事Java开发岗的大佬,与Java相关的问题都可以随时发出来讨论。文件夹整理了最新的Java基础精讲视频教程以及我做Java技术这段时间整理的一些学习手册。

 

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

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

 

 

四千字干货 - 十三位Java工程师的学习心得 史上最强Java学习,多亏我足够无耻,才从公司十三位Java程序员口中问出方法来。 阅读详情

相关推荐

电机控制必看!SVPWM谐波优化:5段式与7段式参数对比测试

本文通过实测数据,对比分析了电机控制中5段式与7段式SVPWM控制算法的谐波性能。实验表明,7段式SVPWM在电流波形质量(THD)和低速性能上更优,而5段式SVPWM则在开关损耗和效率方面表现突出。文章为工程师在不同应用场景(如对噪音、效率或动态响应的侧重)下的算法选型提供了清晰的依据和实用的工程指南。

weixin_28331555的博客 147

Java技术开发实战分享

了解 Java 基础语法、Web 开发、数据库编程以及高级技术,对于想要成为一名优秀的 Java 开发者来说是非常重要的。1. Java语法及其基础知识: Java 语言基础语法及数据类型、运算符、流控制语句等基础知识。2. Java虚拟机: Java 虚拟机的结构、运行时数据区域、垃圾回收算法等相关知识。1. 多线程编程: Java 中的多线程概念、生命周期、同步与互斥、线程池等相关知识。2. 面向对象编程思想: 类、对象、封装、继承、多态等概念。二、Java Web开发。一、Java基础知识。

2301_77127566的博客 1716

YOLO26涨点改进 | 网首发Conv独家改进篇 | CVPR 2025 | 引入GCConv卷积改进YOLO26,含GCC3k2二次创新,能够捕捉更加丰富和复杂的特征信息,助力高效涨点

本文提出了一种基于GCConv模块的YOLO26目标检测模型改进方案。GCConv模块通过多路径结构增强特征学习能力,在训练阶段采用垂直多卷积和水平多路径配置,推理时重参数化为单一3x3卷积,显著提升推理速度而不损失性能。实验表明,该模块在复杂场景和多尺度目标检测任务中表现优异,特别适合资源受限的实时应用场景。文章详细介绍了GCConv的网络结构、核心代码实现、YAML配置文件修改方法,并提供了两种改进方案(GCConv和GCC3k2)的具体配置指导。

Ai缝合怪、助力小伙伴高效发论文 259

BAML结构化提示:用强类型编程思维驯服AI幻觉,打造可靠企业级应用

在人工智能工程实践中,提示工程是连接人类意图与大语言模型的关键技术。其核心原理是通过精心设计的自然语言指令,引导模型生成符合预期的输出。然而,依赖非结构化自然语言的传统提示方法存在固有缺陷,如指令模糊、输出不确定,容易导致模型产生“幻觉”——即生成看似合理但实则错误或虚构的信息,这严重制约了AI技术在关键业务场景中的技术价值。为解决此问题,业界提出了结构化提示的工程范式,它借鉴了软件开发中的强类型与接口契约思想,将AI交互定义为输入输出结构明确的函数。这种方法通过预定义严格的输出模式(如JSON Schem

weixin_30470643的博客 695

学习Java的一些技术心得

作为一名Java学习之旅的同行者,我在这里分享我的学习心得和实战经验。无论您是初学者还是希望提高技能的开发者,我都希望这些内容能为您带来价值。如有任何疑问或建议,请随时留言交流我们在学习Java的时候,肯定是先来认识一下什么叫Java,它是干什么用的Java,自1995年由Sun Microsystems推出以来,已成为球最受欢迎的编程语言之一。其’一次编写,到处运行’的理念,使得Java应用程序能够在任何支持Java虚拟机(JVM)的平台上无缝运行。

2302_80728797的博客 1175

工作完三年后,分享分享Java后端开发的一些心得

方法名的定义很令人苦恼, 常常思前想后想不到好名字. 我曾经因为方法命名不好, 被疯狂的comments言简意赅 准确表达方法内容方法名与方法内容匹配尽量别生僻单词...对于方法的参数, 参数过多的时候, 对方法进行拆解或者抽象出对象去传参:java复制代码。

wdj_yyds的博客 2134

java学习分享

本文是为了秋招准备,主要以点和面的形式进行复习。(小知识用点,多一点的将以面的形式展示)。

qq_36309174的博客 1267

自学 9个月 Java 找到了一份 12K 的工作,前辈的方式值得分享给大伙

我有一个前辈跟我讲述他的经过,他前几年 4月份才开始正式学习 Java 的,之前在一家公司工作了 2年,底薪一个月也不到 4000 块,日子过得很艰苦,毕竟是在杭州州的房贷压力也大,公司就那么大,除非领导离职或者退休,不然根本看不到晋升的希望。他刚 24岁,正属于青春年华,我就劝他不如改学 Java,他之前学 前端的,虽然个人方面做项目很快,但发展前景确实不怎么乐观。我身边很多朋友都在大城市做 Java 开发,差不多能拿到 1到 2.5万的月薪,他听了非常羡慕,感觉超出了他的认知范围,就下定决心...

m0_59595915的博客 1333

零基础该怎么学java学习心得分享

  发展了20多年学习java的人络绎不绝。不管是有计算机基础还是没有基础,都想学习这门前途无量的技术。这时候有人担心了,零基础该怎么学java呢?会不会困难重重啊?Java学习心得分享,助你早日学成就业!   1. 学习之路,不走弯路,就是捷径   软件开发之路是充满荆棘与挑战之路,也是充满希望之路。Java学习也是如此,没有捷径可走。所有的人都期盼成功,但是并不是每个人都会为走向 成功力以赴。人们在渴望成功的同时,也渴望能够少一分努力,多一分收获。而事实上要获取真正的成功,每个人都必须经历艰

IT_studied的博客 331

想要成为一个优秀的Java程序员,先来看看前辈们是怎么做的

软件蚕食一切,未来属于程序员。所以人人都想当程序员。但是并不是每个人都能当好程序员。在你做出决定前还是先看看自己能不能当好程序员吧。要记住的是,编程不是什么精英才能干的事情。这个行业永远都缺人。所以除非你一点都不喜欢编程,或者也没有准备好看在钱的份上忍住这种不喜欢,否则都可以来编程。 上篇文章我们说过新手总说普遍会出现的问题,那么这篇小编总结了公司几个优秀程序员同事他们的特点,给大家聊...

java276582434的博客 562

java程序员求职个人简历,请各位前辈指导

即将毕业实习,想找份java程序员的工作,不知道简历做得如何,还望各位前辈提提意见。在这里感激不尽拉。                                                                                                                   个人简历 ############################...

weileihang的专栏 986

Java技术咖传授学习心得Java学习的5个方法

Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言Java 技术具有卓越的通用性、高效性、平台移植性和安性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有球最大的开发者专业社群。 Java是一种简单的,跨平台的,面向对象的,分布式的,解释的,健壮的安的,结构的中立的,可移植的,性能很优异的多线程的,动态的语言Java编程学习方法有哪些呢?下面和小编一起来看看吧! 01、零基础入门,先易后难循序渐进 如果你完是个外行,只懂得电脑的一般操作和OFFICE

tangyu9880的博客 564

五年程序员人生的点点滴滴

和大家一样,我也是一名普通的程序员,很快工作五年了。现在依然记得大学时软件工程师曾说过的一句话,大概是这样的:“工作五年之后,就基本可以分出大家的区别了”,这句话大概有两层意思,第一,大家都基本确定了自己的工作或职业方向;第二,一个人的能力如何基本已经确定了。先抛开这句话的真理性,至少它本身是有些道理的,当然随着时间的迁移,当初的五年时间对于现在可能已经不太准确了。但这句话一直陪伴着我,每过一段

编程小丫 1万+

众智动力java_Java 程序员转 Android 开发有哪些经验可以分享

该楼层疑似违规已被系统折叠隐藏此楼查看此楼1、如何『转』的问题。其实Java程序员要自学Android开发的基础知识还是没什么难度的。毕竟语言相通,特性相似,阅读Android源代码的门槛也变得很低。另外作为一个有工作经验的合格程序员,自学能力和相关的基础知识都应该不是问题,学Android都会相对轻松很多。所以,Java程序员转做Android可以看成是一次『增量更新』,只需要学习一下Andr...

weixin_42451850的博客 188

java程序员看什么书籍比较好?(小白升级路线)

最近秋招完之后想静下心好好沉淀下java的知识,因为总是感觉有好多基础知识总是掌握的不太熟,然后就开始看以前买来的书籍,作为一个已经学习了两年java的初级程序员,在学习的过程中真的是走了好多弯路,个人感觉学习java或者说是任何的编程语言,入门到熟练的最快捷径就是多看书,看好书,当然这些书籍要有相应的阅读路线,如果刚开始就看比较有深度的书籍,自信心受到打击,那学习的欲望可能就会不强,所以我推荐...

Hello什么来着? 995

初级JAVA程序员感悟分享

作为一名初级的JAVA程序员,技术能力有限,就不在各位前辈面前班门弄斧,卖弄技术了。这篇博客仅是我对自己职业道路的一次

LoSer_Y的博客 1037

哪位前辈去过华为面试java软件开发职位进来聊一聊!

哪位前辈去过华为面试java软件开发职位进来聊一聊!小弟刚刚毕业还没面试经验,最近接到面试华为的接入网网管软件开发的信息,不知道如何准备?是否有前辈面试过,能否指点指点!...

romholl 879

Java大牛传授学习心得Java学习的5个方法

Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言Java 技术具有卓越的通用性、高效性、平台移植性和安性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有球最大的开发者专业社群。 Java是一种简单的,跨平台的,面向对象的,分布式的,解释的,健壮的安的,结构的中立的,可移植的,性能很优异的多线程的,动态的语言Java编程学习方法有哪些呢?下面和千锋广州小编一起来看看吧! 01、零基础入门,先易后难循序渐进 如果你完是个外行,只懂得电脑的一般操作和OFF

weixin_43703144的博客 226

九年Java 鸟,写给 1-5 年程序员的几点建议,满满硬货指导

从 13年毕业到现在也从业九年了,普通本科毕业,现在一家互联网公司担任 Java 部门总监,摸爬打滚,坑坑洼洼也经历了不少。思绪很久决定还是写下这篇,希望对后进的小伙子少走一点弯路。   很多人把职场想得太美好,其实不然。如果你没有规划好,你就会难免遇到各种各样的问题:工作不开心;没有前进的动力;工作不是自己想像的那么好;自己的才能无法发挥;看到以前的同学待遇如何如何,便受不了刺激,急切地想跳槽;当初为了生存而找的工作,根本就不适合自己……   这些问题通常会在步入职场的 1-3 年之内最明显(3 年之

Java大将军的博客 2772

一名资深前辈开发到自由职业:优缺点及个人经验分享

在固定薪水的工作中也有这种情况,但大多数时候你总是处理同样的项目,不断在现有的基础上构建新功能和维护项目。而作为自由职业者,最酷的事情是你可以从一个项目跳到另一个项目,看到不同的事物。我认为你在新项目中学习最多的是在开始的第一个月,那时你的学习曲线是最陡峭的,之后你仍会学习,但不会那么多,曲线会逐渐变平。让我对自由职业感到不安的是,我必须不断寻找下一个工作机会,不知道它会从哪里来,可能会有一段时间我没有工作。但我特别在寻找不是为了构建下一个大项目,而是维护遗留项目的工作,这类项目相对更难找。

喵喵分享师 688

合肥市建筑物矢量数据(Shp格式+带高度).txt

因文件较多,数据存放网盘,txt文件内包含下载链接及提取码,永久有效。失效会第一时间进行补充。

上一篇: sql查询速度太慢怎么优化
下一篇: JavaSE学习总结——Java基础
youngpeople_
博客等级 码龄5年 16粉丝 90原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值