一、背景

本人是一名 Web 前端开发,技术栈是 Vue 和 React,不会 Node。之前学过,但是因为一些原因(比如没有使用场景,很多概念无法理解,学完就忘等)一直也没有掌握。

因为在 CMS 部门耳濡目染时间久了,感觉不学点后端有点说不过去,而且学起来之后发现也挺有兴趣的。但是对于一名前端开发(而且在学校的时候基本没学习)来说要学习的内容实在太多了,开始的困难在于理清各种技术都是干什么的以及它们之间的关系。现在刚刚有点眉目故记录一下,权当给需要的同学一些建议。

二、流程梳理

这里只简单的把后端的工作理解为:从数据库里取出数据并返回给前端。

那么需要掌握的技术有:

  1. 一门原生后端语言(比如 Python)用来写业务逻辑,处理接口的参数;
  2. 这门语言的框架(比如 Django)跟前端框架一样理解;
  3. 数据库(比如 MySQL);
  4. ORM,这个上面说的 Django 就有,也有单独的 ORM 框架,比如 SQLAlchemy
  5. 其他……

重点说一下 ORM 是干什么的:

SQL语句是可以直接操作数据库的,比如 SELECT 语句可以获取数据。但在实际应用中很少直接使用SQL语句来操作数据库,而是使用 ORM(对象关系映射,Object Relational Mapping)

就是 把数据库表中的每条记录映射成一个对象,可以通过 ORM 提供的一些函数来操作这个对象, ORM 底层会把这些函数转换成 SQL 语句。

我选的语言是 Python,其他的语言也都是大同小异的。

三、学习路线

1. Python 语法

不同版本之间差异可能比较大,注意项目中使用的版本。

  1. 需要注意字典类型和对象的区别,以及和 JSON 区别;
  2. Python 中 time datetime json 等内置模块的掌握;
  3. 列表推导,字典推导 等 推导式 也是重点内容。

这个是基础,必须先掌握基本用法,不然后面进行比较困难。就像无论使用 Vue 还是 React 都要先掌握 Javascript。

2. Django 框架

也要注意版本。

Tornado 也是一个 Python 框架,具体看你们项目中使用的哪个。个人感觉 Django 比较简单,可以作为入门。

特别提示:Django 的文档内容特别多,不需要全部看完。可以看完 入门教程,视图层,模型层 之后就看项目代码,遇到不会的再查就可以了。

3. ORM

我的学习过程中这个是理解难点,前面已经解释过了。

4. 数据库

前面说 Python 是需要优先于其他知识掌握的,后面的几个可以并行学习。

强烈推荐一个 B 站的教程,非常清晰易懂:【中字】SQL进阶教程 | 史上最易懂SQL教程!10小时零基础成长SQL大师!!

B 站也有这个老师的 Python 教程,我还没看。。。

5. Redis

Redis 也是一个数据库,也推荐一个 B 站的教程:【狂神说Java】Redis最新超详细版教程通俗易懂

四、名词解释

以上是一些最基础的知识,是转后端必须掌握的。下面对一些迷惑过我的名词做一些解释,这些是随着学习加深也要掌握的:

1. asyncio

是 Python 提供的一个用来编写 并发 代码的库,使用 async/await 语法。

2. SQLAlchemy

Python 中最有名的 ORM 框架。

3. mysqldb

Python2 中用于连接 MySQL 服务器的一个库。

注意这个库和 ORM 的区别:

  1. mysqldb 是用来 连接 数据库的,因为在操作数据库之前我们要先连接上数据库;
  2. ORM 并不能连接数据库,只是让我们用更简单的方式来 操作 数据库。

4. pymysql

Python3.x 中用于连接 MySQL 服务器的一个库。

5. aiomysql

用于从 asyncio 框架访问 MySQL 数据库的库。

5. Supervisor

supervisor 是 python 开发的通用进程管理程序,可以将普通的命令行进程变成后台 daemon,监控进程状态,当进程异常退出时可自动重启。

6. Lua 脚本

Lua是一种轻量小巧的脚本语言,用标准 CANSI C 编写并以源代码形式开放。其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制的功能。

Lua是什么

7. uWSGI

  • WSGI 是一种通信协议
  • uwsgi 同 WSGI 一样是一种通信协议
  • uWSGI 是实现了uwsgiWSGI 两种协议的 Web服务器

uWSGI详解
Nginx+uWSGI部署Python Web应用

8. 虚拟环境

在工作中经常会遇到多个项目使用不同版本的环境,需要为每个项目单独配一套环境。虚拟环境可以解决这个问题。

9. 运维

这就多了:Nginx,Docker,Kubernets,Linux。

虽然大多数公司都有自己的运维,但是我们多多少少也是要了解一点。项目部署的时候也要配合运维写一些脚本文件,这个后面有机会再说。

五、总结

可以看到内容已经很多了,这还没完。上面列出来的是我们项目中使用到的(包括但不限于),但并不是每个项目都用了这么多。

❗️ 特别建议:

