Ruby 新人学 Ruby

goneprotoss · 2023年05月24日 · 最后由 superme 回复于 2023年08月18日 · 2258 次阅读

不知道为啥,就是对这个语言有执念,无论如何要学一下=。=

wiki 里面指向的教程都有点旧,在微信读书上找了本书,虽然也有点旧,将就看先了

望各位大佬们指正: 学习笔记🔗

u1450154824 回复

感谢,还没学完,学完元编程基础部分就去看 rails

这样总结大概率会彻底忘记 (我曾经就是这样,写过和你类似的笔记),不过我现在是按日文指南整理语法,内置库和标准库的各种 API 方法单独整理。 学几个不同类型的字面量、方法时间久了忘了,毫无意义。如果只是出于兴趣更没必要搞清楚异常、线程、网络库等等吧,不太清楚您是为了什么呢? 您表达的"通用的方法"是对象模型的理解吗?所有对象只是从类对象的数据结构中查询方法,这些方法都是因为设计自然存在的,不需要特别去记忆。 当然我也只是一个菜鸟,只是希望对你有帮助。

=begin
https://docs.ruby-lang.org/ja/3.0/doc/index.html
https://ruby-hacking-guide.github.io/
=end
mosfet 回复

我可看不懂日文,不过还是感谢你的分享,我本身就是做 Web 的,前后端都写,后端用过 PHP 和 Python,所以这种笔记也就是把我觉得入门需要的大概的东西简单记录一下,不可能每次都去翻书,书里写得太细了不好翻到,久而久之看多了应该就不需要再来查笔记了。 我看到很多地方都说,Ruby 和 ror 在走下坡 (热度不如以前?),很多 Rubyer 也在转别的语言,我倒是无所谓,打工用 Python 就行,我学 Ruby 和 Rails 就是自己好玩,所以后端要用到的东西,你说的"异常、线程、网络库等等"还是要看的,如果老天赏饭碰到了 Ruby 的机会,我会毫不犹豫去的=。= (这个社区真友好啊 :P)

goneprotoss 回复

不用客气喵。是的 Ruby 现在非常不适合就业。这个社区也没你想象的那么好,目前我的了解是现实中大多数人不会愿意去接受一个 Rails 新手,建议您保持原来的工作就好。我是纯粹出于语言的爱好者之间的友好交流回复您建议的。我也很少在此讨论 Rails 相关的问题。 我为什么要好为人师建议您看一下指南呢?指南可以更好地帮助你构建完整 Ruby 的知识体系,避免走一些奇奇怪怪的弯路。您可以大致用浏览器翻译看一下。它是作者本人编写的。这部分深度和细节绝对超过了 Programming_Ruby4th(2004-2013) 的前部分。Ruby 其实并没有这么多语法糖之类奇怪的东西。您的笔记有些东西初学时是有用的,例如一些"空"的强转布尔判断,您写了一些常见类的判别,但是总结起来就是<在 if 判别式中所有 nil、false 之外的值都视为真>。这种系统归纳您从零碎的笔记上是回忆不了的,这个不是说久而久之就记熟了,几乎 99% 的细节都会遗忘,这是人脑的机制,不知道您是否有相同感受呢。好了这就是我的一些学习建议,也感谢你阅读,祝你工作学习顺利~

mosfet 回复

我只是说"如果老天爷赏饭",有 ruby 的工作概率超低我也知道的,所以我基本上也没打算靠 ruby 找工作,纯粹就是想找一个语言和生态自己玩耍:) 我肯定还是保持原来的工作,毕竟现在大环境不好,有工作就算不错了 (悲)。 我并没有觉得你"好为人师",在社区上友好交流是一件让人高兴的事:) 这篇笔记确实如你所说,入门时有用,我会尝试用翻译看看你推荐的《指南》,构建完整的 Ruby 知识体系之后,这篇新人笔记可能就得被丢弃或者彻底翻修了 XD 如你所说,这种系统归纳确实不能只通过阅读来回忆巩固,肯定还是得写写写,前期写写写的时候,还是有点用的,后面肯定还会各种啃文档,各种 google,各种找 best pratice~ 最后,感谢你的友好交流和各种建议,也祝你工作学习顺利~

spike76 回复

感谢大佬😀

spike76 回复
The Master says:
  You have not yet reached enlightenment.
/Users/jimmy/workspace/koans/neo.rb:229:in `progress': undefined method `exists?' for File:Class (NoMethodError)

        if File.exists?(PROGRESS_FILE_NAME)
               ^^^^^^^^

是不是版本太旧了,按照提示把 exists? 改成 exist? 就正常了

jimmy@JimmyMacBookAir ~/workspace/koans $ rake
/usr/local/Cellar/ruby/3.2.2/bin/ruby path_to_enlightenment.rb
AboutAsserts#test_assert_truth has damaged your karma.

The Master says:
  You have not yet reached enlightenment.
  Do not lose hope.

The answers you seek...
  Failed assertion.

Please meditate on the following code:
  /Users/jimmy/workspace/koans/about_asserts.rb:10:in `test_assert_truth'

mountains are merely mountains
your path thus far [X_________________________________________________] 0/281 (0%)
goneprotoss 回复

不兼容,最好使用 ruby 2 的版本

spike76 回复

没事,不兼容就改到兼容=。=

AboutStrings#test_plus_will_concatenate_two_strings has expanded your awareness.
AboutStrings#test_plus_concatenation_will_leave_the_original_strings_unmodified has expanded your awareness.
AboutStrings#test_plus_equals_will_concatenate_to_the_end_of_a_string has expanded your awareness.
AboutStrings#test_plus_equals_also_will_leave_the_original_string_unmodified has damaged your karma.

The Master says:
  You have not yet reached enlightenment.
  You are progressing. Excellent. 20 completed.

The answers you seek...
  Expected "FILL ME IN" to equal "Hello, "

Please meditate on the following code:
  /Users/jimmy/workspace/koans/about_strings.rb:83:in `test_plus_equals_also_will_leave_the_original_string_unmodified'

mountains are merely mountains
your path thus far [...X______________________________________________] 20/281 (7%)

学来干啥

相比 python 相关的书满坑满谷 微信读书上就两本基础 ruby 还都是英文: The ruby workshop 还有一本 comprehensive ruby programming

hansonfox 回复

是啊,而且出版时间都挺早的了。。。我就是看 workshop 的

https://learning.oreilly.com/

这里有两本略新的书

我学习 Ruby 是出于执念。我在 leetcode 上用 Ruby 刷题是出于预防老年痴呆的目的,刷了 600 多道。Ruby 这种 high level 的语法很适合我这种业余爱好者,像 go 语言这种刷题时还得自己写 max 函数的对我来说太难了。尽管每次用 Ruby 解题写的代码都很 c-style,但我自己开心就行。

@xerox51 厉害,别人刷 leetcode 都是为了找工作

我也是或多或少有点儿执念,可能是看完元编程部分,觉得 Ruby 小巧精致,可玩性很高。换换脑子也挺好的

王垠说,python 可以凑合用在不重要的地方,ruby 是辣鸡,js 更是辣鸡中的辣鸡

crella95 回复

王老师开心就好=。=

crella95 回复

他那么厉害怎么连工作都找不到啊?

xerox51 回复

推荐 Elixir,文档不错哦~ https://elixirschool.com/zh-hans

还有类似 Rails 的框架 Phoenix https://www.phoenixframework.org/

哈哈哈,你这句:就是对这个语言有执念

也坚定了我的学习决心!加油

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