00.PHP学习建议

         各位师弟师妹,大家好~PHP不是我们专业的本该有的方向。我不知道大家为什么来学习这门语言,也许是自己了解之后喜欢这门语言(我想这种可能在我们专业是挺少的),也许是听守中哥说这门语言简单好学,为了躲避学习Java或者C#/ASP来尝试学习一下这门语言的(也许这个原因是居多的)。但是我想说不管学习哪门语言,认真专注的学习好一门语言,再转其他语言其实就没什么问题了【精一门通百门】。以下,我从四个方面来说一下我对PHP学习的一个建议,大家可以酌情参考,找到一下自己的学习方法:①学习PHP与学习JAVA/C#/ASP等语言,在我们专业有什么区别?②学习PHP之前应该有的技能?③学习PHP的一个建议路线。【在你认真思考过我的话之前,你所看到的应该都是错的,因此这里写的只是一个建议。】

一、习PHP与学习JAVA/C#/ASP等语言,在我们专业有什么区别?

       据我学习PHP的时候了解,在中国高校中是没有任何一个学校有特意开设PHP这门语言的,所以现在PHP的人才市场基本都是一些自学人士亦或者是从培训机构中出来的。当然,这些人学习PHP出于什么目的,我不太清楚,也没有了解过,我想大多数是出于工作吧。但是就和12级、13级一些学习PHP的师兄师姐、同学聊天来说,大部分人选择PHP都是因为学习JAVA的时候坚持不下去,感觉学习Java或者C#这些语言太难了,所以选择了PHP【江湖人称“拍黄片",我其实也是这大部分中的一员,只不过后来发现其实拍片也是一门挺有艺术的活,所以学到了现在】。“没有最好的语言,只有最适合的语言”。
        学习Java、C#、ASP这些语言,入门比PHP要难一点,花费的时间相对来说会多一些。似乎自己学习了这些语言的基础很久了,但是还是不知道自己学的东西是什么?自己学习的这些基础能做什么?也许自己能写一下比较简单的小案例了,但是一旦接触一个完整的比较小的项目的时候,还是不知道该从何做起?这是我当初学习Java的一些最大的疑问。学习这些语言只是前期比较繁琐,在后期相对一些东西会比较清晰,也许跟我性格比较大关系,不喜欢干一个长期看不到成效的事,所以在大二第二学期期末的时候,我选择了放弃之前学的东西,选择了PHP。
       学习PHP,入门相对比较简单。PHP的框架比较多,开发比较快。特别适合中小型的网站的快速开发。但是在后期想突破,还是会接触到一些比较繁琐的问题,后期的突破感觉没有Java、C#、ASP这些简单。
       对于这两种选择的学习,我觉得:对于选择JAVA、c#.net这一类,相当于从基础开始一步一步稳打稳扎的来进行【这种学习方式,好比你建造一栋高楼,从根基开始一步一步检车没有问题的修砌着到顶楼】。而学习PHP,按照我的学习方式:先快速入门,对PHP的整体框架有一个大致了解之后,再回过头来修造基础【这种方式,好比你建造一栋高楼,只要根基自己觉得OK了就开始休这栋楼的大致框架,等大致框架搭建好了,再回来好好的修补填实自己的根基等细节】。两者各有好处,第一种基础比较扎实,稳中求胜,需要足够的耐心;第二种比较容易让人看到自己学习的成效,不至于学习会毫无目标,不知道自己学的是什么,但是前期基础相对不扎实,但是如果等你有大概框架之后回过头来学习基础的时候你却能联想到很多你想不多的东西,第二种方式比较适合我们在校学生,因为我们还有大量的时间去这样快速搭建框架之后再来补基础。
        因此,在你没确定学习哪门语言之前,还是先结合自己的性格多考虑一些东西。如果耐心足够好,我个人建议还是学习Java、C#、ASP会好一些,因为学习好这些之后再来学习PHP,你会发现简直简单的不要不要的的;但是如果耐心不是非常足够,学习比较容易产生迷茫期的同学,可以考虑先把PHP学精,打好基础再去考虑其他的【虽然现在各个培训机构大量的培训PHP导致PHP的市场被冲击的也挺大,但是它的需求还是相对比较大的】。

