仓库内容持续更新中...

微信联系

自学之路漫又长,唯有不断总结,不断回味,不断分享,才能成长!

联系我可以【微信】私我


为什么会有这个开源仓库


本仓库取名 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是我用得最多的,历史文章中几乎所有相关的图形都是用它绘制,然后导出图片的。

在线编解码工具

在线转换工具

正则表达式工具

网络工具

在线编译运行工具

可视化/格式化工具

在线生成器

其他常用在线开发相关工具

在线素材工具

如果你也写文章,或者做视频,那就一定少不了要找素材,包括各种图片、背景、emoji表情、表情包、壁纸、视频、gif图等等。

如此一来,那些好用的在线素材工具就必不可少了,比如像各种表情包工具、icon图标库、矢量图库、图片素材库、壁纸库等等。

设计制作类工具

对于那些文章创作者和视频创作者而言,设计封面,做海报,设计LOGO,图片美化等等基本也是刚需。

这样大概率日常会用到一些简易好上手的在线设计制作类工具,比如在线P图、音/视频轻量化剪辑、logo制作、海报设计制作、图片美化、在线图片转换或生成等等,毕竟不是每时每刻我们都需要那种重量级的本地软件。

写作辅助工具

在我写文章的过程中经常会用到和写作相关的辅助工具,比方说:字数统计工具、Markdown格式的文章排版工具、图床网站、代码截图工具等等,所以下面这些在线工具就能很好地满足我的需求。

在线办公工具

这部分在线工具主要用来处理一些和文档以及文稿相关的事情,经常用到的比如:在线的全套pdf处理和转换工具、各种各样多媒体文件间的相互转换工具、在线识别工具、在线压缩工具等等。

文档笔记工具

好记性不如烂笔头,作为一个学习者,我觉得记笔记是必不可少的步骤。当然现在基本都做电子笔记和电子文档比较多。

现如今各式各样优秀的文档工具和笔记软件鳞次栉比,好用的也有很多,整理成如下列表,这东西各有长处,使用哪个最合意还得看个人习惯和需求了。

编程学习网

在线教程和文档

这部分主要集中了我在做开发过程中随手参考所要用到的几乎所有在线教程和官方文档,有中文版文档的我基本都优先列出来了,但更多时候是英文的官方文档。


常用本地软件


这里将常用软件分为了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]


版本控制工具



IDE/编辑器


API管理/文档管理



CI系统


其他软件/工具/网站



计算机基础


计算机基础是最最重要的! 即使后面的东西都没学(或者来不及学),基础部分是肯定需要完成的,这也是后面所有应用框架学习和做项目的基石;反之,在应用框架的学习或者做项目时如果感觉吃力,那就可能非常有必要回过头再来巩固对应的基础知识。

计算机基础的学习不是一蹴而就的,需要一定的反复和回炉才能做到真正的融会贯通,需要一个过程。珍惜每一次回顾和复习基础的机会,应扎实精进,步步为营。

那我们口口声声所说的编程基础(计算机基础)到底指是什么呢?

此处整理为六大方面:

  • 一两门你最熟悉的编程语言(不求多,但求精!)
  • 数据结构和算法
  • 计算机网络
  • 操作系统(计组)
  • 数据库/SQL
  • 设计模式

编程语言


语言在精不在多,切记!完全掌握了一门语言,上手其他的都不难!


Java


数据结构+算法题


数据结构和算法题对于程序员的重要性不言而喻。参加过笔试或者面试过的小伙伴应该知道,可以说这个东西某一程度上直接决定了面试的成败,现在的互联网公司技术岗面试,数据结构+算法题基本都是必选项。

除了几种基础数据结构类型得烂熟于心,基本的几大算法(或者说算法思想)也要了如指掌之外,参加求职前,不论是校招还是社招,非常有必要好好刷一刷LeetCode上的数据结构和算法题,以保持题感。



计算机网络


为什么一定要学好计算机网络?

原因很简单,因为计算机网络中的各种协议栈是当下繁荣的互联网通信的基石,尤其建议要牢固熟练地掌握TCP/IP协议栈。



操作系统


