This is sort of from the top of my head; I'm sure I am missing a lot. Besides the things mentioned here, understanding programming and object-oriented programming in particular is a must, of course.
A few important language features:
- Realise that in Ruby, everything is an expression, and be able to apply that principle, even if you think it makes your code unreadable.
-
Closures are mentioned; I would also expect Rubyists to know the differences between blocks and procs (and lambdas) and know how to convert between them. Closure mastery is important to being able to write beautiful Ruby, in my opinion.
-
Operator overloading: know what happens when you define methods named
[]
, []=
, ==
, +
, <<
, etc. on an object.
- Be proficient with most instance methods of Array, Enumerable and Hash (even if you don't know the exact definition by heart). Your Ruby code will be so much more verbose if you don't use methods like
collect
, inject
, join
, zip
, etc. where appropriate.
- Thoroughly understand what Symbols are, and when you should use / avoid them.
- Understand what metaclasses are, know the difference between class variables and class instance variables.
- Know how object attributes work in Ruby, how you can define them with
attr_accessor
and friends, and how you can define them yourself.
- Be able to use modules, both as mix-ins and as namespacing tool. You should also understand how to mix-in instance methods and class methods (or be able to figure out how you could do it).
- Know the difference between raise/rescue and throw/catch, and be able to use both correctly.
- Understand how metaprogramming works, and at least have a basic idea of all the methods that allow you to do metaprogramming (mostly hidden in the classes
Module
and Object
).
- Be able to use a
Hash
method argument as a substitute for named arguments (even if it's just because it's a common pattern).
- Know how concurrency does and doesn't work in Ruby.
-
Continuations, even if they're rarely used.
Some vital tools:
- Know and understand Ruby gems
- and rake
- and RDoc.
- and YAML.
Some framework knowledge:
- Basic knowledge of Rails would be useful. Even if it's only because the outside world sometimes doesn't seem to know the difference between Rails and Ruby.
- Know there are other web frameworks than Rails: Merb, Sinatra, Camping, ...
Ultimately, keep in mind that the above is "just knowledge", and not skills. It's probably easy to pick up most of this if you're not familiar with it.
分享到:
相关推荐
接力版四年级下册小学英语 Lesson 5 What are you doing?说课稿.doc
外研版(一起)英语二年级上册 Module6 Unit1 What do you do on Sundays?(课件).ppt
Is Parallel Programming Hard, And, If So, What Can You Do About It?
3. What should you use if you want to get the value of a specific cell from a row in a datatable? 4. What happens if the AddHeaders option is checked for Read Range Activity? 5. What happens if you ...
语言:English 不确定要喝什么咖啡? 让我们为您挑选超过35种不同的咖啡并进行种植。 不知道早上要喝什么咖啡? 让我们为您挑选超过35种不同的咖啡并进行种植。 添加更多...
湖北省武汉市北大附中武汉为明实验中学八年级英语下册 Unit 2 What should I do?基础练习(B卷) 人教新目标版
湖北省武汉市北大附中武汉为明实验中学八年级英语下册 Unit 2 What should I do?基础练习(A卷) 人教新目标版
(6G应该是啥样儿)?是啥样儿?文章对6G的未来进行了分析,属于自然杂志电子子刊内容,展望下一代通信网络
But what components within your application should you analyze? How should you optimize? And how can you measure how well your application is performing? These are some of the questions that are ...
不知道要喝什么咖啡?让我们为你挑选超过35种不同的咖啡和种植。 不知道早上要喝什么咖啡? 让我们为您挑选超过35种不同的咖啡并进行种植。 添加更多...支持语言:English
外研版(一起)英语二年级上册 Module6 Unit1What do you do on Sundays?(课件).ppt
外研版(一起)英语二年级上册 Module6 Unit1What do you do on Sundays?_(课件).ppt
外研版(一起)英语二年级上册 Module6 Unit1 What do you do on Sundays?_(课件).ppt
五年级英语上册 Unit 4 What can you do?教案 人教PEP.doc
What Every Engineer Should Know About Excel(2nd) 英文epub 第2版 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除
接力版四年级下册小学英语 lesson 5 what are you doing?教案(教学设计).doc
接力版四年级下册小学英语 lesson 13 what do you want?教案(教学设计).doc
What Every Programmer Should Know About Memory ,经典著作
6. If you need to know if a UI Element is available on the screen or not, what activity should you use? 7. How can you run the process slower in order to analyze the robot’s behavior in certain ...
1. What college are you attending? 2. What are you majoring in? /What's your major? 3. What grade /class〖年级和班级〗are you in? 4. What school did you go to? /Where do you go to school? 5. How many ...