TearSnow

听韩顺平聊PHP初学者如何变身大牛

有很多网友发来邮件询问各种问题,有深有浅, 有难有易。因为很多时间需要上课,没有一一回答,这里给大家道个歉,这里我举例出了几封网友的来信:

发件人:Chen Ma

发送时间: 2012-09-18 17:35

收件人:hanshunping; hanshunping

主题:我就问韩老师一个,问题

韩老师,

你好,我是你的脑残粉!我在国外读书,我就问您一个问题,一个对面向对象有一般的了解,

和用Python编过一两个小程序的毛头学生我,经过多久的苦练,可以在美国找到工作?

PS:英语不是问题,主要是编程能力和实力。

请回答,我很期望你的回答

爱你的,

学生粉丝

---------------------------------------------------------------------------

From:邓子

Date:2012-09-16 13:08

To:hanshunping

Subject:传智的老师你们好.

我是在自学的PHP,最近很迷茫,总觉得自己以后不能胜任工作.

我就想问问传智的老师,自学到什么程度,技术点到哪里,才可以去找工作!

-----------------------------------------------------------------------------

From:鹅卵石

Date:2012-09-24 22:29

To:hanshunping

Subject:老师,有点迷茫

韩老师你好:

  我是一名学生,想学习网页制作。

    我遇到了点小小的问题。

   我在网上学习你讲的php从入门到精通时,前部分是从第00讲到14讲,在接下来的就是第51讲了。

突然就感觉自己掉链子了,不知自己该怎么学习了。还请老师给指点一下

-------------------------------------------------------------------------------

From:尙帝

Date:2012-09-14 11:57

To:hanshunping

Subject: 求教

韩老师:

     您好!

     我是西藏大学的学生,最近在看您关于php的视频。学生手上有个项目要做,就是用php开发一款游戏,跟前几年流行的劲舞团差不多的那种。由于刚学php不久,对游戏开发没有经验,我想请教韩老师,做出来这么一个游戏,都需要哪些技术,期待老师的回信!谢谢韩老师!

---------------------------------------------------------------------------

 

还有很多,就不一一列举了,后面我发现,其实都是一些共性问题,大致是:

1.应该怎样学习PHP,学习的顺序是怎样的?

2.PHP学好后,可以做什么事情?

3.听得懂课,但是一旦自己独立写程序,就没有思路?

4.学习PHP需要怎样的基础,算法重要吗?

等等,诸如此类的问题。所以,我想干脆就写一篇文章来详细的给PHP学习者们说说应该怎样学习PHP?怎样才能学好PHP?

首先,大家要达成一个共识,就是学习任何一门编程技术都需要我们付出心血,都要讲求循序渐进,由浅入深。对每一个知识点要搞透,然后通过案例来加深认识,最后还需要把学习到的各个知识点实际运用到项目中去,才能融会贯通,最后才能到达能自如的驾驭项目的水平,现在我们就来看看应该怎样一步一步的学习PHP这门编程技术,先看看学习PHP的顺序图,此学习顺序图是我推荐的学习内容和学习顺序(除了这里列出的内容,要走向高手之路肯定还有更多技术需要学习,我这里只是对于初学者列出的主干学习内容,并不是全部):
听韩顺平聊PHP初学者如何变身大牛

对于PHP初学者来说,看到这样多的内容,心里已经开始打退堂鼓了,但是,万丈高楼平地起,我们只要坚持每天学习一部分内容,最后总会把这些技术都精通掌握的。

      PHP这门技术相对java和 .net来说,是比较简单的。PHP最主要的作用就是做站,也就是说PHP技术是用于开发网站的,比如目前世界排名前40的网站,有70%都使用到了PHP技术,比如facebook、youbute 、新浪、百度、淘宝、搜狐和腾讯这些知名的网站都有很大一部分业务是用PHP来开发的,因此被誉为web开发首选技术。开发PHP的软件可以说是简单的记事本也可以是一些集成开发软件,比如 zendstudio ,这里我列举一些常见的PHP开发工具:

