DIVE INTO CODE

2019年06月18日

独学でプログラマーになるために必要な行動指針

Aws4 request&x amz signedheaders=host&x amz signature=8c582972518c4608c067d4066736ea08621bd8bccaf6ad2af83ec6f62e75983e

今回は「独学でプログラマーになるために必要な行動指針」というテーマでお話をしていきますが、ご紹介する行動指針はプログラミング学習に限定したものではありません。キーワードは「自己成長」「問題解決能力」「コミュニティ」の3つ。プログラミング以外の何かを独学で極めたいという気持ちを持っている方にも、十分に参考としていただける内容となっていますので、ぜひご一読ください!

【こんな方におすすめ】
・まずは独学でプログラマーを目指したい方
・独学でプログラミングを学んでいる方
・独学で何かを勉強したいと考えている方

【目次】
1.3つの行動指針
 その1:自己成長をしよう
 その2:問題解決能力を持とう
 その3:新しいコミュニティとつながって人から学(まね)ぼう
2.まとめ

■話し手
DIVE INTO CODE 代表 野呂 浩良
■聞き手
StartGate 永田 拓也

3つの行動指針

今回は、独学でプログラマーになるために必要な行動指針、つまりスタンスの話をしていきます。

独学とそうでないときとでは、持つべきスタンスは変わるものですか?

本質的な部分は変わりません。ですが、やはりスクールなどで学ぶ場合には周りがサポートしてくれますから、すべてを自分一人でやろうとするのとでは、スタンスが変わってきます。マラソンで集団で走っていくと自分も走りやすい一方で、一人で走るのは心が億劫になる、というのと似ています。

なるほど。となると独学の方こそスタンスは強く持っておくべき、ということですか。

そうです。今回は独学であればこういうスタンスを持っておくべき、というものを3つご紹介していきます。1つ目が「自己成長をしよう」、2つ目が「問題解決能力を持とう」、3つ目が「新しいコミュニティとつながって人から学(まね)ぼう」です。

その1:自己成長をしよう

「問題」から逃げずに自分の成長にコミットする

まず「自己成長をしよう」から。これは「分からない」「難しい」と感じることがあっても逃げずにやりきる、ということ。すなわち「自分の成長にコミットする」というスタンスです。「これができるようになれば問題を解決できるはずだ!」という気持ちで臨むことが大事ですが、決して根性論という訳ではありません。できない理由を探すのではなくて、できるようになる方法を考えることで成長につなげましょう、ということです。

そもそも学び始めるときって「問題」が出発点だったりしますよね。でも、学んでいく中で辛い思いをしたり時間に追われたりすると、この出発点を見失ってしまいそうですが?

「問題」から逃げるということは、自分から逃げることだと思いましょう。自己成長のチャンスを捉えたら絶対に離さないこと。そういう気持ちが大事です。

向き・不向きの判断基準は「楽しいかどうか」

「自分には向いていない」と思って方向転換したくなるときもあると思うんですけど、これは「逃げ」なのか、本当に「向いていない」から止めた方が良いのか、判断がつかない場合はどうすればいいんでしょう?

まずは、目の前にある「問題」に向き合って、分かるまでやってみるべきでしょう。分からない事を解決して「分かった!」という経験をしないまま「向いていない」と決めつけてしまうのは「逃げ」だと、私は思います。ただし、自分で勉強して理解もできたのに「楽しくない」と感じてしまうとするならば、それは「向いていない」と判断すべきでしょう。辛さを感じながら続けるよりは、スッパリ諦めてしまう方が良いかもしれません。

そのあたりの判断の仕方が「自分がきちんとプログラミングに向き合えているか」という指標にもなりそうですね。

これは私の体験からの話ですが、私自身は逃げずに向き合いながら挑戦を続けてきたからこそ、周りにはなかなかいない力が身についたと自負しています。苦しい思いをしろ、ということではなく、向き合って突き詰めていくことが大事だと思います。それに、辛いこともあるけれど、楽しいこともあるんです。「なるほど!」と理解できる瞬間は楽しいですから。

自己肯定感を大事にしよう

問題に向き合って突き詰めていくのに必要なのが「自己肯定感」です。そして矛盾するかもしれませんが、自己肯定感というのは、問題に向き合えば向き合うほど高まっていくものだと考えています。

え?難しい!「あれだけの問題を解決したことがあるんだから」という意味ですか?

取り組んできたプロセス自体に自信を持ってほしいんです。「やったけどダメだった」と思うのではなく「やってきた」という事実に自信をもち、そこに自己成長を見出してほしい。

なるほど。上の目標ばかり見ていたら「まだまだだな」とマイナスな気持ちになりますね。

イチロー選手を目標にしたからといって、皆がイチロー選手にはなれないんです。プログラマーも含めて仕事とはそういうもの。そうではなく、自己成長を見出すことを大事にしてください。

その2:問題解決能力を持とう