二、学习PHP之前应该有的技能?

        这个部分是我自己的一个总结,如果有不同欢迎讨论。我觉得在学习一门语言之前,应该思索具备以下这些技能,学起来回事半功倍。我觉得学习一门语言,没有目标是比较容易迷茫的,而这个目标的定位怎样才是适合自己的?怎样才能更好的达到这个目标?怎样才能突破这个目标?

       1)、分析能力是决定你目标的关键

       当时我是大二暑假留下了一个月在学校学习PHP的,一开始师兄就扔了个项目给我。当时我是懵逼的...。自己摸索了半个月,都不知道该怎么去做。后来的半个月,我索性每天只花一个小时在项目上,如果一个小时都没有收获,当天的项目时间就结束。那我其他的时间用在什么地方呢?我用来学习基础和从各大网站上去找学习路线,然后分析这些学习路线。当时给自己的定的目标是:我要解决最基本的实习问题,那么达到这个目标我需要具备那些技能?我自己列了一下,然后根据类比的方法去分析【类比方法,我会在另一篇博文中写出来】:那些是PHP基础?那些是PHP的进阶?那些是PHP的高级部分?对于基础:那些是PHP最本质的?那些是PHP最常用的【”数据库的操作“--当时我为了记住这些最常用的,我每天中午会把这些最常用的代码敲个10遍再睡觉】?利用这些基础我能做一个什么东西出来?

        2)、良好的笔记习惯是帮助你梳理目标的好方法,良好的习惯是一个好桥梁

         这一点,我自己当初没有做好,但是到现在来比较吃亏的一件事。因为后面做项目的时候即使出现错误,其实最本质的原因大部分都是基础过程中你遇到的。因此,从最开始就有一个良好的整理笔记习惯我觉得是非常好的,在此也推荐几款记笔记的软件给大家:【为知笔记--可以同步到自己的博客,如果有博客的话这个是你的不二之选(没有博客的同学,推荐大家申请一个博客);印象笔记(之前我也用过,感觉也是不错的);有道云笔记...这些软件没有说那个是最好,自己用着合适顺心就OK 了,或者大家可以几个一起使用也行】
        对于习惯,我只强调一点:学会思考,学会提问。不管你最终问的问题多么的幼稚,但是希望在你问问题之前先自己思考过再问,以下有几种问问题的方法,是我之前在一些PHP交流群中遇到的(以配置PHP的开发环境为例),发出来给大家参考一下:
         ①不用脑型问问题:朋友在吗?能告诉我一下怎么配置PHP环境吗?【一开始的时候我还挺乐意帮这种人解决问题,毕竟有人问你问题还是觉得...卧槽,有人问我问题,我要脱离学渣。慢慢我的回答只是一个链接:https://www.google.com 或者 http://www.baidu.com  ,你先自己查一下吧,现在没时间~一次两次我可以当做是复习旧知识,告诉你,但是次数多了,我都能背下来了,请问我回答你的问题我能有什么收获呢?】
        ②不懂提问型:朋友在吗?我自己尝试配置了一下PHP环境遇到了点问题,你能告诉我怎么配置吗?【额(⊙o⊙)…你可以先告诉我你遇到的是什么问题吗?你什么都不说,还要我自己问你遇到什么问题啊?妈呀,你老大啦?你问问题还是我求你问问题啊?】
        ③我觉得比较合理的提问:朋友在吗?我配置PHP环境的时候遇到了点问题,我是这么做的...;但是现在报错...;我觉得有可能是...的问题,但是我谷歌/百度了按照方法没解决,能帮我看看是什么原因,指点一下吗?
