看到别人写得很好的代码,感觉很无力怎么办?

今天在网上看了一个别人写的PHP代码文件,有1M多的代码,看了半天看得头很大,好多函数、概念,以前从来没接触过,看了半天后,感觉无力,停下来在这里说下。个人自学了快一年PHP了,虽然知道自己是新手不是很懂,但慢慢的也能用框架或源码开发一个简单的博客程序了,但每每遇到那些写得很好,逻辑清晰,封装得很好的代码时,总感觉自己什么都不懂。
不知道有没有和我有过相同经历的童鞋,或有过这方面经历的大牛,能否分享下学习的经验和感悟。怎样能在学习的过程中看别人的源码和少走一些学习的弯路。随便说点也行啊。

阅读 17.8k
13 个回答

看完有些感触,不写不快。

本人也是半路自学PHP来的。到现在差不多3年。现在每月有10几K。

最早的时候什么都不会,去了个小公司,还是亲戚推荐的。干了两月,没点起色,辞了。自己在网上忽悠了一个项目,做一个电子商务网站,边做边学,3个月差不多入门了PHP,还赚了8000块。当时找了一个国外开源的框架和模块,凭着英文还有点基础,硬是把网站交付了。

对于我们这种半路出家的选手来说,关键还是要提高解决实际问题的能力,提升项目经验,所以我大部分的经验是从一个个项目中去获取的,各种摸索,各种自虐,那时候好像还有谷歌可以用,各种网上视频和技术图书也都会去了解查看,没有系统学习过,也不知道知识的深浅,有时候不小心踩进深水区,也只能自认倒霉,可从未想过放弃。

当你的项目经验积累到一定程度,等你能解决你工作中碰到的大多数问题的时候,能力提升的量变也会慢慢发生质变。你对框架和代码的理解会更深入,会懂得作者的设计思想,会比较不同语言的优劣,但不代表你能设计并实现这些。

这个时候,你该学习新的东西了,梳理下自己的知识脉络,先往自己感兴趣的那块延伸与深入。不要待在舒适区。这样才有进步。

我现在偶尔会去leetcode艰难刷题,使用python语言,你会发现不用1周你就能掌握基础语法并且AC简单部分的题目,蛮有成就感。

我现在也经常会去stackoverflow上寻找答案。

我还买了一个阿里云服务器各种折腾、各种实验。

谷歌不能用了,买个VPN访问。

我去年买了台mac工作,真心好用。

说了这么多,只想说,你完全不用担心这些小挫折,这些个小打击,因为这些东西你终会理解的,只要你坚持下去。不要太浮躁。加油!

mac

不积跬步无以至千里

自学一年其实还很嫩,我前端自学一年的时候连 jQuery 都还用得磕磕绊绊,现在(4年)回过头看看当时的自己自然会觉得蠢得无可救药。但又能怎样呢?谁不是一步一步走过来的?

此外,莫要觉得会用一些框架和库写个简单的 CMS Blog 之类的就觉得满足了,其实你(非特指)还差得远。对于高手来说,抛给他一个新框架或是库让他完成个 Demo 级别的作品那就是分分钟的事情,稍微看会儿文档就行了。这不是因为高手和你的智力相差多大,而是经验;经验怎么来?还是开头那句话。

框架、库之类的半成品其实就是封装好的规则,读懂了规则使用起来就没什么难度。对于新手而言,最重要的事情就是学会读文档!读文档!!读文档!!!然后就是查谷歌!谷歌!!谷歌!!!有此二者,至少八成的问题将不再需要乞求他人施舍帮助。

然后就是在工作的空闲时间不停的读书,读各种书,但不要读什么 xx 天速成或者 xx 例技巧之类的快餐书,因为这类书只能告诉你做什么(还不一定对或者好)却不能告诉你为何而做,如何去做。要读原理的书,本质的书,备受广泛好评和赞誉的书。如果你连挑书都做不好,那就别做啥程序员了,卖烤红薯挣得也不比码农少。

