rubima / magazine.rubyist.net

るびまの編集リソースを集めたり進行状況を確認するリポジトリです
https://magazine.rubyist.net/
Other
3 stars 9 forks source link

自分の経験からRubyでプログラミングを教えた #505

Closed BlazingRockStorm closed 6 days ago

BlazingRockStorm commented 3 months ago

https://github.com/rubima/magazine.rubyist.net/discussions/503

「るびま」に初めて投稿を作成しますから、レビューをもらうのため、以下は英語のバージョンです。よろしくお願いします。

English translation:

Intro

In the IT industry in general and programming particularly, training new members is very important. However, when training them, there are a lot of challenges that the mentor engineer has to solve. The article is my experience and the reason why I choose Ruby as the way to teach programming and the results.

Self Introduction

Hello, my name is Hoang Quan. I'm from Hanoi, Vietnam. I'm working in Japan for 4 years. At the moment, I'm the Lead Engineer of a start up in Tokyo. My favorite tech stack is Agile/Scrum, AWS and Ruby.

At the first 1,5 years of my career, I worked as a Ruby developer. Then, after becoming a system engineer, although I rarely use Ruby in work, I continue to learn Ruby myself.

Situation

At the beginning of the company, the CEO want to hire some of his acquaintances as the company interns and part-time, so as the lead engineer, I am also tasked with training them. They were 6 young Vietnamese overseas students with a lot of energy and eager to find IT related jobs. I was really excited and hoped that I can teach them all my skills and experiences. But then...

Challenges

In my case, these are my problems:

With the above, I have to choose the appropriate programming language, build a syllabus with it weeks by weeks, combine with other solutions.

Solution to Challenge #1

My solutions are:

Within the limits of the article, I would like to continue with the method of "Choose a programming language that is easy to understand the syntax and can be learned quickly". Ruby, Python, and Typescript meet this requirement of being easy to learn and quick to master.

At that time, I chose Python. Reasons are:

Challenge #2: Why did I change from Python to Ruby?

After choosing a programming language, new problems arose:

Python access modifiers

class Example:
# If public, there is no _
def public_method:
pass

# If protected, there is one _
def _protected_method:
pass

# If protected, there are two __
def __private_method:
pass

When I asked the students, "What does this underscore mean?", they had no idea.

At this point, I chose a real OOP language. Speaking of OOP, it's probably Java, but it's difficult to learn it right away. They were students at Japanese language schools and vocational schools, not third-year university students studying IT. That's why they chose Ruby.

Access modifiers in Ruby

class Example
# For public, it's free or public keyword.
def public_method
end

# For protected, it's protected keyword.
protected

def protected_method
end

# For private, it's private keyword.
private

def private_method
end
end

Results

After switching from Python to Ruby, the students:

After that, after understanding the core of Ruby, they studied Ruby on Rails and created interesting projects. But in the end, three of them wanted to get an IT job without programming, so they joined a large Vietnamese outsourcing company. One went back to Japanese language school and continued studying. Only two continued programming.

It was a little sad.

Conclusion

For me, Ruby is a good programming language for education. I wish I could support the Ruby programmer community more.

Thank you for reading to the end.

takkanm commented 3 months ago

@BlazingRockStorm Thank you for your writing. We'll review your article and give some feedback. Before we start to review, I have a proposal. Would you be willing to add the English version on the same page? It is too good to use only a description. What do you think about it?

BlazingRockStorm commented 3 months ago

@takkanm コメントありがとうございます。

わかりました。投稿に英語バージョン追加します。

私は日本語を練習したいですから、できれば、プルリクに日本語でコメントしてお願いします。🙇

takkanm commented 3 months ago

@BlazingRockStorm レスポンスが遅くなって、すみません。また、コメントの件もわかりました。 対応、ありがとうございます。 時間をみて、レビューを開始していきますね。

BlazingRockStorm commented 3 months ago

@takkanm もう一度自己レビューして、修正しました。もう一度レビューしてお願いします。

BlazingRockStorm commented 2 months ago

@takkanm @kakutani @neko314

コメントありがとうございます。

新しいことを追加しましたから、もう一度レビューしてお願いします。🙇🏻

takkanm commented 2 weeks ago

@BlazingRockStorm 返信が遅くなってしまって、すみません。対応ありがとうございます。 この状態で、公開させてもらえればと思います。 なお、るびまの記事での表記のルールというのがあるため、マージ後、私たちのほうでそのフォーマッティングをし、公開のアナウンスをしたいと思います。

takkanm commented 6 days ago

@BlazingRockStorm マージさせていただきます。こちらでのフォーマット適用終わりましたら、記事の URL をこちらに共有いたします。ありがとうございました。

takkanm commented 6 days ago

@BlazingRockStorm 記事単体での公開が完了しました。 https://magazine.rubyist.net/articles/0064/0064-ChoosingRubyToTeachProgramming.html 記事を書いていただいて、ありがとうございました!

BlazingRockStorm commented 6 days ago

@takkanm 返信遅くなって、本当に申し訳ありません。

記事を公開していただき感謝しています。ありがとうございます。 これからもっと頑張ります。