《细说PHP》 第四版 样章 第二章 PHP的应用与发展 5

2.5  如何学习PHP程序员

PHP以其简单易学的特色,以及敏捷开发的优点,从一个几乎不被人知的开源项目,慢慢成长为技术人员首选的动态Web设计工具,与其余语言相比,PHP表现得更好、更快、更简单易学。尽管如此,咱们在面对一项本身不熟悉的新技术时,仍然会感到无所适从,不知道从何处入手,彷佛老是感受摸不出一条清晰的脉络来。另外,最大的障碍莫过于学习的过程枯燥乏味,从而失去学习兴趣。不过,若是你能掌握一种适合你的学习方法,就能够事半功倍。根据笔者多年的PHP教学经验,和众多人才培养的成功案例,列出的学习方法或多或少地有必定的借鉴做用。固然再科学的学习方法,也只是让你少走弯路,而不能一晚上精通,仍是须要持久地修炼!正则表达式

 

2.5.1  肯定学习的目标算法

是什么让你选择学习PHP呢? 是爱好、是为了找工做、仍是工做中的开发须要?既然选择学习PHP就必定要有坚决的信念。不能一时兴起学了一阵儿,听别人说某某语言有多么得好,立刻切换,或是多门语言的学习同时进行。只有专心在一门课上下苦功,才能成为“专家”,锲而不舍才能产生兴趣,毕竟兴趣才是最好的老师!数据库

 

2.5.2  PHP学习线路图编程

刚开始学习PHP时,多数新手都会有一些迷茫,不知道从哪里开始学起,不了解学习的顺序,找不到学习的重点。例如,有新手据说学习PHP须要先搭建好运行环境,就按网上的资料搭建。网上好多这方面的资料,几乎都是真实项目上线使用的专业环境,所提供的都是Linux下源代码包安装方式,至关复杂,成手若是按项目功能定制安装都有可能要花费一两天的时间,新手有的须要花费一两个月时间才能了解个大概,这就是为何有好多新手从一开始就选择了放弃。若是有人教你一种学习用的集成安装环境,可能你只须要5分钟就能够搞定。还有新手学了很久,就是不知道如何写项目,反复学习基础部分,就是停滞不前。也有的新手找不到重点,学习了大量的内容,结果实际用到的并很少,浪费好多时间。因此新手开始学习,须要有人给你指引,找到正确的方向才能大步前行。如图2-7所示,是笔者建议的PHP新手学习线路图。设计模式

5463d5f2099e4464a79b543797d4451d.png

图2-7  PHP新手学习线路图数组

 

按PHP学习线路图2-7中的指引, 能够将学习PHP的过程分为4个阶段,为每一个阶段设定一个学习目标,并安排好学习计划, 达到目标后就能够开启下一阶段的学习。安全

 

Ø 阶段一:入门服务器

这是刚接触PHP时的入门阶段,先要了解PHP的开发能力,并多接触一些用PHP开发过的开源项目,网上有不少开源的PHP项目能够下载,先学习一下简单的功能操做便可,主要是能产生对PHP的学习兴趣,从中了解PHP的开发需求和PHP的开发特色等。前面咱们介绍了Web开发所需的构件,因此只孤立地学习PHP确定是不行的,先学PHP也不行。若是刚开始接触Web开发就直接学习PHP会力不从心,由于PHP是服务器端脚本,至少要在PHP的运行环境去解析它。另外,PHP是嵌入到HTML中的脚本语言,还要了解一些常见的HTML标记等。在开始学习PHP以前先作一点准备是很是有必要的。网络

 

Ø 阶段二:打基础