计算机的基础知识真的特别重要,比如:

  1. 汇编语言(学习操作系统时要用到)
  2. 操作系统
  3. 数据结构,算法
  4. 计算机组成
  5. 计算机网络

都是你上大学学的那些课程,真的很重要❗️

以上。

前端转后端学习路线整理相关推荐

  1. 前端学习路线整理,如何点亮前端技术栈

    从用Markdown写博客开始,慢慢点亮前端技术栈 写在开始 关于Markdown 关于学习方法和学习资源 前端技术栈学习路线 一.工具类 代码编辑器Visual Studio Code 代码管理工具 ...

  2. 没有基础怎么学习Web前端?相关学习路线又是什么?

    没有基础怎么学Web前端?相关学习路线是什么?随着互联网的迅猛发展,互联网项目对用户体验提出了更高的要求,Web前端开发人员成为了重要的研发角色.很多人想要快速加入前端开发这一高薪行列,对于想要学习W ...

  3. 没有基础怎么学Web前端?相关学习路线是什么?

    没有基础怎么学Web前端?相关学习路线是什么?随着互联网的迅猛发展,互联网项目对用户体验提出了更高的要求,Web前端开发人员成为了重要的研发角色.很多人想要快速加入前端开发这一高薪行列,对于想要学习W ...

  4. 大学四年Java后端学习路线规划,所有私藏资料我都贡献出来了,不看毕业肯定后悔!!!

    一定要走在学校前面自学,规划好自己的时间,按照自己的路线走. 大学四年Java后端学习路线规划,所有私藏资料我都贡献出来了,不看毕业肯定后悔!!! 学习路线与资源方法 一.第一件事,很重要!!! 二. ...

  5. Java后端学习路线(适合科班、非科班和已工作的仔)

    前言 今天看到一篇关于后端学习的硬核博文,感觉原博主说的很详细,涉及面很广,很适合正准备提升自己的小伙伴,故转载此文,与大家共勉,原作者用一个完整的电商系统作为切入点,带着大家看看,我们需要学些啥,原 ...

  6. python走后端路线_python后端学习路线

    人工智能时代,想要从事编程行业,最佳的学习语言是什么?当然是Python!Python入门简单.功能强大,已成为各大企业首选开发语言,也吸引了无数有志学子投身学习.下面是小编为您整理的关于python ...

  7. web前端学习路线图,WEB前端开发新手学习路线

    前端的的技术一直在变化,更新和变革,现在基本是三驾马车(vue,angualr,react)主导整个前端框架,但是无论对于新人或者有经验的程序员,这些知识在必须掌握,下面给大家一份详细的表单: 我还是 ...

  8. Web前端入门的学习路线总结

    想要学习web前端,前期一定要做好学习路线,下面是小编整理的Web前端入门的学习路线总结,希望正在从事Web前端工作的小伙伴们来和小编一起看一看吧,希望本篇文章能够对大家有所帮助. Web前端入门的学 ...

  9. Java——Web后端学习路线

    文章目录 Java后端学习路线 第一部分: Java基础 第二部分: Java高级 第三部分: JavaWEB 第四部分: 主流框架和项目管理 第五部分: 分布式 微服务 并行架构 第六部分 : De ...

最新文章

  1. 可视化-grafana_使用influxDB数据
  2. Java:Java和c的区别
  3. windows 修改hosts 立即生效的方法
  4. 镜像镜像–使用反射在运行时查看JVM内部
  5. <读书笔记> Thinking in python (Python 设计模式) 3. Proxy and State模式
  6. mysql 客户端乱码_mysql客户端中文乱码
  7. Hadoop学习笔记(一):MapReduce工作机制
  8. 顺式作用元件-增强子、终止子、沉默子、绝缘子
  9. qq离线文件服务器是怎么实现秒传,一招教你提高QQ文件传输速度的方法
  10. DELL服务器 一般内存模块安装原则
  11. c语言输出一行星星代码,C语言打印星星的问题
  12. Nginx 代理minio 共享文件
  13. 主机一键巡检脚本--基于python实现
  14. NTP服务被利用做流量攻击以及检测预防手段
  15. 1367:查找二叉树
  16. new/delete与malloc/free的区别
  17. 对成功的渴望和恐惧——谈心理学中的“瓦伦达效应”和“约拿情结”
  18. 计算机主板的海关编码,请问线路板上已经含有电子元件的海关编码是多少?急啊!!...
  19. JAVA日记之SpringAOP_XML配置与注解开发 ----喝最烈的酒.
  20. python列表转字典

热门文章

  1. 还在等机会?教你一种更清晰的Android架构!详细的Android学习指南
  2. js中实现截取数组的后几个元素作为一个新数组的方法
  3. git使用问题之Your branch and 'origin/master' have diverged
  4. harris位_Harris角点检测算法 1
  5. interrupt方法详解
  6. 测试技术分享 wrk 基准测试技能介绍
  7. SAP PLM EC审批处理类
  8. android xml talkback,如何在Android上修改可点击的View的TalkBack使用提示?
  9. linux open files
  10. Arcgis栅格数据投影