Break Diver Susan Gessing
Break Diver Susan Gessing
  • DIVER: Susan Gessing
  • NATIVE COUNTRY: United States
  • CATEGORY: Coder
  • DIVE: Ruby
  • Level: 1
  • REQUIREMENTS: LEVEL 1: Can code in Ruby at a basic level

When and Why Did You Decide to Pursue This Dive At This Level?

I selected this dive/topic in an indirect way approximately two years ago. At that time, I decided to research what it would take to be a successful web developer. In other words: what technologies would I need to learn. There are SO many different programming languages out there that it was important that I didn’t overwhelm myself. So, what I did is check out job ads for web development to see what prospective employers were asking for. I selected an acceptable number of technologies to focus on. Ruby was one of them.

Until now, I’ve been studying other topics from my list (HTML, CSS, Javascript mostly). Learning Ruby in the Break Diving environment as a requirement to join their coding team was a great incentive to not put it off any longer.

How Long Did It Take For You To Accomplish This Dive At This Level From The Day You Decided To Pursue It, And Why Did It Take That Long?

Since I’m going for level 1, the basics, my time on this wasn’t TOO intensive. I learned through different online courses, studying around 3 hours a day, for approximately a week. Before I joined Break Diving, my work consisted of mainly researching what Ruby is and why/how it is used; I hadn’t yet dove into the actual syntax. I’ve always been curious about it; the opportunity to learn it in the Break Diving environment has been a great incentive! It took only a week to learn the basics because I was determined (and perhaps too because I have a background coding in Java!)

What Was The Hardest Part About Achieving This Dive Level?

The most difficult thing about this was the fact that it was a completely new language to me. I had never seen it before. Although some aspects of the language were familiar to me due to past experiences, there are several concepts that I needed to go over several times to really understand. For these, I often needed to do additional research aside from that in the tutorial itself to fully understand the concepts.

What Was The Easiest Part About Achieving This Dive Level?

The easiest part was learning all the aspects of the language that were similar to languages which I am already familiar with. I know JavaScript pretty well, so it was easy to commit similar syntaxes to memory. I am also familiar with computer programming concepts in general, so I didn’t have to deal with the learning curve associated with learning computer programming itself.

What Is Your Advice For Someone Who Is Pursuing This Dive And Level?

I think before a person attempts this dive, he/she should ensure that familiarity with computer programming in general. This includes the concepts such as declaring variables, object-oriented programming, scope, classes, methods, etc. Oftentimes, in most specific computer language textbooks or articles from the web, it is assumed that these concepts are known, and the specifics of the language itself are explained without going over these basic concepts.

The good news is that all programming languages deal with these concepts, just in different ways, so learn them once, and you’ll have them available to you. Also, any good tutorial will mention and explain most of them.

What Are Some Of The Best Resources You Recommend to Those Pursuing This Dive at This Level, And Why Do You Recommend Them? Please Include Relevant Weblinks, If Applicable.

Here are some great resources to get you started:

Tell Us A Story Of One Of Your Adventures While Pursuing This Dive.

My “adventures” for this dive came about as I discovered the similarities between languages that I am already familiar with (javascript, C#) and Ruby (which is completely new to me). Learning a new programming language is always a challenge, so discovering these similarities was like a breath of fresh air!

I discovered the following EXACT similarities:

Variables in Ruby are strings, numbers, and booleans. Ex. myvar = "hello"

Math in Ruby is performed with the usual operators: +, -, /, *, **, %. Ex. 5 * 2 would give 10.

Logical operators in Ruby are && for “and”, || for “or” and == for “equals”.

Arrays in Ruby folow the usual convention with []’s Ex myArray = [1, 2, 3]

Arrays in Ruby have many helpful methods such as .each, .join, .sort, .select, etc

Strings in Ruby have many helpful methods such as .length, .reverse, .upcase, .downcase

In addition, the following use different actual syntax, but the concepts are the same across all languages (this is some of what I’ve learned so far):

“puts” or “p” or “print” will print the string to the console.

Ex. puts "This will display."

In Ruby, you can use .each for a for loop. The following example would print each name in the names list:

Ex. @names.each do |name|

puts "Hello #{name}!"

end

String interplation in Ruby uses #{variableName}.

Ex. "My name is #{name}."

Fetching user input in Ruby is done using the .gets method. (.chomp removes the extra line that is added after the input.)

Ex.

print "enter a number: "

num = gets.chomp

Ruby has hashes, which are collections of key-value pairs.

Ex.

digits = { "five" => 5, "six" => 6, "nine" => 9 }

Comments in Ruby start with # for one line or “=begin…=end” for more than one.

Ex. =begin Here is a comment =end

If statements in Ruby use if…elsif…else…end.

Ex.

if (num > 50)

print "larger than 50"

elsif (num < 50)

print "smaller than 50"

else

print "IS 50"

end

Blocks in Ruby use do/end or {}

Ex. #In the below, the code between the do/end is the block and the code between the pipes is the parameter to the block.

@colors.each do |color|

puts "The color is… #{color}!"

end

Class variables in Ruby use @@ while instance variables use @ before the name.

Method definitions in Ruby use “def…end”.

Ex. def myMethod

#Code here

end

If a method doesn’t have an explicit return statement, the results of the last executed statement are returned.

Class definitions in Ruby use “class…end”.

Ex. class MyClass

#Code here

end

Classes in Ruby use their initialize methods to initialize the class when created.

To create a new class, use the “new” keyword.

Ex. myClass = MyClass.new()

The attr_accessor, attr_reader, and attr_writer keywords are used to indicate the readability and/or writability of a class variable.

Ex. attr_reader :name

A Proc in Ruby is a block of code assigned to a variable. It can be created with “new” or with the lambda method. .call is used to call either of these.

Ex. procBlock = Proc.new { puts "Proc method!" }
lambdaBlock = lambda { puts "Lambda method!"}

To pass a Proc to a method, use “&”.

To indicate inheritance, “<” is used. “super” will call the initialize method in the parent class.

Ex class Honda < Car #Honda inherits from Car

As I continue my studies in Ruby and go to the next level, I expect I will encounter many more of these adventures!

How did you prove you met the requirements for this level?

I have added notes from what I learned in the above section.

I also have proven my background in general as a computer programmer.

Will you be pursuing the next level?  If so, what is your plan?  If not, why not?

Yes, I would like to pursue level 2 as soon as I find the time. I don’t believe I’d be an asset on a development team if I’m only familiar with the very basics. I will need to research and get a list of the more advanced Ruby topics that are out there to ensure that I cover everything that I will encounter in the real world.


And having made this post, and provided adequate evidence to the dive committee, Susan Gessing is now hereby certified by Break Diving, Inc. as: CODER – RUBY – LEVEL 1.  Congratulations Susan!  Thank you for being an inspiration to others!

The author above wrote this WYSEguidance post as one of the certification requirements to become certified by Break Diving, Inc. for a dive completed. Would you also like to find greater success, happiness, and friendship, and make genuine supportive connections with others around the world pursuing your same dreams? We will certify you in your life accomplishments, and help you find new dives to pursue! Come join us at www.breakdiving.io and soon your story will be the next one you read about on this site!

Apply to join our incredibly inspiring worldwide community of winners today at breakdiving.io

Leave a Reply

Close Menu
%d bloggers like this: