仓库内容持续更新中...
自学之路漫又长,唯有不断总结,不断回味,不断分享,才能成长!
联系我可以【微信】私我
为什么会有这个开源仓库
本仓库取名 r2coding,即 Road To Coding,意为「编程自学之路」,是自学编程以来所用资源和分享内容的大聚合。
旨在为编程自学者提供一系列:
- 清晰的编程自学路线
- 各编程岗位方向的知识点梳理
- 靠谱的资源
- 高效的工具
- 务实的技术文章
方便自己也方便他人。仓库内容会保持持续更新,欢迎收藏品鉴!
本仓库内容地图
编程自学路线+知识大梳理
本仓库目前整理收录了6个大方向(岗位)的学习路线+知识点大梳理,分别为:
- Java后端开发
- 前端开发
- C/C++后台开发
- 大数据开发
- 嵌入式开发
- 网络安全方向
后续本仓库也会持续更新和增加更多方向岗位的学习路线...
Java后端开发
详情链接 → 《Java后端开发学习路线+知识点大梳理》
注:图片上传后可能被压缩,如需无损版高清大图,可去微信公众号「CodeSheep」后台回复「后端开发」四个字获取即可
详情链接 → 《Java后端开发学习路线+知识点大梳理》
前端开发
详情链接 → 《前端开发学习路线+知识点大梳理》
注:图片上传后可能被压缩,如需无损版高清大图,可去微信公众号「CodeSheep」后台回复「前端开发」四个字获取即可
详情链接 → 《前端开发学习路线+知识点大梳理》
大数据开发
详情链接 → 《大数据开发学习路线+知识点大梳理》
注:图片上传后可能被压缩,如需无损版高清大图,可去微信公众号「CodeSheep」后台回复「大数据」三个字获取即可
详情链接 → 《大数据开发学习路线+知识点大梳理》
嵌入式开发
详情链接 → 《嵌入式开发学习路线+知识点大梳理》
注:图片上传后可能被压缩,如需无损版高清大图,可去微信公众号「CodeSheep」后台回复「嵌入式」三个字获取即可。
详情链接 → 《嵌入式开发学习路线+知识点大梳理》
C/C++后台开发
详情链接 → 《C/C++(偏后台)开发学习路线+知识点大梳理》
网络安全方向
详情链接 → 《网络安全方向学习路线+知识点大梳理》
常用编程软件和工具
[!NOTE]
工欲善其事,必先利其器!
一个易上手、好用、高效的软件工具对于程序员工作效率的提升是不言而喻的,这些常用开发软件和工具比如:
- 基础的软件开发环境和设施
- 好用高效的在线工具和网站
- 本地常用的一些编程软件
- Linux操作系统
- 版本控制工具
- 高效的IDE和编辑器
- API管理工具/文档管理工具
- CI守护系统
- ...... 等等
接下来我们一项一项详细盘点。
常用在线工具集
[!NOTE]
程序员在平时的日常工作、学习、开发、做笔记、写博客等过程中还是有很多好用并且高效的在线工具推荐的,毕竟我们不是每时每刻我们都需要那种很重量级的本地软件。
下面将分成16个大类,共整理了约130+个常用的在线工具和网站供大家食用。
在线画图工具
程序员经常接触的无非也就是流程图、思维导图、原型图、UML图、网络拓扑图、组织结构图等等这些。
下面这四个在线画图网站我想应该足够了,其中那个processon是我用得最多的,历史文章中几乎所有相关的图形都是用它绘制,然后导出图片的。
在线编解码工具
在线转换工具
- 在线ASCII码对照表
- 通用进制转换工具
- 在线浮点数十进制转换
- RGB颜色转换
- 时间戳转换工具
- 计量单位换算工具
- 在线JSON解析
- 在线JS代码格式化工具
- SQL压缩/格式化工具
- JSON和XML在线转换
- JSON/YAML在线转换
- 人民币大小写转换工具
正则表达式工具
网络工具
在线编译运行工具
可视化/格式化工具
在线生成器
其他常用在线开发相关工具
在线素材工具
如果你也写文章,或者做视频,那就一定少不了要找素材,包括各种图片、背景、emoji表情、表情包、壁纸、视频、gif图等等。
如此一来,那些好用的在线素材工具就必不可少了,比如像各种表情包工具、icon图标库、矢量图库、图片素材库、壁纸库等等。
- 免费透明背景图片素材
- Emoji表情包下载
- open source icons
- 阿里巴巴矢量图标库
- 表情包在线网站
- 免费PNG图片库
- ICON图标在线下载
- 极简壁纸
- Wallpaper Abyss壁纸
- Pixabay图片素材库
- Unsplash图片素材库
- Pexels图片素材库
- NASA图片视频素材库
设计制作类工具
对于那些文章创作者和视频创作者而言,设计封面,做海报,设计LOGO,图片美化等等基本也是刚需。
这样大概率日常会用到一些简易好上手的在线设计制作类工具,比如在线P图、音/视频轻量化剪辑、logo制作、海报设计制作、图片美化、在线图片转换或生成等等,毕竟不是每时每刻我们都需要那种重量级的本地软件。
- 在线PS
- 在线音频剪辑
- 在线视频剪辑
- 免费logo在线制作
- 艺术字体在线生成
- 在线表格转换工具
- 在线海报设计工具
- 图片智能放大工具
- 二维码美化器
- 在线代码截图工具
- 在线抠图工具
- ICO图标在线生成
- SVG转PNG工具
- 视频转GIF工具
- 二维码在线生成器
- 二维码在线解码
写作辅助工具
在我写文章的过程中经常会用到和写作相关的辅助工具,比方说:字数统计工具、Markdown格式的文章排版工具、图床网站、代码截图工具等等,所以下面这些在线工具就能很好地满足我的需求。
在线办公工具
这部分在线工具主要用来处理一些和文档以及文稿相关的事情,经常用到的比如:在线的全套pdf处理和转换工具、各种各样多媒体文件间的相互转换工具、在线识别工具、在线压缩工具等等。
文档笔记工具
好记性不如烂笔头,作为一个学习者,我觉得记笔记是必不可少的步骤。当然现在基本都做电子笔记和电子文档比较多。
现如今各式各样优秀的文档工具和笔记软件鳞次栉比,好用的也有很多,整理成如下列表,这东西各有长处,使用哪个最合意还得看个人习惯和需求了。
编程学习网
- 哔哩哔哩
- C语言网
- cppreference
- 中国大学MOOC
- 牛客网
- 网易公开课
- CodeGym
- BeginnersBook
- JavaSED
- codecademy
- Coursera
- StackOverFlow
- LeetCode
- LintCode
在线教程和文档
这部分主要集中了我在做开发过程中随手参考所要用到的几乎所有在线教程和官方文档,有中文版文档的我基本都优先列出来了,但更多时候是英文的官方文档。
- Git中文教程
- SVN中文手册
- jQuery API中文文档
- Nginx中文文档
- Kafka中文文档
- Mybatis中文文档
- 微信小程序官方文档
- Nodejs中文教程文档
- Apache Web Server文档
- Spring文档中文版
- Golang标准库文档中文版
- Java 8官方文档
- Maven官方文档
- Tomcat 8官方文档
- Spring Boot官方文档
- RabbitMQ官方文档
- RocketMQ官方文档
- Dubbo中文文档
- Netty官方文档
- Elasticsearch官方文档
- Spring Cloud官方文档
- Docker官方文档
- Kubernetes中文文档
- Thymeleaf官方文档
- Vue.js中文文档
- React.js官方文档
- Jenkins中文文档
常用本地软件
这里将常用软件分为了5大类,包括:
- 社交/娱乐/上网
- 办公软件
- 效率和美化软件
- UP主必备
- 程序员生产力工具
基础软件开发环境和设施
什么叫基础软件开发环境?
很好理解。学Java得要装JDK吧?学Python得要Python环境吧?学数据库得要MySQL吧?等等,这些在学习编程之前都是应该提前在自己的电脑上准备好的,而且尽量把全套都先备好,后面直接就用了。
经常听到有小伙伴反馈和提问有关编程环境搭建和基础软件设施安装的相关问题。
- 啥?JDK明明装了,为啥还是not found?
- 咦?Maven明明配了加速,咋下载依赖还这么慢?
- 诶?MySQL明明装了,咋Navicat连会报错?
- 哦?Tomcat咋出不来页面?......
每次都是照着网上现搜的帖子操作,一顿操作猛如虎,一看结果各种有问题,要不报错,要不环境起不来,等等。装个环境就浪费了很多时间,而且过了一段时间又忘,还得重新搜帖子,该踩的坑一个都不少...
既然大家有这方面需求,想来想去,关于这个问题,我还是决定写一个事无巨细的PDF文档,把所有编程环境和基础软件设施的安装过程给详细地记录下来了。
熬10天夜,我肝出了这个PDF版「编程软件(环境)安装手册」
内容包含常见基础开发环境和设施的安装部署,包括:
- Linux操作系统
- Git工具
- Java环境JDK
- Node基础环境
- Python基础环境
- Maven项目构建和管理
- MySQL数据库
- Redis缓存
- RabbitMQ消息队列
- Tomcat应用服务器
- Nginx Web服务器
- Docker环境
- Kubernetes环境
- Elasticsearch搜索引擎
- ZooKeeer环境
- Kafka消息队列
大家有需要的可以:点击此处 → 下载获取!
Linux操作系统
实际企业级开发和项目部署,大部分情况下基本都是基于Linux环境进行的,所以掌握常用的命令、配置、网络和系统管理、基本的Shell编程等尽量还是要熟练一些,对后续项目实践都大有裨益。
[!Note]
- 常用Linux操作系统大盘点
- 人手一套Linux环境之:macOS版教程
- 人手一套Linux环境之:Windows版教程
- 69张图:详细记录Ubuntu 20.04安装配置过程
- 废柴电脑拯救计划:借助Debian搭建个人专属云服务器
- 常用Linux命令大整理
- 面试常问的20个Linux命令
- Linux 桌面进化史
- Linux迎来29岁:从个人爱好到统治世界的操作系统内核!
- 漫画:Linux 内核到底长啥样?
- 资源下载 → 《Linux命令速查备忘手册.pdf》
- 资源下载 → 《Linux命令行大全.pdf》
版本控制工具
- 资源下载 → 豆瓣9.1分的Pro Git学习手册YYDS!
- 科普篇:Git和SVN对比
- 科普篇:5分钟了解Git的前世今生
- 科普篇:Git操作与常用命令集锦
- 原理篇:图解Git中的最常用命令
- 原理篇:从原理角度理解记忆Git常见命令
- 实践篇:从实践中彻底上手Git
- 实践篇:Git分支开发
- 实践篇:如何使用GitHub Flow给开源项目贡献代码
- 技巧篇:一招搞定GitHub下载加速!
- 技巧篇:如何在同一台电脑上同时使用多个Git账号
IDE/编辑器
- IDEA 2021.3升级发布
- IDEA 2021.2升级体验
- IDEA 2021.1升级体验
- IDEA 2020.3升级体验
- IDEA 2020.1升级体验
- IDEA插件分享:开发必备的IDEA神级插件大分享
- 我的IDEA写代码小技巧:幸福感+效率爆棚
- 为啥我的IDEA Maven依赖下载总是失败?
- 试水JetBrains官方新编程字体
- 如何使用IDEA远程调试线上代码
- 利用VS Code进行远程开发教程
- VS Code常用插件+快捷键整理
API管理/文档管理
CI系统
其他软件/工具/网站
- 自学数据结构和算法的9大工具和网站
- 12个常见的编程开发自学网站汇总
- 常用Web服务器软件大盘点
- 9款最佳编程字体推荐
- 5款时间管理工具推荐
- 一个程序员的常用在线工具网站分享
- 2020年度开发者工具Top 100名单
- Linux服务器上几个常用的监控小工具整理
- 效率神器PowerToys使用攻略
- 22款适合程序员的终端生产力小工具推荐
- 9款优秀的代码比对工具推荐
- 几款提升效率的软件神器
- 命令行效率神器 NuShell !
计算机基础
计算机基础是最最重要的! 即使后面的东西都没学(或者来不及学),基础部分是肯定需要完成的,这也是后面所有应用框架学习和做项目的基石;反之,在应用框架的学习或者做项目时如果感觉吃力,那就可能非常有必要回过头再来巩固对应的基础知识。
计算机基础的学习不是一蹴而就的,需要一定的反复和回炉才能做到真正的融会贯通,需要一个过程。珍惜每一次回顾和复习基础的机会,应扎实精进,步步为营。
那我们口口声声所说的编程基础(计算机基础)到底指是什么呢?
此处整理为六大方面:
- 一两门你最熟悉的编程语言(不求多,但求精!)
- 数据结构和算法
- 计算机网络
- 操作系统(计组)
- 数据库/SQL
- 设计模式
编程语言
语言在精不在多,切记!完全掌握了一门语言,上手其他的都不难!
Java
-
基本功趣味学习(精讲)
- 资源下载 → Java基础核心知识大总结pdf笔记下载
- 夯实基本功之:Java程序员找对象攻虐!
- 夯实基本功之:浮点数在计算机中是如何表示的
- 夯实基本功之:flaot和double使用时的大坑
- 夯实基本功之:为什么要面向接口编程
- 夯实基本功之:枚举精讲
- 夯实基本功之:深拷贝/浅拷贝精讲
- 夯实基本功之:序列化和反序列化精讲
- 夯实基本功之:函数式编程例析
- 夯实基本功之:如何去掉冗长的if/else代码
- 夯实基本功之:注解精讲
- 夯实基本功之:为什么不要用Date表示时间
- 夯实基本功之:去除烦人的NullPointerException空指针异常
- 夯实基本功之:为什么要重写hashcode和equals方法
- 夯实基本功之:Object类精讲
- 夯实基本功之:List使用踩坑记录
- 夯实基本功之:Map使用踩坑记录
- 夯实基本功之:面试必问的ConcurrentHashMap精讲
- 夯实基本功之:死磕Java I/O流知识
- 夯实基本功之:你一般是怎么遍历HashMap的
- 夯实基本功之:try-catch的使用姿势
- 夯实基本功之:if和swictch性能例析
- 夯实基本功之:Java HashMap源码剖析
- 夯实基本功之:String性能提升10倍的几个用法
- 实践篇:Java源码编译实战
- 面试篇:这10道基础Java面试题,虐哭了多少人
- 面试篇:Java基础知识面试题大集合
- Java 11新特性例析
- Java 15新特性例析
- 科普:Java收不收费跟我们有毛关系吗?
-
多线程和并发
-
JVM虚拟机
数据结构+算法题
数据结构和算法题对于程序员的重要性不言而喻。参加过笔试或者面试过的小伙伴应该知道,可以说这个东西某一程度上直接决定了面试的成败,现在的互联网公司技术岗面试,数据结构+算法题基本都是必选项。
除了几种基础数据结构类型得烂熟于心,基本的几大算法(或者说算法思想)也要了如指掌之外,参加求职前,不论是校招还是社招,非常有必要好好刷一刷LeetCode上的数据结构和算法题,以保持题感。
- 资源下载 → LeetCode算法刷题Golang版答案PDF文档
- 资源下载 → LeetCode算法刷题C++版答案PDF文档
- 资源下载 → LeetCode算法刷题Java版答案PDF文档
- 资源下载 → 谷歌学长的数据结构+算法题代码笔记手册
- 数据结构:24张图详解九大数据结构
- 数据结构:哈希表详解
- 数据结构:栈Stack的几种含义理解
- 数据结构:各种树详解
- 数据结构:跳表精讲
- 数据结构:数组和链表的性能对比
- 算法:十大经典排序算法大梳理 (动图+代码)
- 算法:排序算法趣味对比
- 算法:二分法及其变种
- 算法:10张图搞定KMP算法
- 算法:面试官最爱的字符串匹配算法精讲
- 算法:8大常见算法思想总结
- 算法:一文彻底学会递归思路解题
- 算法:10张动图理解递归
- 算法:分治算法详解
- 算法:递归算法详解
- 算法:动态规划常见算法题例析
- 算法:搞定算法复杂度分析
- 算法:常用算法复杂度速查表
- 算法:常见刷题模式套路分析
- 算法:算法题刷题的心得和建议
- 算法:求职必刷算法题大集锦
- 工具推荐:自学数据结构和算法的9大工具和网站
计算机网络
为什么一定要学好计算机网络?
原因很简单,因为计算机网络中的各种协议栈是当下繁荣的互联网通信的基石,尤其建议要牢固熟练地掌握TCP/IP协议栈。
- 视频科普:计算机网络该怎么学
- 概念科普:如何系统地学习计算机网络
- 概念科普:计算机网络的89个核心概念
- 概念科普: 为什么网络IO会被阻塞
- 工具科普:学网络时,可以先落实这几款利器工具
- 探究原理:浏览器输入网址一回车,后面到底发生了什么
- 探究原理:你可能没有细究过的TCP/IP
- 探究原理:一个数据包在网络中到底是怎么游走的
- 探究原理:两台计算机之间究竟是如何通信的
- 探究原理:ping命令用得这么6,原理知道不
- 探究原理:一台Linux服务器最多能支撑多少个TCP连接
- 探究原理:都说HTTP协议无状态,这里的「状态」到底指什么
- 探究原理:Session/Cookie/Token
- 探究原理:Cookie、Session、Token 背后的故事
- 探究原理:三次握手底层深度理解
- 知识总结:计网IP部分知识总结
- 知识总结:图解HTTP的前世今生
- 知识总结:HTTP和HTTPS协议大总结
- 面试相关:2w+字的计算机网络常见面试题整理
- 面试相关:GET和POST到底有什么区别
- 面试相关:面试最爱问的三次握手和四次挥手问题
- 面试相关:HTTP常见面试题集合
- 面试相关:计网TCP/UDP部分高频面试题集合
- 面试相关:计算机网络高频12问
- 实践系列:网络排错思路大总结
- 实践系列:抓个包看一看浏览器里的HTTP请求到底是如何完成的
操作系统
学好操作系统有利于我们深入理解计算机底层,这样平时在遇到疑难杂症时,能够更容易看到问题的本质,并高效解决;另外操作系统里的很多优秀的设计思想、经典的架构、算法、思路也值得我们反复理解和思考,很多思想在平时的工作中也可以借鉴和运用。
- 知识总结:学编程要懂的操作系统基础
- 知识总结:程序员必知的89个操作系统核心概念
- 知识总结:操作系统主要概念硬核讲解
- 知识总结:20张图详解操作系统内存管理部分知识点
- 知识总结:这才是对进程和线程最通俗易懂的解释
- 知识总结:操作系统并发三剑客之进程/线程/协程
- 知识总结:操作系统高并发服务模型大科普
- 知识总结:这可能是讲死锁最通俗的一篇文章
- 知识总结:一举拿下网络IO模型
- 知识总结:用一个故事来感受一下什么叫NIO
- 知识总结:多路复用、非阻塞、线程与协程
- 知识总结:搞懂原码/反码/补码
- 知识总结:30张图解高并发服务模型哪家强
- 原理探究:新建一个空文件到底会占用多少磁盘空间?
- 面试相关:2.5w字+36张图+1周时间:爆肝操作系统面试题!
- 面试相关:1.3w字的操作系统高频面试题大分享
- 面试相关:学完操作系统内存管理,能回答这8个问题吗
数据库/SQL
- 原理探究:详解一条SQL的执行过程
- 原理探究:MySQL的数据存在磁盘上到底长什么样
- 原理探究:数据库索引到底是什么
- 原理探究:为什么MySQL索引要用B+ tree
- 原理探究:为什么用了索引,SQL查询还是慢
- 原理探究:数据库索引的原理和使用准则
- 原理探究:为什么你写的SQL那么慢
- 原理探究:count(1)和count(*)到底哪个效率高
- 原理探究:为什么阿里规定超过三张表禁止join
- 原理研究:什么是MySQL索引下推?
- 原理探究:为什么大公司后台数据库都要搞分库分表?
- 原理探究:MySQL不会丢失数据的奥秘就藏在这里
- 原理探究:MySQL主从复制那些事儿
- 实践应用:常见的SQL错误(不当)写法例析
- 实践应用:SQL优化的几个角度
- 实践应用:数据库、数据表设计规范例析
- 实践应用:梳理开发中常用的SQL优化途径
- 实践应用:先更新数据库还是先更新缓存?
- 实践应用:百亿级数据分表后如何分页查
- 实践应用:什么是SQL注入攻击
- 实践应用:用对这些场景下的数据库索引,领导说我有点东西
- 实践应用:一个遗留项目的SQL优化实战录
- 实践应用:误删数据库后该如何恢复
- 实践应用:如何科学根治慢SQL?
- 面试相关:面试官最爱的数据库索引连环问
- 面试相关:30道保底的MySQL数据库面试题集合
- 面试相关:数据库自增ID用完了会怎样
- 面试相关:如何保证缓存和数据库的一致性问题?
- 面试相关:面试官最爱的MySQL连环问
- 面试相关:如何实现丝滑的数据库扩容
设计模式
其他
应用框架和工具
计算机基础聊完了,接下来就是应用和实践的环节了。这部分通常会涉及到一些工具、编程环境、以及应用框架。
企业级开发不同于个人自学,出于可复用性、稳定性、开发成本、开发效率、质量保证等一系列因素的考量,不可能每一个功能、每一个组件都从0开始徒手造轮子,所以这时候各种应用框架和工具的出现就非常有帮助了。
其实框架讲白了就是别人经过多年迭代写好的一套工具、代码库、逻辑、亦或是流程,把原本都需要从0开始手写的基本功能和组件都给封装进去,用户只要符合框架约定的规则进行编码,或者调用框架提供的方法或者工具,就能快速拉起业务功能,创造实际经济价值。
所以框架的出现从不同的角度看也是有多面性的:对于企业级开发效率提升而言肯定是有帮助的,但是对于程序员个人思考编码能力提升却未必是好事,所以多注重基础、深挖原理,提升自身竞争力还是非常有必要的。
Spring系列框架
- 原理探究:Spring Boot项目究竟是怎么启动的?源码剖析
- 原理探究:SpringBoot中@SpringBootApplication注解探秘
- 原理探究:Spring @Autowired注解详解
- 原理探究:Spring @Value注解详解
- 原理探究:Spring框架是如何解决循环依赖问题的
- 原理探究:Spring中竟然有12种定义Bean的方法
- 原理探究:Spring的Controller究竟是单例还是多例,如何保证并发安全
- 原理探究:为什么Spring的Bean默认是单例的
- 原理探究:单点登录(SSO)原理和实现
- 原理探究:面试常问的Spring IoC原理解析
- 原理探究:了解这些,就可以在Spring启动时为所欲为了
- 实践应用:Spring Boot日志框架实践
- 实践应用:利用神器BTrace追踪线上Spring Boot应用运行时信息
- 实践应用:Spring Boot项目集成全局唯一ID生成器UidGenerator
- 实践应用:Spring Boot Admin2.0开箱体验
- 实践应用:Spring Boot项目传参校验最佳实践
- 实践应用:Spring Boot项目优雅传参方式讨论与实践
- 实践应用:基于Spring Security Oauth2的SSO单点登录+JWT权限控制实践
- 实践应用:封装一个好用的流水号ID生成器id-spring-boot-starter
- 实践应用:封装一个好用的elasticsearch-spring-boot-starter
- 实践应用:Spring Boot项目集成jasypt-spring-boot加密组件
- 实践应用:基于Spring Security+JWT的权限系统设计
- 实践应用:Spring Boot项目集成全局唯一ID生成器Vesta
- 实践应用:Spring Boot项目集成Mybatis-Plus
- 实践应用:如何自制一个Spring Boot Starter并推到远端公服
- 实践应用:Spring Boot项目集成Ehcache缓存
- 实践应用:Spring Boot项目集成自然语言处理工具包HanLP
- 实践应用:基于Spring Boot实现图片上传/加水印一把梭操作
- 实践应用:Spring Boot项目集成EVCache缓存实践
- 实践应用:Spring Boot项目集成Guava Cache本地缓存实践
- 实践应用:Spring Boot项目集成MyBatis Generator进行数据层代码自动生成
- 实践应用:初探Kotlin+SpringBoot联合编程
- 实践应用:Spring Boot项目集成神器Lombok实践
- 实践应用:Spring项目集成Lombok插件的优缺点分析
- 实践应用:Spring Boot应用监控实战
- 实践应用:Spring Boot项目部署于外置Tomcat容器
- 实践应用:Spring Boot热部署加持
- 实践应用:Spring Boot高效数据聚合之道
- 实践应用:Spring项目日志打印常见问题
- 面试相关:Spring面试夺命连环10连问
- 面试相关:Spring经典面试题集合
- 面试相关:Spring Boot基础面试题集合
- 面试相关:Spring Cloud基础面试题集合
- 面试相关:说说Spring用到了哪些设计模式?
- 内容持续更新中...
前后端分离
- 概念科普:到底什么是RESTful ?
- 概念科普:RESTful风格的前世今生
- 概念科普:为什么需要前后端分离?
- 实践应用:前后端分离的接口规范,我们是如何做的?
- 实践应用:前后端分离式开发:高效协作10条准则
- 实践应用:前后端分离后,接口联调总是甩锅怎么办?
- 实践应用:前后端分离项目接口优雅数据交互例析
- 实践应用:前后端分离实践中常遇到的跨域问题
- 工具推荐:前后端都分离了,该搞个好用的API管理系统了
分布式/微服务
- 科普篇:企业里常用的软件架构剖析
- 科普篇:单体→分布式→微服务,这些年的软件架构是如何发育的
- 科普篇:微服务架构的全局图景分析
- 科普篇:分布式架构负载均衡的几种方式
- 科普篇:RPC 技术(框架) 大科普
- 原理探究:什么是分布式事务
- 原理探究:Redis分布式锁保姆级无死角分析
- 原理探究:如何设计一个高并发的秒杀架构?
- 原理探究:亿级流量网关设计思路
- 原理探究:分布式架构的几个常见的坑
- 原理探究:什么是异地多活架构
- 实践应用:RPC框架实践之:Apache Thrift
- 实践应用:RPC框架实践之:Google gRPC
- 实践应用:Spring Cloud Feign的两种使用姿势
- 实践应用:Spring Cloud Eureka Server高可用之:在线扩容
- 实践应用:Eureka Server 开启Spring Security Basic认证
- 实践应用:Eureka Server启用 https服务指北
- 实践应用:微服务调用链追踪中心搭建
- 实践应用:利用Zipkin追踪Mysql数据库调用链
- 实践应用:一个小团队的微服务架构改造之路
- 内容持续更新中...
容器/集群
- 知识总结:常用虚拟化技术(VMware/KVM/Docker)对比
- 知识总结:Docker从入门到干活,看这一篇入门
- 知识总结:Docker Swarm的前世今生
- 知识总结:编写高效Dockerfile的几条准则
- 实践应用:Docker Swarm集群初探
- 实践应用:利用ELK搭建Docker容器化应用日志中心
- 实践应用:Docker容器可视化监控中心搭建
- 实践应用:Docker容器跨主机通信之直接路由方式
- 实践应用:利用TICK搭建Docker容器可视化监控中心
- 实践应用:利用Kubeadm部署Kubernetes 1.13.1集群实践录
- 实践应用:利用K8S技术栈打造个人私有云(连载之:初章)
- 实践应用:利用K8S技术栈打造个人私有云(连载之:K8S集群搭建)
- 实践应用:利用K8S技术栈打造个人私有云(连载之:K8S环境理解和练手)
- 实践应用:利用K8S技术栈打造个人私有云(连载之:基础镜像制作与实验)
- 实践应用:利用K8S技术栈打造个人私有云(连载之:K8S资源控制)
- 内容持续更新中...
缓存/MQ/中间件/服务器
- 缓存:Redis字符串类型内部编码剖析
- 缓存:Redis哈希结构内存模型剖析
- 缓存:15张图解:为什么Redis这么快
- 缓存:Redis面试全攻略、面试题大集合
- 缓存:把Redis当作队列来用,真的合适吗?
- 缓存:缓存和数据库一致性问题,看这个就够了
- 缓存:面试官爱问的Redis高频面试题大集合
- 缓存:1分钟科普:什么是缓存穿透、缓存雪崩、缓存击穿?
- 缓存:如何构建一个稳定的高性能Redis集群?
- 缓存:轻量级memcached缓存代理twemproxy初探实践
- 缓存:先更新数据库还是先更新缓存
- MQ:消息队列RabbitMQ快速入门上手
- MQ:Kafka快速入门上手
- MQ:从面试角度一文学完Kafka
- MQ:为什么Kafka用得这么多?
- MQ:刨根问底之Kafka到底会不会丢消息
- MQ:大厂面试必备之消息队列连环问
- MQ:后端岗面试必备之Dubbo九连问
- 服务器:Nginx服务器开箱体验
- 服务器:从一份配置清单详解Nginx服务器配置
- 服务器:为什么Nginx能轻松撑起几万并发
- 搜索引擎:CentOS7上搭建多节点Elasticsearch集群
- 搜索引擎:一文上手Elasticsearch常用可视化管理工具
- 搜索引擎:从一份定义文件详解ELK中Logstash插件结构
- 搜索引擎:Elasticsearch索引的映射配置详解
- 其他中间件:ZooKeeper面试常见十二问
- 其他中间件:基于代理的数据库分库分表框架Mycat实践
- 内容持续更新中...
书籍/资料推荐
毫无疑问的是,对于上文提到的 「编程基础」 部分,有大量经典的书籍值得阅读,每一本都是大师们若干年经验的汇聚,所以学好编程基础,对于我们普通人来说,看书是一个非常直接有效的方式。
很多经典书看一遍可能远远不够,正所谓 「初看懵、再看迷、三看发现有点小意思」 讲的就是这个道理,这事急不得,而且有些东西的确需要一个反反复复的过程,有些甚至是在工作后的实践中才会遇到,所以珍惜每一次回炉重造的过程吧。
书籍资料推荐:
- Java开发:我的Java后端开发小书架
- Java开发:一份Java程序员的珍藏书单
- C/C++开发:自学C/C++书籍整理
- 前端开发:前端开发学习资料+书籍盘点
- 嵌入式开发:嵌入式开发学习资料+书籍推荐
- 视频:我的计算机编程书单
互联网开源教程推荐:
编程资源汇总和下载 → 点击查看
编程视频教程推荐 → 点击查看
项目经验获得
自学党如何获得项目经验?
个人博客/网站搭建
- 手把手教你从0开始搭建自己的个人博客之:Hexo版
- 手把手教你从0开始搭建自己的个人博客之:Hugo版
- 手把手教你从0开始搭建自己的个人博客之:Wordpress+Docker版
- 建站神器:Hexo+Kaze+Gitee!
- Win10下Hexo博客搭建教程及阿里云服务器部署实战
开源项目
- 开源协议:开源软件的许可协议,先了解一下
- Java开源项目:看完这篇,别人的Java开源项目结构应该能看懂
- Java开源项目:Java领域学习和练手的开源项目分享:第一弹
- Java开源项目:Java领域学习和练手的开源项目分享:第二弹
- Java开源项目:Java领域学习和练手的开源项目分享:第三弹
- C/C++开源项目:几款适合初学者学习和练手的C/C++开源项目
- C/C++开源项目:几款适合进阶学习和练手的C/C++开源项目
- 人工智能开源项目:AI领域几款标杆开源项目大巡礼
- Python开源项目:几个炫酷的Python开源项目
- B站开源了哪些优秀的开源项目
- 读源码的7大心得总结
实际项目需求和问题例析
- 实践案例:实际项目业务接口的幂等性问题
- 实践案例:URL短链接服务如何设计
- 实践案例:亿行数据超大文件如何高效导入生产数据库
- 实践案例:订单系统一般怎么设计
- 实践案例:百亿级数据分表后如何分页查
- 实践案例:线上服务的YGC问题排查例析
- 实践案例:线上服务的FGC问题排查例析
- 实践案例:一个小团队的微服务架构改造之路
- 实践案例:一个遗留项目的SQL优化实战录
- 实践案例:分布式锁使用不当导致的业务损失例析
- 实践案例:定时任务的几种简单方案
- 实践案例:项目常用的6种URL去重方案汇总
- 实践案例:分布式系统架构的几个常见的坑
- 项目架构科普:企业里常用的软件架构剖析
- 项目架构科普:单体→分布式→微服务,这些年的软件架构是如何发育的
- 项目架构科普:微服务架构的全局图景分析
- 原理解析:如何设计一个高并发的秒杀架构?
- 原理解析:高并发系统设计的常见问题小结
- 原理解析:亿级流量网关设计思路
- 原理解析:实际网站用户密码是如何存储的
- 原理解析:死磕搜索引擎背后的故事
- 原理解析:用微信扫码登录的背后发生了什么
- 原理解析:扫码付款背后的原理解析
- 原理解析:收款码背后的原理剖析
- 原理解析:支付掉单背后的几个问题
- 原理解析:手机没网却能支付成功的背后原理
- 原理解析:高并发场景下,先更新缓存还是先更新数据库?
- 原理解析:如何保证缓存和数据库的一致性问题?
- 原理解析:什么是分布式事务?
- 原理解析:Redis分布式锁实践分析
- 原理解析:高并发下如何保证接口的幂等性?
- 原理解析:如何实现丝滑的数据库扩容
- 原理解析:如何构建一个稳定的高性能Redis集群?
- 内容持续更新中...
面试准备和求职
该板块会持续更新各技术方向的求职面试题集合、面经、以及一些小伙伴的求职心得与经历感悟。
简历相关
工作岗位科普
- 科普:学C++的以后能从事哪些岗位
- 科普:物联网行业的岗位、技能
- 科普:学Linux的以后能做什么
- 持续更新中 ...
面试题集合
- C/C++:C语言/C++基础面试知识大集合
- C/C++:68道C语言/C++常见面试题集合
- Java:Java面试题硬核全梳理 ~
- Java:10道精选Java基础面试题集合
- Java:Java基础知识面试题大集合
- Java:Java集合硬核面试50问(附答案)
- Java:面试必问的JVM GC机制精讲
- Java:JVM虚拟机面试题大集合
- Java:JVM垃圾回收硬核18问
- Java:面试官常问的一些JVM面试题
- Java:Java并发和多线程基础面试题大集合
- Java:面试常问的ThreadLocal源码剖析
- Java:面试常问的线程池例析
- Java:面试常问的volatile剖析
- Java:面试必问的ConcurrentHashMap精讲
- Java:说说什么是Java内存模型
- Java:浮点数精度问题面试例析
- 计网:2w+字的计算机网络常见面试题整理
- 计网:面试最爱问的三次握手和四次挥手问题
- 计网:计算机网络高频12问
- 计网:GET和POST到底有什么区别
- 计网:TCP/UDP 部分高频面试题大集合
- 计网:HTTP常见面试题集合
- 计网:浏览器输入网址并回车,后面到底发生了什么
- 计网:都说HTTP协议是无状态的,这里的「状态」到底指什么?
- 操作系统:操作系统面试题集合
- 操作系统:内存管理部分8个常见面试题汇总
- 操作系统:操作系统面试题大分享
- 操作系统:面试常问的20个Linux命令
- 应用框架:Spring夺命连环10连问
- 应用框架:Spring 经典面试题大集合
- 应用框架:Spring Boot基础面试题大集合
- 应用框架:Spring Cloud基础面试题大集合
- 数据库:MySQL面试硬核25问(附答案)
- 数据库:先更新数据库还是先更新缓存?
- 数据库:如何保证缓存和数据库的一致性问题?
- 数据库:面试官最爱的MySQL连环问
- 数据库:如何实现丝滑的数据库扩容
- 数据库:数据库索引到底是什么
- 数据库:为什么MySQL索引要用B+ tree
- 数据库:为什么用了索引,SQL查询还是慢
- 数据库:慢SQL背后的原理是什么
- 数据库:30道保底的MySQL数据库面试题汇总
- 数据库:用心整理的9道MySQL面试题
- 中间件:面试官爱问的Redis高频面试题集合
- 中间件:Redis面试全攻略、面试题大集合
- 中间件:什么是缓存穿透、缓存雪崩、缓存击穿?
- 中间件:说说为什么Redis能这么快?
- 中间件:如何构建一个稳定的高性能Redis集群?
- 中间件:把Redis当作队列来用,真的合适吗?
- 中间件:Redis分布式锁的详细分析
- 中间件:ZooKeeper面试十二连问
- 中间件:消息队列面试连环问总结
- 中间件:Kafka面试要点梳理
- 中间件:说说你对RPC技术是怎么理解的?
- 中间件:后端岗面试必备之Dubbo九连问
- 中间件:为什么Nginx能轻松撑起几万并发?
- 系统架构:企业里常用的软件架构科普
- 系统架构:单体→分布式→微服务,这些年的软件架构是怎么发展的
- 系统架构:如何设计一个高并发的秒杀架构?
- 系统架构:分布式架构的几个常见的坑
- 系统架构:说说分布式架构负载均衡的几种方式
- 系统架构:说说什么是分布式事务?
- 系统架构:亿级流量网关的设计思路
- 设计模式:说说Spring用到了哪些设计模式?
求职经历分享
- 小伙伴经历分享:Linux后台开发该如何准备
- 二本无实习上岸滴滴京东58复盘(一)
- 二本无实习上岸滴滴京东58复盘(二)
- 小伙伴面经分享(一):深信服(含答案)
- 小伙伴面经分享(二):京东(含答案)
- 一位程序媛的秋招软件开发岗面试经历
- 写简历→面试→谈薪:一绿向北
- 小红书后台开发岗面试经历复盘~
- 国企和银行:面试都问些啥?如何准备?
- 招银网络(银行科技岗)面试都问了些啥?
- 准备提前批?还是去实习?还是准备秋招?
- 7面Google,面经分享
- 化学专业大二转码的抉择之路
- 拿到腾讯实习Offer的经历分享
- 怎么准备国企和银行?
- 去银行当程序员是一种什么体验
城市/公司选择
- 北京有哪些知名的IT/互联网公司?
- 成都有哪些知名的IT/互联网公司?
- 武汉有哪些知名的IT/互联网公司?
- 南京有哪些知名的IT/互联网公司?
- 合肥有哪些知名的IT/互联网公司?
- 深圳有哪些知名的IT/互联网公司?
- 成都有哪些知名的IT/互联网公司?
- 西安有哪些知名的IT/互联网公司?
- 长沙有哪些知名的IT/互联网公司?
- 武汉有哪些知名的IT/互联网公司?
- 天津有哪些知名的IT/互联网公司?
- 郑州有哪些知名的IT/互联网公司?
- 杭州有哪些知名的IT/互联网公司?
- 广州有哪些知名的IT/互联网公司?
- 青岛有哪些知名的IT/互联网公司?
- 上海有哪些知名的IT/互联网公司?
- 大连有哪些知名的IT/互联网公司?
- 苏州有哪些知名的IT/互联网公司?
其他求职相关问题
- 为什么有些大公司技术却弱爆了?
- 嵌入式行业到底有没有搞头?
- 找工作时,公司所说的「给期权」到底是什么东西?
- 入职一家公司,应该选择新业务还是老业务?
- 采访了一位技术总监:聊了聊跳槽的心态问题
- 程序员从技术→管理,要走哪些路?
视频教程推荐
对于学习编程的小伙伴来说,网上有海量现成的宝贵视频学习资源可供食用。
所以该板块会持续甄选和更新互联网上那些优秀的、值得反复观看的技术视频教程。
- 数据结构和算法:《郝斌 数据结构入门》
- 数据结构和算法:《数据结构-浙江大学》
- 数据结构和算法:《数据结构与算法基础(青岛大学-王卓)》
- 数据结构和算法:《尚硅谷 Java数据结构与算法)》
- 计算机网络:《计算机网络微课堂》
- 计算机网络:《2019 王道考研 计算机网络》
- 计算机网络:《韩立刚 计算机网络》
- 计算机网络:《计算机网络(谢希仁第七版)》
- 操作系统:《2020 南京大学 操作系统:设计与实现 (蒋炎岩) 》
- 操作系统:《操作系统(哈工大李治军老师)》
- 计算机组成原理:《计算机组成原理(哈工大刘宏伟)》
- 编译原理:《编译原理(哈工大)》
- 更多的视频教程资源会持续更新,敬请期待…
资源汇总和下载
该版块会持续更新那些优秀的编程资源,包括但不限于: 各种硬核的PDF笔记、软件包、技术手册、自制文档、题解解析、简历模板、面试题文档 等等。
编程学习资源大整理
前段时间我花了大把力气,把自用的编程学习资源做了个大整理。
都是纯肝货,目录如下,有需要的可以自取。
- 下载链接:https://pan.baidu.com/s/1jEjcF96iVAXEXaadE1V6RQ
- 提取码:f23d
PDF干货笔记下载
- 下载 → LeetCode算法刷题Golang版答案PDF文档
- 下载 → LeetCode算法刷题C++版答案PDF文档
- 下载 → LeetCode算法刷题Java版答案PDF文档
- 下载 → 谷歌学长的数据结构+算法题代码笔记手册
- 下载 → 再肝两夜,写了个「服务器项目部署」实战PDF手册
- 下载 → 熬10天夜,肝出了这个PDF版「软件安装手册」
- 下载 → 熬了7天夜,羊哥肝了个Linux速查备忘手册!
- 下载 → Java后端开发学习路线+知识点梳理总结
- 下载 → 前端开发学习路线+知识点梳理总结
- 下载 → 大数据开发学习路线+知识点梳理总结
- 下载 → 嵌入式开发学习路线+知识点梳理总结
- 下载 → C/C++后台开发学习路线+知识点梳理总结
- 下载 → 找工作简历模板集(word格式)
- 下载 → 程序员写简历时的技术词汇拼写规范PDF手册
- 下载 → Java基础核心知识大总结PDF文档
- 下载 → C/C++常见面试题(含答案)PDF文档
- 下载 → 设计模式学习笔记PDF文档
- 下载 → Java多线程+并发编程知识点详细总结PDF
- 下载 → 阿里Java开发手册PDF全套
其他资源下载
编码之外
诚然,程序员应该重视代码,但眼里也不应该只有代码,很多代码之外的东西也很精彩。工作也是为了更好的生活,多看看身边的事,多关心身边的人,终究我们还是要回归到平凡的生活中
我们所热爱的,就是自己的生活!
码农生活
- 办公室划水?嘿嘿,这事我擅长...
- 戴着耳机敲代码,我都听些啥?
- 程序员猪队友行为大赏,你遇到过哪些?
- 写给程序员看的买房+考公务员攻略
- 毕业租房避坑攻略(含购物清单)
- 加班严重时该如何自我提升?
- 在腾讯待了9年还离了职
- 聊一聊自学计算机的辛酸史
- 一个算法工程师的日常
- 测试岗与开发岗的那些爱恨情仇
- 采访了一位技术总监:聊了聊跳槽的心态问题
- 这就是架构师一天的生活,还羡慕不?
- 程序员是如何玩浪漫的?
- 假如曹操是一名程序员,你猜怎么着?
- 周末无聊,我都逛哪些资讯类网站充电呢?
- 亲历分享:一行代码,百万人民币打水漂
- 程序员从技术→管理,要走哪些路?
- IT领域的2/8法则,扎心了
- 周一划水必备:程序员专属GIF动图批发
- 521坦白帖:当年念书时是怎么写情书的?
- 一位半路转行计算机的女生
- 程序员界的孔乙己
- 我的大学四年收获及工作感悟
- 离职后,华为的哪些东西是自己最留恋的?
- 华为最美小姐姐,被外派到墨西哥后...
- 我在南大的七年
- 垃圾领导把我的功劳全抢走了!
- 用随机梯度下降法来优化自己的人生!!
- 美团大佬分享:写给工程师的几条精进建议
- 我,生物专业出身,自学转到了互联网
- 坦白贴:十一在家我都逛哪些技术网站?
- 在国外当程序员是一种什么样的体验
- 很佩服的一个Google大佬,离职了
- 雷军:我的程序人生路
读研深造
- 整整5年了!老羊斗胆聊一聊和自己导师的相处
- 学弟跨考浙大计算机的掏心窝子分享!
- 既然硕士毕业也去搞开发,那我还读个喵的研?
- 一篇所有研究生都该读的好文:阳光温热,科研静好!
- 如何优雅地向老师表达我这周任务没啥进展?
- 好不容易读个研,遇到放羊的导师怎么办?
- 研究生/专升本都扩招,我们没有理由放弃
- 本科、硕士、博士,究竟有何区别?
- 一位博士的自白:毕业时想大哭一场
- 一个农村博士的独白:全家为什么只有我读到了博士
- 考研上岸哈工大的经历分享
闲聊唠嗑
- 深夜闲聊:还敢无脑梭哈计算机么?
- 那些学计算机的女生后来都怎么样了?
- 程序员缺乏经验的7种表现
- 程序员的酒后真言,都不容易
- 自学技术时,看书还是看视频?
- 学校出身一般,该怎么办
- 如何写出让同事无法维护的代码?
- 六成大学生认为自己毕业10年内会年入百万?
- 拼多多和电网offer,要你会选哪个?
- C语言,50岁了!永远滴神!
- 围观Linus大佬吐槽桌面版Linux
读书写作
- 在线画图工具ProcessOn
- 在线画图工具Draw.io
- 在线思维导图工具MindLine
- 在线字数统计工具
- mdnice markdown排版工具
- md2all markdown排版工具
- 在线代码截图工具
摸鱼时间
咳咳。。。
- 0x00000001
- 0x00000002
- 0x00000003
- 0x00000004
- 0x00000005
- 0x00000006
- 0x00000007
- 0x00000008
- 0x00000009
- 0x0000000a
- 0x0000000b
- 0x0000000c
- 0x0000000d
- 0x0000000e
- 0x0000000f
- 0x00000010
- 0x00000011
联系作者
关于作者
- 普通开发者,热情的学习者,狂热的数码迷
- 90后,硕士毕业于华中科技大学电信专业,现从事IT类工作
- 目前在南京栖息,天天被业务折腾得死去活来的同时依然保有对各项技术热忱的追求
- 参加工作以后越来越理解交流与分享的重要性,我在不停地汲取大家宝贵经验的同时,也想回馈自己的所学所感给读者
- 本仓库是作者自学编程以来所用资源和分享内容的聚合,旨在为编程自学者提供一系列清晰的学习路线/靠谱的资源/高效的工具/务实的技术文章,方便自己也方便他人。网站内容会保持持续更新,欢迎收藏品鉴
心路历程
- 2021-12-23:我的小网站被打挂了。
- 2021-12-01:最近状态一般,聊聊正在做的一件小事
- 2021-10-14:我坚持两年了!
- 2021-09-12:羊哥今年的书单!
- 2021-08-29:读了7年通信最后还是转了码,羊哥你后悔吗?
- 2021-08-05:羊哥竟然翻出了当年的大学成绩单。。
- 2021-07-16:羊嫂偷偷抹了两个小时眼泪
- 2021-06-23:还敢无脑梭哈计算机么?
- 2021-06-17:羊家坝村首席高考志愿填报推荐官
- 2021-06-13:羊哥接到了百万大V的邀请!起飞了~
- 2021-06-06:整整5年了!老羊斗胆聊一聊和自己导师的相处
- 2021-05-27:拜访了这位小哥的GitHub后,羊哥失眠了
- 2021-05-21:521坦白帖:当年念书时是怎么写情书的?
- 2021-05-09:卧槽,人品爆了 ...
- 2021-05-05:生产队的驴都不敢这么过五一
- 2021-04-24:日子浑浑噩噩地过,这可能是我最开心的一周了
- 2021-03-28:痴声痴色痴梦痴情几辈痴人
- 2021-03-21:我和羊嫂的3平米小书房
- 2021-02-28:哎,我也想有一个这样的老婆啊
- 2021-01-14:熬夜多疯狂,体检报告就有多刺激!我怂了
- 2021-01-10:去芜湖、看房子、拿体检报告,魔幻的2021开端~
- 2020-12-13:今天的南京,很冷很冷
- 2020-10-22:和字节跳动面试官学长聊了聊人生~
- 2020-10-15:愿那只在天堂的猫,能够被温柔相待
- 2020-10-06:老家被拆了,我的少年记忆也无处安放了
- 2020-09-06:没有什么事是一顿撸串解决不了的~
- 2020-08-08:实不相瞒,我就是鹤岗的女婿~
- 2020-07-18:最近厚着脸皮联系了不少同学
- 2020-07-03:自学党/野生猿,项目经验上哪搞?
- 2020-06-21:既然硕士毕业也去搞开发,那我还读个喵的研?
- 2020-06-14:我的毕业季,没有一点点仪式感
- 2020-05-08:最近状态不咋好...
- 2020-05-01:二线城市的程序员活得好吗?
- 2020-04-21:自学编程的八大误区!克服它!
- 2020-04-08:我的本科回忆录:从迷茫自卑到保送华科
- 2020-03-15:到底要不要考研?
- 2020-02-23:实不相瞒,在家远程办公15天,我有点自闭
- 2020-02-16:昨夜,我梦回武汉 . . .
- 2020-02-02:转行的路,走起来其实有点累...
- 2020-01-23:来B站一年,我活成了人的模样!
- 2019-10-28:快30岁的我,终于赚到人生第一个10W!
- 2019-09-08:华科研究生学长想对导师们说的话!