作者:Summer
链接:https://www.zhihu.com/question/20034403/answer/135433912
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

网络上教程太多,五花八门,为他总结这份方案的目的,在于最高效的学习。真的不需要看 100 个 PHP 基础课程或者书籍来学习 「PHP Web 开发」。「PHP Web 开发」是技能,只需要看刚刚需要的知识,然后做项目练习,在练习中成长。这个方案,也兼顾了

同学提到的,**保护学习的乐趣**,找到舒适感,获取成就感,在积极的过程中学习是最高效。

PHP 无法单独学,因为是 Web 开发的专属语言,需要整套的 Web 开发知识。Web 最基本的学习可以从 HTML+CSS 开始。第一步是学习一下下面这个交互课程:

HTML+CSS基础课程-慕课网

交互课程的好处是可以实时反馈,并且一开始不需要为开发环境的事情担忧,直接上手。注意上面那个课程不要求完全学会,过一遍即可,不懂的东西先记起来,然后跳过,后面再不断 Review ,不要妄想一下子学会全部。编程是 「技能」多一点,重在练习,这里我们只求知道个大概,以方便后面其他课程的继续。

接下来就是 PHP 基础和进阶课程了:

PHP入门篇_PHP入门视频教程-慕课网

PHP进阶篇_php视频教程-慕课网

还是跟学习 HTML 一样,过一遍即可,我们的目的只求知道个大概,以方便后面其他课程的继续,不懂得东西后面等我们慢慢上手,找到舒适感了,再逐个击破。

有了上面的基础知识,接下来可以开始学习实战课程了。这是最重要的一步,一个 PHP 工程师的能力,完全是靠项目累积出来的。我们经常笑称为「打怪升级」,从第一个项目开始,每做多一个项目,能力值和经验值就会增加。

一个概念要放在脑子里面,这是很多人一路学过来经常猜的坑,那就是:不要看太多书或者文档,要动手做,你真正的 PHP 学习是从你开发第一个项目开始。

因为编程是一门技能,你看再多的书,最多只是知识,知识和技能是有区别的。就如你可以预想到的,一个人看了三个月 NBA 篮球视频,期间连球都没摸到,到了球场肯定还是不会打球。他真正的篮球学习,从他开始动手的那一刻起。

PHP 的学习,可以归纳为三个类型:

  1. 语言的基础语法学习,这些是 ifelse, while, switch, class, function, trait 等;
  2. 内置函数/类学习,这些是 array 的操作,string 的操作,cookie 等;
  3. 应用学习,这些是队列、计划任务、注册登录、缓存、邮件、分页、权限管理、ORM等;

第一和第二,入门是上面提到的慕课网的交互课程,进修是在 PHP: PHP 手册 - Manual 里面。所以后面随着学习的深入,文档要多看,有个心理准备,作为一位 PHP 高级工程师,文档基本上得过 5 ~ 10 遍。

第三部分的学习,可以借助一个优秀的框架来学习,站在巨人的肩膀上。跟着框架学习的好处在于你能确保走在一条正确的路径上,框架解决的是实现生产环境中遇到的通用问题,所以基本上框架学习涉及的话题,那都是 PHP 开发中经常会面对的问题,并且你学习到的是解决方案。

学习框架提供的每一个功能,并且在学习的时候问下面几个问题:

  • 这个功能为什么会出现?解决了什么问题?
  • 这个功能通用性有多强?为什么会被放到框架里面?
  • 这个功能在设计上有哪些优于其他框架的地方?

PHP 框架首推 Laravel ,原因见这里:最好的 PHP 框架是什么?为什么?

Laravel 学习资料,入门先看这个《Laravel 入门教程》 ,这本书是我专为 PHP/Laravel/Web 初学者定制的,也是我的公司 「优帆远扬」 http://estgroupe.com/ 的工程师必修课。

此书将教你如何使用 Laravel 一步一步构建一个类似新浪微博的应用,注册、登录、授权、ORM 使用等,甚至是从 0 到部署。让你从实际开发中体会到 Laravel 开发的敏捷、愉悦与轻松。

书中涉及到 HTML、CSS、JavaScript、PHP 和 Laravel 等 Web 开发相关的基础知识。不仅于此,还会对这些基础知识点进行延伸扩展,为你讲解一些在 Web 开发中更为专业、实用的技能,如 Git 工作流、Gulp 前端工作流、Bootstrap 框架基本使用,上线部署代码等。这些知识将为你未来的编程开发奠定下坚实的基础。

此书的线索性很强,我们故意这样设计,让读者能跟着线索练习下去。这里的要求是,跟着此书做 5 遍。

学完此书,有了第一个项目经验。接下来就可以学 《Laravel 进阶课程 - 从零开始构建论坛系统》 。作为 Web 全栈工程师系列书籍的第二本书,本书以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。编码规范遵循 Laravel 项目开发规范 ,应用程序架构思路贴近 Laravel 框架的设计哲学。在本课程的学习中,你不仅能学到使用 Laravel 开发一个论坛项目,还能学到安全优先、高扩展性的大型项目架构经验。

学完进阶课程,就可以开始阅读 Laravel 的文档 d.laravel-china.org ,尝试着去理解文档中涉及的话题。

遇到问题可以到 Laravel China 开发者社区里面找答案,或者提问题,提问题时注意看下 社区发帖和管理规范

Laravel China 开发者社区 这个是国内现在最靠谱的 PHP/Laravel 社区,还算是蛮有技术氛围的,至少我们一班管理员都是一直以这个为目标在努力。

后面的学习就是不断的看 PHP 手册 + Laravel 文档 + 做自己的项目,或者公司项目。