学好操作系统有利于我们深入理解计算机底层,这样平时在遇到疑难杂症时,能够更容易看到问题的本质,并高效解决;另外操作系统里的很多优秀的设计思想、经典的架构、算法、思路也值得我们反复理解和思考,很多思想在平时的工作中也可以借鉴和运用。



数据库/SQL


设计模式

其他


应用框架和工具


计算机基础聊完了,接下来就是应用和实践的环节了。这部分通常会涉及到一些工具编程环境、以及应用框架

企业级开发不同于个人自学,出于可复用性稳定性开发成本开发效率质量保证等一系列因素的考量,不可能每一个功能、每一个组件都从0开始徒手造轮子,所以这时候各种应用框架和工具的出现就非常有帮助了。

其实框架讲白了就是别人经过多年迭代写好的一套工具代码库逻辑、亦或是流程,把原本都需要从0开始手写的基本功能和组件都给封装进去,用户只要符合框架约定的规则进行编码,或者调用框架提供的方法或者工具,就能快速拉起业务功能,创造实际经济价值。

所以框架的出现从不同的角度看也是有多面性的:对于企业级开发效率提升而言肯定是有帮助的,但是对于程序员个人思考编码能力提升却未必是好事,所以多注重基础、深挖原理,提升自身竞争力还是非常有必要的。

Spring系列框架

前后端分离

分布式/微服务

容器/集群

缓存/MQ/中间件/服务器



书籍/资料推荐



毫无疑问的是,对于上文提到的 「编程基础」 部分,有大量经典的书籍值得阅读,每一本都是大师们若干年经验的汇聚,所以学好编程基础,对于我们普通人来说,看书是一个非常直接有效的方式。

很多经典书看一遍可能远远不够,正所谓 「初看懵、再看迷、三看发现有点小意思」 讲的就是这个道理,这事急不得,而且有些东西的确需要一个反反复复的过程,有些甚至是在工作后的实践中才会遇到,所以珍惜每一次回炉重造的过程吧。


书籍资料推荐:

互联网开源教程推荐:

编程资源汇总和下载点击查看

编程视频教程推荐 → 点击查看


项目经验获得

自学党如何获得项目经验?

—> 点击查看

个人博客/网站搭建

开源项目

实际项目需求和问题例析


面试准备和求职


该板块会持续更新各技术方向的求职面试题集合、面经、以及一些小伙伴的求职心得与经历感悟。

简历相关

工作岗位科普

面试题集合

求职经历分享

城市/公司选择


其他求职相关问题


视频教程推荐


对于学习编程的小伙伴来说,网上有海量现成的宝贵视频学习资源可供食用。

所以该板块会持续甄选和更新互联网上那些优秀的、值得反复观看的技术视频教程。



资源汇总和下载


该版块会持续更新那些优秀的编程资源,包括但不限于: 各种硬核的PDF笔记、软件包、技术手册、自制文档、题解解析、简历模板、面试题文档 等等。


编程学习资源大整理

前段时间我花了大把力气,把自用的编程学习资源做了个大整理。

都是纯肝货,目录如下,有需要的可以自取。

PDF干货笔记下载

其他资源下载


编码之外


诚然,程序员应该重视代码,但眼里也不应该只有代码,很多代码之外的东西也很精彩。工作也是为了更好的生活,多看看身边的事,多关心身边的人,终究我们还是要回归到平凡的生活中

我们所热爱的,就是自己的生活!


码农生活

读研深造

闲聊唠嗑

读书写作


摸鱼时间

咳咳。。。


联系作者


关于作者

  • 普通开发者,热情的学习者,狂热的数码迷
  • 90后,硕士毕业于华中科技大学电信专业,现从事IT类工作
  • 目前在南京栖息,天天被业务折腾得死去活来的同时依然保有对各项技术热忱的追求
  • 参加工作以后越来越理解交流与分享的重要性,我在不停地汲取大家宝贵经验的同时,也想回馈自己的所学所感给读者
  • 本仓库是作者自学编程以来所用资源和分享内容的聚合,旨在为编程自学者提供一系列清晰的学习路线/靠谱的资源/高效的工具/务实的技术文章,方便自己也方便他人。网站内容会保持持续更新,欢迎收藏品鉴

心路历程


微信联系


持续更新中…

本仓库内容会持续保持更新 → 欢迎收藏品鉴!