V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
andy009
V2EX  ›  PHP

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

  •  
  •   andy009 · 2017-07-19 10:06:12 +08:00 · 9382 次点击
    这是一个创建于 2715 天前的主题,其中的信息可能已经有所发展或是发生改变。
    两年 php 开发,做的都是一些业务逻辑的增删改查,加上自身学历,基础薄弱,不懂的概念跟技术名词很多,例如哈希,线程,进程,依赖注入,哈希,异步回调,闭包,微服务,fastcgi ,php-fpm.......请问各位有没什么技术书籍或者资料介绍,可以系统化的了解这些概念的?
    第 1 条附言  ·  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
    EchoUtopia
        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 不服来辩
    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  
       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   ·   实用小工具   ·   5962 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 02:05 · PVG 10:05 · LAX 18:05 · JFK 21:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.