php后端学习流程

1、熟悉基本的PHP语法

2、学以致用,用PHP做一个小功能,如留言板。

3、边学边做,做好一个功能后基本后端开发就入门了。

后端需要学习哪些课程

答: 后端需要学习数据库、计算机网络、操作系统等课程。后端是指服务器端,需要负责处理用户请求、获取数据等工作,因此需要学习一些必要的课程。数据库课程可以帮助后端工程师更好地管理和维护数据;计算机网络课程可以使后端工程师掌握网络通信的知识和技能;操作系统课程可以使后端工程师了解操作系统管理计算机硬件和软件资源的原理和方法。除了上述课程,后端工程师还需要了解一定的编程能力,如掌握Java、Python、C++等编程语言的运用和框架使用。另外,对于大规模、高并发的产品,工程师也需要了解负载均衡、高可用性架构、性能优化等方面的技术。

我想学习后端,后端的学习路线是怎么样的呢

Jerry 哥作为一个刚刚结束 2020 秋招的人,谈谈自己一开始的乌托邦和最后的实现

Jerry 哥面试期间拿到的offer:

腾讯、字节、美团、网易、pdd等互联网offer

以及

农商行、农行、招商银行、上交所、招行、深信服、华为等offer。

大家都是从小白开始成长的,没有人一开始就是大佬,合理规划好自己,你也可以成为大佬,主要还是要保持不断进取斗志。

以下我将介绍的学习路线和学习方法,所有的资料会开源,书籍也有电子书,后台回复“电子书”即可。想要进一步交流的可以私信我,大家一起进步。


背景

先说一下自己的背景,Jerry哥 本硕都是一个中流211学校的学生,本科的时候只学过C++/C的知识,做过几个当时看起来很牛逼的课设(对于本科生来说),不排斥打代码。当然本科的时候学习是比较懒散的,看到什么学什么,没有什么特定的目标。

作为一名研究生,我是在一个中流 211 学校就读,读的也不是计算机科班专业,老师对计算机这块也不是很懂,但是研究方向却是深度学习方面的。由于老师的横向项目也是比较多,所以自己平时既需要做学术上的汇报,还要参与老师的横向项目。所幸的是项目都是和打代码相关,偏软件,也就萌生了往软开发展的想法。

一开始是想当算法工程师

为什么相当算法工程师?很简单,三个字,高大上

如果可以应聘上算法工程师,意味着你每天开着 google 的论文,复现顶级季刊的代码,想着可以用自己的算法为抖音做视频推荐,给你的 QQ 音乐做猜你喜欢。这些都是可以直接给你的工作带来刺激,想想因为你的算法,每天有若干人更加喜欢这个 app 了。

那时候的算法工程师竞争已经非常激烈了

但是我还是想去尝试一下算法岗,原因有三:

1.(研究方向)我当时研究的方向是自然语言处理,属于人工智能的一个分支。如果可以在该领域发表一篇不错的论文,可以试一试。

2.(个人兴趣)我当时数学学的还不错,对一些机器学习的算法推导都推过一遍了,而且也感觉做这一块有意思

3.(可替代性)说白了还是高大上,因为感觉算法工程师的可替代性不高,属于比较秀智商的,而且比开发来的高级,可能可以避免三十五岁之后的危机

人的认知都是在不断改变,事实上如果你足够强,45岁都没有危机。

后来主动转开发

后来到研二上学期,科研路不是很顺利,那个时候在想是否要转开发岗。 当时摇摆的原因有:

  1. 没有论文。
  2. 没有一个很好的算法优化项目
  3. 身边的同学纷纷转了开发岗

让我们来看看算法岗的招录比

来看看开发岗的招录比

开发岗招三个人,大概有20个人来应聘算法岗招三个人,大概有50个人来应聘

从面试官的角度自然是想要找到一个能够为企业带来最大贡献的人,拿 paper 做标准甚至远不如学历歧视来的理性。有些时候文章可能会成为筛简历时的敲门砖,但是本身水平才是一切的基础。

说重点,paper 还是敲门砖。

之前公众号里也举过一个例子

