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

2016-10-12 16:18:22 +08:00
 chaegumi
来了一个转行的 PHP 面试者,自学了 4 个月,通过交流,感觉没学到多少东西,一些需要的技能都不会,线上部署不会, FTP 不会,一些开源系统也没有亲自去用下。所以这边想分享下自己以为正确的观点。

我以为分 5 步:

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

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

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

我是先使用功能,后边才有可能看代码,有的几乎不看代码,代码长什么样我不知道,我只看实现的业务逻辑。
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
2016-10-12 22:35:42 +08:00
我为什么看到这里 第一反应就是 docker 的能力范围 (还有好想吐槽下 ftp 部署)
hylent
2016-10-12 22:46:23 +08:00
线上部署是用 ftp 么。。
kideny
2016-10-12 23:15:49 +08:00
把 C 学好,永远是 php 的灵魂
shiji
2016-10-12 23:27:54 +08:00
FTP...纯 FTP..是不能更危险的,你传输的文件内容(比如数据库密码,数据库备份),还有 FTP 本身的密码都是明文的。如果碰巧(其实很常见) SSH 密码也是同样的。。额。。。
visonme
2016-10-12 23:41:27 +08:00
我当初学习 php 是这样的
1. 语法基础+部署+发布 == 必修基本功
2. 了解请求发起到最后响应结束,整个过程是怎么处理的,其中涉及的哪些环节用到哪些知识点,除应用服务器部分外,针对 PHP 部分找开源深化了解
3. 学习 /熟练某个 php web 开发框架( 1 个微框架, 1 个大的集成框架)
4.深入学习 web 开发框架,开始了解 /阅读 PHP 标准 /规范
5.学习应用服务器知识。了解 /深入性能优化
onlyhot
2016-10-13 00:04:44 +08:00
1. 对网站有一个概念,如何运作等等。
2.对着文档开始写项目。
for(i = 0 ; i ++ ){
3.看文档看博客看书看视频
4.写项目
}
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
2016-10-13 02:58:42 +08:00
我成为 PHP 程序员的第一步,也是最重要的一步,是:

成为一个程序员。

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

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

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

我是做外贸企业站的, ixwebhosting 的主机就不支持 ssh 管理, godaddy 的也有。前几天还有一个客户提供的一个主机,还只能放一个站的。这种情况还是很多的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/312258

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX