Skip to content

Commit

Permalink
apply format
Browse files Browse the repository at this point in the history
  • Loading branch information
takkanm committed Sep 28, 2024
1 parent 5440f73 commit 2c4a27d
Showing 1 changed file with 39 additions and 39 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
layout: post
title: Rubyでプログラミングを教えた経験談
title: Ruby でプログラミングを教えた経験談
short_title: My Experience on Teaching Programming with Ruby
tags: 0064
post_author: ホアンクアン
Expand All @@ -13,94 +13,94 @@ created_on: 2024 年 6 月 11 日

## はじめに

IT業界全般、特にプログラミングは、人材育成は大事なことです。ですが、新しいメンバーをトレーニングするとき、メンターとしてエンジニアは、様々なチャレンジに会います。この投稿は、私の経験や、なぜRubyを選んでプログラミングを教えているかの理由です。よろしくお願いします。
IT 業界全般、特にプログラミングは、人材育成は大事なことです。ですが、新しいメンバーをトレーニングするとき、メンターとしてエンジニアは、様々なチャレンジに会います。この投稿は、私の経験や、なぜ Ruby を選んでプログラミングを教えているかの理由です。よろしくお願いします。

## 自己紹介

初めまして。

ベトナムのハノイ出身のホアン・クアンです。4年間日本で働いています。今はリードエンジニアとして東京のITスタートアップで働いています。Agile/Scrum、AWSとRubyが好きです
ベトナムのハノイ出身のホアン・クアンです。4年間日本で働いています。今はリードエンジニアとして東京の IT スタートアップで働いています。Agile/Scrum、AWS と Ruby が好きです

社会人になって最初の1年半、Rubyプログラマーでした。その後、システムエンジニアとして仕事しています。仕事ではあまりRubyを使っていませんが、自分でRubyを勉強し続けています
社会人になって最初の1年半、Ruby プログラマーでした。その後、システムエンジニアとして仕事しています。仕事ではあまり Ruby を使っていませんが、自分で Ruby を勉強し続けています

よろしくお願いします。

## 状況

会社設立当初、CEOが知り合いをインターンやバイトとして雇いたいということで、リードエンジニアである私は彼らの育成も任されました。CEOの知り合いは、6人の若いベトナム人留学生でした。彼らは、卒業後、IT関連の仕事に就きたいと望んでいました。そのため私は自分のスキルと経験を彼らに伝えたいと思いました。しかし、...
会社設立当初、CEO が知り合いをインターンやバイトとして雇いたいということで、リードエンジニアである私は彼らの育成も任されました。CEO の知り合いは、6 人の若いベトナム人留学生でした。彼らは、卒業後、IT 関連の仕事に就きたいと望んでいました。そのため私は自分のスキルと経験を彼らに伝えたいと思いました。しかし、...

### チャレンジ#1

私のケースは、これらの問題に合いました:
1. 留学生たちは日本語学校やIT専門学校に通っていましたがプログラミングはほとんど勉強していませんでした
1. IT関連の仕事をやりたいですが、彼らは具体的に何をするが分からなかったです。
1. 最近、私のベトナムコミュニティーに、「プログラミングしなくてもITの仕事に就ける」というコースもあります。というのは、ベトナムのアウトソース会社は、3ヶ月から6ヵ月ぐらい、ITを知らない人にブリッジSEになるためことを教えるコースがあります。そうしたコースで教えるのはビジネスアナリストの知識だけですから、プログラミングは全然やりません。すなわち、留学生たちにとっては、「簡単な道」です。
1. 留学生たちは日本語学校や IT 専門学校に通っていましたがプログラミングはほとんど勉強していませんでした
1. IT 関連の仕事をやりたいですが、彼らは具体的に何をするが分からなかったです。
1. 最近、私のベトナムコミュニティーに、「プログラミングしなくても IT の仕事に就ける」というコースもあります。というのは、ベトナムのアウトソース会社は、3 ヶ月から 6 ヵ月ぐらい、IT を知らない人にブリッジ SE になるためことを教えるコースがあります。そうしたコースで教えるのはビジネスアナリストの知識だけですから、プログラミングは全然やりません。すなわち、留学生たちにとっては、「簡単な道」です。
1. 英語が分からなくて、日本語能力もまだ強くなかったです。
1. 問題があったら、資料や本を読まずに、ネットで検索せずに、すぐに聞きます。
1. 育成期間は3ヶ月だけでした
1. 育成期間は 3 ヶ月だけでした
1. プログラミング言語が多いです。
1. シラバスがまだなかったです。

上記のことから、解決ために、適切なプログラミング言語を選択し、それを使用して週ごとにシラバスを作成し、他のソリューションと組み合わせる必要がありました。

