【現役エンジニアが解説】独学でプログラミングの勉強を始める大学生が知っておくべきこと
現役エンジニアの直也です。大学の情報系学科を卒業した後、Yahoo! JAPANで3年エンジニアとして勤務、現在ITベンチャー3年目です。
プログラミングを学ぶ大学生が増えています。大学の専攻が情報工学でない場合、独学で勉強をスタートする人もいるかと思います。
そういった方が独学を始める前に知っておくべきことを現役エンジニア目線で皆さんに共有します。
プログラミング独学は高い確率で挫折します
残念ながらプログラミングの独学は非常に挫折しやすいです。これは才能がないからではなく誰でもありえます。すごくできるエンジニアも最初は挫折したというのはあるあるです。
挫折しないコツ、勉強のやり方を説明します。
やり方を要約すると次のようになります
独学は最初の2週間まで。
それ以降は環境づくりがコツ。
具体的にはプログラミングの相談ができる相手を見つけること。
最初の2週間は独学でも良い
最初の2週間は独学でも大丈夫です。
プログラミングに興味を持って勉強し始めるときはとても楽しいですよね。その気持ちを持ったまますぐに勉強するために最初は独学で良いです。
また自分にプログラミングの適性があるか見極めるためでもあります。適性がどうしてもない人も少数います。
「プログラムを見ていると頭が痛くなる」といった勉強してると体調が悪くなる人は残念ながら適性がないです。
一方「難しい」「何の役に立つかわからない」というのは適性がないというわけではなく単に知識不足だったり、楽しくプログラミングをしている人に出会ってないから生じるものだと考えています。なので問題ありません。
プログラミング初心者におすすめの教材
「何から手をつければいいのかわからない」という方に教材を紹介します。
まず最初はパソコンは必要ありません。プログラミングもしません。プログラミング的思考を学びましょう。NHKの「テキシコー」という番組があるのでそれを見ます。無料でネットで見れます。これは「コンピューターを使わずにプログラミング的思考を育む」というコンセプトのもとに作られた番組です。
非常によくできた番組ですので、これを見てプログラミングをするってどういうことなのか、プログラマーの考え方を知りましょう。
実際にプログラミングをやっていく
次に実際にプログラミングをやっていきます。
これらのサイトの無料教材をやってみてください。特にHTML,CSS,Javascriptが取り組みやすいでしょう。ちなみHTMLとCSSはセットです。なのでやることは2つです。
順番としてはHTMLとCSSを最初にやります。HTMLとCSSはWebページの見た目をつくる言語です。そしてJavascriptを学んでください。Javascriptは簡単にいうとHTMLとCSSで作った見た目に機能を与える言語です。
例えばショッピングサイトの「購入ボタン」を作ることを考えます。ボタンの見た目はHTMLとCSSで作ります。ボタンを押したら購入できるという機能はJavascriptで作ります。
オンラインプログラミング学習サービスです。エンジニア志望の人がまずやる定番。スマホアプリもあるのでパソコンがない人でも学習を始めることができます。
3分の動画でプログラミングを勉強できるサイト。短いので集中力が続いて良いです。HTML,Javascriptの入門教材が無料なのでそれをやってみましょう。
ここからは挫折しないコツについて説明します。
以下のようなことを知ることができます
プログラミングの相談相手の見つけ方(お金を使わない方法とお金を使う方法)
大学内でプログラミングができる人の見つけ方
プログラミングを勉強するライバルの見つけ方
入門レベルの知識しか持っていなくてもプログラミングのバイトで採用される方法
Web業界においての資格の位置付け
読まなくて良い本、読んだ方がいい本の見分け方
現役エンジニアの僕が大学生の時に知っておくべきだったと思うことばかりです。ぜひ読んでみてください!
挫折しないコツ
プログラミング学習を挫折しないコツは一人で勉強しないことです。一人で勉強をすると途中でわからないことが出て最悪、解決できずに勉強がストップします。
作ったものを見せる相手を見つけよう
プログラミングを勉強するとWebサービスやアプリを作れるようになります。またこれまで全然知らなかったシステムの裏側の仕組みを理解できるようになります。めちゃくちゃ面白いです!!
その面白い!!という気持ちを共有できる相手をぜひ見つけてください。
何か作って「これ見てよ!!」と言うと「すごい!!!」「天才じゃん!!」と返してくれるような人です。プログラミングができない人のほうがいいです。素人のほうが自慢しやすいので笑。
こうやって応援してくれる人がいるとモチベーションをすごく維持できるんです。
この相手はプログラミングが全然わからない家族、仲の良い友だち、バイト先の先輩とかになります。気軽に話せる人が適任です。
同じようにプログラミングを勉強する人を見つけよう
プログラミングをしてるとわからないことがたくさん出てきます。中には「こんなことを聞いたらバカにされるんじゃないだろうか」と不安になってしまうこともあるでしょう。
聞いたらバカにされるんじゃないかと思われるような些細なことを聞ける人を見つけましょう。一番良いのは日頃から遊んでる友だちです。
知識レベルは同じくらいの人の方が話しやすいです。これは疑問に対しての答えを知ることが目的ではなく、あーでもないこーでもないと議論することを目的としているからです。
まわりの友だちでプログラミングをやってる人がいなかったら「お前もやれ」と強制的にプログラミングの勉強を始めさせるのもアリです笑。
ライバルの見つけ方
ワイワイ楽しめる友だちもいいですが、ちょっと緊張感のあるような関係、いわばライバルのような相手もモチベーション維持に良いです。
このような相手を見つけるのは競技プログラミングが良いです。
プログラミングを使って問題を解くのをスポーツのように競い合うジャンルを「競技プログラミング」といいます。特に作りたいものはないけど問題を解くことが好きな人におすすめです。
競技プログラミングサイトにはたくさんの参加者がいます。彼らが全員ライバルです。ライバルが書いたプログラムは閲覧できるので問題を解いた後にライバルがどういうプログラムを書いたのかを見ればすごく勉強になります。
ここではいくつかおすすめの競技プログラミングサイトを紹介します。
会津大学が運営するサイトです。簡単なアルゴリズムとデータ構造を勉強できる問題が多いです。オンラインジャッジシステムをまず体感したい方にもおすすめです。
↑Aizu Online Judgeの使い方についてはこちらの動画を見てください。
簡単なアルゴリズムとデータ構造の学習に加えて、競技プログラミングを楽しめる要素が強いサイト。定期的にコンテストも開かれています。自分の実力がレーティングによってわかるのでモチベーション維持しやすいです。TwitterでAtCoderをやっている人がたくさんいるのでそれもやる気につながります。
プログラミングの相談ができる相手の見つけ方
プログラミングの相談ができる相手を見つけましょう。相談する相手はプログラミングが自分よりできる人が理想です。
大学の先輩に頼る
理系の学部がある大学なら情報系の学科があります。そこの研究室に行き学部4年生か大学院生と友だちになりましょう。「ご飯おごるんでプログラミングの勉強会をやりましょう」というような提案をしてください。
院生は学部4年生の指導も役目の一つです。こちらが勉強会を企画することにより、指導する機会を提供することができます。結局指導するのは院生なんですが、企画や場所決め、スケジュール設定などの面倒なことを率先してやれば向こうにもメリットはあるでしょう。
研究室に知り合いがいない場合は教授にメールしましょう。その研究室でやっている研究に興味があると嘘でもいいからアピールしてください。そうすればZoomで20分話を聞くくらいのことはやってもらえるかもです。そこで勉強会の話をして研究室に出入りする許可をもらってください。
質問サイトに頼る
teratailというプログラミング質問サイトがあります。これはプログラミングに関する質問をすると詳しい人が答えてくれるサービスです。すぐに会員登録して使えるようにしましょう。
20分悩んでわからないことが出てきたら質問サイトですぐに聞いてください。「こんな簡単なことを質問しても良いのだろうか」と心配になるかもしれませんが全く問題ありません。回答するのはヒマな人です笑。回答したくない人は回答しないだけなので。
このようにわからないことがあったらすぐ聞くという習慣をつけましょう。現役エンジニアの中には「質問する前に検索しろ」とか文句垂れる人がいるかもしれませんがこれも無視して良いです。現にGoogle検索で正しい情報を見つける能力は昔より難しくなっているからです。
初心者でもプログラミングのバイトに採用される方法
プログラミングのバイトをすることを強くお勧めします。先輩プログラマーがバイト先にいる確率に高いからです。企業にインターンに行くよりも長期間プログラミングのバイトをした方が技術力はつきます。
アルバイトはWantedlyなどベンチャー企業が集まる求人サイトで探してください。ベンチャーには学生のバイトを求めている企業があります。また若い大学生を応援したいという経営者もたくさんいらっしゃいます。
といっても例えばprogateの入門コースだけやっただけではバイトに採用される確率は低いでしょう。それは当たり前です。
ITベンチャーで実際に働いている僕がぜひみなさんに知ってもらいたい、バイトに採用されるコツとは、
自分がいかに成長速度が早いかをアピールし続けることです。
これがめちゃくちゃ大事です!!!
アピールの方法を説明します。
バイトしたい企業が見つかったらまずは応募してみてください。そして不採用になってもメールを定期に送って自分のその時の実力を文章で伝えましょう。99%の人は不採用になったらもう連絡はしません。不採用=実力がない、という判断は正しいですが、1回の面接や履歴書送付では成長力を証明できません。
定期的に自分ができることを勝手に報告することにより「継続力」「成長度合い」「絶対にバイトをするんだという強い気持ち」を伝えることができます。たぶん最初の1ヶ月くらいは音沙汰なしでしょう。それでも諦めないでください。
ここでは成長具合をアピールすることが目的です。何も勉強もせずコードも書いてないのに何度も連絡するのはただのスパム(迷惑行為)なので止めましょう。
イメージとしては最初はHTML,CSSの簡単なプロフィールページ(自己紹介ページ)を作る、次にJavascriptを覚えてリッチなUIを作る、Databaseやサーバーサイドの言語を覚えて掲示板を作る、SNS連携もできるようになる、ログイン機能もつけることができた、iPhoneアプリも作れるようになったといった報告を週一で送る感じです。
数ヶ月も進捗報告していると流石に根を上げて会ってくれる企業の人が出てくるでしょう。もうここまで来れば高い確率で採用してくれるでしょう。
繰り返しになりますが、ここで重要なのは技術力ではなくて、短期間の成長速度です。だから現時点での技術力はどうでもいいんです。
お金を使ってプログラミングの相談相手を見つける方法
お金を払ってプログラミングの相談相手、一緒に勉強する仲間を探すこともできます。
プログラミングスクール
お金に余裕がある人、就職活動などを控えていて短期間で実力を伸ばす必要がある人におすすめです。スクールに通うとプログラミングを教えてくれる人もいますし気軽に相談もできます。スクールによっては他の受講者とチーム開発するようなところもあります。
モチベーションが落ちない工夫が随所にされているところが良いです。
オンラインサロン
勝又健太さんが運営する「雑食系エンジニアサロン」などオンラインサロンを利用する方法です。月額980円です。
僕も研究のために数ヶ月入っていました。現役エンジニアも多数在籍しているので気軽に相談できる環境が用意されています。ただ質問や相談の仕方が雑だったり、基本的な感謝の気持ちを相手に伝えることができない人は良い回答がもらえません。これは当たり前のことですが。。
オンラインサロンを活用するときは
自分のほうがプログラミングの知識が乏しいことを自覚しつつも、自分が詳しい何か他の分野の知識を提供したり、他の参加者から感謝されるような行いを率先してやってください。
そうすればコミュニティ内で助けを求めたときに誰かが手を差し伸べてくれるでしょう。
MENTA
メンターを見つける「MENTA」というサービスがあります。
これは現役エンジニアやプログラミングに詳しい方に1000~数千円払い個別に相談をすることができます。オンラインで通話可能の人もいるので言葉でうまく説明できない悩みや困っていることも相談しやすいのが良いところです。
メンターによっては月額制でより手厚いサポートをしている方もいらっしゃるのでご興味のある方はぜひチェックしてみてください。
間違った勉強法をしないために気を付けておきたいこと
これまで環境づくりにフォーカスして挫折しないコツについて話しました。
ここからは初心者の人に伝えておきたい心構えについて書きます。
資格の意義
よく初心者の方から「エンジニアになるために取っておいたほうがいい資格はありますか」という質問をもらいます。Web業界においての資格の位置付けは是非知ってほしいです。
まず資格がなくてもWebエンジニアはできます。医者のような免許制ではありません。
気を付けておきたいのは資格を持っていればWebエンジニアになれるわけではないということです。
(↑資格の正しい認識については動画で説明しているのでこちらをみてください。)
Webエンジニア採用において資格の配点は100点満点中5点くらいです。仕事をする上で重要なことが他にありすぎるので配点が低いです。なので資格があれば採用されるわけではないです。
じゃあ資格は意味ないのか?
資格取得のための勉強は意味あります。
一定の範囲の知識を体系的に学ぶことができるからです。特に勉強の方法がわからない初学者が資格の勉強をすることは有用です。
書籍を使った勉強について
「おすすめの本はありますか」という質問もよくもらいます。
回答としては以下のようになります。
プログラミングを始めた数ヶ月間は書籍を読まなくてよいです。プログラミングの基礎がわかり、数百行くらいのプログラムを一から書けるようになったら書籍を読みましょう。
読まなくて良い本
書店に行けば読まなくて良い本が大量にあります。
・プログラミング言語の文法を学ぶ系の本
これはオンラインにたくさん情報があります。またJavascript、Pythonなどバージョンによって大きく書き方が変わる言語は注意が必要です。情報が古いと有用ではありません
・フレームワークを学ぶ本
例えばReactやVue.jsを学ぶ本です。これらもアップデートの頻度が高く書籍になっている時点で情報が古い可能性があります。
・初心者のためにiPhoneアプリ、Androidアプリの作り方を教える本
こちらも情報が古い可能性があります。特にiPhoneアプリはXcodeの仕様が変わると画面の見た目も変わることがあるので、書籍に掲載された画面が出てこない、見つからないというケースが出てきます。
読んだ方がいい本
プログラミング言語やライブラリに依存せず、ソフトウェア開発全般に通ずる考え方を教える本は有用です。
例えば「リーダブルコード」という本があります。これは読みやすいコードの書き方を紹介しています。このような本は時間が経っても知識が陳腐化しません。
以上が独学でプログラミングを勉強し始めようとしている大学生が知っておくべきことでした。環境づくりを意識してがんばりましょう。
サポートは動画制作費に使わせて頂きます。