这个阶段是学习的重点,但方法很重要,像PHP的基本语法和语言结构(流程控制、函数、字符串等)这部份内容能学多细就学多细,每一个知识点都会在开发中使用到。而像数组、对象、文件处理、图像处理、MySQL数据库的操做、PHP操做数据库等内容,先学习一些经常使用的部分,掌握一些基本的应用,这样能够大大提升学习的进度。大多数新人在这个阶段的学习中都会出现两个常见的问题:第一,可能当天学习的内容,下次在学习新内容时,上次学的忘得差很少了,老是记不住。固然,这个大可没必要担忧,不要停下来,必定要继续往下学习,由于基础的语法都是后面知识中会用到的技术,用多了天然就记住了。而像高级的部分也不用担忧记不住,都是类库或函数库,只要记住系统已经提供了哪些功能就好,使用时经过查询手册便可,能记住经常使用的固然更好。第二,就是书上讲的内容,能看懂也都能理解,就是本身一动手时,不知从何下手,没有思路。因此说对这个阶段的知识点有所了解之后,必定要想尽办法作出一个小项目(例如,模拟写个小型商城、论坛或聊天室等),暂时不用去管安全、优化及代码质量,只要能实现功能就行。这个项目的目的就是将基础部分的零散知识点贯穿在一块儿,在实际项目中去应用实践,能更好地对其理解和掌握。

 

Ø 阶段三:增强

有了阶段二的项目开发的练习后,积累了一些开发思路,须要再回过头深度学习每部分的知识点,如数组、对象、正则表达式、数据库操做、数据结构和算法等,这些内容是PHP开发中最经常使用的技术,这个阶段的学习能够更全面、更透彻,更容易掌握。固然还要学习一些新的内容,像模板引擎和PHP框架,而后再作一个项目。这个阶段的项目就不能像阶段二时的项目,只是实现基本功能就好了,不只要求代码质量要好,业务逻辑要清晰,项目的结构也要基于目前最流利的开发模式,使用框架和模板引擎,并采用面向对象的思想和MVC模式的设计要求,还要学习项目的开发流程和规范,尽可能让这个项目达到真实上线的项目标准。

 

Ø 阶段四:提升

这个阶段建议在工做中去学习, 由于这个阶段的内容没有统一的标准,须要根据实际项目去设计解决方案。固然多收集和学习一些这方面的理论,或模拟场景作一些有关的实验是颇有必要的。以上四个阶段,看似简单,却也须要咱们全身心投入,锲而不舍才行。

 

2.5.3  坚持动手实验

打过篮球的朋友都知道投篮理论能够掌握的很快,但要提升实际的命中率,就须要反复练习了。学编程也是同样的,能看懂的代码,可不必定能写出来,多动手练习是很是有必要的,可能刚接触时,写了几行代码就会出现N个错误,出现的错误就是你没有掌握的技术,解决掉的问题就是你学到的知识,当错误出现的愈来愈少时,你编写代码的能力也就愈来愈熟练。固然,为了能更快地解决代码错误,初期能够写几行代码就运行一下,这样方便定位查找Bug的位置。另外,编写代码是对理论进行实践的最好方法,你认为比较迷茫的技术,均可以经过实验解释经过。还有,在练习时必定要边练习边为代码加上注释或记录学习笔记进行总结和分析。

做为编程过来人,笔者刚开始学习编程时一样没有思路,至少也是照猫画虎写上万行代码,才慢慢出现思路的。多动手跟着书上的例子或配套的教学视频开始练习,固然最好加一些本身的功能,按本身的思路敲上一些代码,收获会大得多。提醒一句,要理解代码思路以后再跟着敲,背着敲,千万不要左边摆着别人的程序,右边本身一个一个子母地照着写。

 

2.5.4  Bug解决之道

无论是新手学习,仍是成手程序员,写程序就会遇到Bug。那么,自学时遇到Bug以后,环境配不通,程序调不出来,运行不正常,碰见这些恼人的问题时,该怎么办呢?首先我要恭喜你,碰见问题,意味着你又有长经验的机会了,每解决了一个问题,你的PHP经验值就应该上升几百点,问题遇到的越多,知识提高的就越快。

可是老是解决不了Bug也是很恼人的,怎么办呢? 笔者的建议是当你遇到一个问题时:首先要仔细地观察错误的现象。有很多新人的手很是快,访问页面报了一大堆的错误,扫了一眼以后就开始盯着代码一行一行地找,看清什么错误了吗?没有!还有出现Bug立刻网上求救,本身都没看一下,这都是典型的不上心的方法!请记住,学习编程并非一件很容易的事情,本身首先要重视,要用心才能够。别人帮你解决的问题可不是你的提升,最少也要本身尝试着去解决,真的没有思路了,可就别浪费时间了,再花多少时间也解决不了,这时就该想别的办法了。在开发过程当中,仔细观察出错信息,或者运行不正常的信息,是你要作的第一件事。若是错误信息读懂了,就要仔细思考问题会出在哪一个环节了;若是没读懂,又要怎么办呢? 读了个大概,有些思路可是不太能肯定,也要如何处理呢?