以上几种问问题的方式,我比较推荐第三种,原因有:
        ①、至少这样的问问题证明你思考了;
        ②、跟着你的问题,我思考了一遍,我有了进步;
       ③、态度好、心态好,我们是在相互学习,相互进步。综上,我愿意帮你~
       如果这样都没有人帮你,可能你的这个问题真的太幼稚了,网上真的一找就一堆答案的;或者别人真没空;最差的情况就是你找的这个人不愿意帮人,再找找解决方案,再问问其他人。

     3)、“找错”能力很重要

        前期学习的时候,肯定会遇到很多错误,各种bug,各种莫名其妙的问题。各种语法错误,各种逻辑错误导致最后的效果不是自己要的;很多人也正是在这里被难倒的~因为学了一堆基础,遇到了一堆bug,心里懵逼ing,这个时候就会有放弃念头产生了。但是这个过程不管是谁刚开始学习的时候我想都是会遇到的,而这个过程我自己也不知道该怎么去避免,我这里也只能给一些建议,去减短这个痛苦期:那就是学会“找错”,因为只要你学会前面两点,我想解决问题应该是不大的。但是很多时候,自己根本就不知道错在什么地方?所以不知道怎么去提问,不知道怎么去搜索你的问题。因此,我推荐大家在学习基础知识的时候,在学习基础知识最常用部分的时候:
        ①多去了解这么语言的调错方法,别管这个方法是聪明还是笨【因为在网上找这些方法的时候,经常会有一些人说这个方法不好什么鬼的,但是记住:不管黑猫白猫抓到老鼠就是好猫】~
        ②多去敲代码,多去思考你写的代码,多去改你自己写的代码【只有这样你才能经常遇到bug,而解决bug思维和能力是给你后面深入学习的一个很关键的能力】
       对于学习编程的人,这个过程我觉得是最痛苦、最迷茫的【我当时经历这个过程就给自己说:抛开所有对编程的成见,如果一个月之后学习编程还这么痛苦,老子就转行回家耕田去了。奈何农民伯伯嫌弃我,我熬过了这一个月】,现在我也只能说:坚强孩子,别哭~挺过这个过程,你就看见新大陆了!
         分享一本电子书:PHP-Debug-Manual-public.pdf:http://pan.baidu.com/s/1geEMjAF【PHP的调错技巧,也许你不一定全部看的懂,只需要看你要看的即可!记住,你现在要有目的性的去学习,不要想什么都啃,一口啃不成大胖子的,有目的性的去学了你要的,等有时间再回来学你没学到的】

        4)、“良好的资源”是相对的捷径

        搜索:
               ①问题搜索:建议大家多用谷歌,因为我觉得相比百度:谷歌更懂编程人士想问的【如果大家没有翻墙工具,没有VPN推荐大家用:蓝灯翻墙(百度云盘链接:http://pan.baidu.com/s/1geOV6Wr,直接下载解压可用),maybe这是我目前用过最方便和最好的翻墙工具了
                ②云盘资源搜索:网盘搜http://www.wangpansou.cn/这个也挺不错的
       基础:
                视频是最快入门的学习资源,但是我的一个建议是:视频在你入门之后永远只能是你的辅助资料,不要太依赖它。
                学习PHP之前,大家需要掌握HTML+CSS+简单的JS【个人建议,随着现在互联网的发展,大家可以直接学习HTML5和CSS3,资源的话在慕课网上就有一大堆,对于入门是够了的】
                前期入门推荐:燕十八的传世四部 http://pan.baidu.com/s/1pKA2fkn  【但是个人的一个建议:传世四部前面几个可以用来入门,到了后面可以自己学习一下之后再来看,两者结合你会学到更多,如果一直跟着视频来学习这种方法会比较限制你的思维】
               巩固基础:韩顺平PHP入门到精通:http://pan.baidu.com/s/1c2K8jRi
               基础工具网站:
                                Google翻译:http://translate.google.cn/
                                看云技术文档在线:http://www.kancloud.cn/
                                菜鸟学习教程:http://www.runoob.com/ 
                                W3Cshool学习教程:http://www.w3school.com.cn/  
                                在线工具:http://tool.lu/ 
                                PHP学习网站:http://www.nowamagic.net/librarys/ 【类似这样的网站一大堆,大家可以搜一下:phpthinking、PHP100....】
还是那句话:视频是最快的入门方法,但是不建议大家过于依赖它!还有看视频的时候希望大家有目的的去看:例如,我看项目的视频:着重的看是老师是如何从无到有来构思一个项目的?思路是如何的?至于项目的实现我觉得如果一边看一边做,很费时,而且会被限制住思维;看基础视频:着重看基础知识,着重看老师的调错学习技巧,着重去联想自己学过的东西和该基础的联系和运用。当然这些说起来简单,做起来难,我现在也是在一步一步中去养成这个习惯。贵在坚持!

         5)、“兴趣”是最大的老师

            也许你会说,学习编程本来就没什么兴趣,所以觉得我这个是在扯淡。但是,我想说兴趣真的是可以培养的,你不妨看完我这段废话之后自己尝试一下,因为当学习一门语言给你带来成就感的时候,你会慢慢爱上它。我最开始的时候,连做梦都没想过我会接触编程这个鬼东西。但是无奈,我还是被分来这个专业了,既来之则安之。我尝试了几乎我们专业所有开设的语言,但是都是一知半解就退下来了,终其原因都是因为,我在这门语言里面没有找到我的动力和兴趣所在。一开始我学习PHP基础的时候,我也是跟大家一样,输出个什么helloworld,什么冒泡排序,什么水仙花数。但是我本来就不喜欢这个的,你再让我来搞这个确定合适吗?
         案例一:
         随着学习,也许慢慢有点强迫症,从网上下载很多视频都是这样的,我特别讨厌重复的东西。之前学习Java的时候我都是一个个慢慢的重命名修改过来的,后来我学习到PHP文件操作的时候,我突然想自己写一个程序来解决这个问题,于是我慢慢开始分析:①我要做的是什么?--重命名;②我做的东西本质涉及到什么?--字符串的截取及文件的操作;....就这样,我一路写了5个版本,一直慢慢改善慢慢改善。直到现在,像这种形式的重命名都不用我手动的去改了,都是靠程序帮我解决的。短短的几十行代码就能帮你解决你的问题,也许你从网上下一个软件也能做到,但是自己做出来的感觉是不一样的。【代码真的不多:http://pan.baidu.com/s/1bKwaPC 】
        案例二:
        不知道大家用什么软件播放学习视频的?【推荐大家用“完美者解码”,非常清晰,能播放的格式非常多,至少我现在发现播放的格式是比暴风这些什么要多的】用完美者解码播放视频的时候,可以直接导入一个文件夹,然后里面所有的视频就可以在播放列表中了。但是后来遇到了一个问题,下载一些项目视频的时候,并不是所有的视频文件都放在一个文件夹中的,难道我要一个一个把视频文件找出来剪切/复制-粘贴到这个文件中吗?我能不能用代码搞定呢?我又开始分析:①我要做什么?--移动文件;②怎么做?--设定识别的文件后缀名,然后遍历目录,如果该文件的后缀和我表单设定的文件后缀相同就移动文件到我设定好的目录中【这个demo的代码由于之前电脑坏了,所以丢了。有兴趣和同样有强迫症的朋友可以试试】
         后来学习数据库操作的时候,又用数据库的知识来管理自己的资源链接。
         培养兴趣的最好办法就是,利用基础知识,解决你生活中切实存在的问题,不要想解决多复杂的。尽可能的去简化自己的生活,在这个过程中,你收获的是:基础知识;基础知识的应用;思维的突破;学习的成就感;学习的动力。如果大家不太喜欢编程,但是又不讨厌的,请抛开你内心对编程的成见,试试这个方法,也许你对发现编程并不是这么讨厌和难学,并不是这么乏味和无聊。