### チャレンジ#1の解決
### チャレンジ#1 の解決
私の対策方法は:
- 1、6、7の問題は、シンタックスが理解しやすく、早く勉強できるプログラミング言語を選びました。
- 2の問題は、彼たちへオリエンテーションを企画しました。
- 3の問題は、選んだプログラミング言語とオリエンテーションでした。プログラミング言語ソリューションに関しては、他の短期コースと競合するのに十分な速さで学習できる言語を選択する必要がありました。
- 4、5の問題は、彼たちに[「Read - Search - Ask」](https://www.freecodecamp.org/news/read-search-dont-be-afraid-to-ask-743a23c411b4/)を教え、参考資料をちゃんと準備しました。
- 8の問題は、週ごとにシラバスを作成するしかありませんでした。
- 1、6、7 の問題は、シンタックスが理解しやすく、早く勉強できるプログラミング言語を選びました。
- 2 の問題は、彼たちへオリエンテーションを企画しました。
- 3 の問題は、選んだプログラミング言語とオリエンテーションでした。プログラミング言語ソリューションに関しては、他の短期コースと競合するのに十分な速さで学習できる言語を選択する必要がありました。
- 4、5 の問題は、彼たちに[「Read - Search - Ask」](https://www.freecodecamp.org/news/read-search-dont-be-afraid-to-ask-743a23c411b4/)を教え、参考資料をちゃんと準備しました。
- 8 の問題は、週ごとにシラバスを作成するしかありませんでした。

この投稿に限り、**「シンタックスが理解しやすく、早く勉強できるプログラミング言語を選ぶ」**方法をもっと続けたいです。Ruby、PythonやTypescriptは、学習が簡単ですぐに習得できるというこの要件を満たしています。
この投稿に限り、**「シンタックスが理解しやすく、早く勉強できるプログラミング言語を選ぶ」**方法をもっと続けたいです。Ruby、Python や Typescript は、学習が簡単ですぐに習得できるというこの要件を満たしています。

このとき、Pythonを選びました。理由は:
- Rubyのシンタックスに似ています
- AWSに働くとき、Lambda、Glue ETLのようなサービスに、Pythonを使うことがたくさんです。ですから、私も経験もあります。
- CEOの意見でしたから🙁
このとき、Python を選びました。理由は:
- Ruby のシンタックスに似ています
- AWS に働くとき、Lambda、Glue ETL のようなサービスに、Python を使うことがたくさんです。ですから、私も経験もあります。
- CEO の意見でしたから🙁

### チャレンジ#2なぜPythonからRubyに変わりましたか
### チャレンジ#2なぜ Python から Ruby に変わりましたか

プログラミング言語を選らびましたが、新しい問題が発生しました:
- 留学生たちのコードは、Pythonのインデントに関するバグが多かったです
- オブジェクト指向(OOP)に、Pythonのアクセス修飾子はわかりにくかったです
- 留学生たちのコードは、Python のインデントに関するバグが多かったです
- オブジェクト指向(OOP)に、Python のアクセス修飾子はわかりにくかったです

Pythonのアクセス修飾子
Python のアクセス修飾子
```python
class Example:
# public場合は、アンダースコアがないです
# public 場合は、アンダースコアがないです
def public_method:
pass

# protected場合は、アンダースコアが1つあります
# protected 場合は、アンダースコアが 1 つあります
def _protected_method:
pass

# protected場合は、アンダースコアが2つあります
# protected 場合は、アンダースコアが 2 つあります
def __private_method:
pass
```
留学生たちに「このアンダースコアの意味はなんですか」を聞いたら、全然分からなかったです。

このとき、本当のOOP言語を選びました。OOPといえば、多分Javaですが、すぐに習得できないです。彼たちは日本語学校や専門学校の学生で、ITを勉強している大学3年生ではなかったです。ですから、Rubyを選びました
このとき、本当の OOP 言語を選びました。OOP といえば、多分 Java ですが、すぐに習得できないです。彼たちは日本語学校や専門学校の学生で、IT を勉強している大学3年生ではなかったです。ですから、Ruby を選びました

Rubyのアクセス修飾子
Ruby のアクセス修飾子
```ruby
class Example
# public場合は、指定されていないかpublicキーワードです
# public 場合は、指定されていないか public キーワードです
def public_method
end

public
def public_method2
end

# protected場合は、protectedキーワードです
# protected 場合は、protected キーワードです
protected

def protected_method
end

# private場合は、privateキーワードです
# private 場合は、private キーワードです
private

def private_method
Expand All @@ -109,21 +109,21 @@ end
```
### 結果

PythonからRubyに変えたあと、留学生たちは:
- 1日後、すぐにRubyのコードを書けました
Python から Ruby に変えたあと、留学生たちは:
- 1 日後、すぐに Ruby のコードを書けました
- コードの書き方が厳格になり、より慎重になっていました。
- 学生たちはOOPの基本概念をよく理解していました
- 論理的思考が向上しました。なぜならOOPはプログラミングをする時の考え方によい方向性をしています
- 学生たちは OOP の基本概念をよく理解していました
- 論理的思考が向上しました。なぜなら OOP はプログラミングをする時の考え方によい方向性をしています

その後、Rubyのコアを分かったら、Ruby on Railsを勉強して、興味のあるプロジェクトを作りました。でも、結局、3人はプログラミングなしでIT仕事をしたかったため、大きなベトナムアウトソース会社に入りました。1人は、日本語学校に戻って勉強を続けました。2人だけプログラミング続けています
その後、Ruby のコアを分かったら、Ruby on Rails を勉強して、興味のあるプロジェクトを作りました。でも、結局、3 人はプログラミングなしで IT 仕事をしたかったため、大きなベトナムアウトソース会社に入りました。1 人は、日本語学校に戻って勉強を続けました。2 人だけプログラミング続けています

ちょっと寂しかったです。

## おわりに

私にとって、Rubyは教育するのにいいプログラミング言語です。Rubyプログラマーコミュニティをもっとサポートできたらいいのにと思います
私にとって、Ruby は教育するのにいいプログラミング言語です。Ruby プログラマーコミュニティをもっとサポートできたらいいのにと思います

自己理由なので、Rubyを教えることを中止ました。Slideshareに教えるためのスライドをアップロードしました。英語バージョンの最後にリンクを貼っていただきます。
自己理由なので、Ruby を教えることを中止ました。Slideshare に教えるためのスライドをアップロードしました。英語バージョンの最後にリンクを貼っていただきます。

最後までお読みいただき、ありがとうございます。

Expand Down

0 comments on commit 2c4a27d

Please sign in to comment.