249 个回答
现在很晚了,但是看到这个问题还是比较有感触的。一年前,我大三上学期,创业失败,想转行做技术。那时候我对Java刚刚了解这几个英语单词。 自己买了本Java从入门到精通。以为可以很快的学完,非CS专业。
现在我想说所有系列的从入门到精通都是垃圾,一年多来,我每天白天看视频,晚上敲代码到凌晨,我是一个很倔的人,我认为天下没有任何东西是人类学不会的,所以我就付出高三一样的时间去学习。最开始学习Java SE,看着控制台打印出第一行Hello world的欣喜,到后面学习打印二维数组算法菱形的恐慌,再到后面学习Java Swing的有趣,再到后面自己开发几款小游戏。
这其中有苦有累,总之就是很孤独,我从学校搬到了外面的小区,每天从事着自己喜欢的事情,一直到2018年1月3号,正式入职。是一个初创公司的后端主要负责人。一共收到4个offer。投了10多家。
这是这一年来我看的一些书籍。
刚开始的学习十分盲目,不知道如何去学习,看到一个东西觉得有趣就去研究,结果最后没有系统性的学习,还浪费了大量的时间。
现在我觉得如果你要学习Java技术可以先自学一段时间,看自己合不合适,但是一定要坚持,因为既然选择了IT,就要养成终生学习的习惯。下面是我觉得你作为初级Java工程师应该掌握的技术。
1.Java SE部分 初级语法,面向对象,异常,IO流,多线程,Java Swing,JDBC,泛型,注解,反射等。
2.数据库部分,基础的sql语句,sql语句调优,索引,数据库引擎,存储过程,触发器,事务等。
3. 前端部分, HTML5 CSS3 JS(和Java一样复杂,会使用就行), HTML DOM Jquery BootStrap等。
4. Java EE部分,Tomcat和Nginx服务器搭建,配置文件,Servlet,JSP,Filter,Listener,http协议,MVC等。
5. 框架部分,每个框架都可以分开学,在去学如何使用SSM 或者SSH框架,如何搭建,如何整合。开发中为什么会用框架,Rest是啥?Spring为啥经久不衰,底层如何实现等。
6.23种设计模式,掌握常用的,比如单例模式的多种实现,责任链模式,工厂模式,装饰器模式等,了解常用场景。
7. 基础算法和数据结构,八大排序算法,查找算法。(面试会问)
8. (不做硬性要求) 熟练使用maven等构建工具,git等版本控制工具,熟悉常用linux命令,log4j,dubug,junit单元测试,日志打印工具,Redis等NoSql。
9,也是最重要的一条,对待Java要时刻充满激情!
太晚了,今晚该休息了,全是手打的。明天在继续码字吧。晚安,希望对你能够有所帮助!
昨天晚上叫轮子哥帮我点赞,一觉醒来50多个赞了。20多条评论。看来大V还是有用的。
其实这也是我一直想说的,学习Java以来我就和轮子哥保持着沟通,希望向轮子哥多多学习,现在也算是朋友了。学习的过程也许是痛苦的,但是过程中认识的朋友以及结果都是令人很开心的。
评论里面有说推荐书籍的。说实话,国内国外的书籍真是一大堆。但是很经典的也就那么一些。大家都知道。
2018年12月1日,首先谢谢大家的赞。之前自称架构师有点儿吹牛吹大了。现在跳槽到一家中型公司。发现懂得越多越觉得自己无知。在技术这片浩瀚的宇宙里面翱翔,有兴趣会觉得这是一件多多爽的事情。希望大家能够努力学习,然后找到一份自己满意的工作。你我共勉
2022年我又来更新了,现在入职阿里巴巴了。希望大家加油。
这里说说我学习Java的使用的几个网站吧:
How2J 的 Java教程 (有完整的流程和章节,最主要都是免费的)
Build software better, together (可以多看看别人的源码)
SegmentFault (有任何问题可以去上面提问)
Stack Overflow - Where Developers Learn, Share, & Build Careers (你的很多问题都可以在上面找到答案)
CSDN-专业IT技术社区 (有很多书籍,软件资源)
- 我的个人博客网站
只要你能从零把一个项目搭建起来,能运行在服务器上。用上的技术还不烂,那我认为就可以找到Java的工作了。
对应的技术栈大概就是:
- SSM(SpringBoot)
- Redis
- MySQL
找到一份Java的工作不难,但要找到一份好的工作可能就没那么简单了。如果是在校的学生,还是得参加 校招 (一定一定一定)
其他的也没什么好说的,推荐一下我自己的学习经历和博客吧,希望对后面看到这个回答的人有所帮助:
☕️Java基础
- 2018年如何快速学Java
- 泛型就这么简单
- 注解就这么简单
- Druid数据库连接池就是这么简单
- Object对象你真理解了吗?
- JDK10都发布了,nio你了解多少?
- COW奶牛!Copy On Write机制了解一下
- 给女朋友讲解什么是Optional【JDK 8特性】
- 还在用Synchronized?Atomic你了解不?
- 《阿里巴巴 Java开发手册》读后感
- JVM如何从入门到放弃的?
- 记一次愚蠢的操作--String不可变性
- 记一次愚蠢的操作--线程安全问题
- 最近学到的前后端分离知识
- 小白入门学习打日志
- Java发送邮件时,必须要的一个配置!
- 最近学到的限流知识
- 最近学到的Lambda表达式基础知识
- 手把手带你体验Stream流
- 最近学到的「短链接」知识
- 最近我学到的ABTest知识
- 手把手教你怎么使用云服务器
- 带你了解什么是Push消息推送
- 如何写一篇技术文章,谈谈我的看法
- 人在家中坐,班从天上来「小程序推送」
-
fastjson学习笔记
Java容器
- 【新手向】如何学习Java集合
- Collection总览
- List集合就这么简单【源码剖析】
- Map集合、散列表、红黑树介绍
- HashMap就是这么简单【源码剖析】
- LinkedHashMap就这么简单【源码剖析】
- TreeMap就这么简单【源码剖析】
- ConcurrentHashMap基于JDK1.8源码剖析
- Set集合就这么简单!
- Java集合总结【面试题+脑图】,将知识点一网打尽!
-
CopyOnWriteArrayList你都不知道,怎么拿offer?
多线程
- ThreadLocal就是这么简单
- 多线程三分钟就可以入个门了!
- Thread源码剖析
- 多线程基础必要知识点!看了学习多线程事半功倍
- Java锁机制了解一下
- AQS简简单单过一遍
- Lock锁子类了解一下
- 线程池你真不来了解一下吗?
- 多线程之死锁就是这么简单
- Java多线程打辅助的三个小伙子
- 还在用Synchronized?Atomic你了解不?
设计模式
HTTP+JSON+XML
Servlet+Tomcat
- Tomcat就是这么简单
- Servlet第一篇【介绍Servlet、HTTP协议、WEB目录结构、编写入门Servlet程序、Servlet生命周期】
- Servlet第二篇【Servlet调用图、Servlet细节、ServletConfig、ServletContext】
- Servlet第三篇【request和response简介、response的常见应用】
- Servlet第四篇【request对象常用方法、应用】
- Servlet第五篇【介绍会话技术、Cookie的API、详解、应用】
- Servlet第六篇【Session介绍、API、生命周期、应用、与Cookie区别】
-
Tomcat+Servlet面试题都在这里
JSP(了解即可)
- JSP第一篇【JSP介绍、工作原理、生命周期、语法、指令、行为】
- JSP第二篇【内置对象的介绍、4种属性范围、应用场景】
- JSP第三篇【JavaBean的介绍、JSP的行为--JavaBean】
- JSP第四篇【EL表达式介绍、获取各类数据、11个内置对象、执行运算、回显数据、自定义函数、fn方法库】
- JSP第五篇【JSTL的介绍、core标签库、fn方法库、fmt标签库】
- JSP第六篇【自定义标签之传统标签】
- JSP第七篇【简单标签、应用、DynamicAttribute接口】
- JSP面试题都在这里
监听器和过滤器
- 过滤器第一篇【介绍、入门、简单应用】
- 过滤器第二篇【编码、敏感词、压缩、转义过滤器】
- 监听器第一篇【基本概念、Servlet各个监听器】
- 监听器第二篇【统计网站人数、自定义session扫描器、踢人小案例】
- 过滤器监听器面试题都在这里
数据库
- 在工作中常用到的SQL
- 数据库面试题(开发者必看)
- 数据库两大神器【索引和锁】
- 面试前必须知道的MySQL命令【expalin】
- 数据库原理
- Oracle总结【SQL细节、多表查询、分组查询、分页】
- Oracle总结【视图、索引、事务、用户权限、批量操作】
- Oracle总结【PLSQL学习】
- Mysql免安装配置教程(图文版)
- Oracle11安装和卸载教程
- SqlServer安装和连接JDBC资料
JDBC
- JDBC【介绍JDBC、使用JDBC连接数据库、简单的工具类】
- JDBC【PreparedStatment、批处理、处理二进制、自动主键、调用存储过程、函数】
- JDBC【事务、元数据、改造JDBC工具类】
- JDBC【数据库连接池、DbUtils框架、分页】
-
JDBC面试题都在这里
AJAX
JavaWeb小项目
- 【JavaWeb基础】文件上传和下载
- 【JavaWeb基础】Web开发模式
- 【JavaWeb基础】JDBC用户登录注册
- 【JavaWeb基础】购物车案例
- 【JavaWeb基础】客户关系管理系统
- 【JavaWeb基础】权限管理系统
- 【JavaWeb基础】图书管理系统【部署开发环境、解决分类、图书、前台页面模块】
- 【JavaWeb基础】图书管理系统【用户、购买、订单模块、添加权限】
- 【JavaWeb基础】图书管理系统总结
工具使用
- 花了一天整理了一些我常用的工具
- 拿到一台新的Windows电脑,我会做什么?
- 为什么需要Docker?
- Docker入门为什么可以这么简单?
- 聊聊Docker镜像
- Java精美思维导图
- 程序员可以选择哪些平台写技术博客?
- IDEA使用总结
- Maven就是这么简单
- SVN就是这么简单
- UML就是这么简单
-
设置Windows默认中文、Putty掉线解决、SublimeText3常用设置
Hibernate
- Hibernate入门这一篇就够了
- Hibernate【映射】知识要点
- Hibernate【映射】续篇
- Hibernate【inverse和cascade属性】知识要点
- Hibernate【查询详解、连接池、逆向工程】
- Hibernate【缓存】知识要点
- Hibernate【与Spring整合】
-
Hibernate面试题大全
Struts2(可不学)
- Struts2【入门】
- Struts2【配置】
- Struts2【开发Action】
- Struts2【拦截器】
- Struts2【UI标签、数据回显、资源国际化】
- Struts2【OGNL、ValueStack】
-
Struts2【整合Spring】
Mybatis
Spring
- Spring入门这一篇就够了
- Spring【依赖注入】就是这么简单
- Spring【AOP模块】就这么简单
- Spring【DAO模块】知识要点
- SpringMVC入门就这么简单
- SpringMVC【开发Controller】详解
- SpringMVC【参数绑定、数据回显、文件上传】
- SpringMVC【校验器、统一处理异常、RESTful、拦截器】
- SpringBoot就是这么简单
- SpringData JPA就是这么简单
- Spring IOC知识点一网打尽!
- Spring AOP就是这么简单啦
- 外行人都能看懂的SpringCloud,错过了血亏!
- SpringBoot自动配置原理!
- 一文带你看懂Spring事务!
- Synchronized锁在Spring事务管理下,为啥还线程不安全?
- 带你搭一个SpringBoot+SpringData JPA的Demo
- 【极简版】SpringBoot+SpringData JPA 管理系统
- 外行人都能看懂的WebFlux,错过了血亏
-
WebFlux学习时常见的问题
SSM
- SSM【史上最详细整合】
- Java高并发秒杀系统【观后总结】
- 阅读SSM项目之scm
- 移动商城第一篇【搭建项目环境+数据模型】
- 移动商城第二篇(品牌管理模块)【文件上传、数据校验、CRUD】
- 移动商城第三篇(商品管理)【查询商品、添加商品】
- 移动商城第四篇(商品管理)【添加商品续篇、商品审核和上下架、前台展示、后台筛选】
- 移动商城第五篇(用户模块)【用户登陆、回显用户、拦截器、收货地址】
- 移动商城第六篇【单品查询、静态化页面】
- 移动商城第七篇【购物车增删改查、提交订单】
- 移动商城项目总结
- 从零开始写项目第一篇【搭建环境】
- 从零开始写项目第二篇【登陆注册、聊天、收藏夹模块】
- 从零开始写项目第三篇【在线聊天和个人收藏夹】
- 从零开始写项目第四篇【搭建Linux环境】
- 从零开始写项目第五篇【评论功能、备忘录】
- 从零开始写项目终极【维护网站、修复Bug】
- 从零开始写项目【总结】
- 带你搭一个SpringBoot+SpringData JPA的Demo
-
【极简版】SpringBoot+SpringData JPA 管理系统
SSH
- SSH【史上最详细整合】
- 【SSH测试整合Demo】企业人事管理系统
- 阅读SSH项目之ERP
- 纳税服务系统一(用户模块)【简单增删改查、日期组件、上传和修改头像】
- 纳税服务系统二(用户模块)【POI、用户唯一性校验】
- 纳税服务系统三(优化处理)【异常处理、抽取BaseAction】
- 纳税服务系统四(角色模块)【角色与权限、角色与用户】
- 纳税服务系统五(登陆与系统拦截)【配置系统、子系统首页、登陆与拦截】
- 纳税服务系统六(信息发布管理模块)【Ueditor、异步信息交互、抽取BaseService、条件查询、分页】
- 纳税服务系统七(投诉管理模块)【显示投诉信息、处理回复、我要投诉、Quartz自动受理、统计图FusionCharts】
- 纳税服务系统总结
数据结构与算法
- 冒泡排序就这么简单
- 选择排序就这么简单
- 插入排序就这么简单
- 递归就这么简单
- 快速排序就这么简单
- 归并排序就这么简单
- 二叉树就这么简单
- 堆排序就这么简单
- 希尔排序就这么简单
- 基数排序就这么简单
- 八大基础排序总结
- Java实现单向链表
- 栈和队列就是这么简单
- 十道简单算法题
- 十道算法题【二】
Java EE常用框架
- WebService就是这么简单
- Lucene就是这么简单
- Activiti就是这么简单
- SpringBoot就是这么简单
- SpringData JPA就是这么简单
- Shiro入门这篇就够了【Shiro的基础知识、回顾URL拦截】
- Shiro第二篇【授权、整合Spirng、过滤器】
- Shiro第三篇【授权过滤器、与ehcache整合、验证码、记住我】
- Elasticsearch就是这么简单
- Druid数据库连接池就是这么简单
- 外行人都能看懂的SpringCloud,错过了血亏!
- 什么是单点登录(SSO)
- 带你搭一个SpringBoot+SpringData JPA的Demo
-
【极简版】SpringBoot+SpringData JPA 管理系统
Redis
面试
ZooKeeper
消息队列
分布式
TensorFlow
- 外行人都能看得懂的机器学习,错过了血亏!
- 从零开始学TensorFlow【01-搭建环境、HelloWorld篇】
- 从零开始学TensorFlow【什么是TensorFlow?】
- TensorFlow读写数据
- 如何理解axis?
- 什么是TensorBoard?
Web前端
- 最近学到的前后端分离知识
- Javascript面向对象入门
- DOM编程
- Jquery就是这么简单
- WebSocket就是这么简单
- 常用的CSS框架
- JsChart组件使用
-
浅谈CDN、SEO、XSS、CSRF
Linux
操作系统
计算机网络
个人
- 广州三本找Java实习经历
- 两个月的Java实习结束,继续努力
- 【Java】广州三本秋招之路
- 写博客的一些感想和想对读者说的话
- 2018再见,2019你好
- 过年了,给亲朋好友解释「啥是程序员」
- 嗯,我来杭州了。
- 近况
- 什么是保险
- 在公司做的项目和自己在学校做的有什么区别?
- 互联网/电商/广告常见的术语
- 程序员的快乐就是这么朴素无华且枯燥
- 我和我的公众号
-
如何写一篇技术文章,谈谈我的看法
涵盖Java后端所有知识点的开源项目(已有5.8K star): https:// github.com/ZhongFuCheng 3y/3y
如果大家想要 实时 关注我更新的文章以及分享的干货的话,微信搜索 Java3y
PDF文档的内容 均为手打 ,有任何的不懂都可以直接 来问我 (公众号有我的联系方式)。