PHP 程序员的正确学习过程。 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
chaegumi
V2EX    程序员

PHP 程序员的正确学习过程。

  •  
  •   chaegumi
    chaegumi 2016-10-12 16:18:22 +08:00 4253 次点击
    这是一个创建于 3293 天前的主题,其中的信息可能已经有所发展或是发生改变。
    来了一个转行的 PHP 面试者,自学了 4 个月,通过交流,感觉没学到多少东西,一些需要的技能都不会,线上部署不会, FTP 不会,一些开源系统也没有亲自去用下。所以这边想分享下自己以为正确的观点。

    我以为分 5 步:

    1 、 PHP 的基本语法没得说了,得看一遍基础教程吧,更高级的在使用过程中遇到了再学习。
    2 、本地集成环境的使用,或者也可以一个一个安装,算个学习过程。
    3 、本地安装使用各个开源的程序,每个功能都去用一遍,得学习别人的思路。
    4 、要学会网站程序怎么部署到线上。
    5 、然后就是改程序写程序不断进步了吧。
    24 条回复    2016-10-19 10:28:51 +08:00
    herbertzz
        1
    herbertzz  
       2016-10-12 16:48:06 +08:00
    ...想的再宽点呢

    开源源代码是用来看的呢, 用学不到别人的思路啊, 看别人的源代码, 才有提高的可能呢.
    PHP 的基础看了, 还要掌握 HTML CSS JS 的知识, 这样才算入门
    zhangfanfan
        2
    zhangfanfan  
       2016-10-12 16:52:50 +08:00
    Mac
        3
    Mac  
       2016-10-12 17:10:37 +08:00
    最重要的是编程思想,我当初学编程按照现在的流行语来说,就是冲着全攻城狮去的。。。
    thankuu
        4
    thankuu  
       2016-10-12 19:33:16 +08:00

    可以参考这个
    chaegumi
        5
    chaegumi  
    OP
       2016-10-12 21:05:56 +08:00
    @henyi2211

    我是先使用功能,后边才有可能看代码,有的几乎不看代码,代码长什么样我不知道,我只看实现的业务逻辑。
    iamzuoxinyu
        6
    iamzuoxinyu  
       2016-10-12 21:37:02 +08:00
    1. 基础语法基本掌握。包括面向过程部分、面向对象部分以及基本的 lambda 使用。
    2. 本地集成环境,可独立部署 lnmp/lamp 环境, windows 下使用 xampp 。
    3. 不理解什么才是各个开源程序,使用过 wordpress ,尝试过 magento ,以及零零碎碎的东西。
    4. 会使用 ftp 或 scp 部署到服务器。 git/svn 等没试过。
    5. 独立做过几个小项目。
    请问招实习生么,普通一本 CS 专业。
    scnace
        7
    scnace  
       2016-10-12 22:35:42 +08:00 via Android
    我为什么看到这里 第一反应就是 docker 的能力范围 (还有好想吐槽下 ftp 部署)
    hylent
        8
    hylent  
       2016-10-12 22:46:23 +08:00
    线上部署是用 ftp 么。。
    kideny
        9
    kideny  
       2016-10-12 23:15:49 +08:00
    把 C 学好,永远是 php 的灵魂
    shiji
        10
    shiji  
       2016-10-12 23:27:54 +08:00
    FTP...纯 FTP..是不能更危险的,你传输的文件内容(比如数据库密码,数据库备份),还有 FTP 本身的密码都是明文的。如果碰巧(其实很常见) SSH 密码也是同样的。。额。。。
    visonme
        11
    visonme  
       2016-10-12 23:41:27 +08:00
    我当初学习 php 是这样的
    1. 语法基础+部署+发布 == 必修基本功
    2. 了解请求发起到最后响应结束,整个过程是怎么处理的,其中涉及的哪些环节用到哪些知识点,除应用服务器部分外,针对 PHP 部分找开源深化了解
    3. 学习 /熟练某个 php web 开发框架( 1 个微框架, 1 个大的集成框架)
    4.深入学习 web 开发框架,开始了解 /阅读 PHP 标准 /规范
    5.学习应用服务器知识。了解 /深入性能优化
    onlyhot
        12
    onlyhot  
       2016-10-13 00:04:44 +08:00
    1. 对网站有一个概念,如何运作等等。
    2.对着文档开始写项目。
    for(i = 0 ; i ++ ){
    3.看文档看博客看书看视频
    4.写项目
    }
    shiji
        13
    shiji  
       2016-10-13 01:56:05 +08:00
    好吧,那我来回忆一下我的经历。
    我好像从来就没专门学过 PHP ,初中高中的时候论坛火热,还有类似“论群”一类的公共论坛可以自己注册二级域名。我就想自己搞一个。

    我不喜欢一键安装包之类的东西,所以就走上了一条邪路。在 Windows 机器上配置环境。 当时的情况是什么都不懂, Apache 配置文件, php.ini 都完全不懂。真的是瞎猫碰死耗子,浪费了不少假期的时间让这些组件能正常运行。另外还有别的事情,当时手里有两个路由器,希望两个路由器下面的机器能相互连通(并不想牺牲任何一台路由器的路由功能,所以 LAN-LAN 通过网线连接的方案不考虑)。这个路由器互联的问题荒废了我整个十一长假。上网查资料(百度知道这一类的,回答者都自以为是的告诉我不可行。)后来可能是看到了 CSDN 上的文章,没读懂,看了好几遍,琢磨出来应该用静态路由表实现。然后就那么解决了。

    我在上大二之前是看不懂 HTML 和 CSS 的,直到在学校选了一节网页编程,一个学期, HTML , CSS , JS , PHP , SQL 就都懂了,不懂的也完全知道该去哪里查。在写作业的时候,或者自己写点什么小项目的时候,会遇到很多没见过的问题,这些诡异的问题真是书本上学不到的。

    *** 所以学习网页编程(当然包括 PHP )的第一点是, [多写代码] ***

    多写代码,并不是用你已经完全掌握的知识,去重复创造不同的作品。 (比如:能熟练对数据库查删增改,然后围绕这个写了各种项目,这个就很没营养)
    而是,提出自己想解决的问题,通过自己的编程能力,拆分成一步一步的小步骤,里面可能有你熟悉的,也可能有你陌生的,甚至你并不确信你所学的语言是否真能解决这个问题。去研究,尝试解决的过程,往往是最宝贵的经验。

    继续我的故事,后来我用 Discuz 搞了个论坛,心里(闲的)较着劲儿和别的社团网页比加载速度。在这个过程中接触学习了 web 缓存, mod_pagespeed(这货和 Discuz 极其不友好), CDN , geoDNS 。 论坛得发邮件吧? sendmail , SPF 这些东西也会有所了解。

    后来对安全也比较感兴趣,倒腾 https ,去 SSLLabs 测试提高网站的安全评分,挨个查每一项都具体是啥东西,还接触了 CSP , CORS 。再后来发现 Chrome 的 net-internals 里面有个 HSTS,顺便就谷歌了解了一下它外加 HPKP 。最重要的是这些东西一定要亲自试一试。举例:
    HPKP: https://developer.mozilla.org/en-US/docs/Web/Security/Public_Key_Pinning 我按照这个一步一步做,最后却发现浏览器并不认。。。 看这句话: HPKP has the potential to lock out users for a long time if used incorrectly! The use of backup certificates and/or pinning the CA certificate is recommend. 说的是 recommended ,结果如果只写了一个 pin-sha256 的话,浏览器根本不认。。。这些都是赤裸裸的坑。。。

    *** 所以第二个建议是,保持好奇,多学习多了解多尝试新规则和新技术。万万不要觉得“能用就行”就可以了,要不断探索,不断优化完善。***

    再举个例子, UNIX 文件权限,文件夹的执行权限指的是什么? php 网页程序代码文件需不需要执行权限?粘滞位是啥?这些问题都可以是一个 403 错误引申到的。当然有些人直接把权限改成 777 也能解决问题,说不定还比你提前解决呢。 :)

    电脑相关的东西更新换代很快,如果哪个公司还继续用着 PHP5.2/5.3 ,赶紧跑。 FTP 作为文件下载服务是没什么大问题的,但是用 FTP 传输敏感文件,在注重信息安全的当今是不被接受的。

    至于我的那个论坛,可想而知,在我这么隔三差五的折腾下,默默关了。

    我不想继续写了,都快成小说了。
    msg7086
        14
    msg7086  
       2016-10-13 02:58:42 +08:00
    我成为 PHP 程序员的第一步,也是最重要的一步,是:

    成为一个程序员。

    所以我首先学了 Pascal ,然后学了 C ,最后才开始看 PHP 。

    你首先不是一个程序员,那还谈什么成为 PHP 程序员。
    chaegumi
        15
    chaegumi  
    OP
       2016-10-13 06:24:58 +08:00
    @hylent @shiji

    云主机只是现在才开始盛行的,以前客户购买的主机是不支持管理服务器的,只有 ftp 地址给你上传文件的。
    chaegumi
        16
    chaegumi  
    OP
       2016-10-13 06:26:04 +08:00
    @chaegumi
    即使是现在,还是有大量主机,不支持管理,只有 ftp 。
    R18
        17
    R18  
       2016-10-13 06:31:18 +08:00 via Android
    @chaegumi 没有哪个企业穷到买云主机(空间)
    boter
        18
    boter  
       2016-10-13 06:53:16 +08:00
    @chaegumi 现在才流行?算算阿里云都多少年了,我初中时大家都已经在用 vps 了,猜猜我现在多大了。。
    shiji
        19
    shiji  
       2016-10-13 07:18:22 +08:00 via Android
    @chaegumi 云主机, VPS 什么的盛行了三五年有吧。不能把淘宝卖的那些主机当作行业平均水平啊。
    chaegumi
        20
    chaegumi  
    OP
       2016-10-13 07:51:23 +08:00
    @R18
    @boter
    @shiji

    我是做外贸企业站的, ixwebhosting 的主机就不支持 ssh 管理, godaddy 的也有。前几天还有一个客户提供的一个主机,还只能放一个站的。这种情况还是很多的。
    Jakesoft
        21
    Jakesoft  
       2016-10-13 08:11:19 +08:00 via iPhone
    首先从我这里买一个草鸡便宜的 vps 起步吧
    scnace
        22
    scnace  
       2016-10-13 08:33:46 +08:00 via Android
    @chaegumi 那个并不叫主机吧 叫空间吧(互联网很久以前的产物吧,小学的时候看叔叔玩过)。。之前帮人搞过 阿狸云也有提供的 不支持 ssh 只能 ftp 太坑了,我就建议他去买台 ECS 了…不要贪什么小便宜 。。
    GG668v26Fd55CP5W
        23
    GG668v26Fd55CP5W  
       2016-10-13 09:11:29 +08:00 via iPhone
    我只说以前四个字: LAMP , PHP 是一种非常实在的语言,面向的目标就是 web 开发,对 web 开发,语言是一部分,环境是另一部分。 LAM 是最基础的环境,但每一个都需要投入相当的精力。
    HowToMakeLove
        24
    HowToMakeLove  
       2016-10-19 10:28:51 +08:00
    主机 和虚拟主机 不一回事吧, FTP 应该只有虚拟主机时用到的,因为他只是一个目录。。。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2622 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 12:54 PVG 20:54 LAX 05:54 JFK 08:54
    Do have faith in wht you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86