Rails Ambassador

学習の心得

このLessonでは学習とは何か、どのようなエンジニアであるべきかを学習します。

学習とは

みなさんは何か好きな事はありますか?
スポーツやゲーム、料理が好きなど人それぞれだと思いますが、好きな事をするという事は実は学習をしている事になります。
例えば好きなゲームで先に進めなくなったり、料理がうまくできなかった時、皆さんはどんなことをしていますか? ゲームの攻略情報や料理サイトを見て研究したり、何回も繰り返しているうちに上手になっているでしょう。

好きな事だと苦にはならないので「学習している」とは意識しないと思いますが、これは理想的な学習をしていることになります。
なぜ楽しく学習できるのでしょう。
それは単純に好きだからということもありますが、だんだん上達していく過程や、できなかったことができるようになることが楽しいからです。そしてもっと効率よくするにはどうしたらよいか考えるようになるでしょう。
これは上手くなった自分を想像して楽しく感じることができるからだと思いませんか? 学校の勉強が好きじゃないという人は、そこに楽しさが見いだせない、勉強ができた自分に意味を感じないと思ってしまうからかもしれないですね。

人は反復することによってどんどん学習していきます。例えば初めて通る道は最初迷ってしまうかもしれません。でも毎日通っているうちに迷う事はなくなっていくはずです。学習で重要な要素は繰り返すことと言って良いでしょう。

それでは今後学習を効率よく進めるにあたって、皆さんが好きな事をやっている時と同じように以下を実践していきましょう。

  1. わからない事は調べる
  2. 何度も繰り返す
  3. できるようになった自分を想像して楽しいと思える

特にモチベーションが上がらないという方は「3」を考えると良いかもしれません。
プログラミングができるようになった自分が豊かになると想像すれば繰り返し、調べながら学習をすることができるようになると思います。 プログラミングは学習です。日々進化を続けているプログラミングは生涯学習となります。 プログラミングを続けるという事は日々学習を続ける事と言えます。 みなさんはこれから学習とは何か、自分にとっての学習方法の確立を模索していってください。

なぜプログラミングをするのか? プログラミングの最も得意な事は単純な繰り返し作業です。
決まったことをコンピューターににさせることで人間はより人間らしく生きるための時間を手に入れることができます。また、効率化によるコストの削減になります。 そして現代は今まで単純ではないと思われていたことも、AIの発達により以前に比べてコンピューターが担う役割は広がってきています。
この流れを止めることは最早できないでしょう。
私たちの生活を豊かにしていくためプログラマの需要が高まっているのは皆さんも感じていると思います。 プログラミングを学ぶという事は「論理的な思考を養う」ことにもつながります。 効率を追い求めるのはもう時代の流れ的に逆らえない事となってきています。 皆さんが学習を行い、豊かになっていくことができるお手伝いが出来れば幸いです。

Railsの初学者によくある傾向

Rails初学者が躓きやすい部分をまとめています。ぜひこの点が自分に当てはまっていないかを確認して頂ければと思います。

1. SQLも理解する。

RailsではSQLを意識することがほとんどない強力なActiveRecordというORMを使用しています。そのためSQLに関する知識がほとんどない状態になりがちです。

最終的にSQLの知識は必須になってきます。本Lessonではこの問題を危惧し、なるべくMySQLでの検証をするように構成しています。
といっても上述の通り強力なORMがありますのでSQLを操作するというよりは確認することが多くなります。
皆さんもエンジニアを目標とするならSQLにもっと興味を持ってどんどん使っていきましょう。

2. GemやAPIのドキュメントを読む

RailsのGemは非常によくできているものが多いです。頻繁にコミットされているものは安心して使えるものが多いです。
そのせいで簡単にコピペで実装してしまいがちになります。
業務で活用しようとするものはそのライブラリが本当に使用して良いものなのか検証してから実装するべきです。
コピペは記憶に残りにくくその場限りのものとなってしまう事が多いです。
公式ドキュメントは英語の事が多いですが、翻訳アプリを活用して流れを理解するようにし、Gem単体で検証する、APIをしっかり理解してから使用するなど十分に吟味してから実装を行うようにしましょう。
また、商用利用ができない場合もあります。ドキュメント等をしっかり読み、ライセンスに違反しないかといった点も確認することが重要です。

3. 対話式環境でメッセージを読み理解する

Railsのコンソールやターミナルはインタラクティブな実行環境です。コマンドを打つと何らかのメッセージが返ってくることがほとんどです。
しかしコマンドもコピペでどんどん進めてしまうため、どんなメッセージが出ているかわからずにどこから間違っているのか理解できない方も多いようです。
皆さんは絶対に「参考サイトコピペしたんですけど」というような事を言わないようにしましょう。
「このコマンドを打ったらこんなメッセージが出て調べたけどここがよくわからなかった」というようになることが理想です。間違っても「エラーが出ました」と一言で済ませることはやめましょう。

学習曲線について

学習曲線という言葉を聞いたことがありますでしょうか?

学習とは自分が考えているように一定の成果が常に出るものではなく、実際は初期段階ではほとんど成果が出ないということです。
プログラミング学習も同じことが言えると思います。
学習を続けているとある日突然すらすらとわかる日がやってくるものです。 「継続は力なり」と言いますが、あきらめずにコツコツ続けることが大切です。

Team Geekに見るHRTの原則

書籍「Team Geek」内ではGoogleが良い開発チームを作るためにHRTの原則を採用しているという事を読むことができます。
HRTとは

  • Humility(謙虚)
  • Respect(尊敬)
  • Trust(信頼)
の頭文字から来ています。

お互いを信頼・尊敬し、謙虚であれば人間関係で衝突することが無くなるというものです。

このようなHRTの原則には 一人の天才だけでは良いプロダクトはできないという事にあり、チーム力を高める事が狙いの一つにあると思います。

皆さんも学習を通してこうした事を意識していっていただければと思います。
機会がありましたら是非手に取って内容を読んでみてください。

スティーブ・ジョブスのスタンフォード大学卒業祝賀スピーチ

この動画を見たことがある人も多いかもしれません。
まだ見たことが無い人はぜひご覧になってみてください。

先を見通して点をつなぐことはできない。
振り返ってつなぐことしかできない。
だから将来何らかの形で点がつながると信じなければならない。

この手法が私を裏切ったことは一度もなく、私の人生に大きな違いをもたらした。

学習は点です。その点と点がつながって線になるのはいつになるのかわかりませんが、線になることを信じて学習すればそれは決して無駄にはならない、と言えると思います。
ぜひ楽しんでプログラミング学習を行ってください。