在这篇文章的开头,我想问一个问题:PHP是做什么的?因为这是面试会问的问题,虽然看起来很简单,但是做网站的答案就是简单建站的水平。回答网站后端开发的对PHP有一定了解,回答后端处理的理解更深。学习同一个技能,首先要知道这个技能是干什么的。说到这里,我想大家会简单的说它是网站,因为PHP在WEB领域的应用最为广泛,大部分的网站都是用PHP做的。的。准确的说,PHP是做网站后台开发的。其实,我这样说是不对的。PHP只做后端开发,不只是做网站。就像现在流行的APP开发也可以使用PHP进行后端处理。与其他语言相比,PHP比较简单,比较容易上手,更适合零基础的人学习,但是正如我上面所说,PHP只是完成了一个网站或系统的一部分。一个运行中的网站或软件系统可以分为前端页面、后端程序、数据库、linux。处理后端的PHP只占四分之一。PHP本身的东西不多,真正的很多东西都在PHP之外,所以单纯的掌握PHP是不足以做出任何产品的,甚至可能都行不通。两者都找不到。关于学习PHP,说说我的心路历程:前端:但是任何网站都必须是可见的、可用的。任何一个网站都可以没有数据库,没有后台程序,但一定要有前台页面,这也是网站最早的形态——静态页面,只能展示文字和图片等信息。掌握静态网页的制作技术是学习网站开发的前提。这里的学习包括HTML、css、javascript,可以直接使用浏览器运行。HTML负责网页的结构,用来规定网页排版中哪些部分是文本,哪些部分可以包含图片、音频文件,以及在网页的什么地方显示视频文件。CSS可以使这些文字、图片、视频等信息具有一定的合理美观的风格,可以定义文字的大小、颜色、图片大小等。JavaScript可以使网页与人进行交互,就像登录一个网站,点击登录按钮跳转,将鼠标放在菜单上,菜单会自动显示并下拉。在淘宝购物时,将鼠标放在商品图片上,图片会出现放大等现象。11年架构师带你解读年薪50万的面试通关秘诀。我的学习交流群:677079770,大牛带你飞,PHP/web从入门到架构722584796'系统地学习计算机科学。刚开始学习html的时候,我是用w3c手册作为学习资料的。标签,标签有很多属性,它们代表什么。就像下面代表表格的标签,这是手册给的概念。看完了似懂非懂。看完了,想不起来了。现在回想起来,我还是一头雾水,就像什么都没学到一样。那时,我开始不耐烦了。想不到我连基础都学不会。想了一两天,觉得自己还是太浮躁了。我决定重新开始尝试一下。看。这样启动后,按照别人写的,运行一下,看看浏览器显示什么效果,看看去掉某个属性后是什么反应。我就这样笨拙地进行着,把每一个标签,每一个属性都打出来,一个一个地看到效果后,我终于明白了手册中描述的概念是怎么回事了。前端知识比较零散,没有太多的逻辑可言。其中html和css的任何元素标记都要自己练。大部分新手之所以觉得难学,看不懂手册中的概念,主要是因为学习方法不对。没用的。所以克服懒惰的习惯,开始写一个HTML标记,运行后看看效果,这样才能真正掌握。不过我建议新手还是先看视频,因为可以看到运行效果,以说明书为工具。html和css中的标签和属性你不需要完全记住,因为它没有多大意义。做完一个小项目,只需要记住常用的就行了,剩下的就做吧,有印象的,用的时候想起来,再去查手册。学完之后要做一个简单的小项目。你学习的时候都是针对零散的知识点,最后你要把这些东西作为一个整体来使用。说真的,HTML是否被认为是一种“真正的”编程语言并不重要——它仍然是一项需要学习的新技能。尝试新事物是非常可怕的。当你处于这样一个未知的弱势地位时,你需要敢于前进。不要急于一下子学习所有东西。你是否确定并不重要——事实上,它们都是成功的重要组成部分。再来说说js上面已经说明了Javascript,(简称js),但是这里为什么还要强调Js呢?因为很多人说不用学js,学jquery(简称jq)就好了。什么是jq,jq是一个js框架,可以让开发更快,有很多做的很好的功能和特效,直接用就行了。但是我不同意opticaljq,如果你想让自己解决更复杂的问题,变得更有竞争力,或者只是学习理解更好用jq。那请学习js吧!上面说了jq是js的一个框架,其实质还是js写的。js能做的,理论上jq也能做,但不是100%能搞定,jquery能做的,js能100%做。jquery只是一个简化操作的工具,底层还是js。只有在学好原生js的基础上,才能更好的学习jquery或者其他框架,处理前端问题。后端:到这里才说到我们的PHP。如果说HTML和CSS是可见部分,那么PHP就是不可见部分。它负责稍后处理数据并将其返回给用户。当网站从一开始的静态页面发展到现在的后台程序时,网站就有了业务逻辑。简单的说,它就像一个计算器,你在前端输入数据,然后点击提交,PHP会为你处理计算,然后返回到前端,这时候你就会看到结果。需要注意的是,PHP不能直接在浏览器中运行。它需要Apache环境的支持,放在Apache服务器上,然后用浏览器访问。这个需要在学习过程中配置,非常简单。我的学习技巧和体会:在学习PHP的时候,随着讲解的知识慢慢增多,不懂的问题也开始出现。一开始只是简单的用脑子记住了,想着以后再解决。但是后来一想,我发现有些我想不起来了。慢慢地,我不明白的问题越来越多。我害怕忘记。一个简单的问题,想一想就能明白。如果我忘记了它,我可能永远不会再想起它。这是我难以弥补的损失。我是一个完美主义者。想起了学html时的教训,还是不能偷懒!我创建了一个文本来记录各种我不明白的,难以理解的,暂时没有解决的问题,甚至是偶然想到的问题。等我学完PHP,回头一数,大概有一百、十个。我仍然保留着这段文字。希望大家在学习过程中也能养成记笔记的习惯。是好记性好过烂笔头,因为在学习的过程中难免会遇到很多不懂的问题,但是又迫不及待地想解决这个问题。你需要继续前进,随着时间的推移,你可能会忘记。每当你学习到剧本中的难点时,试着向其他人解释。只有你能把它解释清楚,你才真正理解它。写到这里,大家不要觉得我太麻烦,太慢了,记住,慢慢想,慢慢来,为了更快的未来!合理的“慢”不是速度不够,而是对“过快”的反思和修正。慢是一种方式。尊法立业,安身立命,追求品质,做事严谨有序,精益求精。实践也是加强知识理解的过程。不要只看教程,学习知识点。最重要的是练习。包括我在内的大多数人过去都像学习别人一样向别人学习。难以进行。当你看完教程,掌握了里面描述的内容后,你可以按照老师给的例子,或者自己构思一个应用或者使用场景,然后从头开始写。你会发现很多问题,加深你对教程知识的理解。这样,通过不断的实践和反馈,你的开发技能就会快速提升。MySQL数据库随着网站技术的进一步发展,人们需要网站处理和存储更多的数据,满足现实生活中的业务逻辑。这时候,数据库技术的应用就诞生了。什么是数据库?从字面上看,数据库是存储数据的地方。可以是一段文字、一张图片或者一个文件的URL地址等。比如当你想浏览一篇文章时,你点击文章的标题,请求就会跳转到PHP文件,然后PHP将从数据库中获取您想阅读的文章。PHP和数据库密不可分。后来PHP在网站开发中更多的任务变成了对数据库的操作。数据库有很多种。准确的说,我们的数据库是mysql数据库,只是因为php和mysql的关系非常好,堪称绝配。所以我们PHP开发学习的数据库就是MySQL数据库。我的学习技巧和心得:在学习mysql的时候,我也是用了在学习PHP的时候的学习方法:记问题,写笔记。我还是要再次强调:用自己的话来写,忘记老师的原话,??这样别人的知识才会转化为你的。编程在最初几天只会是一件有趣的事情,然后大部分都会变得乏味和厌学。所以兴趣并不能完全成为编程的动力。通过项目开发,你会发现更多的编程动力是生活中需要的实际需求,以及通过高强度、高密度的学习和思考解决需求后的强烈成就感。框架:说白了,框架就是已经为你完成了一些功能的程序组件结构。基本上公司开始做真正项目的时候,都是用框架开发的,这样可以让你的开发速度更快。为什么?让我们谈谈网站开发。比如你要做网站的验证码功能,你需要自己从0开始写。同样的,写一个文件上传程序,需要从0开始写,这时候你会问,我不是都要手写吗?但是你忽略了一个问题。验证码、上传文件等几乎是网站中必不可少的基本功能,每个网站都需要用到。这时候就可以把这些常用的函数写出来,然后封装起来,用的时候直接调用就好了,大大减少了代码的重复,而这其实就是框架。不要说自己做框架,因为完成一个好的框架不是一件容易的事,需要很高的知识和技术。所以我们要学会使用别人的专业框架。大多说中小型公司用别人的框架。PHP常用MySQL优化技术如thinkphp、ci、yii、laravel:当你学习了PHP、mysql一些CRUD技术后,你可以尝试搭建一个简单的文章管理系统,可以发布、修改、查看文章。但是,仔细想想,你会不会遇到这样一个问题:当你查看一篇文章时,MySQL需要从文章表中找到你需要的,然后取出来。这时,你有很多文章。比如有一篇文章,有百万篇,或者一千万篇,mysql从里面找一篇文章是不是越来越耗时了?通常,当文章数量较少时,可能一秒钟打开一篇文章。这个时候,可能需要十分钟。来吧,你愿意等吗?用户愿意等待吗?对于新浪网、腾讯网这样的大型新闻网站,如果用户要等很长时间才能看到一条新闻,那行得通吗?所以我们要做mysql,让数据库在尽可能短的时间内找到我们需要的东西。具体的技术细节这里不再赘述。优化方法主要有:1.表设计2.MySQL索引优化3.MySQL查询优化。4、分区分表**页面静态技术:**大家在学习MySQL优化技术的时候,不要沾沾自喜,新的问题还有很多。你可以再试一下:什么时候一个人访问,什么时候大量访问?一个人访问的时候,可能很快,但是多人访问的时候,mysql要处理大量的请求,忙不过来。mysql支持的请求数是有限制的,这个很好理解。如果一次只能处理100个请求,当超过100人的时候,其他用户会不会还要等,这样速度又会下降,就像上面说的新浪和腾讯的例子,用户等不及了.该怎么办?一个好的解决方案是使用静态技术。为什么要用static,就是把数据库数据生成一个文件。当用户第一次访问它时,mysql仍然从数据库中获取它。当用户第二次或多次访问时,会直接访问这个静态文件。数据库不用再麻烦了,这样会减轻服务器的压力。Linux我们的程序、数据库、整个网站毕竟都放在了Linux系统的服务器上,普通程序员就可以完成基本的配置。基本命令、操作、启动、基本服务配置(包括rpm安装文件、各种服务配置等);会写简单的shell脚本和awk/sed脚本命令等,一般公司都有相应的运维人员管理。如果大家对此感兴趣,后面可以继续深挖。非关系型数据库Redis/Memcached怎么算数据库?,你不是已经讲过mysql了吗?是的,我们上面说的mysql是关系型数据库,所以这两个叫非关系型数据库。为什么需要它们?与mysql不同的是,Redis和Memcached的数据是存储在内存中的,而mysql是存储在磁盘中的,在内存中访问数据的速度要比在磁盘中快很多,这是它们的好处。那为什么要学习MySQL,为什么不直接学习使用Redis和Memcached呢?因为:MySQL比较适合海量数据的存储,而Redis和Memcached是存储在内存中,需要大量的内存,而且存储在内存中的数据很容易丢失。如果机器出现故障并重新启动,内存将被释放。一般互联网公司多采用MySQL+Redis,或者MySQL+Memcached架构;Redis/Memcached都是基于内存的,所以它们的速度都非常快,包括快速的读写,一般用在一些高并发、大规模数据量访问的场景下。最后,总之,学习PHP并不难,难的是一个系统。我的写作整体比较是立足于基础,主要针对一些刚入门的同学,从整体上建立一个完整的知识体系。在这条路上,虽然你可能很努力,但你仍然可能会遇到一些让你难以理解的问题。同样,我自己也曾经失眠了半个月,就是为了考虑那些棘手的问题。以下是我想让您知道的:不可能完全掌握编程语言的每一种特性——它们是野兽,如果您认为编程是一种简单易学的技能,您可能会。彼此相反。作为一名程序员,要学的东西是无限的,即使是该领域的专家也时不时会有一种持续的不满足感。不要着急,知道了这些,摆正心态,循序渐进。不要放弃。吸取知识是精于此道的第一步。您必须给自己信心,并尝试以更多方式思考问题。不要试图一下子掌握所有内容,设定模糊的目标,比如“我要学习如何编码”——目标应该更具体,并将任务分解成更小的任务。俗话说:无论你认为你能做到还是你认为你不能……这取决于你如何向自己发出信号:我不明白这一点的原因是因为我有一个创造性的大脑。编程是合乎逻辑的,我的大脑不习惯那样思考!事实证明,确实如此!在整个学习过程中,我希望你:不要相信任何“神话”,学会独立思考。不要墨守成规,大多数人所知道的可能是错误的。不相信网络上的谣言,敢于发问,敢于试验,凭实践做决定。现在互联网应用中的数据量越来越大,企业越来越重视数据库优化。这也是面试中必问的问题。答案更好这是一个奖励项目。所以最后加了很多干货,整理成笔记,在群里加了一个免费的PHP学习路线,大体包括这几块。PHP学习路线你清楚吗?如果你想学习PHP从入门到精通,欢迎加入我的学习交流群。