等到你觉得只要有文档和谷歌在手,无论啥框架和库给我就是分分钟的事情的时候,你可以开始进阶高手之路了——也就是你可以来封装你需要的库甚至是框架了。此时也就是你的问题所描述的要去啃那些看的头大的源代码了。

你说好多函数、概念,以前从来没接触过,这不假,但是这些函数、概念有哪些是从我之前说的文档、谷歌、书籍里找不到的?你看了吗?你看了吗??你看了吗???

没看是你活该,看了还不懂就来问(那时候是要问具体问题,而不是像本问题这种),问了还搞不明白那就是你资质不够,还是烤红薯更适合你。

感觉很无力怎么办?要么以上,要么烤红薯或者其他随便什么都好,光在这扯淡也没什么鸟用。

这个现象是很正常的,你看到的框架,库等东西很多并不是一个人写出来的,都是集成了很多大牛的思维设计在里面。仅凭你一个 自学一年会用点框架 的人来说要看懂理解其精华,难度就像让四岁儿童和成年妇女ml一样,即使你心有余,硬件也是跟不上的。那么为什么会这样呢?

首要原因是你还没长大,这个长大是指你的 技术修为不够技术深度不够 以及 技术广度不够 还不足以去撼动那些矗立在你们php界优秀的框架和库。当然,这并不妨碍我们去学习它,了解它们的优秀之处。

其实呢,一开始你说要去看别人的源码我是拒绝的,不能说别人都说要看你也跟着去看。看了之后又懂不了,反而脑袋是 duang~duang~duang~ 的糊里糊涂停不下来。这不是我推荐的特效。优秀的框架很多,烂成屎的也不少,读烂框架代码和吃屎没太大区别。更惨的是你还分别不出那些好那些不好。所以吃屎的概率还蛮大的

**需求是皮鞭,在每一个白昼里尽情的抽打着你的屁股,让你欲罢不能的朝着各个技术点狂奔,这才使你成长**。有人可能要跳出来说,老子就是靠着兴趣和智商学习的,咋的,你服不服?我是服的,我也相信确实有这样的大牛,我见到他们也会由衷的跪下说一句,爷,我佩服您。但我想说,这种人真的很少,少到你一辈子也见不到几个,要真遇到了,一定要抓住他们的大腿,做个朋友。

关于读源码这块我必须要吐槽,对于一个初学者,甚至是一两年的开发者来说,完全是没有必要去阅读框架源码的 第一是你压根儿看不懂,第二没必要。

这个阶段你要做的最重要的事情是, 尽可能多的去学习业内优秀的框架的使用方法 ,熟悉这些个框架的优缺点和适用范围才是重点。给你一个业务场景,你能在脑海里迅速的搜索那些框架可用那些必须抛弃,让你有可选择的余地。这个时候技术广度的作用就体现出来了。当你熟悉了业内非常优秀的框架优缺点和使用场景后,你已经可以在论坛上群里凭借你的 技术广度 开始装逼了,谈到某个框架,你能一口气把优点缺点,使用场景,甚至是框架作者在设计框架的时候打了几次飞机都给说出来,这个逼装的响亮,我要给100分。

愉快的装逼两三年后你会发现,以前你熟悉的那些框架以及又会出现很多新框架但对于不断变更的需求你用起来都不那么顺手。这个时候就要开始更艰难的旅行了————重复造轮子。你就想着要学习 a框架的某个特点很好用,B框架的某个思路又特别赞。这个时候你就需要去研究每个框架的设计思想了。就是前面说的,去吃屎了。这个阶段对于 技术深度 提深是很明显的。你有了前两年的基础和知识广度让你快速解决问题的能力会助你一臂之力。 这样搞一段时间你会有一个自己顺手的自我感觉牛逼哄哄的框架或则库了。

