如何做一个有上进心的 PHP 开发,怎样才能补全自身后端技术知识面? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
andy009
V2EX    PHP

如何做一个有上进心的 PHP 开发,怎样才能补全自身后端技术知识面?

  •  
  •   andy009 2017-07-19 10:06:12 +08:00 9765 次点击
    这是一个创建于 3015 天前的主题,其中的信息可能已经有所发展或是发生改变。
    两年 php 开发,做的都是一些业务逻辑的增删改查,加上自身学历,基础薄弱,不懂的概念跟技术名词很多,例如哈希,线程,进程,依赖注入,哈希,异步回调,闭包,微服务,fastcgi ,php-fpm.......请问各位有没什么技术书籍或者资料介绍,可以系统化的了解这些概念的?
    第 1 条附言  &nbs; 2017-07-20 00:24:37 +08:00
    谢谢 V2 各位的回复。很多同学给出了不错的学习建议还有资料,还有批评我也收下了。说说楼主自身的情况,大学期间学的是计算机,基础打得太差,上来教的是 java,php 这些很实用的能找到工作的语言,老实说跟培训机构差不多,当时就一大堆东西不懂。上面提到的名词我肯定都已经百度还有谷歌搜过的,然而底子实在太差了,理解不了。出来找了份够生活的 PHP 开发,发现工作都是业务逻辑的增删改查,想到以后,实在不想一辈子做互联网搬砖工和码农。现在的状况就是持续焦虑中吧。说到底是想得太多,做得太少。说起来也挺可笑的,几年时间都没有认真地去看过一些技术书籍,顶多上慕课网看看视频。上知乎,v2 了解一些炫酷的名词概念,关注一些大牛的博客跟微博,每天沉醉在这种我在学习的幻觉。这个帖子也用来告诫自己,多动手,少做白日梦,戒掉懒癌跟拖延症。仅以此贴明志。
    59 条回复    2017-08-08 18:46:27 +08:00
    Govda
        1
    Govda  
       2017-07-19 10:13:48 +08:00
    上面大部分名词了解 laravel 后就知道了
    Immortal
        2
    Immortal  
       2017-07-19 10:16:21 +08:00   10
    ![]( )
    freeminder
        3
    freeminder  
       2017-07-19 10:16:49 +08:00
    写了两次哈希,看来真是不太熟悉哈希
    skyjerry
        4
    skyjerry  
       2017-07-19 10:16:52 +08:00 via iPhone
    好多 php 都像楼主这样,比如我

    同求这个阶段该如何提升自己?
    wqqdhero
        5
    wqqdhero  
       2017-07-19 10:22:40 +08:00
    1.带着这些名词和好奇心 打开 google.com 搜一下 点一点 看一看
    2.如果打不开这个网站 请想办法过墙 然后重复 1
    你说的这些 有些是操作系统 有些是 php 运行机制 有些是语言特性 所以 你打算从哪里开始呢....
    jtsai
        6
    jtsai  
       2017-07-19 10:27:06 +08:00 via Android
    多学几门语言开拓眼界,java Python nodejs 都挺好。php 的领域比较集中,解决方案都很成熟,如果就会 php 那学来学去都是 CRUD
    EchoUtopa
        7
    EchoUtopia  
       2017-07-19 10:27:12 +08:00
    这应该是 php 本身的限制了,我之前也是写 php 的,对线程、进程、异步、协程什么的觉得很高大上,后面用 python、go了,就觉得那些东西都是很平常的概念了,但是也要看做什么东西了,如果还是只埋头写简答的业务逻辑应该还是接触不了
    keikeizhang
        8
    keikeizhang  
       2017-07-19 10:29:37 +08:00   1
    把你的拖延症治好了,就一切都解决了!
    raysonlu
        9
    raysonlu  
       2017-07-19 10:29:45 +08:00
    有空多逛逛逼乎或挖金,设置了相关兴趣会自动推送给你。既然能说得出这些名字,那就 google 之啊,没有什么书能解释得这些那么清楚
    dangyuluo
        10
    dangyuluo  
       2017-07-19 10:31:29 +08:00
    @freeminder 哈哈这也是第一时刻想到的
    orderc
        11
    orderc  
       2017-07-19 10:33:26 +08:00   1
    依赖注入, fastcgi, php-fpm 这些名词,搜索就能得到答案。
    哈希可以看数据结构的书, 至于进程, 线程等看 Linux 高性能服务器编程和 APUE。
    wwolf
        12
    wwolf  
       2017-07-19 10:39:24 +08:00
    推荐楼主去学学 swoole,学的过程中可能会碰到上面描述的各种问题,然后查,然后学
    winglight2016
        13
    winglight2016  
       2017-07-19 10:41:10 +08:00
    php 不是后台语言吗?补全后端知识到底指的是什么呢?
    andy009
        14
    andy009  
    OP
       2017-07-19 10:46:30 +08:00
    @keikeizhang 哈哈,我拖延症的确很严重,
    @raysonlu 经常上知乎,但是知乎上面的知识都太过零散了,加上工作几乎没用到过以上概念,所以还是一知半解
    @wqqdhero @Immortal 这些当然都是已经百度或者谷歌搜过的,太零散还有工作没用到过,还是理解不来。
    jayin
        15
    jayin  
       2017-07-19 10:53:21 +08:00
    如果有,你愿意付费吗?
    sagaxu
        16
    sagaxu  
       2017-07-19 10:58:10 +08:00
    @andy009 工作中用不到,学没学过区别不大
    Immortal
        17
    Immortal  
       2017-07-19 11:00:13 +08:00
    @andy009 那推荐一些书
    Immortal
        18
    Immortal  
       2017-07-19 11:01:52 +08:00
    @andy009
    深入 PHP : 面向对象、模式与实践(第 2 版)
    现代操作系统
    深入理解计算机
    这些对深入理解 php 和计算机本质很有帮助
    我刚毕业工作也是写 php,现在写 go
    多了解一些变成语言的确也有帮助,深入 php 要学的东西也会很多,不要拘泥于语言,往本质靠,回头再去看 php 会理解的更透彻
    tttttttt
        19
    tttttttt  
       2017-07-19 11:05:41 +08:00
    确实,PHP 在做 web 开发时让你不必太关心像进程,线程等一些基础的问题,让你专心与业务开发,提高开发速度,所以由于它的这些特性才被称为最好的语言
    onlyhot
        20
    onlyhot  
       2017-07-19 11:10:30 +08:00 via iPhone
    感觉业务写的还算熟练,但是名词提到得内容,都没接触过……惭愧
    Xrong
        21
    Xrong  
       2017-07-19 11:16:25 +08:00
    像 L 大一样经营一个网站,然后基本啥技术、坑你都能碰到了。。。要啥方向?找个有兴趣的直接开搞吧。
    lwbjing
        22
    lwbjing  
       2017-07-19 11:29:01 +08:00
    我一个切图仔对你说的这些个名词都略知一二...
    lwbjing
        23
    lwbjing  
       2017-07-19 11:30:13 +08:00
    擅用搜索,善于去发现,通常一个问题会引申出很多的问题,多看多想就好啦。。
    anubiskong
        24
    anubiskong  
       2017-07-19 11:33:37 +08:00
    学个 nodejs,然后你发现什么你什么都能做了,从前端到后端到数据库到手机 APP 到桌面应用
    然后你再也不会问这样的问题了, 因为你没空
    ylsc633
        25
    ylsc633  
       2017-07-19 11:38:30 +08:00   1
    同两年! just 刚刚写了一个下半年的学习计划..

    大约的意思是

    (会用,并不用达到精通)
    1,能会用一门前端框架写点东西 比如 vue
    2,能用一门后端语言写点东西 比如 Go
    (为什么一个前端,一个后端,因为现在光会 php 是找不到工作的!为什么还有一门后端,php 转 Go 还是有好处的.. 至少可以学习学习 进程 协程等等相关知识,对深入了解 php 有好处..... )

    (熟练掌握)
    1:不仅仅是会一门框架,比如 laravel,至少能看懂源码,知道其一些设计模式!知道其原理等等, 最好能达到 自己也能去写一套框架的程度最好!(并不是重复造轮子.. 只是为了更熟悉而已!)
    2:看看 php 源码相关.. 了解更多知识.. 此处我是看到了 学院君的 扩展开发
    3:研究研究 nginx 和网络基本原理... 恩,特别是 nginx.. 感觉光会配置 没什么卵用...毕竟都能百度到...


    恩!这大约就是我的计划... 尽量坚持每天都 coding... 看看大牛的路子怎么走...

    目前看来,上半年的计划 实施的差不多..
    大约是 设计模式.. 业务.. 代码优化.. 性能优化.. 微信小程序..
    newguest
        26
    newguest  
       2017-07-19 12:09:46 +08:00
    转行吧 从编程语言上来看 php 那点东西根本算不上一门语言
    zdkmygod
        27
    zdkmygod  
       2017-07-19 12:16:49 +08:00
    多了解了解计算机原理,这些概念理解起来会很快(当然,像微服务这样是工程上的概念)。
    否则,即使理解了工作中用不到又忘了。
    推荐几本入门书籍吧:
    编码
    操作系统(三个概念那本,只有英文的)
    汇编语言
    自制编译器
    wangtxxl
        28
    wangtxxl  
       2017-07-19 12:38:22 +08:00
    转行呀 php 还想如何 C++ java 你就理解了 垃圾 php 不服来辩
    tr>
    amghost
        29
    amghost  
       2017-07-19 12:43:01 +08:00 via iPhone
    有些是语言层面的,这种多接触一下别的语言比如 go 或者 node,
    有的是系统和工程层面的,多看看书,比如现代操作系统,或者看鸟哥的书也算一种途径吧,原则上这些东西大学应该就学过的,
    另外有些更深层次的,比如分布式系统相关的,谷歌吧
    lepig
        30
    lepig  
       2017-07-19 12:55:03 +08:00
    @Immortal 请问一下,PHP 作为入门语言。没有 C 基础 可以直接开始搞 Go 吗?和楼主有同样的感觉,所以想在尝试一门语言,目前锁定 Go
    g8287694
        31
    g8287694  
       2017-07-19 13:11:14 +08:00
    每个都略知一二 但都不通透
    Betacoefficient
        32
    Betacoefficient  
       2017-07-19 13:22:39 +08:00
    php 挺好的,总有人去黑 php。
    abcbuzhiming
        33
    abcbuzhiming  
       2017-07-19 13:24:06 +08:00
    如果想补全后端技术,你至少要把你能找到的后端技术栈全部玩一遍,不能仅局限在 PHP 上,其它语言都要去玩一遍
    Immortal
        34
    Immortal  
       2017-07-19 13:25:04 +08:00
    @lepig 可以的 go 还是很简单的
    altboy
        35
    altboy  
       2017-07-19 13:52:02 +08:00
    <script>alert(111)</script>
    mgsparrow
        36
    mgsparrow  
       2017-07-19 14:24:24 +08:00
    @Immortal 请教一下,楼主平时主要还是使用 PHP,当他学习 GO 的话,可以应用在什么地方呢?
    wujunze
        37
    wujunze  
       2017-07-19 15:01:13 +08:00
    看下 CSAPP
    daryl
        38
    daryl  
       2017-07-19 15:18:21 +08:00   3
    看看看看看看看书啊!!意淫是进步不了的啊!!!
    想提升?
    《深入理解计算机系统》看过了没?
    《现代操作系统》看过了没?
    《计算机网络》看过了没?
    《 UNIX 环境高级编程》看过了么?
    《 UNIX 网络编程》看过了没?
    《深入 PHP : 面向对象、模式与实践》看过了没?
    《 C 程序设计语言》看过了没?
    《数据结构》看过了没?
    《算法导论》看过了没?
    没看过去看。
    打一局 LOL 的时间,能看好几页了。
    打一局农药的时间,能写个进程调度了。
    Immortal
        39
    Immortal  
       2017-07-19 15:25:20 +08:00   1
    @mgsparrow 额 应用是一回事,主要是低级语言更接近操作系统,对于内存上分配,指针等一些更深层的东西会有接触和了解,然后写高级语言会有新的思路和想法,虽然 go 的标准库很全,写起来很像高级语言了..但是我还是觉得对自己帮助挺大的.有兴趣可以看下 c,可以不在实际工作中使用,但是对编程学习还是很有收获的
    RubyJack
        40
    RubyJack  
       2017-07-19 16:09:47 +08:00
    现代操作系统

    深入理解计算机系统

    TCP/IP 卷一

    算法

    数据结构

    估计以楼主的基础,如果下决心看的化,两年差不多了
    HYSS
        41
    HYSS  
       2017-07-19 19:24:07 +08:00
    @Immortal “虽然 go 的标准库很全,写起来很像高级语言了..但是我还是觉得对自己帮助挺大的"

    看着好别扭 "但是"后面不应该是与前文相反的表述么?
    mcfog
        42
    mcfog  
       2017-07-19 20:38:29 +08:00 via Android   1
    这种情况的原因说白了要么是蠢,要么是懒,蠢的话戒百度戒中文书籍中文博客等有机会治好,懒的话只能自己想办法了,没的治
    mcfog
        43
    mcfog  
    nbsp;  2017-07-19 20:39:57 +08:00 via Android
    另外标题里说上进心,内容里要资料,而且希望“系统化了解”,潜台词“让我不用很烦很累就可以变成高手”,八成是懒
    Immortal
        44
    Immortal  
       2017-07-19 23:00:27 +08:00
    @HYSS 可能是我表达能力不够 不过并不矛盾 前者只是想说标准库的丰富 后者其实想说对于理解内存和指针 从 php->go 收获挺多 虽然不及 c 那些那么底层
    cxbig
        45
    cxbig  
       2017-07-19 23:06:37 +08:00
    现在的 web 语言或多或少都有互相抄概念,可以试试:
    - 熟悉使用流行的框架,空框架或某一领域的都可以,理解他们的代码结构编排和具体事务的处理手法
    - 学一门别的语言,不用太深,过一遍 Tutorial,感受下不同的解决方案
    - 学习具体领域的案例,或自己造几个小轮子
    LioMore
        46
    LioMore  
       2017-07-19 23:12:21 +08:00
    端正学习态度
    ittianyu
        47
    ittianyu  
       2017-07-19 23:36:08 +08:00
    从入门的时候就听大神说要打好基础,但从没明白什么才是基础,直到看到了你的帖子,才发现我基础还是不差的,又学习了,感谢楼主
    jimyan
        48
    jimyan  
       2017-07-19 23:38:38 +08:00
    以前用 java,现在用 php 写项目,但是也在学 python
    jellybool
        49
    jellybool  
       2017-07-19 23:45:41 +08:00 via iPhone   1
    @mcfog 大实话...经常有人问我类似的问题,我每次都回:多写多看多想。

    他们都觉得我很虚,然而这真是我最真诚的建议。
    andy009
        50
    andy009  
    OP
       2017-07-20 00:39:48 +08:00 via Android
    @jayin 好奇你所说的付费价格是多少
    jadecoder
        51
    jadecoder  
       2017-07-20 00:53:57 +08:00   8
    楼上劝退和甩书名的我也是醉了,这么基础的知识,lz 随便学一下就能搞明白,你们不明白就不要讲,甩书名谁不会啊。我给 lz 讲讲怎么理解这些概念。

    哈希,PHP 的数组就是哈希表,了解一下数据的实现原理就能理解哈希了。

    依赖注入,这个几乎所有框架都会用到,随便找个框架,Laraval,CI,ThinkPHP 都行,把这个框架的名字+依赖注入搜索,文章都会先讲依赖注入是什么,然后举例在这个框架里是怎么实现的。

    fastcgi, php-fpm 这个是经常提到但是其实没啥用的知识,初级阶段百度或者谷歌一下明白大致原理就可以了,从这里也能理解一下进程线程。

    线程,进程,这个在普通 PHP 应用里确实不太用的到,你可以设想这样一个场景:用户请求过来,你要先给用户返回结果,然后在不影响用户请求时间的情况下去做一些操作,怎么实现?可以试着用 pcntl 自己写一个异步更新看看。

    异步回调,闭包,这两个在 PHP 中确实用的不多,不过你要是也做前端的话可以在 JS 里理解。异步回调很常见,比如 jQuery 的 $.post 后面的函数就是,闭包更多是概念,搜一下,看一看阮一峰的文章就理解了。

    微服务,这个和你的公司关系很大,脱离了环境用什么语言都不好理解,早点找个大公司的工作,进去看看马上就明白了。

    总之要理解这些概念既不需要《深入理解计算机系统》也不需要《 UNIX 环境高级编程》,看这些书是好的,但是简单问题可以简单解决。《深入 PHP : 面向对象、模式与实践》这本书适合所有 PHP 进阶者,建议你认真阅读之后试着自己写框架,过程中遇到不懂的多 Google,少聊天,很快就能成为一个高级工程师了,到时候再考虑换语言也不迟。
    andy009
        52
    andy009  
    OP
       2017-07-20 01:21:04 +08:00 via Android
    @jadecoder 感谢这么详细跟细致的回答
    wslsq
        53
    wslsq  
       2017-07-20 08:51:06 +08:00 via Android
    我目前的状态也和楼主一样。推荐楼主看看《 php 之道》,楼主提到的好些知识点里面都有。
    mgsparrow
        54
    mgsparrow  
       2017-07-20 19:49:24 +08:00
    @Immortal 对喔,我也是这么想的,所以也有学习 PHP 除外其他语言的想法,并且希望可以在应用的环境中边学边用。
    mgsparrow
        55
    mgsparrow  
       2017-07-20 19:54:05 +08:00
    @jadecoder 大神好赞喔,简单几句就将概念描述出来!
    runningman
        56
    runningman  
       2017-07-22 16:25:20 +08:00 via iPhone
    语言没啥 主要还是思想 和设计
    aksoft
        57
    aksoft  
       2017-07-28 16:07:47 +08:00
    什么都没关系,和你自己有关系
    90safe
        58
    90safe  
       2017-07-29 17:06:22 +08:00
    @jadecoder 写个自己的框架,不错诶,最近才在迷茫不知道怎么提升自己,一语惊醒梦中人,想转语言的话,感觉最好还是把本身的技能熟练度刷满再学其他的。跟玩游戏差不多。
    dakingHR
        59
    dakingHR  
       2017-08-08 18:46:27 +08:00
    @daryl 笑死我吗
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5465 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 01:19 PVG 09:19 LAX 18:19 JFK 21:19
    Do have faith in what 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