lolizeppelin
2020-05-12 17:30:12 +08:00
我也有过你的阶段, 最后我突破这个阶段通过学习 openstack
几个建议,目前阶段
算法不是那么重要,但你必须有基本算法思想,能写二叉树,熟悉分治算法,几个排序算法都熟悉就可以了,起码你看到某个地方特意用了某个排序算法,能理解这里为什么用这个算法来排序
设计模式大概读一下就行了,设计模式是用来解决问题的,你没感受到问题光看很难理解的
多线程、异步要自己好好写一下,不要流于表面,一个简单的聊天服务器作业能让你基本熟悉
熟悉多线程异步以后,认真把协程过一遍.我推荐读 python 的 eventlet 源码,读透,所有协程都难不倒你了
上面几个达成以后,
你应该去读懂一个完整的“项目”, 项目做什么解决什么问题,如何实现,当你比较熟悉这个项目的时候,很多问题就自然解决了
然后你照着这个项目实现你自己的东西,在模仿过程中你会更深入了解这个项目的痛点以及解决问题的思路,这样你就提升非常大了
目前比较适合模仿的项目有 k8s 啊 openstack 啊什么的,不要去刻意去读框架,因为框架不重要,特别是 PHP 的 web 框架
因为我自己学的是 python,对 linux 和 qemu 和 openvswitch 比较熟悉,于是学习了 openstack,非常幸运的就突破了写代码的瓶颈阶段,后面对 openstack 的模仿越来越深,提升也相当快
记住,人类写程序的思路和人类应对现实问题的思路是一致的,比如说网络包其实是邮件信封邮筒之类的抽象
解决任何程序或者代码的问题思考方式和现实是关联的
你先要有问题,再解决问题才能提高
最后别光瞎看...写起来