Road To Coding

CodeSheep ... 2021-12-04 文档
  • Study
大约 71 分钟

#

Github Gitee bilibili

# 为什么会有这个网站

提示

本网站取名 r2coding,即 Road To Coding,意为「编程自学之路」,是自学编程以来所用资源和分享内容的大聚合。
旨在为编程自学者提供一系列:

  • 清晰的编程自学路线
  • 各编程岗位方向的知识点梳理
  • 靠谱的资源
  • 高效的工具
  • 务实的技术文章

方便自己也方便他人。网站内容会保持持续更新,欢迎收藏品鉴!

# 本网站内容地图

本网站内容地图

# 编程自学路线+知识大梳理

相关信息

本网站目前整理收录了6个大方向(岗位)的学习路线+知识点大梳理,分别为:

  • Java后端开发
  • 前端开发
  • C/C++后台开发
  • 大数据开发
  • 嵌入式开发
  • 网络安全方向

后续本网站也会持续更新和增加更多方向岗位的学习路线...


# 常用编程软件和工具

# 工欲善其事,必先利其器

一个易上手、好用、高效的软件工具对于程序员工作效率的提升是不言而喻的,这些常用开发软件和工具比如:

  • 基础的软件开发环境和设施
  • 好用高效的在线工具和网站
  • 本地常用的一些编程软件
  • Linux操作系统
  • 版本控制工具
  • 高效的IDE和编辑器
  • API管理工具/文档管理工具
  • CI守护系统
  • ......

接下来我们一项一项详细盘点。

# 常用在线工具集

程序员在平时的日常工作学习开发做笔记写博客等过程中还是有很多好用并且高效的在线工具推荐的,毕竟我们不是每时每刻我们都需要那种很重量级的本地软件。

下面将分成16个大类,共整理了约130+个常用的在线工具和网站供大家食用。

# 一块放不下,分成两块

# 常用本地软件

常用本地软件

这里将常用软件分为了5大类,包括:

# 基础软件开发环境和设施

相关信息

什么叫基础软件开发环境?

很好理解。学Java得要装JDK吧?学Python得要Python环境吧?学数据库得要MySQL吧?等等,这些在学习编程之前都是应该提前在自己的电脑上准备好的,而且尽量把全套都先备好,后面直接就用了。

经常听到有小伙伴反馈和提问有关编程环境搭建和基础软件设施安装的相关问题。

  • 啥?JDK明明装了,为啥还是not found?
  • 咦?Maven明明配了加速,咋下载依赖还这么慢?
  • 诶?MySQL明明装了,咋Navicat连会报错?
  • 哦?Tomcat咋出不来页面?......

每次都是照着网上现搜的帖子操作,一顿操作猛如虎,一看结果各种有问题,要不报错,要不环境起不来,等等。装个环境就浪费了很多时间,而且过了一段时间又忘,还得重新搜帖子,该踩的坑一个都不少...

既然大家有这方面需求,想来想去,关于这个问题,我还是决定写一个事无巨细的PDF文档,把所有编程环境和基础软件设施的安装过程给详细地记录下来了。

熬10天夜,我肝出了这个PDF版「编程软件(环境)安装手册」 (opens new window)

内容包含常见基础开发环境和设施的安装部署,包括:

  • Linux操作系统
  • Git工具
  • Java环境JDK
  • Node基础环境
  • Python基础环境
  • Maven项目构建和管理
  • MySQL数据库
  • Redis缓存
  • RabbitMQ消息队列
  • Tomcat应用服务器
  • Nginx Web服务器
  • Docker环境
  • Kubernetes环境
  • Elasticsearch搜索引擎
  • ZooKeeer环境
  • Kafka消息队列

大家有需要的可以:点击此处 → 下载获取 (opens new window)

# Linux操作系统

Linux操作系统

警告

实际企业级开发和项目部署,大部分情况下基本都是基于Linux环境进行的,所以掌握常用的命令、配置、网络和系统管理、基本的Shell编程等尽量还是要熟练一些,对后续项目实践都大有裨益。

# 版本控制工具

版本控制工具

# IDE/编辑器

IDE/编辑器

# API管理/文档管理

API管理/文档管理

# CI系统

CI系统

# 其他软件/工具/网站

# 计算机基础

注意

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

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

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

此处整理为六大方面:

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

# 编程语言

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

# Java

# 数据结构+算法题

注意

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

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

# 计算机网络

注意

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

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

# 操作系统

注意

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

# 数据库/SQL

# 设计模式

# 其他

# 应用框架和工具

相关信息

  • 计算机基础聊完了,接下来就是应用和实践的环节了。这部分通常会涉及到一些工具编程环境、以及应用框架
  • 企业级开发不同于个人自学,出于可复用性稳定性开发成本开发效率质量保证等一系列因素的考量,不可能每一个功能、每一个组件都从0开始徒手造轮子,所以这时候各种应用框架和工具的出现就非常有帮助了。
  • 其实框架讲白了就是别人经过多年迭代写好的一套工具代码库逻辑、亦或是流程,把原本都需要从0开始手写的基本功能和组件都给封装进去,用户只要符合框架约定的规则进行编码,或者调用框架提供的方法或者工具,就能快速拉起业务功能,创造实际经济价值。
  • 所以框架的出现从不同的角度看也是有多面性的:对于企业级开发效率提升而言肯定是有帮助的,但是对于程序员个人思考编码能力提升却未必是好事,所以多注重基础、深挖原理,提升自身竞争力还是非常有必要的。

# Spring系列框架

# 前后端分离

# 分布式/微服务

# 容器/集群

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

# 书籍/资料推荐

书籍/资料推荐

提示

  • 毫无疑问的是,对于上文提到的 「编程基础」 部分,有大量经典的书籍值得阅读,每一本都是大师们若干年经验的汇聚,所以学好编程基础,对于我们普通人来说,看书是一个非常直接有效的方式。
  • 很多经典书看一遍可能远远不够,正所谓 「初看懵、再看迷、三看发现有点小意思」 讲的就是这个道理,这事急不得,而且有些东西的确需要一个反反复复的过程,有些甚至是在工作后的实践中才会遇到,所以珍惜每一次回炉重造的过程吧。

书籍资料推荐:

互联网开源教程推荐:

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

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

# 项目经验获得

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

# 个人博客/网站搭建

# 开源项目

# 实际项目需求和问题例析

# 面试准备和求职

相关信息

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

# 简历相关

# 工作岗位科普

# 面试题集合

# 求职经历分享

# 城市/公司选择

# 其他求职相关问题

# 视频教程推荐

相关信息

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

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

# 资源汇总和下载

相关信息

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

# 编程学习资源大整理

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

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

#

# PDF干货笔记下载

# 其他资源下载

# 编码之外

相关信息

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

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

# 码农生活

# 读研深造

# 闲聊唠嗑

# 读书写作

# 摸鱼时间

咳咳。。。

# 联系作者

# 关于作者

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

# 心路历程

# 微信联系

微信联系

# 本站开源地址

# GitHub开源地址

# Gitee开源地址

# 持续更新中···