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

PHP 小白菜,想寻求突破。

  •  1
     
  •   hejw19970413 · 2020-05-12 10:17:28 +08:00 · 3663 次点击
    这是一个创建于 1658 天前的主题,其中的信息可能已经有所发展或是发生改变。
    自己学历不是很高,感觉自己也很笨。工作大概一年半了,现在的问题就是不知道如何的突破自己,感觉现在自己越来越菜,什么都不会一样,心里很烦躁。现在就是每天抽出 3 个小时来学习算法,阅读框架的源代码,感觉还是越来越菜。听好多人说,如果实在不行可以学习其他的语言来突破自己。求求各位大佬,给点意见和经验。
    42 条回复    2020-05-12 23:30:46 +08:00
    JaguarJack
        1
    JaguarJack  
       2020-05-12 11:02:47 +08:00 via iPhone   ❤️ 7
    越学越觉得菜 那说明方向对了
    somalia
        2
    somalia  
       2020-05-12 11:20:02 +08:00
    1# 过来人
    Chenamy2017
        3
    Chenamy2017  
       2020-05-12 11:22:31 +08:00
    可以突破转 go
    littleylv
        4
    littleylv  
       2020-05-12 11:32:04 +08:00
    语言大体上是互通的,是什么让你觉得学其他语言就可以突破自己?
    zoharSoul
        5
    zoharSoul  
       2020-05-12 11:32:59 +08:00
    可以突破转 java
    liuxu
        6
    liuxu  
       2020-05-12 11:37:49 +08:00
    1 楼大实话,我补充一下,如果你感觉学习特别困难看不懂,先去看看相关的书和视频教程,帮助你学习,自己死啃有时候效率很低
    imnpc
        7
    imnpc  
       2020-05-12 11:40:28 +08:00
    由简到难 先做一些普通功能 然后逐渐深入做复杂的功能
    不要试图一下看懂框架代码 很多框架是很多人+很多年+国内外各种资料逐步做起来的
    hejw19970413
        8
    hejw19970413  
    OP
       2020-05-12 11:41:47 +08:00
    @littleylv 其实我也不清楚,我请教过前辈们,他们说要不要学一学其他语言。我感觉 PHP 追求的就是简单,快速,缺点就是不稳定。我现在并没有去考虑怎么在语言上提升自己。我在空闲时间,去看一些基础,比如说算法,数据结构,计算机网络,以及通信协议。现在我感觉看不到一条清晰的路,自己感觉在蒙着眼睛走路。一步一步的扶着墙在走。所以就很焦虑
    as94boy
        9
    as94boy  
       2020-05-12 11:44:45 +08:00
    只能用傻瓜方法,一次看不懂就看两次。每次都带着思考去看,那么你每次就能有新的理解。你要相信一个人不懂的东西是占多数的。可以先不去学框架,先学习算法、网络等等,框架只是工具,可以在以后理解深了的时候再去看。共勉~
    hejw19970413
        10
    hejw19970413  
    OP
       2020-05-12 11:46:37 +08:00
    @imnpc 我从 5 月 1 号为了能多了解框架里面的核心,我就去看一些设计模式,但是现在还是一知半解。看框架代码感觉人家这样做好厉害,但是说不出理由。其实最后我总结的时候,就是不懂,感觉自己做了一些无用功
    uuus008
        11
    uuus008  
       2020-05-12 11:48:17 +08:00
    想那么多干啥,先把工作中遇到的问题,都研究透彻。 慢慢的就会豁然开朗
    hejw19970413
        12
    hejw19970413  
    OP
       2020-05-12 11:50:13 +08:00
    @Chenamy2017 我现在没了解过 go 。如果转 go 的话,会不会还是一样的一知半解,如果转的话,重点可以看什么地方?
    ethanSong
        13
    ethanSong  
       2020-05-12 11:54:37 +08:00
    向下学习,遇到一个知识点不懂,就学习哪个知识点,转过来再理解,举个例子,看源码不懂为什么整体上为什么这样设计,有时候你觉得莫名其妙,那你可以看看设计模式,看看设计模式你回来再看源码说不定就懂为什么这么设计了。
    hejw19970413
        14
    hejw19970413  
    OP
       2020-05-12 12:06:04 +08:00
    @ethanSong 谢谢您。大概明白了您的意思了。
    ben1024
        15
    ben1024  
       2020-05-12 12:10:55 +08:00
    语言的设计思想不同,实现技术的方案也有出入,换语言能拓展解题思路,不能帮助解题
    如果是针对业务方向发展应该去拓展业务方向,如果是针对发展技术深度那就需要研究语言源码
    hejw19970413
        16
    hejw19970413  
    OP
       2020-05-12 12:15:06 +08:00
    @ben1024 谢谢您
    bojue
        17
    bojue  
       2020-05-12 12:38:33 +08:00
    我自己学习基础的知识《 http 权威指南》,算法,计算机原理,设计模式,平时也可以看看源码,顺便看看面试题目检测一下水平
    youxiachai
        18
    youxiachai  
       2020-05-12 12:46:21 +08:00
    老实说..java 是目前最好的入门语言.....轮子也多...一通百通
    首先...java 的搬砖工多...不愁以后没工作....
    然后,很多经典资料都有 java 版本例子.....
    工程化方面..java 的版本也是最简单...(让一个小白学 cmake 工作流的话.估计配环境都配到死...)
    shellic
        19
    shellic  
       2020-05-12 12:52:00 +08:00 via Android
    1 楼说的对
    tuboshuv1
        20
    tuboshuv1  
       2020-05-12 13:15:47 +08:00
    入行 Java,能挤死你。一年经验就要分布式,Redis 、mysql 调优、jvm 原理、垃圾回收了。
    一年经验能熟练 crud 就不错了。进来就等着被挤压吧。
    wenqiang1208
        21
    wenqiang1208  
       2020-05-12 14:00:19 +08:00   ❤️ 1
    python 也一样
    Dogergo
        22
    Dogergo  
       2020-05-12 15:22:39 +08:00
    两年多经验的,突然想加个好友,一起学习
    sunshinev
        23
    sunshinev  
       2020-05-12 15:24:09 +08:00
    转 golang 吧,PHP 就是一套 for if class function array
    chinvo
        24
    chinvo  
       2020-05-12 15:25:35 +08:00
    @hejw19970413 #12 不要转

    请先学好一门

    看那些自己领域还没搞明白的人整天转转转的,

    就知道为什么 Java 和 Go 领域那么多干不过培训班的人了
    em70
        25
    em70  
       2020-05-12 15:26:31 +08:00
    光学是学不会的,做项目,解决实际问题,遇到困难不要绕过,不睡觉也要努力解决,每次卡壳都是一次突破,次数多了就进步了
    sparrww
        26
    sparrww  
       2020-05-12 15:31:47 +08:00
    语言真不重要
    zachlhb
        27
    zachlhb  
       2020-05-12 15:41:55 +08:00 via Android
    语言是互通的,多学几门语言在一定程度上可以帮助理解的,因为很多语言都是相互借鉴的,觉得其他语言这个特性不错,然后就借鉴过来,借鉴过来后因为又缺乏另一种特性,就会进行调整来满足自己的语言,这样的话如果只是使用完全没问题,但要深入理解就很蛋疼,因为你只看到了其二,不知道其一
    hejw19970413
        28
    hejw19970413  
    OP
       2020-05-12 15:51:31 +08:00
    @chinvo 那我现在还是老老实实看基础吧。看看人家是怎么写代码的。
    xingjue
        29
    xingjue  
       2020-05-12 15:55:58 +08:00
    学 swoole 。协程吊打 java 多线程
    nianyu
        30
    nianyu  
       2020-05-12 15:58:51 +08:00
    你太着急了主要是心态问题. 我当初也是如此
    什么都想几天 几小时 几分钟学会导致越看越不会. 从而产生焦虑感
    放平心态就好了
    Evilk
        31
    Evilk  
       2020-05-12 16:01:16 +08:00
    @xingjue 老哥,也用 swoole?
    default7
        32
    default7  
       2020-05-12 16:01:31 +08:00
    其实我一开始只想着赚钱,根本就没想过做什么伟大的程序员,工程师。
    只是为了糊口而已啊,却没想到 20 岁干到 30 岁越来越干不动了,被比自己小的嫌弃,自己也忧心忡忡,每次换工作都心慌没底 …… (一个搞 PHP 12 年的中年)
    star7th
        33
    star7th  
       2020-05-12 16:45:56 +08:00
    方向不对。突破算法和框架源码是高级进价的时候学的。然后学另一门语言也是更高阶的做法。现在为时尚早,只会让你不精通。
    你现在最重要的是先学会怎么使用框架来解决现实问题。找几个典型场景,搜索下业界通常是怎么解决的。
    比如说 即时通讯 / 电商 / 博客 / 社交 / 管理系统 / 等等。这些场景怎么高效解决,前端和后端分别用户什么框架技术,数据库怎么设计。你自己写的话有没有信心搞一个。然后再去研究服务器层面的性能优化问题。这个过程中会慢慢需要你了解一些底层机制。同时把本语言内的框架文档都看一遍,能比较出不同点和相同点。
    随手打字比较随意,反正大概是这样的思路。当掌握了一种语言,再扩展其他语言。别一开始把自己陷进了漩涡,比如说一开始过分追求框架源码 /其他语言如 go 的机制。
    crist
        34
    crist  
       2020-05-12 16:51:47 +08:00
    可以学 Java,这样装起逼来如鱼得水!
    laragh
        35
    laragh  
       2020-05-12 16:55:16 +08:00
    都给出了明确的方向。。跟着这些老哥们的建议走不会有错的。附加一条:赶紧专升本。
    jinzhongyuan
        36
    jinzhongyuan  
       2020-05-12 16:58:52 +08:00
    @ethanSong 有道理
    jinzhongyuan
        37
    jinzhongyuan  
       2020-05-12 16:59:40 +08:00
    @tuboshuv1 扎心啊,事实如此啊,人太多了
    lolizeppelin
        38
    lolizeppelin  
       2020-05-12 17:30:12 +08:00   ❤️ 1
    我也有过你的阶段, 最后我突破这个阶段通过学习 openstack

    几个建议,目前阶段

    算法不是那么重要,但你必须有基本算法思想,能写二叉树,熟悉分治算法,几个排序算法都熟悉就可以了,起码你看到某个地方特意用了某个排序算法,能理解这里为什么用这个算法来排序
    设计模式大概读一下就行了,设计模式是用来解决问题的,你没感受到问题光看很难理解的
    多线程、异步要自己好好写一下,不要流于表面,一个简单的聊天服务器作业能让你基本熟悉
    熟悉多线程异步以后,认真把协程过一遍.我推荐读 python 的 eventlet 源码,读透,所有协程都难不倒你了

    上面几个达成以后,
    你应该去读懂一个完整的“项目”, 项目做什么解决什么问题,如何实现,当你比较熟悉这个项目的时候,很多问题就自然解决了
    然后你照着这个项目实现你自己的东西,在模仿过程中你会更深入了解这个项目的痛点以及解决问题的思路,这样你就提升非常大了

    目前比较适合模仿的项目有 k8s 啊 openstack 啊什么的,不要去刻意去读框架,因为框架不重要,特别是 PHP 的 web 框架


    因为我自己学的是 python,对 linux 和 qemu 和 openvswitch 比较熟悉,于是学习了 openstack,非常幸运的就突破了写代码的瓶颈阶段,后面对 openstack 的模仿越来越深,提升也相当快


    记住,人类写程序的思路和人类应对现实问题的思路是一致的,比如说网络包其实是邮件信封邮筒之类的抽象
    解决任何程序或者代码的问题思考方式和现实是关联的


    你先要有问题,再解决问题才能提高

    最后别光瞎看...写起来
    accacc
        39
    accacc  
       2020-05-12 20:10:18 +08:00
    @tuboshuv1 同意 Java 的东西太多了 spring 全家桶真的就够小白受的 这还只是用 更别说中间件和 jvm 进阶之类的 哈哈 对楼主半路出家的更难了
    hedgehog0921
        40
    hedgehog0921  
       2020-05-12 20:48:59 +08:00
    学得越多觉得越菜那才是正确的方向。你把你想成一个圆,圆内部是你所学,圆外部是无知的世界。当圆越来越大的时候,你所接触的无知也越多。你所要做得是,在巩固你现在所学的基础上,去进一步探索未知。
    hejw19970413
        41
    hejw19970413  
    OP
       2020-05-12 21:04:42 +08:00
    谢谢各位大佬。现在也能看到亮光了,谢谢各位,加油努力去了
    hercule
        42
    hercule  
       2020-05-12 23:30:46 +08:00 via iPhone
    @default7 同感,我也是 6.7 年的 php 了,前有几年感觉时间一下子就过来,自己就这么混过来。本身工作在重庆,都是一些小公司,要流量没流量,要技术没技术,所以接触的东西又少,自己又怎么学习,现在感觉懂的太少。头大,现在辞职了,找工作心里没底。慌得一逼
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3053 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 14:22 · PVG 22:22 · LAX 06:22 · JFK 09:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.