新手问题 如何有效提升 'Ruby 编程' 的能力

jevanwu · 2014年01月18日 · 最后由 jevanwu 回复于 2014年01月20日 · 3498 次阅读

由于工作一直专注于 Ruby on Rails, 感觉对 Ruby 语言本身的运用熟练度不够。希望前辈和大牛能够分享一些想法和自我提升的经验(我知道要多写些程序, 但除了网站,想不到写什么程序能够有效提升纯 Ruby 语言的熟练度)。 虚心求教。

其实随便写什么都可以。。 楼主可以实现一个 Ruby China 的交互式命令行客户端 应该还没人做过吧。

接触各种非 web 程序,研究下框架的实现和工作原理,看有趣的开源项目的源码,买本 ruby 编程语言仔细的读完

#2 楼 @jjym 谢谢,多看框架和开源项目源码是个好主意,不过好像动手少了点。看了一本 ruby programming, 不过感觉还是停留在基础

#1 楼 @iBachue 感谢建议 :)

我认为问题应该改成:如何有效提升 ‘思考’ 的深度?

#5 楼 @lgn21st 。。。。就像你的 qq 签名一样,始终保持一种饥饿感。。。

#3 楼 @jevanwu

  1. 编码是思考过程,在技术的提升这方面看代码时思考设计者的意图比写 N 遍 blog 要有效的多。

  2. 看源码的话有趣这点很重要,如果自己有实现思路的就没必要看了;相反如果对某些 lib 没实现思路,那就代表看懂这份代码会带给你思想上的开阔

  3. 最基本的是你要熟悉这份语言(连语法都不熟如何猜测使用者的意图?),你说的那本我没看过,ruby 编程语言 + ruby 元编程 可以说是把 ruby 的用法都讲遍了

#7 楼 @jjym 好的 非常感谢 我会去看下这两本书

#5 楼 @lgn21st 您这是想把我这问题衍生成哲学的探讨么 哈哈哈

#7 楼 @jjym 确实如此, 主要可以从 和

楼主觉得做网站没有技术含量?

#11 楼 @Rei 哦 绝对不是这个意思啊 Rei 网站我也还有太多欠缺的东西 只是说在 Rails 框架的开发上 现在的项目可能目前还没有达到运用很复杂的 Ruby 逻辑 所以感觉本人对 Ruby 语言本身的运用 比较生疏些

#11 楼 @Rei BTW 我自我定位的方向还是以 web 为主的

我的经验是

  1. 不写一样的代码,每次写类似的东西要用不同的方法实现,要比上次写的更好
  2. 多写些 gem,把共用的东西抽取出来,这也是一个思考的过程,包括易用性,可测试性,因为要 public 出去自然对自己的要求会高些
  3. 看到一些有趣的 gem 就思考这个 gem 的实现方式,如果不清楚就读读读源代码

一定要边写代码边读别的代码,光写和光读都是没用的,像 @lgn21st 说的增加思考的深度

#7 楼 @jjym

精辟呀!!

编码是思考过程,在技术的提升这方面看代码时思考设计者的意图比写 N 遍 blog 要有效的多。

在使用语言时, 对于好的语言每一个细节设计意图的深度思考, 同样必要.

看源码的话有趣这点很重要,如果自己有实现思路的就没必要看了;相反如果对某些 lib 没实现思路,那就代表看懂这份代码会带给你思想上的开阔

写的太精辟啦!

最基本的是你要熟悉这份语言(连语法都不熟如何猜测使用者的意图?),你说的那本我没看过,ruby 编程语言 + ruby 元编程 可以说是把 ruby 的用法都讲遍了

说句实话, 上班后我才知道, 原来大家做项目时, 对于语言其实了解个皮毛, 也能做项目... 虽然这样的项目代码往往惨不忍睹, 让人改的好生纠结...

把那些 C 语言或者 Java 描述的数据结构和算法用 Ruby 重写一遍,一倍时间两倍效用。(尽量多用 Ruby 的特性,元编程、block 之类的)

#15 楼 @allenwei

  1. 不写一样的代码,每次写类似的东西要用不同的方法实现,要比上次写的更好.

我重新理解下这几句话的意思:

针对某一特定类型的需求, 总结出一个最佳实践, 然后一直用它好了. 当然这个最佳实践随着技术的提高, 或者需求的变更, 会改变的.

事实上我也的确这样做的, 甚至有时候, 已经是最佳实践了, 我还会用比较 丑陋的方式实现一下, 也许下次需求变更时, 这个丑陋的方式是唯一的实现 ...

我觉得,把自己写得代码给身边得牛人看。在被吐槽得过程中,你就知道应该怎么写了; 当你开始吐槽别人写得代码时(当然首先你得确定你是对的),你就知道你得到提升了。

代码吐槽 as a service! :trollface:

ruby 元编程这本书不错。觉得不看它也可以写 ror,功能没什么问题,看一下就对内部有些了解,哪怕应付面试都会给力些。

也有楼主同样的问题,个人目前的想法是 以前用 ruby 做了些数据 提取 整理 统计 + 少量分析的工作,现在准备试试加重点分析的部分好了,感觉要把以前做的再深入搞搞应该可以提升很多功力的

#15 楼 @allenwei 感谢分享经验 以后会尽量尝试去写不重复的代码

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