こんにちは!侍エンジニアブログ編集部のナナミです。
本日は侍エンジニアの卒業生「杉本諒」さんに、未経験から3ヶ月の学習でアプリ・サイトを合計7つ開発した驚異的なプログラミング学習方法について伺っていきます!
杉本さんはその開発したアプリ・サイトを元に転職活動をしたところ、なんと6社から内定をいただいたそうです。半端ないですね。笑
結論から言いますと、「何を作りたいのかから考えて、作りたいものをどんどん作っていく」授業の進め方が、3ヶ月で7つものサイトやアプリを作るためのコツでした。
それ以外にも、
- 自分で調べてエラーを解決するスキルを身につけるべき
- メンターは技術だけでなく心理的にも支えてくれる存在、自分のロールモデルになる人を見つけるべき
- まずはコードを書いて、コードを書く楽しさを感じるべき
などなど、「効率よくかつ楽しめる学習方法」、そして講師の上田さんもお招きして、講師目線でどのような指導を行なっていたのかなど、幅広くお話を伺いました。
自分も頑張ってみたけど、結局全然覚えられなかった…
と思う方も安心してください。お話を伺う中で、杉本さんもしっかり挫折しかけておりました。気持ちが折れかけてから学習できたメンタルの保ち方も必見です!
学習方法と合わせて、6社から内定をもらった転職の話は、下記の記事で解説しております!
「レアカードになりたい」20代のうちに最強を目指す
ナナミ:まず、杉本さんの簡単な経歴をお話いただけますか?
杉本:はい。元々は高専でプロダクトデザインを学び、就職しました。ただその就職先で、自分がやりたいことと企業がやりたいことがうまくマッチングしなかったんです。
なのでその企業は退職して、これからの人生を考えなおすことにしました。これから個人で稼いでいくスキルが欲しいなと。
それで色々考えたり調べたりした結果、英語とプログラミングとファイナンススキル、あとビジネススキルを身につけようと思って行動し始めた感じです。
まずは英語から取り掛かって、フィリピンに半年くらい、オーストラリアに2年くらい留学をしていました。トータル3年くらい学んだので去年(2018年)の8月に帰国して、次はプログラミングだなと。
ナナミ:英語って単独で強いスキルだと思うんですが、プログラミングなど他のスキルも身につけようと思ったのはなぜですか?
杉本:英語も使えてプログラミングもできると、20代のうちに最強になれるんじゃないかと思ったんです。
それこそ世界で通用するスキルですし、プログラミングは基本的に英語で書かれてるし、海外の仕事もできるし…これは自分の人生の可能性とか選択肢が絶対広がるなと。
そうやって複数のスキルを身につけようと思ったのは、昔読んだ本に「レアカードになる方法」っていうのは書かれていたのがきっかけですね。
ナナミ:レアカード、ですか。
杉本:はい。自分の持ってるスキルを他のスキルと掛け合わせて、自分の価値を高めていく考え方です。
たとえば英語のスキルは、100人中1人が持っているスキルだと言われています。同じようにプログラミングスキルも100人中1人だったとしたら、100×100で1万人のうちの1人…というように、スキルを掛け合わせていくことで、自分が何万人のうちのたった1人になれるという感じですね。
その考えにもとづいて「じゃあ英語に掛け合わせるなら何かな」と考えた結果、プログラミング、ファイナンス、ビジネスという3つのスキルに行き着きました。
爆速で成長した学習方法は「調べ方を知ること」
ナナミ:最初の授業って「フリーランスになりたいのでそのスキルを身に付けたいです」みたいな感じで始まったんですか?
杉本:フリーランスを目指して入塾したので、最初からそれは伝えていましたね。
上田:授業としては「何を作りたいか」を最初に聞きました。具体的にイメージがあると進めやすいし、モチベーションの増加や維持にもつながるので。
杉本さんは作りたい物がはっきりしていましたね。すでにアプリの名前も決めていたくらいに(笑)
杉本:自分でRuby on Railsのチュートリアルとかをやったりもしたんですが、途中で飽きてしまったんですよね。これなら自分が作りたいものを作った方が身になるなと思いました。
侍エンジニアはマンツーマンでやるのもそうなんですけど、自分で作りたいアプリを作れるオーダーカリキュラムっていうのが他にないな、そこが強みなのかなと思って選んだのもあるので。
ナナミ:杉本さんの場合は目標がはっきりしていたというのもあって、手を動かす方があっていたのかもしれないですね。
杉本:僕が飽き性だったのもあると思います。同じことをやるよりは、新しいものにどんどん触れていきたい、いろいろなものを作りたいと思っていました。
ナナミ:今日お話を伺っているだけでも、ガツガツとキャッチアップする力が強いという印象を受けますね。もともと調べたりする癖はあったんですか?
杉本:英語の学習をしている時、わからない単語があると携帯の辞書で調べたりしていましたね。なのでわからない時はググるという癖は、そこでついたのかなと思います。
講師が語る「調べ方」のコツ
ナナミ:上田さん的にも、自分でどんどん調べていくのは重要だと思いますか?
上田:そうですね、プログラミングを学ぶ上でも、スキルとしても重要だと思います。
初学者の方の場合、調べることを悪いことだと思っている方もいて、課題を出すと「すみません、ちょっと調べて解決しちゃったんですけど」って言われることも多くて。「いや調べていいんです、むしろ白紙で出すより調べてください。テストじゃないので、解決のために調べることは大事ですよ」ということはよくお話しします。
ナナミ:覚えなきゃ!と思っている人たちにとっては金言ですね。
上田:あとは「今、何に困っているのかを説明してください」とお願いするようにしています。
自分が何をやっててどのような問題が起きているのか、そして目指しているのはどのような状態かを言葉で表現できないと調べられないじゃないですか。状況を客観視して言葉に落とし込むっていうのは、調べる上で必要不可欠だと伝えるようにはしています。
調べることが習慣化している方(もしくはできる方)と調べられない方の差って、「何を調べたいんですか?」って聞いたら言葉で返せるか返せないかに現れやすいかなと思っています。
ナナミ:杉本さんもそういう指導を受けましたか?
杉本:はい、自分が思っていることをどういう風に言語化して調べればいいのかなど、色々アドバイスをもらいましたね。
あと僕の場合は、プログラミング学習を始める前から「プログラミング学習はどのようにすればいいのか」を調べてましたね。その中でも調べる力は大事だとよく出てきたので、そういうのも意識しながら学習を進めていました。
上田:杉本さんの場合、英語ができることがとてもプラスに働いていましたね。海外の情報もキャッチアップできるので。
ナナミ:なんだか挫折せずにスムーズに進んでいそうですね…
上田:いや、苦手なところもありましたよ。
Rubyの問題演習で、日本語で書かれている仕様をプログラムの処理に落とし込むという問題に取り組んでもらったんですが、その文章をプログラム処理のロジックに変換するというところは、目の下のクマを作って苦しんでいましたね(笑)
杉本:たしかにそこは苦手でした。その日本語をどういう風に機能に落とし込むかの組み立てが全然できなくて…
ナナミ:その時はどんなアドバイスをいただいたんですか?
杉本:「まず文章を見て何が大事かを見つけて、そこから落とし込む」っていうテクニックを教えてもらいました。プログラミングそのものではなく、この文章をどういう風に理解して、プログラムに落とし込んでいくのかっていうところについて教えてもらった感じですね。
それを教えてもらってからは、最初1時間かかった問題がだんだん45分、30分、最終的には15分と、だんだん短くすることができました。
1日12時間の学習を支えた目標達成マインド
ナナミ:1日の学習時間はどのくらいとっていたんですか?
杉本:大体1日12時間くらいは学習に充ててましたね。
ナナミ:普通の仕事の時間より長い…辛くはなかったですか?
杉本:辛くはなかったですね。自分で作りたいサービスがあったのと、プログラミングを書く楽しさがあったのであったので。
もちろん気が付いたら疲れてるというのはあるんですけど、それ以上に楽しさだったりやりがいだったりとかの方が強かったです。
上田:杉本さんはかけた時間の量がすごいですよね。講師を誰にしても今以上に伸びたと思いますよ。
杉本:何を学習するにも、まずは時間を作るのが大事かなと。
英語にしてもそうなんですけど、一定期間集中するのが絶対大事なんですよね。それを結構おろそかにしているというか、片手間にやってる人は多いと思うんです。
本当に結果を残したいとかこうなりたいという気持ちがあるのであれば、しっかり時間は取らないとダメです。今の仕事を辞めろとまでは言わないですけど、何かしらのムダな時間を削って勉強する時間にあてるっていうのは大事ですね。
ですので、学習する時間をしっかりとって取り組む事を、意識してもらいたいと思っています。
4ヶ月でエンジニアデビューを実現したその指導方法とは?
ナナミ:ちなみに、カリキュラムはどんな内容でしたか?
上田:実は、そんなに詳細に決めてるわけじゃないんです。生徒さんによって、確保できる学習時間や理解の速度に差があり、お仕事の都合などで当初予定していた学習時間を確保できないこともありますので。適宜調整している感じですね。
なので最初の1ヶ月はこれを目標に進めてみましょうとか、こういうの作りたいならまずここからはじめてみましょうかみたいな感じで進めています。
何かテキストを用意してがっつりやるというより、ちょっとした宿題を出しながら自分たちが作りたいものをどんどん作っていくというのが効率的なのかなと思っています。
ナナミ:ガツガツ教えていくというよりは「何かあったらいつでも頼ってね」っていう、メンター的な役割が強いんですね。
上田:はい、そうですね。
具体的な指標を示さないと何をやっていいのかわからないという人には、もちろん具体的に指示を出したりしています。でも基本的に、本人のやりたい学習方法と、本人の考えや目標が合っていれば「それでいいですよ」と伝えていますね。
ナナミ:杉本さんの場合はやりたいことがしっかりとある感じでしたか?
上田:そうですね。今までで一番しっかりしていました。
杉本:裕太さんに「これをやりましょう」と言われるよりも、僕が「これやりたいです」って言うことの方が多かったですね。
僕の意見や考えに合わせてサポートしてくれたので、そういう意味でも作りたいものが作れて楽しく勉強できました。
自分の中でメンターが作れるなら、1人でも学習はできる
ナナミ:杉本さんを見ているとそもそも自学する能力がある気がして、別にスクールに通わなくても学習できたのでは?と思ってしまうんですが…
杉本:今でこそですけど、正直な話スクールに通わなくてもよかったのかなとは思います(笑)
ただメンターがいなかったら挫折していたと思うので、スクールに通ったことを後悔したりはしていないですね。
上田:ちゃんと私を立ててくれてる(笑)
杉本:いや本当にそうなんですよ。
エンジニアの方に、知識とか経験とかなく学習するとしたらスクールに通うのか聞いてみたら、「スクールには通わない、ただメンターは絶対見つける」って言ってたんです。
それは僕も同感で、一人だとどうしても行き詰まった時とかに解決できなくなってしまったりするんです。それが何日も続くとストレスになっちゃうし、自分はプログラミングができないんじゃないかと思って何日も塞ぎこんじゃったりとか…
僕も「何でできないんだ、才能ないんじゃないか」と結構辛い思いをしたタイミングがあったんです。でもそういう時に裕太さんが側にいてくれたおかげで、心理的なストレスが軽減されました。自分がわからないことを聞けるっていうのはとても大事だなと思います。
独学だけで身につけられる人はよっぽどセンスがあるというか、自分でどんどん解決できる人なんじゃないかなと思います。そうじゃない人はメンターつけないと、挫折する気がしますね。
ナナミ:孤独な作業ではありますよね、プログラミングを学習するのって。
上田:たしかに一人で黙々とやれる人は、メンターはいらないかもしれないです。逆に「一人でやらせてもらえませんか?」ってなっちゃうかもしれないですね(笑)
あともくもく会とか、ハッカソンなどのイベントにサクッと参加できる人も強いと思います。
初学者の生徒さんに「勉強会に行ってみましょう」って言うと躊躇する人が多いんですよね。杉本さんもそうでしたし。
杉本:一人で勉強していると立ち位置がわからないんですよね。
上田:そうそう。1人で勉強していると、横が見えないから不安になるんです。「もしかしたら自分よりもすごい人だらけかもしれない」、「ものすごいポートフォリオ作ってたりするかもしれない」みたいな。
とりあえずそういうことは気にしないでイベントに参加して、横の繋がりだったり、エンジニアで相談できる知り合いを作れる人は、メンターがいなくても大丈夫かもしれないですね。
イベントなどを通じてプログラミング学習仲間や先輩が作れると、自分の中での実質的なメンターになると思うんです。そういう力がある人は、スクールと同じ環境を自分で作れているので、わざわざスクールとかに入らなくても効率よく学習できるんだと思います。
杉本:自分が目指している道のロールモデルを知れるっていうのも、メンターをつける大きなメリットだと思います。
自分の進捗とか将来のこととかを話しながら進められるし、そのメンターのようになりたいという目標というか、自分がどうなりたいかをイメージしやすくなると思うので。
上田:ほかにメリットとしてあるのは「頑張り続けの防止」ですね。普通の人が諦めるとこを強い人は頑張っちゃうので。
頑張るっていうのは集中力や持続力、スタミナとか色々あると思うんですけど、そういうのがすごくある人って、わからないところでそのまま一人悶々として、ストレスになってしまうと思います。普通の人だったら諦めてに聞こうってなるところだけど頑張って耐えてしまうので、余計にストレスを多く抱えることになるかと…
そこでサポートしてくれる人がいないと挫折しちゃうかもしれないですね。
杉本:逆にそこで頑張るのもいい勉強にはなるんですけどね。
裕太さんに色々聞きすぎてこれじゃ成長しないんじゃないかなと思ったタイミングがあって、あえて聞かずに自分でタスクを溜めて自分で解決できるまでやってみたんです。本当に分からない時は裕太さんに質問できると思って。
それでもやっぱりわからなくて裕太さんに質問するんですけど、回答待っている間に自分で先にやっちゃおうと思って進めてたら解決できたりするんです。何時間かやると自己解決できちゃいましたっていうことも結構多くて。
そういう時「もう私いらないっすね」って拗ねるんですよ(笑) そんなことはないですからね?
上田:質問の数時間後に自力で解決してて、自己解決ログが送られてると「お疲れ様です」って言うことしかなくて…「ああもう私いらないんじゃない?」というのはよく思いましたね。
ただ「原因は何でしたか?」とは聞くようにしています。そこできちんと説明できないと意味ないですからね。
この記事見たら出来ましたレベルだと「理解」まで落とし込んでいない可能性があるので、何が原因で何をして解決したかを言ってくださいとお願いしています。
ナナミ:見てなんとなくとか、コピペでしてできたではなく「何故できたのか」が本当の理解につながるんですね。
上田:楽ばかりしてしまっては勉強にならないですからね。なんだか知らないけどできちゃった、なんて時に「きちんと説明してください」って言うのは大事だなと思っています。
アスリートのトレーナーとかボクシングのセコンドに近いかもしれないですね。ちょっと苦しいところで「立て!」みたいに、ちょっとだけ無理させる感じで。
それで嫌になっちゃったら本末転倒なので、そうならない程度に少しずつ背中を押すようにはしています。
杉本:僕は自分で自分を追い込んでたので、何度も限界を超えた3ヶ月4ヶ月でしたね(笑)
自分で作りたいアプリって全部教えてくれる教材なんてないんですよ。だからそうなると自己解決するしかないというか、調べるしかないんですよね。
実際に作れる教材もあるんですけど、自分に起きている問題を解決するサポートは書かれてなかったりするので…
もうそういうところは自分で解決するしかないので、裕太さんに相談をしながら進めていました。
プログラミングも英語も「階段のように成長する」
ナナミ:本当にここは苦労した!っていうエピソードってありますか?
杉本:最初の1,2ヶ月とかは環境構築だけでも大変で、すごくストレスがかかったんです。でもそれが自分で解決できちゃうと楽しくなってきて。
よく裕太さんに「ブレイクスルー(問題を解決)できましたね」って褒めてもらって、いい先生持ったなって思いましたね。
今は問題を解決した時、自分でブレイクスルーできたんだなって思えて楽しいです。
上田:階段みたいに成長するよっていうのは生徒さんにはよく言ってるんです。
坂道を登るようにだんだん成長するっていうより、苦しんで苦しんでうまくいかない…ってなってるうちに、そのうちパッて「あれ?できた!」ってなる瞬間があるんですよ。
それがブレイクスルーかな、と私は思っています。
上がるまでは一見すると同じ高さのところを歩いてるように見えるんですけど、しっかり前に進んでるし、きちんとスキルアップにつながる時間なんですよね。
ナナミ:かけた時間の部分だけ単純に比例して上がるっていうよりは、少し進んで一段上がっていくイメージなんですね。
杉本:実は英語の勉強も同じなんです。
僕の英語学習って会話もできない状態から始めたんですけど、最初の1,2か月くらいはやっぱり苦しかったんです。それがある日、ふと理解できたりするんですよね。
これは初学者によく見られる成長曲線っていう傾向なんです。最初は苦しんで後からぐんっと伸びるタイミングがあって、そのあと中級レベルくらいになるとまた伸び率が落ちてきて、なかなか先に進めなくて苦しんでいたら、またある日伸びるっていう。
成長曲線に合わせると、英語とプログラミングの勉強方法ってあまり変わらないと思いましたね。
プログラミング学習は、まずは楽しさを知ることから
ナナミ:プログラミング初心者の人が最初にやるといい勉強方法はありますか?
上田:目的とかによって色々違うかなとは思いますが、本よりは動画とかのほうがいいかもしれないですね。
本で始めた方が、環境構築で挫折する可能性が高いんじゃないかなと思っています。本の通りやったのにエラーが出ちゃって、そもそも学習を始められないみたいな。
杉本:初心者殺しですよね。
上田:今は環境構築なしでできる教材もたくさんあるので、そういうのを使ってまずはプログラムを書いて実行してうまくいった時の達成感とか楽しさを知るのがいいのかなと思います。
そこからオリジナルアプリを作るってなると環境構築できないと困るし、他の人とやるんだったらGitとかの管理ツールも使うし…必要なものがどんどん増えていくので、それは徐々に学んでいくといいかなと。
ナナミ:では最後に、これから学習を始めようと思っている方にアドバイスをお願いします!
上田:プログラミングで何を作りたいのかを考えると入りやすいかなと思います。
その作りたいものが一つの言語だけじゃ作れないこともあるので、ロードマップはしっかり考えたほうがいいですね。そこからどういう言語を学ぶかを調べたり考えたりして、順番に学ぶのがいいのかなと。
あとはイベントとかで刺激を受けるのはやっぱり大事なので、積極的に参加してほしいです。
杉本:僕も未経験からスタートして転職してるので、心配はしなくていいですっていうのは言いたいですね。特にコードの記述云々は初めはできないのが当たり前なので、そこの心配は本当にしなくていいと思います。
でもやるからには時間はしっかりとって、本気でやってほしいです。なんのためにエンジニアになるのかとか、なんのために転職するのかとか、目標やビジョンを明確にすれば、自ずと何をやるべきか見えてくると思います。これはどの勉強にも言えることですね。
あとはメンターをつけるのはやっぱり大事です。近くでサポートしてくれる人がいるのといないのは大きく違いますね。
なので心配せず、どんどんチャレンジしてほしいです。最初は失敗だらけだとは思いますが、それを毎回「だめだ」と思わず「よし、やってやる」っていうくらい軽い気持ちで行っちゃっていいと思います。
プログラミングはエラーとの戦いなので、そこを楽しめれば学習として成功だと思いますね。
上田:トライ&エラーを楽しめるのはかなり大事ですね。ゲームに近い感じもします。
バグという敵を調べて倒していく。某RPGみたいに街の人に情報を聞いて攻略したり、強い武器を手に入れるような感覚ですね。
そうやってRPGの主人公に自分を落とし込んでいくように、強敵を楽しめる感じでいくと学習も楽しくできるのかなと思います。
杉本:たしかにゲームに近いって話をしたこともありましたね。感覚がプログラミングだったのがゲーム性に変わっていくというか。そうなるといい意味でモードに入れてる、勉強するマインドセットを持てている感じがしましたね。
上田:ランナーズハイみたいな高揚感があるとやっぱり継続しますからね。
最短でサイト・アプリを開発し転職するなら侍エンジニアへ
いかがでしたでしょうか?杉本さんの学習方法や、メンタルの保ち方など参考になるお話ばかりでしたね。
侍エンジニアでは、実践型の授業形式のため、プログラミングを学ぶ授業ではなく、プログラミングで何かを作る・転職を成功させるための授業を行なっています。その過程で必要なスキルを身につけてもらうようなイメージです。
- 自分のロールモデルになる講師によるマンツーマンレッスン
- 作りたいものの進捗に合わせて授業を進めるフルオーダーメイドカリキュラム
- 内定も独立も有利になるオリジナルアプリ開発
これらの3つのサービス特徴により、あなたのプログラミング指導をとことんサポートいたします。
確実に転職できるなら学びたいけど、不安・・・
そんなあなたは、まず無料カウンセリングに来てみてはいかがでしょうか?
あなたの理想の人生像から、叶えるためのキャリアや最適な学習方法、実際に弊社の卒業生の事例など、腑に落ちるまで解説いたします。
プログラミングは人生を変える可能性のあるスキルです。悩んでいる時間より、まずはカウンセリングから始めてみましょう。オンラインでも承っておりますので、ぜひ下記のカレンダーよりお越しください。
お急ぎの方はこちらからお問い合わせください。
読み込みに失敗しました。
大変お手数ですが、本ページを再度読み込んでください。
再度読み込んでも、読み込み失敗が起こる場合は
こちらからお問い合わせください。
カウンセリングはオンラインにて実施しております。
※予約完了後に、カウンセリングのためのURLやIDなどをメールにてご案内します
1.ご希望の日時を選択してください
2.必須事項を入力してください
ご予約ありがとうございます!
予約が完了しました。ご予約情報とご参加前の準備をご確認ください。
【ご予約情報】○月○日(△) ○○:○○〜
カウンセリング参加に向けてのご準備
※記入いただいたメールアドレスに確認用メールをお送りしておりますのでご確認ください。
※オンラインカウンセリングはGoogle Meetにて実施します。URLが発行したら別途ご案内いたします。
※メールが届かない場合は、SAMURAI ENGINEERサポート(support@sejuku.net)までご連絡ください。
杉本さん、上田さんには、転職活動についてもお話を伺いました。
ぜひこちらもご覧ください!