続いて「問題解決能力を持とう」というお話です。問題に対しては「なぜ問題が起きているのか」「どうすれば解決できるのか」といった「仮説」を立てることが重要です。

確かに。仮説が間違ってしまっていたら、いくら解決能力があっても意味がないですね。

そのとおりです。「解決」の前に「仮説」があるんです。そして「仮説」が合っているかよりも大事なことはトライアル&エラーです。トライアルを繰り返して外堀を埋めていき、だんだんと解決に向かっていくイメージです。

PDCAサイクルをどれだけ回せるか、という話ですね。

そうです。
さらに「仮説」を立てるためには、情報収集がカギとなります。例えばエラーが起きた際に「そのエラーはどういう意味なのか?」、あるいは分からない単語が出てきたら「その単語の意味は?」といった情報を集めて、それらを組み合わせて仮説を立てていく必要があるんです。幸いにも今は誰でも「インターネット」という人類の脳みそを使えるんですから(笑)少なくとも、プログラミングを始めてからプログラマーとして就職できるレベルまでの情報は、きちんと調べれば出てきます。

なるほど。自分で調べて自力で壁を突破できるようになる、という意識が重要ですね。

そうです。
ところで今日は「独学でプログラマーになるために」というお題ですから、これを「問題」として捉えて考えてみましょう。すると「プログラマーとして生きていくためには何が必要なのか?」と言い換えることができます。この「”何が”というギャップの正体は何なのか?」という仮説を立てるのが「問題解決」です。そしてこの仮説を立てるためには、プログラマーと知り合って意見を聞いたり、あるいはプログラマーのインタビュー記事などを読んでみたり、あるいはTwitterで聞いてみたりなど、いずれにしろ自分で行動していく必要があるでしょう。これこそが「問題解決能力」です。

その3:新しいコミュニティとつながって人から学(まね)ぼう

3つ目が「新しいコミュニティとつながって人から学(まね)ぼう」という姿勢の話です。
先程の目標設定の話と同じなのですが、「プログラマーとして生きるにはどういう力が必要なのか?」「どこまで力をつければ生きていけるのか?」ということをまず知る必要がありますよね。でも、これらはインターネットだけでは知ることが難しいかもしれない。なぜなら、こういった話は言語化が難しいからです。成功した人の経験は文字だけでは読み取れない部分が多く、そういった部分を「無形式知」といいます。無形式知を理解するには直接アプローチしなければならず、そのためには現役で活躍しているような人たちと接点をつくって学んでいく必要がある、ということです。

なるほど。例えばインタビュー記事を読んでも、成功談にフォーカスしていて、どんな苦労があって成功に至ったかが書かれていないことが多いですよね。人に直接アプローチすることでそういった部分に触れることで、自分の歩むべき道筋が見えてきそうですね。

コミュニティとつながることで、同じようなプロセスを踏んでいる人とつながることでモチベーションを上げたり、自分より先を行っている人を目標に据えたり、あるいは「師匠」を見つけてその人から吸収したり、といった機会にもなります。これはインターネットでの情報収集だけでは得難い機会なんです。人と直接会うことで、お互いに感情を動かしあうことで、その人から知識や経験を吸収すること。これこそが独学でプログラマーになるために最も必要な行動指針といえるでしょう。

「そもそも自分はどうして成長したかったんだっけ?」という問題意識を持ちつつ、その問題を解決していくには人と直接つながることによって道筋を見つけることが大事、ということですね。

人とつながることで、次の成長への意欲にもつながります。つまり循環をしているのです。そして、この循環の根底にあるのが「自己肯定感」というわけです。最後に、何より大事なのは、自分の歩んでいるプロセスに集中すること。一気にジャンプアップしていけるような「ワンチャン」はありませんから、取り組んでいることに集中して勉強してみてください!

まとめ

・できるようになる方法を考えることで成長につなげる「自己成長」のスタンスを大事にしよう
・「やってきた」という事実に自信をもち、そこに自己成長を見出そう
・「問題」に対して「仮説」を立ててトライアル&エラーを繰り返す「問題解決能力」を持とう
・「コミュニティ」とつながり人と直接会うことで、インターネットでは得られない知識や経験を吸収しよう

できない理由ではなく、できるようになる方法を考えることで「自己成長」につなげる意識を持つこと、仮説を立ててトライアル&エラーを繰り返していく「問題解決能力」を鍛えること、そして「新しいコミュニティ」につながることで、インターネットでは得られない先人達の経験やノウハウといった無形式知に触れること。「独学でプログラマーになるために必要な行動指針」を端的に言い表すと、このような表現になります。

そして冒頭でお話したとおり、これはプログラミング学習に限った話ではなく、何かを学習しようとしている方には、ぜひ心得てほしいスタンスです。困難な壁にぶち当たったときこそ、原点に立ち返る意識でこのスタンスを思い出してもらえれば幸いです!

DIVE INTO CODEの公式HPこちら

DIVE INTO CODEの無料カウンセリング予約こちら

DIVE INTO CODEのことをもっと知ってみませんか?