PHP 学习计划流程2008-10-22 17:23PHP 学习计划流程

1、看教程 (2~3月)

大概1天1个章节,比如《PHP圣经》有32章,1个多月就看完了,当然后面的章节每章1天肯定看不完,所以2~3个月是合适的。

看的过程中实际运行书中的例子是必须的,不要问为什么。

2、读开源系统的代码,看源码分析(3~6个月);学css、javascript (2个月);

discuz、phpwind论坛的源码,phpcms、dedecms的源码,1个系统读3个月,两个系统6个月读下来应该差不多。

其实学完PHP教程,读别人系统的代码很多还是看不懂,尤其和前台相关的代码,就是因为CSS和Javascript不会,这两个先不用学太精,读开源源码的同时学,各1个月差不多大多数代码都应该能明白啥意思,以后见的多了就好了。

3、Smarty模板,框架,Ajax学习

模板其实上面说的那几个开源系统都用到了,不过Smarty比较完整,框架也是现在团队合作开发都要用到的Ajax是所谓web2.0的核心技术。

其实也不用我多说,等到自己有想学这3个的愿望的时候肯定是已经懂啥叫Php Web编程了。

PHP学习过程中不同阶段的几个心得

一、html语言

其实学php之前,html是必备的知识,必须会,重点有三:1,form表单 2,frameset框架 3,get和post方法

不过get和post好像是http协议定义的,不能叫html语言,这个html教程里要没讲的话在php教程也会有。

html语法教程Softii.com.chm (119.21 KB)

二、php教程

学php教程的时候每个人都会碰到几部分难点,这里的建议就是看看就跳过,不要过分纠缠,以后慢慢自然会明白。下面是我学习过程中的几个体会:

1,对象

对象其实不难,但太抽象,而且牵扯到的概念还多,所以初学者肯定会学得很郁闷。这里说一下我的理解,目的只是加深一下读者关于对象的印象,不要指望能立码明白。因为说实话,我自己也没正式用对象编过程。

首先,用对象之前要先建类(class),然后通过类(class)新建对象,再然后就该怎么用对象就怎么用了。

其次,类(class)由变量(variable)和函数(function)组成,学名分别叫属性(property)和操作(operation),也叫成员(member)和方法(method)。

第三,构造函数__construct()和析构函数__destruct() 。__construct()

在对象被创建时自动执行,不用显式地调用,一般放一些初始化的代码。

最后,还有封装、继承、重载等好多概念,所以,建议初学者学头遍的时候就别太钻了,以后有的是机会。

2, 正则表达式

这也是个比较抽象的概念,处理字符串的,学会了非常非常有用。看一下附件的教程,讲得很好,不过看不懂也很正常,先跳过即可,下阶段有的是机会学。
正则表达式教程.rar (48.82 KB)

3, 异常处理 try...catch...

这个其实没什么复杂的,但是我初学的时候以为很神秘,结果搞得头闷了好长时间。

大体上就是你编码的时候觉得可能会出错的程序,你给放到 try{ ... }里,然后再在catch{...}里写些处理你估计可能出错的程序的候补或补救方法的程序。头遍学了解一下就行,初学没有经验,几乎用不上,有经验的也没见用得很多。

4, 数据库

数据库有很庞大的理论体系,一般学编程应该对数据库有基本的概念。如果没有的话,可以搜一些教程学一下。这里简单说一下程序的分层结构的概念。

一般程序可以分成几个部分:
    a.显示给用户看和接受用户输入的部分;
    b.处理如何向用户显示和如何接受用户输入的逻辑代码部分;
    c.存储数据部分

根据上面3个部分程序也就分为3层:1,表现层(也就是显示层)、2,应用逻辑层、3,数据库层(存储层)。

    (1)对于互连网程序来讲,表现层也就是用html写的显示到浏览器的代码部分

    (2)应用逻辑层一般指的就是怎样接受用户的请求(也就是点击),给用户显示什么页面的代码部分

    (3)最后,程序运行过程中有很多数据是要存储下来的,这就是数据库层(存储层)的事情