①     Editplus ② Zend Studio ③ PHP Coder ④ phpedit ⑤ easyecpilse ⑥ dw ⑦ vim

windwos下我常用的是 editplus 和 zend studio ,在linux下我推荐使用vim来开发更专业。

要学习PHP开发一定要按照正确的顺序进行学习(如上图PHP学习顺序图所示),很多人被一些《xx天精通***》这样的垃圾书的影响,PHP这门语言相对JAVA要简单,开发人员不需要学太多即可通过面向过程的方式开发出一个"某某管理系统",因此社会上充斥着大量只会面向过程的开发人员,他们不懂Http协议!不懂JavaScript!不懂PHP工作原理!不懂什么是真正的面向对象程序设计,这种"不不不"开发人员能找到4000的工作就已经非常值得庆幸了。企业中最需要的是对"Http协议、Javascript、PHP工作机制、PHP程序调优、LAMP环境调优、OOP"等技术熟悉的人,而这样的人是非常难招的。大家记住欲速则不达,速成的结果就是以后浪费更多的时间,回想这么多年你走过的路,有多少次为了走快点就跳着走,最后又浪费时间返工的事情,按照正确的顺序才能更快、更好的掌握PHP。

学习PHP分为以下几个阶段,每个阶段都有学习的重点和注意事项,下面详细给大家介绍:

第一阶段: PHP前端网页开发基础,在这一个阶段中分为以下几个阶段课程

      (1)HTML基础与加强

HTML语言,HTML语言背景知识,HTML全局标签,HTML格式标签,HTML文件标签,HTML超链接标签,HTML图像标签,HTML框架标签,HTML客户端图像地图,HTML表格标签,HTML帧标签,HTML表单标签,HTML头元素,HTML分区标签

      (2)XHTML基础与加强

XHTML与 HTML的差异,XHTML语法,XHTML DTD,XHTML验证,XHTML模块,XHTML属性,XHTML事件,XTHML结构化

      (3)HTML5设计与应用

HTML5介绍,HTML5多媒体处理,HTML5画布,HTML5 Web存储技术,HTML5表单,HTML5 属性和事件HTML5的常用标签(比如:applet标签、article标签、aside标签、audio标签、canvas标签、datalist标签、details标签等)

      (4)CSS基础与加强

CSS 简介,CSS基础语法,CSS 派生选择器,id 选择器,CSS类选择器,CSS盒子模型

CSS背景、文本、字体、边框、外边距、内边距、列表、表格CSS 高级: CSS 尺寸、分类、定位、伪类、伪元素、媒介类型

      (5)DIV+CSS设计与应用

使用知名网站的首页深入剖析DIV+CSS的WEB标准:盒子模型经典案例-优酷首页面、仿sohu首页面布局、可爱屋网站首页面。涉及知识点包括: (CSS定位的四种方式、左浮动、右浮动、清除浮动、标准流和非标准流、设置对象的层叠顺序、块元素和行元素的转换等)

      (6)Javascript基础语法:

Javascript基本介绍、Javascript的发展史、Javascript运行原理剖析、Javascript特点、

Javascript的标识符、Javascript基本数据类型(数值类型、布尔类型、字符串类型)、

Javascript复合数据类型简介(数组、对象)、Javascript特殊数据类型(NULL、undefine)、

定义变量、初始化、赋值、数据类型转换的两种方式(自动转换、强制转换)、Javascript的运算符(算术运算符、关系运算符、逻辑运算符)、Javascript的位运算和移位运算

      (7)Javascript三大流程控制

顺序控制、分支控制(单分支: if语句、双分支: if-else语句、多分支 if-else if-else 语句, switch-case-default语句)、循环控制(for语句、while语句、do-while语句)、在ie和firefox如何调式Javascript

      (8)Javascript函数

函数基本概念、函数的定义、函数的调用方式及调用过程深度剖析、函数使用细节讨论、使用Function类创建函数、函数实际运用(打印金字塔、九九乘法表)、函数的递归调用、