好了。今天的逼就装到这里,谢谢大家收看。再见\("▔□▔)/

我倒是觉得有些PHP类库把简单的东西搞得巨复杂,看上去各种模式各种牛逼,我是适应不了那种。

可能我比较喜欢小作坊式的代码,Orz……

记录在纸上的思想就如同某人留在沙上的脚印,我们也许能看到他走过的路径;
但若想知道他在路上看见了什么东西, 就必须用我们自己的眼睛。

自学android一年,感觉学习一门新的编程知识体系总有几个阶段要度过:

  • 什么都不会的起步阶段

    • 这个阶段是第一个痛苦的时期,感觉很多东西的不懂,很多东西无从下手,感觉为啥人家知道的东西,我不知道?

    • 这个阶段度过困难的最好办法就是学会使用搜索引擎、学会提问,所有的问题要自己尝试独立解决一下,实在解决不了再去问别人。长期下来就会养成独立解决问题的信心与方法。

  • 开始逐渐熟练掌握API

    • 到了这个阶段算是度过了其实阶段的痛苦期,这个阶段也是自我感觉最良好的阶段,感觉遇到的问题自己大多都能独立解决,一些不会的上网查查也差不多了。

    • 这个阶段其实是决定你是否能在这一领域出类拔萃的关键期,如果沉溺于能够解决问题的自我陶醉中不能自拔,永远也不会真正接触到最优秀的那个层次。这个阶段的关键就是做一些对自己来说有挑战的事情,不要在自己的墙角孤芳自赏。

  • 接触到优秀的代码与开源项目(题主的阶段)

    • 能主动去汲取开源项目中蕴藏的优秀代码与思想说明你已经能迈出了通向优秀的一步。这个时候,就像题主说的,看到人家的代码运用的高级技巧与优秀的结构组织、风险规避,发现自己都不知道,肯定自行惭愧,觉得跟人家差距太大了,永远没有追上的希望。

    • 这个阶段其实是一种急躁情绪在作怪,迷茫与不知何日才能与这些大牛们比肩。就好比一个练武的突然目睹了一场武林高手的巅峰对决,心神摇曳之间不免觉得高山仰止,不可触碰。当其实我们需要做的就是在日常学习、工作中多去考虑一些,多去尝试一些,慢慢的也就积累了一个高于别人的门槛,那个时候再抬头看看,就会发现自己也能写出很健壮、优秀的代码了。

很好,我正在努力追赶你的脚步。毕竟我还不能写一个完整的简单的博客系统。

建议楼主用IDE,xdebug,单步执行,看不懂的多跑几遍。当年看Drupal代码也是一头包,看完经验值能涨不少。

不管是学什么,基础都很重要的,不要着急,我也是初学的看见大神们的作品心里简直急得不要不要滴,就像你从小学数学学英语一样,无论是技术还是思想都要慢慢积累,加油!祝你成功!

代码是写出来的,代码是写出来的,代码是写出来的,重要的事说三遍!!!

如果PHP写累了,就去学学Linux,写写JS、Html、Css,缓一下你又会想写PHP了~

看过,收获颇多,刚好电脑里有PDF版的HTTP 权威指南,不过真的几百页

就好像当年看WOW的大神pvp视频,看一次跪一次,直到尝试自己出了一部pvp视频才知道视频都是特么剪辑出来的,你不知道这个家伙其实在战场上被虐了多少次,给大家看到的那自然都是最牛b出彩的地方。

写代码,读代码,完全同理。
功夫不负有心人,踏踏实实不会错。

我原本不是学习编程代码的,是学习医学的,后来也辞掉自学编程,也有你这个心里路程。还是坚持,练习练习的问题吧,我唯一安慰自己的是:哪有回头路,自己从心选择了一次,就要坚持到底,这是真爱啊。啊哈哈,这是心灵鸡汤啊。

推荐问题
宣传栏