以上概念只是思维上的概念,读或编写实际代码时不要生硬的去划分哪些代码是哪个层的。分层结构是系统设计上的概念,在你有了些经验,编写一定规模程序的时候会用到。

当然,对初学者提一点,存储数据不一定用数据库,文本文件也可以。数据库的作用在于“有序高效”的处理“较大规模数据”。

提示:学数据库其实基本就是学会SQL语句。

教程推荐:

《PHP和MySQL Web开发 (原书第3版)》 -- 号称PHP圣经,我看的是这本
http://www.china-pub.com/25384
http://product.dangdang.com/product.aspx?product_id=9003675
《完全手册:PHP网络开发详解》 -- 这本感觉讲得比较全,php的Smarty模板,框架都涉及了,
http://www.china-pub.com/25384
http://product.dangdang.com/product.aspx?product_id=20001887

其他也有很多不错的,看自己喜好选择了

PHP+MYSQL环境搭建:

能自己php和mysql分别搭起来最好,这里推荐一个集成好的软件:APMServ5.2.0
http://www.google.cn/search?hl=z ... &meta=&aq=f
http://www.baidu.com/s?ie=gb2312 ... wd=apmserv&ct=0
下载下来,Mysql已经集成好了,支持多虚拟目录,很方便

From:http://bbs.blueidea.com/thread-2891978-1-1.html
[经验之谈]30岁,我的程序,我的梦!
程序人生 : 30岁,我的程序员梦想
作  者: redbridge (雪燃)

现在是一个优秀的网站程序员,我的一切编程方面的知识都是自学的。曾经我也有过跟你一样的阶段,就是对自己极端地没有自信,根本不知道自己能不以胜任工
作,去面试时一点底气也没有。我曾经投过数百封求职信,但面试机会只有二十来次。费尽千辛万苦找到了工作,热情满满地工作了一段时间,结果却都是失望。为
什么?因为我发现我担任的岗位太轻松了,根本不能发挥我所学的一半。这就是对自己不自信找到的工作。但是,只有在经历了这个阶段后,我才能真正认识自己,
找到自己的方向。

作为一个有一些经验的web程序员,我可以提供给你以下建议:如果你想成为优秀的PHP程序员,MySQL数据
库,Apache服务器是不能不了解的;PHP手册,MySQL手册是必须通读一遍的;PHP/MySQL/Apache的配置文件是要能看得懂
的;Linux不懂也没关系,但是如果你熟悉Linux,级别就不一样了;另外,作为网站程序员必备的基础知识,HTML,CSS,Javascript
也是必不可少的;要赶上潮流,还得学习Ajax。在你学习的过程中,你会发现你还有其它很多知识需要了解。

不要老是去想自己现在学得怎么样了,只要踏踏实实地学习,始终朝着自己的目标迈进,有一天你就会突然发现自己变强了。
现在30岁,开始实现我的程序员梦,从一个编程爱好者,从一个业余的程序员,一个水平不高的程序员,一个半道出家的程序员......
我的经历到这里就告一段落了,五年里跳了五次槽,不知道和大家比算不算多J,没有什么太多起伏,但我想很多朋友可能会和我有类似的经历,不知道能不能引起你们的共鸣。我想对我上面所说的话给一个总结:

1. 如果你觉得自己应该追求什么,不管遇到什么困难千万不要放弃,一定要坚持下去。
2. 不要因为自己年轻就找理由挥霍时间,少玩一点SC、CS、魔兽3、传奇、魔力或者…….,多看点书,多练练题。
3. 如果你还是在校的学生,英语很差,专业课也很差。没关系,想怎么学计算机就怎么学计算机吧。其它地只要能混到毕业证就行了。除非你对自己的未来没有信心。(当然,如果你的理想不仅仅是要做一个程序员,那你别丢掉英语。)
4. 如果你不是科班出身,想要转行而不知该怎么开始的话,建议你先看两类书:(1)计算机原理;(2)数据结构和算法。(看数据结构之前先看C语言)。
5. 什么时候努力都不晚,关键是你明白要努力了,大器晚成总比一事无成要好的多。
6.