还是要强调一下,DO IT 、DO IT 、DO IT 。动手练习是编程的唯一学习方法。

php学习路线(转)的更多相关文章

  1. Android学习路线总结,绝对干货

    title: Android学习路线总结,绝对干货 tags: Android学习路线,Android学习资料,怎么学习android grammar_cjkRuby: true --- 一.前言 不 ...

  2. 从啥也不会到可以胜任最基本的JavaWeb工作,推荐给新人的学习路线(二)

    在上一节中,主要阐述了JavaScript方面的学习路线.先列举一下我朋友的经历,他去过培训机构,说是4个月后月薪过万,虽然他现在还未达到这个指标. 培训机构一般的套路是这样:先教JavaSE,什么都 ...

  3. 《C#微信开发系列(Top)-微信开发完整学习路线》

    年前就答应要将微信开发的学习路线整理给到大家,但是因为年后回来这段时间学校还有公司那边有很多事情需要兼顾,所以没能及时更新文章.今天特地花时间整理了下,话不多说,上图,希望对大家的学习有所帮助哈. 如 ...

  4. 一位资深程序员大牛给予Java初学者的学习路线建议

    java学习这一部分其实也算是今天的重点,这一部分用来回答很多群里的朋友所问过的问题,那就是我你是如何学习Java的,能不能给点建议?今天我是打算来点干货,因此咱们就不说一些学习方法和技巧了,直接来谈 ...

  5. 分享篇——我的Java学习路线

    虽然之前我是开发出身,但是我学习的语言是Objective-c,这个语言使用起来范围比较窄,对于自动化学习来说也是无用武之地,所以我自己学习了Java,对于一个有开发经验的人来说学习一门新语言相对来说 ...

  6. Java Web 学习路线

    实际上,如果时间安排合理的话,大概需要六个月左右,有些基础好,自学能力强的朋友,甚至在四个月左右就开始找工作了.大三的时候,我萌生了放弃本专业的念头,断断续续学 Java Web 累计一年半左右,总算 ...

  7. Java Web学习路线

    2016-08-22的早上,本是一个很平静的早上,坐在去往公司的公交车上想到了很多之前上学时的点点滴滴,回想起来还真的是耐人寻味啊,当初青春的懵懂,当初的冲动,当初的做事不考虑后果! 也正是这耐人寻味 ...

  8. 适合PHP学习者的学习路线 10个PHP优化技巧

    适合PHP学习者的学习路线: (1) 熟悉HTML/CSS/JS..网页基本元素,完成阶段可自行制作简单的网页,对元素属性相对熟悉 (2) 理解动态语言的概念和运做机制,熟悉基本的PHP语法 (3) ...

  9. linux 下C语言学习路线

    UNIX/Linux下C语言的学习路线.一.工具篇“公欲善其事,必先利其器”.编程是一门实践性很强的工作,在你以后的学习或工作中,你将常常会与以下工具打交道, 下面列出学习C语言编程常常用到的软件和工 ...

  10. iOS学习路线

    这个学习路线必须发布到首页候选区.这个学习路线必须发布到首页候选区.这个学习路线必须发布到首页候选区.这个学习路线必须发布到首页候选区.这个学习路线必须发布到首页候选区.这个学习路线必须发布到首页候选 ...

随机推荐

  1. 008-js中的正则表达式

    查看地址:http://www.runoob.com/js/js-regexp.html 一.正则表达式概述 正则表达式(英语:Regular Expression,在代码中常简写为regex.reg ...

  2. vue中mixins的使用

    与vuex的区别 经过上面的例子之后,他们之间的区别应该很明显了哈~ vuex:用来做状态管理的,里面定义的变量在每个组件中均可以使用和修改,在任一组件中修改此变量的值之后,其他组件中此变量的值也会随 ...

  3. Java中Collections类的排序sort函数两种用法

    java中的Colletions类主要实现列表List的排序功能.根据函数参数的传递,具体的排序可以分为 : 1.  自然排序(natural ordering). 函数原型:sort(List< ...

  4. https://github.com/Lushenggang/show-pdf在线浏览pdf文件在线浏览pdf文件

    在线浏览pdf文件 https://github.com/Lushenggang/show-pdf https://github.com/Lushenggang/show-pdf

  5. mosquitto SSL认证

    [11]MQTT mosquitto 双向SSL认证配置方式 [12]MQTT mosquitto 单向SSL认证的配置方式 Mosquitto服务器的搭建以及SSL/TLS安全通信配置(比较可信) ...

  6. openvpn-服务端配置文件

    ;local a.b.c.d port 1194 ;proto tcp proto udp ;dev tap dev tun ;dev-node MyTap ca /etc/openvpn/keys/ ...

  7. wue父子通信和动态路由 还有点击事件直接赋值传参数

    这种直接在后面赋值 传值

  8. 20个Java练手项目,献给嗜学如狂的人

    给大家推荐一条由浅入深的JAVA学习路径,首先完成 Java基础.JDK.JDBC.正则表达式等基础实验,然后进阶到 J2SE 和 SSH 框架学习.最后再通过有趣的练手项目进行巩固. JAVA基础 ...

  9. git安装和使用(二)

    一.git安装 1.目的 通过git管理github托管项目代码 2.下载安装 Git - Downloading Package​www.git-scm.com 点击桌面,右击鼠标,出现两个git单 ...

  10. IdentityServer4:Endpoint

    Endpoint的概念在IdentityServer里其实就是一些资源操作的url地址:如同Restful API里面的Endpoint是概念: 那么可以通过你自己的授权服务端得到相对应的地址与信息: ...