分享 学习编程没有捷径,需要的是热情与毅力 [抛砖引玉,小秀成果][5/20 小小更新一个图]

fredwu · 2014年05月19日 · 最后由 luax 回复于 2014年07月08日 · 11557 次阅读
本帖已被设为精华帖!

一份努力一份收获。

我是个从 2010 年开始才慢慢接触 Ruby 和 Rails 的菜鸟。最佳的学习和提升方式就是不断的看别人写的代码,不断的自己磨练代码,多听多看多问多用搜索。

从 2010 年至今我参与和发布了不少的 rubygems ——

从大约 2010 年左右开始我陆陆续续的参与或发布了大大小小的不少的开源项目——

也为 Rails 做了小小的一丝贡献(排行 152 位):

2010 年前的我是个自我感觉良好的 PHP 代码工。直到加入了一个优秀的团队(Envato),才发现一山比一山高,当时对软件工程的理解实在是小孩玩家家酒的层级。

曾经不懂 Law of Demeter 是什么,也未曾耳闻过 SOLID Principle。作为一个没有正式学习过软件工程的菜鸟(我本科念的是多媒体专业),作为一个在高中时期无比崇拜程序员,但对编写程序一无所知的菜鸟,慢慢的磨,慢慢的努力,总是会有收获的。

2014 年,我在带领开发团队为公司创造价值——同时也在不间断的提升自我,无论是技术,还是 leadership 能力,还是处理政治和纠纷。三年后,五年后,十年后呢?日子很长,能学习的东西很多。日子过得也很快,错过一天就少一天能提升的空间。

快速的写下这点文字,勉励新入行的同学们。也同时勉励自己 —— 去年下半年是我职业生涯的低谷期——入行多年来首次 burnout,但我还是熬过来了,仍然站在相同的岗位上,担当相同的责任,希望创造出更多的价值。

兵来将挡水来土掩,你是会选择花时间寻找捷径呢,还是花时间提升自我?

再更新一个图:我们团队正在开发的这个项目可以说是所有 rails 程序中相对比较复杂的,已经开发了一年多了,走了不少弯路(非技术方面的弯路),但我和团队的成员们对代码的要求都非常高——

 ❯❯❯ rake stats
+----------------------+-------+-------+---------+---------+-----+-------+
| Name                 | Lines |   LOC | Classes | Methods | M/C | LOC/M |
+----------------------+-------+-------+---------+---------+-----+-------+
| Decorators           |   503 |   409 |      15 |      77 |   5 |     3 |
| Finance              |   719 |   601 |      27 |     109 |   4 |     3 |
| Presenters           |  1470 |  1316 |      60 |      81 |   1 |    14 |
| Queries              |    32 |    27 |       1 |       5 |   5 |     3 |
| Services             |  2225 |  1732 |      59 |     239 |   4 |     5 |
| Uploaders            |    54 |    12 |       1 |       3 |   3 |     2 |
| Validators           |   530 |   469 |      25 |      59 |   2 |     5 |
| Controllers          |  1273 |  1013 |      46 |     148 |   3 |     4 |
| Helpers              |   176 |   144 |       0 |      31 |   0 |     2 |
| Models               |  4387 |  2168 |      82 |     211 |   2 |     8 |
| Mailers              |    11 |    10 |       1 |       1 |   1 |     8 |
| Javascripts          |   800 |   605 |       2 |     184 |  92 |     1 |
| Libraries            |  1063 |   897 |      37 |     103 |   2 |     6 |
| Controller specs     |   956 |   785 |       0 |       0 |   0 |     0 |
| Decorator specs      |   537 |   421 |       0 |       0 |   0 |     0 |
| Finance specs        |   702 |   549 |       0 |       0 |   0 |     0 |
| Helper specs         |    23 |    19 |       0 |       0 |   0 |     0 |
| Lib specs            |    85 |    69 |       0 |       0 |   0 |     0 |
| Model specs          |  2337 |  1196 |       4 |       1 |   0 |  1194 |
| Presenter specs      |   579 |   435 |       1 |       0 |   0 |     0 |
| Routing specs        |    13 |    11 |       0 |       0 |   0 |     0 |
| Service specs        |  2452 |  1877 |       4 |      12 |   3 |   154 |
| Validator specs      |   796 |   602 |       0 |       2 |   0 |   299 |
| Acceptance specs     |  1932 |  1802 |       0 |       0 |   0 |     0 |
| Javascript specs     |   684 |   473 |       0 |     185 |   0 |     0 |
+----------------------+-------+-------+---------+---------+-----+-------+
| Total                | 24339 | 17642 |     365 |    1451 |   3 |    10 |
+----------------------+-------+-------+---------+---------+-----+-------+
  Code LOC: 9403     Test LOC: 8239     Code to Test Ratio: 1:0.9
共收到 69 条回复

@fredwu 好久没有见你冒泡了 欢迎回来

这个必须顶啊,很帅,值得拥有

膜拜啊!

顶,个人感觉只要一直觉得自己是菜鸟,才是在进步。