Java、.net、C++、PB、VB、Delphi、汇编到底应该学哪个?我的经验,哪个最简单就先学哪个、公司用哪个你就学哪个、哪个和你有缘(比
如刚好你认识一个愿意帮助你的Delphi高手)你就学哪个,如果你都学,或者三天两头的换,我可以告诉你结果肯定是什么都不会,不要心浮气燥,他们都只
是工具,学精一门其它的就相通了,重要的是掌握编程的思想。如果你问我面向对象(好像现在已经是面向需求了)、UML、WebLogic、
WebService、软件工程、XML…….应该怎么学呀,对不起,这些我也确实不是都会,但请相信,你先实实在在的写上十万行以上的代码以后,那些东
西你自然就慢慢会了。
7. 不要以为程序员的工资都很高,程序员之间的水平差异也大。公司衡量一个人的待遇标准是他能给公司带来多大的效益。如果你体现了自己的价值,公司会主动给你加薪的,当然你也可以自己主动提,但一定要在你表现出了自己的价值之后。
8. 轻易不要跳槽,如果非要跳,也要保持工作经验上的延续,而不是从新开始,不然就会象我一样走很多弯路。
9. 如果你以为程序员都是熬夜熬出来的,那么你错了,因为它的代价就是缩短你的青春!大家不要象我一样,真的,熬夜一点也不好!记住老毛的话:如有恒,何须三更起,半夜眠;最怕莫,三天打鱼两天晒网,竹篮打水一场空!
10.

这一点是我觉得最精华的一点:“君子性非异也,善假于物也。”这句话的本意是一个水平很高的人本身并不一定很高明,关键是他善于利用别人的高明!我在这里
做个借鉴,就是要充分利用自己身边的资源,不放过任何一个可以提高自己的机会。大家不要误会,这里的假于物可不是指抄袭别人的源代码,而是指通过学习别人
的源代码把他的思想扩展到自己的思想里去。
注:上面的十大“精华”纯属我个人的“谬论”,您自己看着消化,有用的收下,没用的请拖入“回收站”。如果你觉得这些总结不过是一些浮华之词,那请你先问问自己:“是不是在行动上都真正做到了。”

就是我,一个不算优秀,不算勤奋;玩能玩通宵,学也学能学通宵;对梦想的追求很执着;到了30才开始真正写程序;一个很平凡但又不甘于平凡的人……我的经
历相信很多朋友都有过的,我现在也不能算是一个成功人士,但我相信我的经历却是值得大家借鉴的,因为我终究代表了一类人。
最后我还想说一点:现
在很多朋友都抱怨中国的软件业环境太差,前途渺茫。确实是这样,我有同感。不过我想软件业不过是千万个行业中的一种,每一个行业总是会有起落的,中国的软
件业环境差有她的历史原因,我们不要总是简单地和印度相比。抱怨没有意义,已经这样了,抱怨不能使她变好,希望我们每一个人多贡献一份自己的力量,总有一
天她会变的比印度还好,甚至比美国还好。
最后:希望所有的程序员和拥有成为程序员梦想的朋友们在新的一年里心想事成,万事如意。请相信我:明天不一定更美好,但美好的一天一定会来!

