介绍

我是小有哥, 一个做开发有 10 年+ 的程序员, 非科班出身, 全自学, 现在是一枚集 Php 后端 + Web 前端(Vue/React/Web) + 基础运维 于一身的全栈程序员, 兼带开发团队.

后续打算使用这个工具把语言的基础部分整理下, 首先整理的是 Php, 同时把自己的学习方法做一下记录, 希望对大家的学习以及工作能够有所帮助.

学习不是一蹴而就的事情, 是需要反复的记忆, 练习和提升, 做开发没有捷径, 所谓三天五天精通一门语言是完全的欺骗大家, 同时可能也伤害了大家的自信心(为什么学了 5 天了还没有精通呢)

框架体系

Poppy Framework

基于 Php 开发的一款管理系统, 包含后台管理, 接口验签, 通知推送, 单点登录, RBAC 体系等等, 具体的说明会有相应的文档和网站

  • 示例站
  • 文档
  • 后续发展的计划

开发笔记

开发笔记主要放置的是我在开发过程中使用的工具, 协同, 团队, 数据库, Redis 以及和语言并无太多相关的一些知识文档

Linux 命令

记录常用的 Linux 的命令的文档 Copy & Modify 用作自己使用的工具

语言学习

学习不同语言的语法结构, 融会贯通.

学习过程

  1. 阅读手册或者系统的书籍

阅读手册可以把知识体系做下梳理, 同时在梳理的过程中发现自己的不足, 周而复始的去成长, 提高

手册或者是系统的书籍相比速成书籍会有更完善的知识体系, 这种书籍是推荐首先阅读的

在阅读的过程中上手写代码, 把自己有疑问的, 没有记住的代码自己动手写一下, 便会很快的去识记

  1. 阅读源码

阅读源码是自己快速提升自己的必要手段, 否则就会按照自己的臆想去编写代码, 不利于代码质量的提升, 这里阅读源码也是有步骤的

2.1) 功能流程图

功能流程先从功能上看一个系统存在哪些功能点, 功能和功能之间是如何串联的, 如何去实现的, 并根据功能罗列出来功能点, 并把功能点根据业务流程化成流程图

2.2) 文件树

文件树是把源码以树的形式平铺出来, 根据 文件夹 > 模块 > 功能 > 文件 由广到系去把代码结构弄清楚, 不必要系到函数, 最细致到文件的功能即可

2.3) 技术流程

根据主要业务流程挑选自己不懂的项目如何去实现的去深入到功能以及函数实现并且有重点的去阅读代码

推荐书籍

  • 代码大全
  • 开发手册(每个语言都有)
  • 开发文档(每个插件都有)

推荐工具

  • Git - 代码管理
  • tree 命令 - 用来生成文件树
  • VsCode 运行代码, 编写文档

学习语言的步骤

程序员不应该被语言所限定, 高级程序员如是说, 程序存在的目的是为了解决各种业务场景, 并不是局限于某个语言

于是自己便想把语言完整的学习一遍, 再高深, 再对比, 然后逐步的进行自我提升

如何学

从一门语言做起, 做对比, 横向, 纵向

以 php 作为基准, 毕竟是自己的独门成长语言, 也是需要有一条线来带着的.

横向便是广度, 纵向便是深度, 或者说是这个语言的一个技术栈

语法

  • 怎样搭建项目
  • 如何运行第一个 demo
  • 注释
  • 开发工具/测试工具
变量/类型/常量
运算符
流程控制
函数(函数定义/内部函数)
类和对象/命名空间
错误级别/异常处理
其他语法

函数

根据手册以及常用的函数快速的过一遍代码

三方

库 / 扩展 / 框架

语言

体系树

├── 1_intro/
├── 2_faq
├── 3_lang_ref
│   ├── 3.1_basic_syntax
│   ├── 3.2_types
│   │   └── array
│   ├── 3.3_variables
│   ├── 3.4_const
│   ├── 3.5_expression
│   ├── 3.6_operator
│   ├── 3.7_control_structure
│   │   ├── 3.6.1\ If
│   └── 3.8_regex
├── 4_functions
│   └── a_fibonacci
├── 5_features
├── 6_function_ref
└── x_vendor