Javascript常用系统函数使用(encodeURI、decodeURI、eval、parseInt、parseFloat、isNaN等)

      (9)Javascript数组

数组的基本使用、使用for/while遍历数组、数组实际运用(计算班级平均分)、二维数组的基本使用、使用for遍历二维数组、对二维数组转置处理、数组排序介绍、冒泡排序、顺序查找和二分查询法

      (10)事件驱动

Javascript的Event-Driven机制、事件源、事件处理程序、事件名称、事件对象是什么、

事件类型(鼠标事件、键盘事件、HTML事件、其它事件)、Javascript访问CSS技术、

事件驱动的浏览器兼容性处理、常用的18个事件(onblur、onchange、onfocus、onkeydown、onmousedown等)  综合案例(Javascript版计算器)

      (11)DOM编程

DOM编程介绍(HTML DOM与XML DOM)、DOM编程实例入门、BOM介绍、DOM对象介绍、window对象详解、history对象详解、location对象详解、navigator对象详解、screen对象详解、event对象详解、document对象详解、body对象详解、style对象详解、WEB版坦克大战游戏、forms对象(集合)、from对象、images对象(集合) 、img对象、links对象(集合)、link对象、all对象(集合)、table对象详解、tableRow对象和tableCell对象、基于table对象的用户管理系统

      (12)WEB网站设计与应用

商业级网页制作(企业邮箱网页、旅游网网页或呱呱网网页)

这个阶段的学习教程:推荐大家看传智播客韩顺平轻松搞定网页设计(html+css+javascript) ,下载视频教程地址:http://php.itcast.cn。这个阶段的教程是针对PHP零基础的同学进行讲解。在教程中,我讲解了很多的案例和作业是需要大家来完成的,千万不要“眼高手低”,很多初学者都纷纷来信说这样一个情况:听课没有问题,写代码没有思路,比如下面一位网友的来信写到:

----------------------------------------------------------------------------------------------

      From: 黑马

      Date: 2012-07-24 22:35

      To: hanshunping

      Subject:

韩老师您好:我是一名学生,一直看您的视频,就是我看了您的视频以后,觉得学到了蛮多的,就是感觉还是有点迷迷糊糊的,学的不够透彻,就是不能独立的完成一个项目的开发,我尝试着去写了几个项目,就是遇到问题后,有时不知道怎么解决,问老师,老师叫我们百度,问题还是解决不了,我想我打算毕业以后,去您那培训一下,把基础打好,您觉得有这个必要吗?

可能您会说,这得看我自己对这个基础掌握多少,我也知道,就是有些知识觉得掌握了,但用起来又忘记了。对了我学的是php,希望您能给个建议。谢谢您。

-----------------------------------------------------------------------------------------------

这个就是典型的基础不够扎实,然后就盲目的学习高级阶段课程的后果,我曾经这样说过一句话:有些朋友学习技术,像一个大胖子,肚子大,脑袋大,看起来很唬人,但是腿很细,风一吹就倒了。就是说基础太差了,结果就是越学越迷茫,最后,就放弃了。因此我说”基础很重要” ,还有一点我要强调:在视频教程中我讲了很多的案例并布置了作用,一定要自己亲手把代码熟练的写出来,记住是亲手写出来,而不是照着我的代码抄,更不能是看懂了我的代码就以为自己掌握了,要知道“看懂了”和“会写了”之间差着十万八千里呢! 我们学习编程是”做中学”,是做的过程中学会的,而不是会了在做,正是在编写一行行代码过程中,逐渐建立编程思想的,思想→代码这个过程是需要敲很多代码的。

听韩顺平聊PHP初学者如何变身大牛

用卖油翁的一句话说:“我亦无他,但手熟尔”,请永远记住“巧是从熟练中演变出来的”,这就是我们常说的“熟能生巧” 。