Ø 要仔细思考问题会出在哪些环节上

程序是一系列语句完成后产生的结果。当你读懂了一个问题以后,要好好地思考这个问题可能会在哪些环节上出错。例如,客户端产生数据→按“提交”按钮→发送到服务器→服务器接收到后保存到数据库。这几个环节都有可能会出错:有可能客户端根本就没产生数据、提交按钮按下去后根本就没发出去、发出去的不是你产生的东西、根本就没链接网络、发送出去服务器没有接收到,或者接收到的信息没保存到数据库等。仔细地分析程序的环节和这些环节可能产生的问题,你的经验值天然会大幅度提高。在网页A输入了一我的的名字,提交到B,首先存储到数据库,而后再读出来,发现乱码!怎么办?固然是分析环节:客户输入→HTTP发送→B接收→存储到数据库→读出→展示到网页。每一个环节均可能出问题,怎么才能知道哪里出的问题?继续往下读。

Ø 如何定位错误

写代码时常见的Bug有两大类:一类是语法错误,例如没写结束的分号,访问时页面中就会提示哪里出错,打印出错误报告,只要认真读完错误报告,这样的问题很容易找到,也很好解决。另外一类是编写的逻辑错误,这是由于设计缺陷或是开发思路混乱形成的,要定位这样的错误会麻烦一些,分析清楚有哪些环节以后,一般有三种方法找到错误位置:第一种是输出调试法,经过在多个可疑的位置打印输出不一样的字符串,经过观察输出的结果,并结合输出信息的位置周围的代码来确认错误的位置。第二种是注释调试法,先将全部代码注释掉,再从上到下一点一点去掉注释,去掉一次注释运行一下,观察运行的结果,若是有不正常的结果出现,也就是定位到了错误的位置。第三种是删除调试法,先将代码备份,而后删掉一部分调试一部分,也就是去掉一部分功能来作简化,而后调试剩下的功能。若是还查不出来,恭喜你,你遇到的错误是值得认真对待的错误,是会影响你学习生涯的错误,就使用搜索引擎吧。 也能够在专业的BBS中详细列出问题,或加入一些QQ群寻求指导。

 

2.5.5  看教学视频,让学习变得简单

跟着教学视频学习是很好的学习方式,既有详细的理论讲解又有代码分析,看书和配套视频结合学习能够达到最佳的效果。目前,网上能够免费学习的技术视频愈来愈多,像兄弟连云课堂(yun.itxdl.cn),不只视频种类多、视频新、讲解全面详细,并且又会根据企业实际的技术应用,不断更新,不只能够记录学习笔记,还有专业老师在线指导答疑,也能够和同窗互动。 找到比较适合你的全套视频,保存在硬盘里便可。

 

2.5.6  优秀的Web程序员是怎样练成的

学习软件开发“思惟逻辑”是核心,“记忆”只是辅助。每一个行业都有新手和成手之分,软件开发也是同样,分为普通程序员和高级软件工程师等不一样级别的职位。从初级程序员成长为高手并非一步到位的,而须要经过不间段的努力逐渐成长起来。例如,在工做中不断积累经验,掌握复杂网站的架构设计,并具备解决问题的能力,还要多研发产品,并能挑战高难度的项目。除了要有强烈的好奇心和学习精神之外,笔者还总结如下几点提供给刚入行的新手参考。

1. 克服惯性

万事开头难,克服惯性是学习新技术的第一步。有不少的小技巧能够调动咱们的积极性,帮助咱们克服惯性。对于笔者来讲,微习惯是一个很好用的小技巧。与其被手头的任务吓到,不如将任务细分为一个个具体的微任务,而后挑选其中的一个开始作起。经过完成一个个的微任务,你会发现本身克服了惯性,任务再也不显得难以完成。关键就是将大块任务细分为微任务。