php程序员经验的更多相关文章

  1. Code Review 程序员的寄望与哀伤

    一个程序员,他写完了代码,在测试环境通过了测试,然后他把它发布到了线上生产环境,但很快就发现在生产环境上出了问题,有潜在的 bug. 事后分析,是生产环境的一些微妙差异,使得这种 bug 场景在线下测 ...

  2. 程序员最爱 Mac、JS 是最热门技术

    概况: 今年,有超过5万名开发者向我们分享了他们是谁,做什么工作,以及他们的成果.通过本文,你将看到有史以来最为全面的一次开发者情况调查的结果. 每8秒钟,就会有一位开发者在Stack Overflo ...

  3. Code Review 程序员的寄望与哀伤【转载】

    一个程序员,他写完了代码,在测试环境通过了测试,然后他把它发布到了线上生产环境,但很快就发现在生产环境上出了问题,有潜在的 bug. 事后分析,是生产环境的一些微妙差异,使得这种 bug 场景在线下测 ...

  4. 转: Code Review 程序员的寄望与哀伤

    转自: http://www.cnblogs.com/mindwind/p/5639008.html 一个程序员,他写完了代码,在测试环境通过了测试,然后他把它发布到了线上生产环境,但很快就发现在生产 ...

  5. 大厂程序员教你如何学习C++(内附学习资料)

    目前准备面试同学都知道,C++是百度和腾讯的主流开发语言,而java是阿里的主流开发语言. 对于初学者来说,也不用纠结究竟学习c++还是java 其实只要好好掌握好一门即可,另一门即可融会贯通 因为我 ...

  6. 【腾讯Bugly经验分享】程序员的成长离不开哪些软技能?

    本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57ce8068d4d44a246f72baf2 Dev Club 是一个交流移动 ...

  7. (转)【推荐】初级.NET程序员,你必须知道的EF知识和经验

    转自:http://www.cnblogs.com/zhaopei/p/5721789.html [推荐]初级.NET程序员,你必须知道的EF知识和经验   阅读目录   [本文已下咒.先顶后看,会涨 ...

  8. Java程序员转Android开发必读经验分享

    小编最近几日偷偷的发现部分Java程序员想转安卓开发,故此加紧补充知识,为大家搜集资料,积极整理前人的经验,希望可以给正处于困惑中的你,带来些许的帮助. 啰哩啰嗦的说说Java和Android程序的区 ...

  9. [闲谈] 有经验的程序员用Google用得多么?

    关于程序员有没有必要记一些API什么的讨论有很多,我个人觉得能Google到的就没必要刻意去记,可以简单的做个笔记,需要用的时候查一下就好了.真正有必要记的东西,用得多了自然也就能记住了. 文章不难, ...

随机推荐

  1. 使用 Android Studio 开发工具创建一个 Android 应用程序,显示一行文字“Hello Android”,并将应用程序的名称更改为“FirstApp”。

    需求说明: 使用 Android Studio 开发工具创建一个 Android 应用程序,显示一行文字"Hello Android",并将应用程序的名称更改为"Firs ...

  2. C# UTF8的BOM导致XML序列化与反序列化报错:Data at the root level is invalid. Line 1, position 1.

    最近在写一个xml序列化及反序列化实现时碰到个问题,大致类似下面的代码: class Program { static void Main1(string[] args) { var test = n ...

  3. MATLAB 错误之生成step图表出错

    m文件: step(Gi_close) hold on 错误示例: 使用step函数生成图表后,报错如下: Plots must be of the same type and size to be ...

  4. python_接口自动化测试_处理参数替换

    在进行自动化测试时,通常会存在A接口用例的返回值是B接口用例的入参这样的情况 可进行如下方式处理: step1.处理A用例时,在响应结果中提取出该数据的值,并赋给一变量,比如 exeId = res. ...

  5. python日志按天分割,保存近一个月日志,日志自动清理

    python日志按天分割,保存近一个月日志 import os import logging import re from logging.handlers import TimedRotatingF ...

  6. 初识python 之 爬虫:爬取中国天气网数据

    用到模块: 获取网页并解析:import requests,html5lib from bs4 import BeautifulSoup 使用pyecharts的Bar可视化工具"绘制图表& ...

  7. 安装devstack中遇到的一些问题整理

    1.执行stack.sh文件后提示 ./stack.sh:528:check_path_perm_sanity /opt/devstack/functions:582:die [ERROR] /opt ...

  8. c#多进程通讯,今天,它来了

    引言 在c#中,可能大多数人针对于多线程之间的通讯,是熟能生巧,对于AsyncLocal 和ThreadLocal以及各个静态类中支持线程之间传递的GetData和SetData方法都是信手拈来,那多 ...

  9. Java类与对象的创建

    以类的方式组织代码,以对象的方式组织(封装)数据 组织代码(类) public class Demo04 { String name;//默认值null int age;//默认值0 public v ...

  10. jsp文本框输入限制问题

    1.jsp文本窗口实现控制输入格式 <input onkeyup = "value=value.replace(/[\W]/g,'')" onbeforepaste=&quo ...