当然,有些学员还给我写信说这样一个问题,如何去检验第一阶段: PHP前端网页开发基础,学习情况, 学习到怎样的水平,再学习下一个阶段比较好, 大家可以做一下下面的测试题,如果你能将下面的题都完成,说明你已经有一定基础,可以学习下一个阶段:(注意:需要独立完成)

html css 试题

试题1:

请编写如下一个html页面

听韩顺平聊PHP初学者如何变身大牛


试题2:

请使用(div+css)盒子经典布局编写如下界面

听韩顺平聊PHP初学者如何变身大牛
试题3:

请使用div+css 盒子布局模式编写sohu首页面布局

听韩顺平聊PHP初学者如何变身大牛

javascript试题

试题1:

请按下面内容编写一个页面,点页面里的“全选”时,能选中或清除上面的所有水果。选择你喜欢的水果:

      □苹果

      □桔子

      □香蕉

      □葡萄

      □桃子

      □全选/全不选


试题2: 编写一个简单显示和隐藏效果如图所示:

听韩顺平聊PHP初学者如何变身大牛

试题3:

请使用javascript相关函数对一个url

【http://www.sohu.com:80/abc/index.htm】
进行解析,

提示:考虑使用如下函数

stringObject.substring(start,stop)

stringObject.indexOf(searchvalue,fromindex)

stringObject.lastIndexOf(searchvalue,fromindex)

 

http://www.sohu.com:80/abc/index.htm

要求从上面给出的 url中得到:

协议是什么       http

域名是什么       www.sohu.com

端口是什么        80

文件名是什么   index.htm

 

试题4:

请使用js的正则表达式,验证用户输入的电子邮件格式是否合法,该电子邮件必须满足如下要求:

① 有且只有一个@

② @前面是用户名,可以是a-z A-Z 0-9 _-字符

③ @后面是域名,形式如(sohu.com 、 tsinghua.org.cn 、163.com 等)
听韩顺平聊PHP初学者如何变身大牛


练习5:计算一个js整数数组的所有元素的和。

练习6:计算一个字符串 , 比如 “abcde中国,你好hello,12345”, 中含有多少个中文字,多少个字母,多少个数字?

练习7:将一个js字符串数组的元素的顺序进行反转。("3","a","8","haha") 转换为("haha","8","a","3")。提示:第i个和第length-i-1个进行交换。不能使用js的reverse() 函数。

 

好,现在我们谈谈第二个阶段应该学习什么内容,如何学习的问题。

第二阶段 PHP核心编程

(1)PHP基本语法加强

Apache--directory配置段、一个IP和多个域名绑定的两种方式、HTTP协议入门介绍、Apache逻辑组件介绍、Apache生命周期、PHP运行之时序图、PHP数据类型加强、PHP各种运算符加强、PHP三大流程控制加强、位运算(按位与、按位或、按位异或、按位非、位左移、位右移)、二进制(原码、反码、补码)、PHP版本在线贷款计算器。

这里,我想说明一下: PHP基础语法看似简单,但是也不可大意,有些PHP程序员工作了2年,对PHP运行的原理都不清楚,对Apache的一些重要调优配置也不了解,这样的程序员,在公司是不行的,很难得到提升。所以就一直是一个编码工人,薪资也上不去。

比如面试中经常问到: PHP中一个整数的范围是多少, 小数的能表示的范围是多少? 再比如如何在Apache中配置一个404错误页面,如何给一个主机配置一个域名,具体怎样操作?这样一些基础的问题都必须在这个阶段搞定。推荐大家看传智播客php视频教程 23讲-45讲 ,有详细到位的讲解。

(2)PHP函数

PHP函数的基本介绍、如何自定义函数、PHP页面调用函数、require()、require_once()、include()和include_once()的区别、从内存分析PHP函数调用过程、函数使用需要注意的细节、函数值传递和引用传递的区别。

函数是我们PHP编程最重要的一个知识点,也是进行模块化编程的基础,掌握好函数可以提高代码的复用性、可读性和可维护性。

(3)数组、排序和查找