刚刚看过你的博客,又在这儿看到你的帖子,我说怎么贴的图片那么眼熟

好好学习,天天向上。

我也是在 Fred 和另一个好基友的影响下在2010年才开始学习 Rails 的,这里得多谢 Fred 曾给过我的指点 :D

fred 一直给我青年才俊的印象, 2012 年有幸拿到你的签名和你合影, 现在业余项目一直使用 slim, thanks.

谢谢 @fredwu 的精彩分享! :plus1:

厉害!受教了!

好久不见,幽默帅气的 @fredwu

學習!

Slim 大爱,我一直觉得应该替代 Haml。

👍 期待楼主能分享更多一些这个过程中事情,哈,有可能的话做一期 teahour @lgn21st

#18 提议好,希望听到 teahour 的分享。 @hz_qiuyuanxin @lgn21st

Slim 是你开发的?用了好几年了,膜拜一下

#18楼 @hz_qiuyuanxin #19楼 @springwq

显然你们两个都不是 Teahour 的忠实听众呀 http://teahour.fm/2013/04/22/interview-with-fred-wu-about-opensource.html

你们是想让我再录制一期吗?

赞。。。

时间是最大的敌人。。。

膜拜...

25楼 已删除

:plus1:

好棒呀!值得大家学习,不过你说的那些东西我也从来没听过,你说的学习编程有点太笼统了,期待更多学习rails的细节方法的东西,去年开始接触php,我大专读的会计,今年4月份才开始接触rails,这是一个伟大的开源软件

扯,明明只要多问诸如"你们是如何一步步成为学会编程的?"这样的问题就能学会了的

我觉得还有 兴趣与方法。

兴趣应该是和热情相似的。

毅力会产生经验,经验会总结成方法。

#28楼 @bhuztez 我一直误以为需要不断胡乱的吐槽才会成为大师...难怪自己一直菜的掉渣

#21楼 @lgn21st 看到标题,发现听过了 😂,今晚再去听一次!

彪悍啊

2010年接触rails 现在还是个菜鸟 为嘛我还在写objective-c c++ 呢。。。。

苍蓝大大

彪悍的人生不需要解释!

#18楼 @hz_qiuyuanxin #19楼 @springwq #21楼 @lgn21st

唯一可惜的就是聊得最顺畅的那一段是正式录音前... 😅

#38楼 @fredwu 哈哈,后来我吃一堑长一智,在跟嘉宾前期讨论的时候,就严格要求对方先心里明白访谈大纲和内容,但是千万不要先说出来...... 😄

40楼 已删除

#21楼 @lgn21st 惭愧!忘了这期了。不过可以再录一期谈谈如何学习编程嘛!😄

#41楼 @springwq 好的呀,就是不知道 @fredwu 要不要再来 Teahour 做客,分享一期如何学习编程呢?

很漂亮的成绩单,赞!

果然根本用不到拼天赋

@fredwu 想请教一下,向rails提交代码,一般是怎么样起步的?怎么样把握自己所做的不会和其他人冲突,怎么样分工协调?

大神请收膝盖……orz

额,说的对,现在已经会了多种语言的 Hello World!

膜拜……

一直喜欢你的slim,支持

膜拜……

牛人啊 :plus1:

#42楼 @lgn21st 能来分享是荣幸啊。就怕我胡说八道误人子弟啊 😝

共勉之

终于见到slim的作者,很赞的经验分享。

@qichunren @Juanito @fredwu 强大的正能量呀,刚做了个人第一个Rails PR 😄 https://github.com/rails/rails/pull/15191

@fredwu @Juanito 有个问题想请教一下,当在一个PR里做多个commit时,core member 在接受时会自动合并吗? 我是自己手动合并后做的force push @Juanito CodeTriage 的链接有小问题

#58楼 @camel 如果零散的 commits 太多的话,他们会要求你 squash 的。

P.S. 你的 PR 被 merge 了,恭喜啊!

#59楼 @fredwu Thanks,原来就是用git rebase 来做 squash,这货竟然被我忘记了。 再接再励,发掘下一个PR

@camel@fredwu 所述,恭喜呀! 👏 👏 👏 CodeTriage 是 Richard Schneeman 的作品,可以跟他說關於鏈接的問題。 這裡有一個 rebase 的例子:https://github.com/rails/rails/pull/14685 在 rails/rails 很常見到,大部分 core team 成員都會很有耐性的教你 :D

太牛逼了 励志篇

63楼 已删除

兄弟现在还在墨尔本吗? 想有机会出来和你聊聊,尽管我现在不做ruby的东西,呵呵。

顶礼膜拜! 找到方向了! 实话说,最近半年一直处于低潮期,想尽快适应,尽快扛过这个阶段!

看到了你的这篇帖子,才发现自己的方式好像跑偏、也想着为Ruby贡献自己的一点点小能量、但是却没有那么好的功底去完成一个GEM的开发,只能学习使用别人提供的gem。

好好学习,天天向上。

70楼 已删除

见到大‘牛’了。

期待更多的作品

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册