阅读本文需要5分钟
1).net、py、javascript、c/c++ 。
1)为了当程序员?、高级测试?、黑客?、大数据?、???、主要目标、次要目标。
1)几十块:
百度自学+购买少量书籍 效果1
2)几百块:
购买书或者电子书,或者视频教程 效果3
请一个老司机帮你分析思路以及线上指导 效果4
3)几千块:
请老司机线下指导你 效果5
购买专业成体系的视频教程以及专人服务或者辅导 效果6
4)1-5w:
业务时间线下学习 效果7
脱产学习 效果8
1)每天8小时
2)每天3-4小时
3)每天1小时
4)每周一天
1)能坚持超过30天么?
2)计算机基础
1)对于编程难度的认知
2)对于能否坚持的正确认知
3)对于学习完使用场景的认知
4)对于学习完能记住多少的正确认知
1)乐观目标:
达到业界1-2年左右比较优秀开发水平???能够独立搭建框架。增删改查等
2)悲观目标:
需要高度能够依赖百度,朋友的帮助等一系列才能完成简单需求
3)标准差:
能够独立写出一些小程序,少部分需要百度
1)主要目标完成度
2)同你的次要目标完成度
3)失败利益:
基本达到科普级别
4)失败挽回方案:
1失败是正常的事情,准备好了勇气再来一轮或者二轮学习了么
2心态崩溃自救方案
3失败时间成本经济成本认知
1)Windows操作、微软office等
1)帮助整理学习成果
1)帮助记录重点
1)快速学习知识点
1)帮助自己强化兴趣
1)又贵又帅气性能又牛逼的笔记本:培养极客文化让自己进入准程序员思维
2)性价比较高的性能优越的电脑:牛逼的电脑让你事半功倍
3)白菜价笔记本:卡顿会影响心情
4)老爷机:极度的卡顿严重影响学习心情
1)键盘
1樱桃高端机械键盘:加强程序员认同感
2雷蛇黑寡妇光污染键盘:炫酷的黑客感觉
3 10块钱的键盘:写不出来可以随意折磨,发泄怨气
4 无所谓那。。好看就行
2)鼠标
1)从互联网的各种驱动收集所需的信息,并摒弃不需要的信息
1)任何领域至少需要200小时才能达到精通的水平
1)每本书每个人的思路不一样,哪怕有不好的地方,一定要坚持按照一种思路去学习,不要半路换,不然很容易失去乐趣或者放弃。
举例:
1) abstract、boolean、break、byte、case、catch、char、class、const、continue、default、do、double、else、enum、extends、final、finally、float、for、if、implements、import、instanceof、int、interface、long、native、new、package、private、protected、public、return、strictfp、short、static、super、switch、synchronized 、this、throw、throws、transient、try、void、volatile、while
2) class类的编写,引用,函数的编写,调用,函数的参数,函数的返回值。重载,重写,继承,实现,接口,类,抽象类,数组,多维数组。
3) 面向对象:
类与对象、构造方法、封装、继承、多态、抽象类、接口、默认方法
4)常用类:
1 Object:各个数据类型的包装类
2 String,Stringbuffer,Stringbuilder:String的各种处理技巧和思路(字符串查找替换筛选、正序倒序、String问题比较,创建了几个对象问题、Java8新方法)
3 Math
4 时间处理:
经典时间模型:
1 java.util.Date
2 java.sql.Date
3 java.sql.Time java.sql.Timestamp
4 java.text.SimpleDateFormat
5 java.util.Calendar
时钟:
1 System.currentTimeInMillis()
2 TimeZone.getDefault()
提升(经典时间模型):
1 格式化时间
2 时间对比
3 时区转换
4 求闰年,对比时间间隔等
Java8新时间API:
1 处理不用的时区
2检查闰年,检查固定日期
3时间间隔
4线程安全的日期与时间格式器
5 LocalDate,LocalTime,LocalDateTime,ZonedDateTime
5) 数组,多维数组
6)编码规范
1) 阅读并试图模仿相关编码思路
2 )解决一些经典编程问题,打印正反三角形,求质数,水仙花等 (部分题目难度较高,实在做不出来就先背答案,然后做别的)
1)看书
2)百度面试题算法题
3)lecode刷题
4)让别人给你题
1)if else
2)switch
3)while
4)do while
5)for
6)三元表达式
1 )看到任何物品思考该对象的属性和方法
2 )猜测多个对象之间的关系
1)5W1H:
why:为什么要用,是原因
what:用来做什么
where:(同样功能的不同技术)什么场景下用
when:何时用
who:谁(哪类人)来用
how:怎么用
1)原则尽可能多记住
2)设计模式佛系
1)设计模式的6大原则:
1开闭原则
2单一职责
3里氏替换原则
4依赖倒转原则
5接口隔离原则
6迪米特法则
7合成复用原则
2)23种设计模式:
创建型模式,共五种:
1工厂方法模式
2抽象工厂模式
3单利模式
4建造者模式
5原型模式
结构型模式,共七种:
1适配器模式
2装饰器模式
3代理模式
4外观模式
5桥接模式
6组合模式
7享元模式
行为型模式,共十一种
1策略模式
2模板方法模式
3观察者模式
4迭代子模式
5责任链模式
6命令模式
7备忘录模式
8状态模式
9访问者模式
10中介者模式
11解释器模式
额外:
1并发行模式
2线程池模式
1)可以使用重要的集合,次要的百度可以快速掌握
1)类与类之间的关系和区别
1 List:ArrayList、LinkedList
2 Map
3 SET
4 Queue
5部分数据结构学习(自己对应上是哪种):
哈希、 链表、数组、树、队列、不同点,用户场景
2) 集合工具类
Collections
3)使用
1各种集合的遍历方法,增加,删除元素判断,判空
2查找,筛选,排序
3 for,foreach,iterator
4) 泛型
钻石操作符(即<>)
1)知道什么时候用什么流
2)知道缓冲的意义和原理
1)字节流,字符流
2)输入流,输出流
3)包装流:
1缓冲流
2对象流
3文件流
4过滤流
4)FileReader,FileWriter
5)Reader,Writer
6)特殊流RandomAccessFile
1)会用相关函数
2)大概知道异步执行,线程同步,线程锁等概念
3)大概知道线程死锁问题
4)千万别以为你可以完全掌握
1)线程和进程
1)编码问题
1)sax一次读一点 jdom
2)dom异常读整个文档 dom4j
1)fastjson -常用
2)jackson -常用
3)gson 不常用
1)大概知道就好了
2)了解下动态编译
1)Log4j,Log4j2,Logback,Jul
2)日志级别
1)Commons Logging
2)Slf4j
了解下
1)基础网络知识:七层网络协议
2)socket:子主题1
1 bitmap优化
2文件压缩与解压缩
1)难度较大,量力而已,了解即可
1)完全掌握数据库sql的使用以及使用java执行sql
1)通用知识:事务
2)mysql专有特点,权限等
3)数据类型
4)约束
5)索引
1)数据库
2)表
3)列
4)行
5)冗余
6)主键
7)外键
8)复合键
9)索引
10)参照完整性
1)linux不会就先不管,之后再补
2)安装,配置,权限设置,参数设置
3)创建数据库,启动,关闭,重启
4)管理mysql,备份,恢复
1)ADD/ALTER/DROP
1)sql:
1 insert
2 update
3 delete
4 select:
where:
NULL值处理
运算符:
算数运算符
比较运算符:
like
IS NULL
IN
BETWEEN
>
<>,!=
<=>安全等于
逻辑运算符:
AND
NOT 或 !
OR
XOR
位运算符:
& 按位与
| 按位或
^ 按位异或
! 取反
<< 左移
>> 右移
运算符优先级
连接join
排序
分组
UNION
函数:
字符串处理
数学
日期
高级函数
子主题7
5 复杂sql:
例如列转行,行转列
求出每个班语文成绩最好的前三名
求成绩70分,80分,90分,100分各个区间第一名的名字和分数
2)存储过程
3)函数
1)grant,deny,revoke权限控制
1)DriverManager,Connection,Statement,PreparedStatement,ResultSet
2)目标:很简单,能用就行
3)增查(单个)查(列表)改删+各种数据格式处理
4)存储过程,游标,batch等特殊场景
1)Druid
2)传统连接池
1)全自动化ORM框架
hibernate/JPA:
特点:简单好用,完全符合面向对象
场景:外资或者发达资本主义世界喜欢用,但是国内容易被鄙视
知识点:
主键查询
HQL查询
QBC查询完全面向对象的查询
本地SQL查询
特殊:存储过程调用,函数调用
配置
2)半自动化
mybatis:
特点:中国特色喜欢用,可以直接写sql
知识点:
Xml编写
批量插入,查询
注释方式
配置
3)非主流框架
1JOOQ 真,完全面向对象数据库框架
2支持国货:
nutz
jfinal
4)由于后边需要结合各种其他框架,所以搭建这块先忽略,拿成品直接玩就好了
1)深入一点学习设计原则和设计模式
2)能够背诵和默写,简单工厂,工厂模式,抽象工厂优先..
1)门槛技术
1)各种标签的使用
1)前端三巨头:
React
Vue.js
Angular.js
主要思想:数据驱动,MVVM
1)jquery已经淘汰但是没有专门前端人员的项目用的多
1)目标:有空的随便学一种其他的类似
2)选择:挺多的,各家大厂都有:
蚂蚁金服antd
传统厂商:
extjs
easyui
miniui
饿了吗element
1)json交互,java,json互相转换
1)异步编程思想
1)重要并且简单
2)能使用就好了
3)其他容器的了解
1)传统方式
2)注解方式:大概知道就行
3)jstl???基本没人用了 没时间就算了
4)监听器/过滤器
1)Freemarker
2)Thymeleaf
3)Velocity
4)学一种吧,大概知道这玩意
Freemarker用的多,Thymeleaf新出的
5)了解js也有模板引擎
1)依赖管理
2)本地包,或者是由包导入
3)编译级别
4)插件
5)安装
6)仓库和镜像
1)如何使用:
spring官网直接生成
eclipse生成
手工创建
2)基本原理:
原理,以及概念,专业术语:
包括版本差异
webflux
四大神器:
actuator监控-了解
Starter起步依赖
auto-configuration自动配置&约定大约配置
cli-了解
3)思想:
MVC的概念
控制器的概念
开箱即用
IOC,AOP初步使用
4)配置和配置文件
日志集成
xx集成
5)Application事件和监听器
6)主要注解使用
@RestController
@Controller
@RequestMapping
@RequestBody,@ResponseHeader
@Component,@Service,@Autowired
7)额外知识点:
restfulAPI
Swagger
Vo,dto,po
http调用:
集成@Feign
httpclient
StringTemplate了解
定时任务+线程池:
@Async
@Scheduled
@corn表达式
开发,测试,生产多配置文件独立
1)快速入门几乎所有框架
1)IOC,AOP
2) 事务:
ACID
声明式事务和编程式事务
事务的传播特性和隔离级别
扩展分布式事务
1)投入产出比较高
1)顺便学习设计原则,设计模式的大好时机
2)完全掌握,搭建
3)完全掌握注入以及使用
1)关键配置文件
2)使用:
注解方式
xml方式
高级使用:
Driver
Provider面向对象查询
批量查询
3)多数据源
1)redis本身:
原理+数据类型
单机+分布式概念
过期策略,使用场景
缓存命中率概念
RedisDesktopManager工具
NoSQL概念:
键值(key-value)存储
列存储
文档数据库
图形数据库
2)传统RedisTemplate
expire过期,续期等
hasKey等操作
del
get
set
increment递增递减
各种数据类型
StringRedisTemplate、RedisTemplate
3)注解
@Cacheable
@CacheEvict
@CachePut
4)集成相关
配置
配置文件详解
序列化
5)使用场景
缓存
任务队列
网站访问统计
应用排行榜
数据过期处理
session分页
实现分布式锁
1)shiro
2)springsecurity
3)jwt
4)oauth2
1)消息队列
2)Spring Data:
redis
jpa
rest
ladp单点登录
cassandra
hive
mongodb
全文检索:
elasticsearch
solr
3)流:
kafka
spark
svn,git,pd,uml
1)冒泡排序
2)选择排序
3)插入排序
4)希尔排序
5)归并排序
6)快速排序
7)堆排序
8)计数排序
9)桶排序
10)基数排序
1)别问怎么学
1)同java工程师沟通技巧
2)同测试工程师沟通技巧
3)同前端工程师沟通技巧
4)同业务人员沟通技巧
5)乙方同甲方沟通技巧
6)甲方同乙方沟通技巧
7)同领导沟通技巧:
技术型领导
业务型领导
高层
8)同女性沟通技巧
9)同跨行业人沟通技巧
觉得还行可以收藏一波!!!
结束