数组的基本概念、数组的引用方式、数组引用陷阱、与PHP数组相关的函数(count、is_array、print_r、explode等)遍历数组的三种方式、删除数组元素和数组运算符、数组使用细节总结、内部排序法和外部排序法介绍、冒泡排序和快速排序、选择排序和插入排序、顺序查找和二分查找、二维数组介绍和使用。

依据我的经验,我们去找工作的时候,一定会一道关于排序和查询的题,最常见的问题是: 请你写出冒泡排序法,并使用二分查找来查找一个数。在项目开发中,数组是衔接变量和函数的重要数据类型,在MVC开发中,往往需在控制器中将数组分配给视图去显示,在算法中,数组也是变化最为灵活的。

(4)面向对象编程

面向对象编程基本概念、类和对象的关系、如何定义类、成员属性(变量)、如何创建对象实例及如何访问对象属性、对象在内存中存在的形式、栈、堆、全局区、常量区和代码区的关系、成员方法(函数)及使用细节、构造方法(函数)、默认构造方法(函数)、this的基本概念和使用、析构方法(函数)、PHP的对象垃圾回收器、静态变量(类变量)的概念和使用、静态方法(类方法)的概念和使用、面向对象编程的三大特征介绍、面向对象编程-封装、面向对象编程-继承、面向对象编程-多态、访问控制修饰符(public、protected、private)、方法重载(overload)、方法重写(override)、方法重载(overload)和方法重写(override)的比较、PHP魔术函数(__set __get __construct __destruct __call等 )和魔术常量(__LINE__ , __FILE__ ,__FUNCTION__等 )、抽象类(abstract class)的概念和使用接口(interface)的概念和使用、接口编程和继承的区别、关键字final的使用、常量关键字const 的作用和使用注意事项、面向对象编程之强大的反射机制、面向对象编程之动态代理。

面向对象编程已经成为PHP编程的主流,面向对象编程让程序变得更加强大和灵活,更利于项目的开发和维护。关于面向对象编程 在 传智播客 php视频教程 61讲-78讲,看看什么才是真正的PHP面向对象思想,什么是真正的OOP。

(5)错误处理和异常处理

错误处理的基本概念、PHP处理错误的三种方式介绍、使用die()进程错误处理、自定义错误和错误触发器、错误日志、错误级别介绍、PHP异常处理的基本介绍、PHP异常处理(try throw catch)、自定义异常、如何设置顶级异常处理器、异常使用的规则。

在编写php web 应用程序时,错误处理是一个重要的部分。如果您的代码缺少错误检测编码,那么程序看上去很不专业,也为安全风险敞开了大门 。所以大家需要清楚在PHP编程中如何对错误和异常进行有效的处理,从而保证程序的安全和健壮。

(6)预定义超全局数组

预定义超全局数组-基本概念、$_GET、$_POST、$_REQUEST、$_SERVER、$_ENV、$_FILES 、$_COOKIE、$_SESSION、$GLOBALS、$_GET 使用陷阱(sql注入和中文乱码问题)

(7)cookie和session

什么是会话、cookie的基本概念、cookie的curd操作、cookie重要的api介绍、cookie运行原理图解、cookie的实际运用(显示用户上次访问时间、显示用户上次浏览过的商品、)、cookie使用的注意事项、session数据存放的位置和形式、session的curd操作、session运行原理图解、session实际案例-在线购物车、IE禁用Cookie后的session处理方案、session防止用户非法入侵、session配合验证码使用、php.ini 中关于cookie和session配置说明(重点,难点)、自定义会话处理器、Session和Cookie的区别。

Cookie(小甜饼)是客户端技术,服务器把每个用户的数据以cookie的形式 写给用户各自的浏览器。当用户使用浏览器再去访问服务器中的web资源时,就会带着各自的数据去。