三、PHP学习路线建议

具体的学习路线,我没有像其他语言一样详细的列出来,因为①网上很多,我从网上找了一份觉得比较好的学习路线[涉及到的东西很全],大家可以下载来看看【http://pan.baidu.com/s/1nvkxZYh 】②.自己整理一次,有助于你对PHP这门语言整体的知识架构有一定的了解,可以看看这份百度脑图:【http://naotu.baidu.com/file/27cec9aabc49526ec65bdfbbc7befb61】这份是我自己整理分析的,在此我再唠叨几句:
①学习PHP之前,自己搭建PHP环境,集成的非集成的都试试;大概了解PHP的运行原理--这些对于你后面找错有帮助--即:一个PHP代码,是经历了一个什么样的过程才被你看到的?
②学习PHP之前,先看看编程规范:https://segmentfault.com/a/1190000000443795--其实就是前期的时候:写代码写的要简洁,不要写在一坨,自己找问题都找个半天,发给别人帮你找问题,还要帮你对齐什么鬼之类的 浪费一堆时间;学会写注释,注释要:精简
③学习之余多看一些其他跟PHP相关的资源:多逛逛博客园、CSDN、开源中国、大前端【学习PHP前端也是我们需要简单掌握的】、张鑫旭的博客【http://www.zhangxinxu.com/wordpress/ 】、知乎、thinkphp的论坛
④学习了PHP的基础语法、学习了PHP的数据库操作,建议大家就可以开始上手学习框架的“应用”了,因为PHP开发大多数都是用框架的,大家可以一边学系基础,一边学习用框架--先学会用,在学习应用的时候,你可以不必追求的那么深,等学习路线学到框架,你再细致的去研究框架的原理、MVC那些都不迟~而且在你会用了的前提下去学习原理,你会更加容易懂。
⑤多去接触学习一下你所在语言的新知识:例如最近微信开发很火,试试用PHP去开发微信呗~例如现在H5这么火,尝试H5和PHP结合做个自己的博客呗~这样你才能与时俱进。
⑥最后也是我觉得最重要,学习之余,多学学表达和为人处世:做的再好,无法通过语言,不懂为人处世,不懂将自己的好展现出来并被人接受上面所有的都是扯淡

寄语

        我想等你真的入门了,也许像后面你所需要什么东西才能突破?你的瓶颈期是什么你应该都具备能力去知道了......什么设计模式、服务器这一块的东西,你也应该都知道自己要学习什么了,在此我就不多说了。如果上面的分享链接失效了,或者想要其他资源的也可以加我微信给我留言【加的时候麻烦附上你的大名,而且我想说的是我是个渣,别对我的资源报太大期望】。对于资源,本来想全部分享给大家的,但是想想算了,不要像我,收集多了就成收集爱好者了。希望大家可以有目的性的找我要资源~同时如果大家是信息专业的,希望大家多多支持Leaders工作室,我们想做的是资源整合,具体的也不是三言两语就说的清的,虽然有人说这很理想,但是我们坚信当每一个人都愿意去为理想而努力的时候,理想就不在是理想了,我们就是这样一群人,不撞到头破血流,绝不回头,一群不愿意被体制化的人。希望我大信息专业能越做越好,希望Leaders工作室的师弟师妹们能真正将工作室做起来,做强做大。让我们专业是学院的旗帜,让工作室是专业的旗帜。
mmqrcode1465796635484.png
 
 
 
 
 
 
 





原文地址:https://www.cnblogs.com/lms520/p/dd4bb47bd710eafde936e5805efede53.html