本学习路线是以学习PHP语言为主进行规划的,但在我自己实际零基础自学编程的过程中,Redis、Nginx、Linux、Docker等这些技术,在其他编程语言上也是一样的,所以本学习路线除了第二阶段的PHP核心学习,其它阶段的学习资料对其他编程语言也是适用的
回想当初学习编程的起因是因为大学修了一门《网站建设》的课程,课程的内容都是用dreamviewer搭积木的方式建一个简单的网站,后来老师组织了一个网站学习小组,由此开始了我的网站学习之路
一开始就是往图书馆里钻,寻找各种网站建设的书,虽说老师组织了一个网站学习小组,但大家都知道大学老师一般都是给你指个大方向,具体应该学什么书籍和资料也没有给,具体怎么走还是要靠自己, 后来想了想,先找个最基础的看吧,一步一步来嘛
如今是个工作多年的PHP开发工程师,再回头看零基础自学,一步一步走过来的历程,实在是坎坷,现在想想,其实最困难、最迷茫的就是没有一条明确学习路线和相应的学习资料,具体掌握到什么程度达到就业的水平
接下来说一下自己自学编程的学习路线,罗列了从起步-入门-进阶-高级-拓展几个学习阶段的知识点,技术栈的技术学习先后顺序,哪个应该先学,哪个可以后学。每个技术都附带有相应的学习资源,用的学习资源优先选用网络上公开的、免费的资料
版权归原作者和出版社所有,如有侵权请联系我们删除
妈妈再也不用担心我去那些动则几万块的培训班了,伸手即得,支持白嫖,跟着学习路线,一步一个脚印,在去面试之前,最好先刷一下网上的一下笔试题/面试题,比如LeetCode这些网站,这样可以增加offer的数量
学完第一阶段、第二阶段、第三阶段就达到就业的水平了
学习编程最重要的是动手,作为初学者要坚决地跟着学习资源敲代码,即使对知识点已经懂了,但是懂和会用是两码事,切记!!!切记!!!
第一阶段: WEB 入门
HTML 基础
- WEB 简介
- HTML 标签
- HTML5
CSS 基础
- CSS 选择器
- CSS 属性以及使用
- 盒子模型
- 浮动定位
- CSS3
后续仍会更新学习资源,资源列表使用腾讯文档展示,PHP学习资料:https://docs.qq.com/doc/DYlV1T2ZYUWhHeE5m
首先在学习 PHP 编程前要先入门 WEB 的基础,理解一个网站基础构成因素,这为后面进一步的学习打下必要的基础
当初我是因为没人指导,然后就去图书馆找了一本网站基础的书,当时没有什么意识,现在回过头来看,我这是把以后的路走宽了,前端的知识还是很有趣的,为什么呢,因为所见即所得嘛,按着书上的代码敲,运行代码,成就感爆棚,然后前端也不需要安装什么环境
当然了,现在企业的前端就不是这么原始了,一般都是使用 vue 、 react 、 node 、 webpack 等前端技术栈,但是对于 PHP 初学者来说,入门基础的前端知识已经足够了,后面学完第三阶段后,在第五阶段会提供往全栈工程师发展的进一步的前端相关学习资料
学习成果
- 了解最基本的网页概念、 HTML(5) 和 CSS(3) 样式基础知识,了解各种常用标签的意义以及基本用法,为后续更深入的学习打好基础
- 基本掌握前端必备的 HTML + CSS 样式基础知识,并可以利用这些知识实现静态页面
第二阶段: PHP 入门
PHP 环境搭建
- WEB 程序访问流程
- 安装集成环境
- 安装自定义环境
PHP 核心
- 变量和常量
- 数据类型与运算符
- 流程控制
- 函数
- 文件包含
- 字符串与数组
PHP 典型技术
- HTTP 协议
- 表单传值
- 文件编程
- 会话技术
- GD 图像处理
面向对象
- 面向对象的使用
- 面向对象三大特性
- PHP 中的继承
- 对象的遍历与序列化
- 反射机制
- 命名空间
PDO 接口
- PDO 基本操作
- 预处理及属性控制
- PDO 异常
- PDO 封装
MySQL 基础
- 基础 SQL 操作
- 列类型与列属性
- 事件编程
- 高级数据操作
- MySQL 三大查询
- 备份与还原
- 权限管理
- PHP 操作 MySQL
- 外键和范式
- 视图和事务安全
- 触发器和索引
- 函数和存储过程
后续仍会更新学习资源,资源列表使用腾讯文档展示,PHP学习资料:https://docs.qq.com/doc/DYlV1T2ZYUWhHeE5m
从这里开始对 PHP + MySQL 基础知识进行学习,掌握 PHP 核心知识
我自己初学的时候,看的书是《PHP与MySQL程序设计》和《细说PHP》, 第一本看的是《PHP与MySQL程序设计》,看完之后感觉学到,但是只学到了一点点,现在回望看就是犯了很多初学者的毛病,只看不动手(那时是冬天 ,冻手),学习编程最重要的是动手,切记!切记!后来又再看了《细说PHP》巩固,按着书上的代码敲, 当时把hello world保存到mysql数据库里很兴奋激动的,还特地发了个朋友圈
PHP 一般都是搭配 MySQL数据库使用的,入门数据库,需要学习数据库的基础概念,看起来可能比较枯燥,但是要坚持看完了,而且要做好笔记,这里再提一嘴,要跟着学习资料敲代码!!
如果是在校学生,刚好有校内编程比赛,要积极参加,我那时刚好学完数据库mysql、然后系内就举办了一个网站建设比赛,然后我兴致勃勃的做了一个相册网站,就相当于QQ空间里面的相册一样, 当时做的只有前端展示,图片保存到本地,图片链接都是使用sql全部初始化到数据库,当时是得了第一名(就7个人参加了比赛),虽然这算不得什么,但是成就感满满的,这对后续坚持学习编程起了很大的作用。
如果不是在校学生,可以做一个门户网站,就实现最简单的增删改查,不要求有多么美观,做出来也是很有成就感的,而且还巩固了所学的知识。后来我是自己做了个最简单的留言板网站,虽然没有上线,就在本地自己电脑自己玩。
学习成果
- 掌握 PHP 中的变量、类型、常量、运算符、顺序结构、条件结构、循环结构等概念
- 基本掌握 PHP + MySQL 必备的核心知识,并可以利用这些知识实现动态页面
第三阶段: 巩固进阶
Composer 包管理
- 安装
- Composer 基本操作
后续仍会更新学习资源,资源列表使用腾讯文档展示,PHP学习资料:https://docs.qq.com/doc/DYlV1T2ZYUWhHeE5m
Composer 是 PHP 的一个依赖管理工具,用来管理项目第三方库包的工具,学会如何使用就可以了
Git 版本控制
- Git 基本操作
- 配置仓库和权限控制
- 钩子程序
后续仍会更新学习资源,资源列表使用腾讯文档展示,PHP学习资料:https://docs.qq.com/doc/DYlV1T2ZYUWhHeE5m
Git是一个分布式版本控制系统,对项目代码版本进行管理的一个工具,学会如何使用就可以了
举个比较常见的使用场景,当你正在做一个需求的时候,又有一个需求来了,两个需求是并行的,上线时间不确定,所以代码要分离,最简单的办法就是复制一份代码,放在新的目录下,这样不就可以了,但是这样会造成一些问题,比如说最终两个需求的代码合并的时候产生代码冲突的时候,处理起来很困难,而且有很多需求来的时候,也不可能为每一个需求都复制一份代码,这个时候就要用Git来解决这些问题,为每个需求独立开一个分支就可以了,代码还是一份,最终代码合并处理冲突也很方便
PHP集成框架
- ThinkPHP 框架
- Laravel 框架
- Yii 框架
后续仍会更新学习资源,资源列表使用腾讯文档展示,PHP学习资料:https://docs.qq.com/doc/DYlV1T2ZYUWhHeE5m
ThinkPHP是国内公司很受欢迎的轻量级PHP开发框架,文档、源码注释都是使用中文,对初学者非常友好
在研究透一个框架后,在学习其它框架的时候,可以快速看框架文档即可上手应用,所以建议先把ThinkPHP研究透再去研究其它框架,一法通万法通。
Redis 缓存
- 安装启动
- PHP 操作 Redis
- 主从配置
后续仍会更新学习资源,资源列表使用腾讯文档展示,PHP学习资料:https://docs.qq.com/doc/DYlV1T2ZYUWhHeE5m
Redis是一个key-value存储系统,最常见的使用场景是缓存,这非常重要,现在很多项目都用Redis做缓存
学习Redis也想学习PHP一样,入门-实战使用-进阶,
入门Redis,学习资料里提供了一个视频课程,
实战Redis,可以通过《Redis 实战》的学习,认识到Redis丰富的使用场景
进阶Redis,推荐看《Redis 设计与实现》,结合Redis源码理解,学习起来非常丝滑,理解其中的实现机制,再去看其它技术的源码,会发现实现方案有很多相同的地方
MySQL 进阶
- 性能优化
- 读写分离原理
- 日志文件bin-log
- 配置
后续仍会更新学习资源,资源列表使用腾讯文档展示,PHP学习资料:https://docs.qq.com/doc/DYlV1T2ZYUWhHeE5m
MySQL 数据库有多重要,这里就不再强调了,需要提一嘴的是学习的时候一定要做好笔记
Nginx 服务器
后续仍会更新学习资源,资源列表使用腾讯文档展示,PHP学习资料:https://docs.qq.com/doc/DYlV1T2ZYUWhHeE5m
Nginx 是一款轻量级的 Web 服务器、反向代理服务器,也是一个IMAP/POP3/SMTP服务器
Linux 基础
- 安装Linux操作系统
- 用户、用户组、文件管理
- 搭建Lnmp环境
- Shell 脚本入门
- VI 编辑器
后续仍会更新学习资源,资源列表使用腾讯文档展示,PHP学习资料:https://docs.qq.com/doc/DYlV1T2ZYUWhHeE5m
现在商业项目都是运行在 Linux 系统下的,因此基础Linux系统操作是必备的
Docker 容器引擎
后续仍会更新学习资源,资源列表使用腾讯文档展示,PHP学习资料:https://docs.qq.com/doc/DYlV1T2ZYUWhHeE5m
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化
说人话就是把项目集成编排,换一台电脑也可以很方便地跑起来
Elasticsearch 搜索
- 安装启动
- Elasticsearch 数据类型
- PHP 操作 Elasticsearch
后续仍会更新学习资源,资源列表使用腾讯文档展示,PHP学习资料:https://docs.qq.com/doc/DYlV1T2ZYUWhHeE5m
当一个表的数据量达到五十万以上的时候,使用百分号 % 对 MySQL 进行全文搜索,性能很差,如果跨表的话(一般情况下不用视图),那更差了,所以需要使用 Elasticsearch 来进行搜索优化
Memcache 缓存
- URL优化
- 页面静态化
后续仍会更新学习资源,资源列表使用腾讯文档展示,PHP学习资料:https://docs.qq.com/doc/DYlV1T2ZYUWhHeE5m
Memcache 也是一个和 Redis 类似的key-value存储系统,但是Memcache的数据类型比较单一
XML标记语言
- XML 语法
- XPath 路径
- SimpleXML 解析
后续仍会更新学习资源,资源列表使用腾讯文档展示,PHP学习资料:https://docs.qq.com/doc/DYlV1T2ZYUWhHeE5m
XML,可扩展标记语言,是一种具有结构性的标记语言,与之同类型的是JSON,XML在一些场景中很合适使用,比如爬虫内容采集时,涉及到某个节点下的某些数据
正则表达式
后续仍会更新学习资源,资源列表使用腾讯文档展示,PHP学习资料:https://docs.qq.com/doc/DYlV1T2ZYUWhHeE5m
正则表达式,一种文本模式,使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串,常用的场景是爬虫内容采集
学习成果
- 基本掌握 PHP工程师 必备知识,并可以实现企业需求,达到就业水平
第四阶段: 高级深入
MongoDB 大数据数据库
- MongoDB 基本和常用命令
- 主从复制
- PHP 操作 MongoDB
后续仍会更新学习资源,资源列表使用腾讯文档展示,PHP学习资料:https://docs.qq.com/doc/DYlV1T2ZYUWhHeE5m
mongodb,一个基于分布式文件存储的数据库,在大数据的场景下作为数据库是个不错的存储方案
RabbitMQ 消息中间件
后续仍会更新学习资源,资源列表使用腾讯文档展示,PHP学习资料:https://docs.qq.com/doc/DYlV1T2ZYUWhHeE5m
RabbitMQ,一个开源的AMQP实现的消息队列中间件,项目代码解耦的利器,比如高并发场景下,实现异步任务多进程消费
Gitlab 代码仓库
后续仍会更新学习资源,资源列表使用腾讯文档展示,PHP学习资料:https://docs.qq.com/doc/DYlV1T2ZYUWhHeE5m
Gitlab,一个项目代码仓库,和 Github 类似,不过Gitlab可以私有化部署在自己的服务器上
Jenkins 持续集成
后续仍会更新学习资源,资源列表使用腾讯文档展示,PHP学习资料:https://docs.qq.com/doc/DYlV1T2ZYUWhHeE5m
Jenkins,持续集成工具,当一个项目成型后,后续持续迭代,每一次迭代上线时,有很多上线操作,比如编译,生成缓存文件,发布到多台机器上,如果这些都人工处理话,很容易出错,而 Jenkins 将这些上线操作持续构建,当我们完成需求代码开发后,使用 Git 推送到代码到 Gitlab 仓库,Gitlab 触发 Jenkins,一旦配置后,项目自动化持续集成部署
Kubernetes 容器编排
后续仍会更新学习资源,资源列表使用腾讯文档展示,PHP学习资料:https://docs.qq.com/doc/DYlV1T2ZYUWhHeE5m
Kubernetes,管理多个主机上的容器化的应用,结合 Docker 使用,编排容器环境
Kafka 日志中间件
后续仍会更新学习资源,资源列表使用腾讯文档展示,PHP学习资料:https://docs.qq.com/doc/DYlV1T2ZYUWhHeE5m
Kafka,一个分布式的消息系统,一般用来做日志聚合的分布式日志系统
第三方接口编程
- 支付接口
- 配送接口
- 微信接口
- 短信接口
- 邮件接口
- 地图接口
- 百度接口
- 腾讯接口
后续仍会更新学习资源,资源列表使用腾讯文档展示,PHP学习资料:https://docs.qq.com/doc/DYlV1T2ZYUWhHeE5m
掌握对接第三方接口能力,在实际开发项目中是必备的,像对接支付宝支付、微信支付实现订单下单购买功能
这里多提一嘴,在对接第三方接口的时候,一定要打好日志!一定要打好日志!一定要打好日志!重要的事情说三遍,如果对接的过程不顺利或者事后出bug了,日志是排查问题的利器,当然了,能学到这里的大佬们肯定是知道日志的重要性的
设计模式
后续仍会更新学习资源,资源列表使用腾讯文档展示,PHP学习资料:https://docs.qq.com/doc/DYlV1T2ZYUWhHeE5m
能不能写出既实现功能又优雅的代码,全靠对设计模式的理解程序,当然设计模式在面试的时候也是经常被问到,比较常见的工厂模式、单例模式、观察者模式,肯定得随口说来,滚瓜烂熟,并且配合实战例子
网络协议
后续仍会更新学习资源,资源列表使用腾讯文档展示,PHP学习资料:https://docs.qq.com/doc/DYlV1T2ZYUWhHeE5m
经常在招聘上看到要求计算机基础扎实,计算机基础是哪些??
网络协议就是计算机基础之一,像面试时经常问到的三次握手和四次挥手的问题答案就在这里
安全防范
- XSS 跨站脚本攻击
- CSRF 跨站请求伪造
- SQL 注入
- DDOS 网络攻击
后续仍会更新学习资源,资源列表使用腾讯文档展示,PHP学习资料:https://docs.qq.com/doc/DYlV1T2ZYUWhHeE5m
安全规范,编程的常识,这里了解一些网络攻击方式,在企业中,正常来说,大多数攻击都会有运维和框架底层帮我们过滤掉,当然了,我们在实现功能的时候也要有意识地处理,最基础就是不要相信任何客户端请求过来的数据,一定要校验
学习成果
- 熟练掌握 PHP工程师 高级知识,熟练地采用最优方案实现产品需求
第五阶段: 拓展学习
Javascript 入门
- Javascript 常用事件
- 面向对象及闭包
- Javascript 函数调用
- Ajax
- 发送get/post请求
- 用 XML/JSON 传输数据
- 跨域请求
后续仍会更新学习资源,资源列表使用腾讯文档展示,PHP学习资料:https://docs.qq.com/doc/DYlV1T2ZYUWhHeE5m
在第一阶段: WEB 入门,已经学习了基础的 HTML 和 CSS知识, 这里开始拓展学习前端相关知识,向全栈工程师发起冲击
全栈工程师是实现职业自由的一条路径,比如开发一个工具,为某个小众人群服务,基础功能免费,高级功能付费,付费的人多了并且多于公司工资的时候,这个时候你就可以炒老板的鱿鱼了,当然啦,最好的是边工(摸)作(鱼)边维护,赚两份钱更香
HTML 进阶
- HTML5
CSS 进阶
- CSS3
后续仍会更新学习资源,资源列表使用腾讯文档展示,PHP学习资料:https://docs.qq.com/doc/DYlV1T2ZYUWhHeE5m
在第一阶段: WEB 入门,已经学习了基础的 HTML 和 CSS知识, 这里继续巩固,并且学习进阶知识,实现特效功能
Vue.js 框架
后续仍会更新学习资源,资源列表使用腾讯文档展示,PHP学习资料:https://docs.qq.com/doc/DYlV1T2ZYUWhHeE5m
Vue,构建交互式的 Web 界面的库,前端项目框架,目前开源资源很多,不用从零开始,选择合适的项目并实现自己的想法,首先得学习Vue的基础语法,然后在使用开源项目的过程中,不断学习,善用百度、Google和官方文档
Uni-app 框架
后续仍会更新学习资源,资源列表使用腾讯文档展示,PHP学习资料:https://docs.qq.com/doc/DYlV1T2ZYUWhHeE5m
Uni-app,跨平台客户端,号称使用Vue.js开发所有客户端应用的框架,可编译生成网页、安卓、IOS、各类小程序,这简直是全栈工程师必备技能了,当然啦,为了兼容所有客户端,也是有一定的开发难度的,需要熟练使用需要经过大量的实战训练
Hadoop 大数据处理框架
- Hadoop 安装与配置
- HDFS 分布式文件系统配置
- PHP 编写 MapReduce
后续仍会更新学习资源,资源列表使用腾讯文档展示,PHP学习资料:https://docs.qq.com/doc/DYlV1T2ZYUWhHeE5m
Hadoop,可横跨集群机器进行分布式处理大数据集
学习成果
- 掌握客户端实现技术,具备全栈开发技术能力,可以按照自己的想法开发出网站、App
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!
8. 精力有限,不少源码未能详细测试(解密),不能分辨部分源码是病毒还是误报,所以没有进行任何修改,大家使用前请进行甄别
丞旭猿论坛
暂无评论内容