Session是服务器端技术,利用这个技术,服务器在运行时可以为每一个用 户的浏览器创建一个其独享的session文件,当用户再去访问服务器中的其它web资源时,可以从用户各自的session 中取出数据为用户服务。Session和Cookie是最重要的用户行为跟踪技术,尤其是电商,sns项目中运用广泛,因此是我们学习的重点和难点,也是面试笔试的重点。关于cookie和session大家可以参考传智播客 php视频教程 114-121讲

(8)PHP文件编程

文件及文件编程是什么、文件流的基本概念、文件的操作方式、PHP文件编程函数汇总介绍、最常用的13个文件函数、使用文件完成网站计数器、文件上传下载操作-mini版音乐共享网、无限级文件扫描器。

文件最主要的作用就是保存数据,它既可以保存一张图片,也可以保存视频 ,声音...,本章节要求同学们掌握文件的各种操作和上传下载,动态创建和删除目录,文件和无限级扫描文件等, 掌握好这些知识点对我们项目开发非常重要。

(9)PHP绘图技术

php绘图坐标系、绘图步骤说明、绘图快速入门、绘图最常用的函数、绘图技术的实际运用—人口分布饼状统计图、专业的报表开发--JpGraph、JpGraph的安装和配置、JpGraph实际应用-网民支持情况统计图、JpGraph中文乱码处理。

如果你使用过财务软件,那你一定看见过各种对财务数据进行统计和分析 的图表,可能是表格,也可能是饼状图、柱状图、曲线图..,简单的说,就是使用图表动态显示数据。而这些图表的显 示都要使用到PHP的绘图技术,绘图技术要求熟练的使用PHP的绘图函数完成项目的需求。能开发一些统计图,非常有实用价值。比如:

听韩顺平聊PHP初学者如何变身大牛

      如何检验自己的学习效果,看看下面的一些面试题 , 看看能完成多少? 如果能正确完成80%,说明这个阶段学到还不错。

      练习1: 简述echo(),print(),print_r()的区别?

      练习2: 说出PHP的超级全局变量数组,共九种

      练习3: 如何在一个php函数中使用具有全局属性的变量,说出两种方式

      练习4: 三个小题:

4.1.跳水比赛,8个评委打分。运动员的成绩是8个成绩取掉一个最高分,去掉一个最低分,剩下的6个分数的平均分就是最后得分。使用一维数组实现打分功能。

4.2.请把打最高分的评委和最低分的评委找出来。

4.3.找出最佳评委和最差评委。最佳评委就是打分和最后得分最接近的评委。最差评委就是打分和最后得分相差最大的。

      练习5: include和require都能把另外一个文件包含到当前文件中,他们有什么区别?Include和include_once又有什么区别?

      练习6: 写出一个能创建多级目录的PHP函数

      练习7: 写出一个函数,能递归列出某个目录下的所有文件夹和文件名.

      练习8: 在防止SQL注入的时候,通、会把单引号、双引号等转义,需要用到哪个函数

      练习9: 写出插入排序法和快速排序法代码

      练习10: 二分查找的原理是什么? 请写出二分查找函数

      练习11: 写出php的public、protected、private三种访问控制模式的区别

      练习12: 请写出一个完整的严谨的单例模式

      练习13: __set 和 __get 魔术函数是做什么的,在什么时候被触发

      练习14: 如何防止对象克隆, 对象克隆会复制 static属性吗?

      练习15: 说说strip_tags的作用和用法?

      练习16: 如果需要原样输出用户输入的内容,在数据入库前,要用哪个函数处理?

      练习17: 如何控制多个进程去并发删除,插入和更新数据库的某张表?

      练习18: PHP的安全模式和非安全模式的区别

转载请注明本文地址: http://www.igs.cc/03/20/316/ | IGS's Blog


该日志由 IGS 于2016年03月20日发表在 PHP 分类下, 您可以发表不同观点
原创文章,转载请注明: 听韩顺平聊PHP初学者如何变身大牛 | IGS's Blog
【上一篇】
【下一篇】

听韩顺平聊PHP初学者如何变身大牛:等您坐沙发呢!

发表评论

= 3 + 7 (防止机器人评论

快捷键:Ctrl+Enter