2.具有扎实的技术功底

PHP是众多计算机开发语言中最容易入门并上手最快的开发语言。但若是不了解数据结构、离散数学、编译原理、计算机网络、结合多种语言的编程特色等这些计算机科学的基础知识,很难写出高水准的程序。当你发现写到必定程度很难再提升的时候,就应该想一想是否是要回过头来学学这些最基本的理论。所以,多读一些计算机基础理论方面的书籍是很是有必要的。

3.遵循良好的编码规范

高质量的代码都具备统一的编码规范,要养成良好的编码习惯,代码的缩排编排、变量的命名规则要始终保持一致。由于在一致的环境下,团队协做中会有更高的效率,团队的成员能够减小犯错的机会。程序员还能够方便地了解其余人的代码,弄清程序的情况,就和看本身的代码同样。另外,也能够防止刚接触PHP的新人自创一套风格并养成终生的习惯,一次次地犯一样的错误。

4.遇到问题要解决不要逃避

学习过程当中遇到比较难理解的重要章节不要跳过,更不能放弃,要多花一些时间和精力在这些知识点上,将其攻破,这样才能不断地提升。解决过的问题再次遇到时将再也不是你的障碍。

5.扩充本身的想象力

程序员不要局限于固定的思考方式,遇到问题时要多想几种解决问题的方案,能够试试别人从没想过的方法。丰富的想象力创建在丰富的知识的基础上,除计算机以外,多涉及其余的学科,好比天文、物理、数学等。

6.对新技术的渴求

咱们能够愈来愈方便地得到大量学习资源。这些资源的传播载体由最初的教室变成了博客、技术论坛等。

7.挖掘设计模式,提升代码质量

动手将一个新的模块开发出来后,不要认为本身编写的代码就是完美的,也不要草率地将别人的代码拿过来就直接使用,更不要在开发过程当中屡次遇到相同的功能,将同一段代码直接粘贴反复使用。提升本身的编码能力必定要多参考和总结别人的设计模式,还要不断地改进和升级才能提升本身编写代码的质量,也能从中学到新的技术。

8.多与高手交流

尽可能多认识一些大型互联网公司的程序高手,多了解一些大型网站的解决方案。要多上网,看看别人对同一问题的见解,会给你很大的启发。也要常常参加一些互联网技术大会,了解一些新技术和行业的发展,拓展本身的眼界。它能够是任何你有激情去学,而且想深刻学习的一些东西。这种原始的学习欲望很是重要,这种欲望能够在你的学习低潮期给你提供动力。你想学的或许是一门新的编程语言、应用框架或者是新的工具,一旦你肯定了想要的是什么,就马上去收集相应的优秀群体所作的一些优质的工做成果。

9.韧性和毅力

程序高手们并非什么天才,而是在无数个日夜中磨炼出来的,成功能给咱们带来无比的喜悦,但程序倒是无比的枯燥乏味。作程序员,停滞不前就是落后,要不断地学习扩展新知识,就像软件版本升级同样,也要不断地更新本身的技术。

10.写博客

在技术领域,博客是最简单易得的表达载体。当你准备落笔的时候,你会强迫本身整理思路,而且对积累下来的零散的知识片断进行结构梳理。说不定,经过互联网的分享,你的经历和分享会给别人的成长带来帮助。写博客可以提高你的我的沟通能力,这与你学到的技术一样重要。

11.考虑接单

许多程序员正不断地寻找新的项目和解决不一样的问题,以此来增长经验。然而,不多有一个单一的环境可以提供这样的条件。若是基于遗留系统代码(维护原有系统),架构方面没有多大的想象空间。所以,许多程序员以为须要变换工做,到不一样的环境去获取新一阶段的学习。然而,“跳槽”只不过是获取丰富经验的途径之一,笔者提议另外一个选择——接单。

 

2.6  小结

本章必须掌握的知识点

Ø PHP是什么,能够用来开发哪些类型的应用。

Ø PHP的开发优点。

Ø 如何学习PHP。

 

本章须要了解的内容

Ø PHP的诞生与发展。

 

 

相关文章
相关标签/搜索