说真的现在算法岗前方一片狼藉 工资高的背后各路神仙打架 开发确实是一个不错的港湾 给大家举一个例子某末流 985 实验室非王牌实验室a 同学平时是实验室的大神 实验室主要是以做深度学习算法为主的 但是还没有 paper 但是凭借对深度学习的热爱想找算法岗 毕竟算法岗看起来是那么的高大上;b 同学平时在实验室里是比较一般的同学 深知自己以后是走不了算法这一条路 所以自己在网上自学了前端/后端的知识 打算找一份JAVA 开发的工作, 到最后可能 a 同学可能会因为 paper 学历等原因 可能连一面都过不了;我身边就是有一个这样的真实的案例:一个师兄是图像实验室的,然后发了一篇不错的 SCI 二区 idea 也是自己想的 最后面的是阿里的某部门算法岗最后三面都过了之后接到电话说感觉学历有点低 可能和岗位不 match

其实当时也是纠结了几个礼拜,然后就转开发了,在前端/后端/安卓/ios 的选择上果断选择了后端,因为之前做过几个后端的项目,对后端有一定的了解。

所以这个也是个教训,你在选择未来要发展的方向的时候,兴趣很重要,但是同时能力也很重要,之前做过相关的项目很重要。如果我当时死磕算法岗,别说腾讯字节,就算二线厂如小红书这些都够呛能有面试机会,这就是现实,也是选择带来的红利。

后端准备什么

我大概是十月份才开始准备学 Java。这里需要提一下,如果光学习语法而不去打代码,是很容易忘的,只有在 debug的过程中才会成长。如果你是零基础或者编程能力一般,请提早开始学,因为我之前已经学习过C++/C/Python/JavaScript等语言,所以语言的学习对我来说会轻松很多。

先看看后端开发工程师招聘要求,我们以阿里巴巴的招聘要求为例子:

总结一下:

  1. 计算机基础扎实笔试面试会问到常见的数据结构和算法
  2. 最好掌握一门脚本语言,如 Perl,Python,shell 等,对 linux 环境有一定认识,毕竟我们是在 linux 环境下进行部署
  3. 熟练编写 SQL 脚本,有 MySql 开发经验,数据库 sql 语句 crud 是日常业务
  4. 掌握一门服务端开发常用语言,如 Java、Golang、 C,C++,PHP,.NET 等编程语言中的一种或几种;
  5. 有项目经验更佳。参加过大学生数学建模竞赛,“挑战杯”,机器人足球比赛,或者写过项目放到 github 上;

乍一看感觉东西很多很杂,简单总结就是:

计算机考研 408 基础+算法题+会一门脚本+一门后端语言+MySQL+Redis+一个项目,有开源经历更佳

这是国内Top互联网的要求,按照这个接下来我会教你怎么准备。

408 基础

408=计算机网络+操作系统+数据结构与算法+计算机组成原理

计算机网络

面试频率:★★★★

就一本书 《计算机网络自顶向下》,如果有时间可以多读几遍,真的是一本神书。

面试中计算机网络问的概率也比较大,主要针对网络层和传输层以及应用层问一些问题。 所有的问题可以基于OSI七层模型展开

基础的问题比如:

  • tcp 和 udp 之间的区别
  • 哪些协议用到了 tcp,哪些用到了 udp
  • http 和 https 之间有什么区别
  • 加密方式分为哪几种(对称加密和非对称加密)
  • OSI,TCP/IP,五层协议的体系结构,以及各层协议

深入一点的有:

  • TCP 的拥塞控制是如何实现的
  • 快重传和快恢复是如何配合
  • 如果我计算机的 MTU(最大传输字节)设置过大会有什么影响

推荐一个菜鸟教程总结的一些知识点:

https://www.runoob.com/w3cnote/summary-of-network.html

推荐书籍

《计算机网络:自顶向下》 《图解 TCP/TP》 《图解 HTTP》

计算机组成原理

面试频率:★

计算机组成原理应该是面试当中会问到最少的基础知识了

从面向面试的角度来说,仅做了解即可,如果是平时学习的话,可以参考下面的图作为一个学习路线

推荐书籍《计算机组成原理》

数据结构与算法随机配图