はじめに
私はフィリピンのプログラミングブートキャンプでいわゆる「IT留学」を5ヶ月経験し、現在はIT企業でエンジニアとして働いています。
職場の環境は非常によく、綺麗なオフィス、残業なし、フレックス制度、リモートOKと至れり尽せり?です。
ブートキャンプに参加して本当に良かったと思っています。当時はブートキャンプの時間を100%有意義に過ごすために、自分なりに色々と試行錯誤しました。
以下には、ブートキャンプに参加しているときに私自身が早く知りたかった学びのコツのようなものを書いています。
これはブートキャンプ中に私が試行錯誤した内容に加え、エンジニアとして実際に働いてみて重要だと思った内容も含めています。
人によっては「あたりまえ」と思える内容もあるかもしれませんがご容赦ください。
対象読者
- プログラミング初心者のひと
- エンジニアやプログラマとして就職・転職を考えている人
- IT留学を検討しているひと
- IT留学中のひと
1. アウトプットを心がけよう
ただ勉強するだけではなく、実際に手を動かして、「作ること」「作った経験を積み重ねていくこと」が大切です。
ブートキャンプを通じて、トレーナーから与えられる課題をこなす事で、色々な製作物が出来上がります。ときには、難易度が高くてその日のうちに完成できないこともあるかもしれません。
でも、あきらめないで下さい。たとえ見栄えが悪くても動作すれば良しとしましょう。仮にあなたがプロのように綺麗に作れるのであれば、もう勉強する必要はないですからね。
動作するものが作れたら「ひとまず完成」とします。そして、作ったものは決してゴミ箱に入れずに取っておいてください。出来の悪いアウトプットでも、あなたの成長の証明として活用することができます。
「最初はこんなゴミのようなアウトプットでしたが、ブートキャンプの半年でこんなサービスが作れるようになりました!」と言えば、最終的なあなたのレベルや成長度合いをさらに引き立てることができます。
2. Git・Githubを使おう
Gitは本来バージョン管理の仕組みですが、あなたのコードを世界に公開する仕組みとしても利用できます。
なるべく早く使い方に慣れて、あなたのアウトプットをGitHubで公開しましょう。 なぜなら、先ほども言ったように、アウトプットの量は非常に重要なポイントだからです。
また、GitHubにはカレンダーのような機能も付いていて、あなたがコードを公開した日に自動で印を付けてくれます。印のついた日が継続して続いていれば、あなたが努力を続けることができる人間である証拠になります。
このカレンダーは公開されており誰でも簡単に見ることができるので、採用担当者ももちろん見ることが可能です。
3. 一回で全て理解できると思わないようにしよう
誰でも最初は初心者です。一回で全て完全に理解できるとしたら、天才です。
周りの人があなたより早く上達しているように見えますか?関係ありません。 早く理解することは重要ではありません。大事なことは、ゆっくりでも問題を噛み砕いて、本当に理解できるように小さく分割することです。
スピードを気にして、表面的な理解に留めている人は、いずれ本質を理解するために多くの時間を犠牲にすることでしょう。
どんなプログラムを書くときも、まずはシンプルなところからはじめましょう。
4. 人に教えよう
人に教えることで、学んだことがさらに定着します。さらに良いことに、自分の中でまだ消化し切れていなかった部分が浮き彫りになることもあります。
Qiitaやnoteなどの投稿サービスに、学んだことをまとめてみるのも良いでしょう。
また、人に質問された際は上記の理由から喜んで教えると良いと思います。反対に、自分が質問するときには、相手に学びのチャンスを与えていることを忘れないでください。
5. 色んな言語を触ってみよう
世の中には様々なプログラミング言語があり、人によって合う、合わないがあります。
習っていない言語でも、興味があれば一度試してみることをお勧めします。
ある言語がすごく「ハマる」こともありますし、いろいろな言語を経験することで、それぞれの特徴が浮き彫りになることもあります。
「流行りの言語」はすごいスピードで移り変わりますが、それを無理に追う必要もないかと思います。
好きな言語があれば、自然とそれについてたくさん学ぶことができますし、そうした一朝一夕でない習熟した知識があれば、たとえ「流行り」でなくとも活用する場があるはずです。
反対に、「流行りの言語」だからといって無理に勉強してもストレスになって身が入らなくなってしまうかもしれません。
あなたが好きなプログラミング言語に出会えることを願っています。
6. 15分調べて分からなかったら質問しよう
ブートキャンプでは分からない箇所をトレーナーに質問することができます。これはお金を払って学ぶことの最大のメリットです。独学の場合、分からないことをその場で質問できる機会は限られています。
質問することは恥ずかしいことではありません、遠慮せず、どんどん聞きましょう。
しかし、自分で調べて解決する力もまた重要です。むしろ、エンジニアとして働くと、殆どの時間を調査に使うことさえあります。
そのため「15分調べて分からなかったら質問する」というルールをオススメします。もちろん初めはどんな風に調べて良いかさえ分からないかと思いますので、すぐに質問する方がよいケースもあるでしょう。
しかし、自分の調べ方とトレーナーの解決の方法を比べて反省することもできますから、まずは自分で調べてみると良いかと思います。
7. Twitterは見なくていい
プログラミング初心者の多くがtwitterでの発信を始めたり、同じ初心者や「駆け出しエンジニア」同士でフォローしあったりしていますが、別にやらなくてもよいです。(もともとTwitterが好きなユーザーは別です)
Twitterで初心者に向けて情報を発信している人は、暇人か業者かアフィリエイトだと思って下さい。
また、初心者同士で繋がっても全く学びになりません。タイムラインに流れてくる他人の学習記録を眺める必要は全くありませんし、あなたの学習記録をTwitterに垂れ流す必要はもっとありません。
その代わり、GitHubにコードをpushして下さい。その方が100倍説得力があります。
8. 授業のスライドは転職でつかえる
ブートキャンプの授業で、トレーナーが説明に使用したスライドは転職の際に役立ちます。
このスライドには、あなたが学んだ内容が全てまとまっているので、これをそのままあなたのスキルとしてアピールできます。
9. ポートフォリオに自己紹介サイト1つ作るのはNG
就職・転職を考えてプログラミングを勉強している人は「ポートフォリオサイト」を作ることがあるかもしれません。これについて2つ誤解している人が多いように思います。
1つ目、ポートフォリオサイトは1つに限らなくててもよいです。むしろたくさんあった方が色々なスキルをアピールできます。
もちろん自己紹介としてオリジナルのブログサイトがあっても良いですが、他にもゲームや、自作のライブラリでも良いでしょう。色々なバリエーションがあれば、それだけできることのアピールになります。
就職したい業界や企業が決まっているならそれに関連した製作物があるのがもちろん良いでしょう。
2つ目、ポートフォリオはウェブサイトである必要はありません。実際に私は全て紙に印刷して就職活動を行っていましたし、これは概ね好評です。
ほとんどの場合、面接の場でわざわざPCを開いてアピールする時間はないかと思います。しかし、紙の印刷物であれば簡単に取り出して「資料です」と手渡すことができます。
面接官は、その資料を見ながら使った技術やノウハウについて質問します。面接する側からすれば、あなたの学習についていちいち質問を考える手間が省けます。
あなたは面接で聞かれる質問を限定でき、準備することができます。面接官は意味のない質問をしなくてよくなり、時間を節約できます。つまり双方にとって効率よく面接を行うことができるというわけです。
10. まとめ
私がここで伝えているメッセージは、一貫しています。それは「効率よく学び、コードを書き、それを有効にアピールする」ことです。
学んだことが身についていく感覚は、プログラミングに限らず心躍る経験です。
ぜひ、学んだことが可視化できるようにしてください。それはコードを書くことであり、GitHubに記録を残すことです。また、学びを文章化したり、人に伝えることです。
学んだことが確認できると、一歩一歩確実に進んでいることを実感でき、モチベーションにつながります。
学んだことが目に見える形で残っていると、それがそのまま就職や転職にも役立つことでしょう。
このメッセージが、ブートキャンプに参加するかたの参考になれば幸いです。
なにか質問があれば、Facebookからメッセージを下さい。 https://www.facebook.com/shinnosuke.kano.3