PHP 小白菜,想寻求突破。

2020-05-12 10:17:28 +08:00
hejw19970413  hejw19970413
自己学历不是很高,感觉自己也很笨。工作大概一年半了,现在的问题就是不知道如何的突破自己,感觉现在自己越来越菜,什么都不会一样,心里很烦躁。现在就是每天抽出 3 个小时来学习算法,阅读框架的源代码,感觉还是越来越菜。听好多人说,如果实在不行可以学习其他的语言来突破自己。求求各位大佬,给点意见和经验。
3705 次点击
所在节点   程序员  程序员
42 条回复
wenqiang1208
wenqiang1208
2020-05-12 14:00:19 +08:00
python 也一样
Dogergo
Dogergo
2020-05-12 15:22:39 +08:00
两年多经验的,突然想加个好友,一起学习
sunshinev
sunshinev
2020-05-12 15:24:09 +08:00
转 golang 吧,PHP 就是一套 for if class function array
chinvo
chinvo
2020-05-12 15:25:35 +08:00
@hejw19970413 #12 不要转

请先学好一门

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

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

几个建议,目前阶段

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

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

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


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


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


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

最后别光瞎看...写起来
accacc
2020-05-12 20:10:18 +08:00
@tuboshuv1 同意 Java 的东西太多了 spring 全家桶真的就够小白受的 这还只是用 更别说中间件和 jvm 进阶之类的 哈哈 对楼主半路出家的更难了
hedgehog0921
2020-05-12 20:48:59 +08:00
学得越多觉得越菜那才是正确的方向。你把你想成一个圆,圆内部是你所学,圆外部是无知的世界。当圆越来越大的时候,你所接触的无知也越多。你所要做得是,在巩固你现在所学的基础上,去进一步探索未知。

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

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

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

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

© 2021 V2EX