プログラマーになりたい人必見!成功するプログラミング独学方法とは?
最近、注目を集めている職業、プログラマー。
専門的な職業であることから、「かっこいい」「たくさん稼げそう」などと、好意的な印象を持つ人が多いですよね。
と同時に、「実際どんな仕事なのかは分からない」「どうなったらなれるのか分からない」など、ナゾが多い職業でもあるようです。
そんな職業でありながら、「なんとか独学で習得してものにしたい!」と考える人も多いのですが、挫折をしてしまうケースも多々見られます。
今回は、そんな『独学でプログラマーを目指す人』にむけて、挫折する原因を示しながら、独学で学ぶための方法を解説していきたいと思います。
プログラミングってなに?
そもそもプログラミングとはどういうことなのか、皆さんは説明できるでしょうか。
いまいち、理解していない方むけに、まずはそこから説明をしていきます。
プログラミングとは、コンピューターに指示を行うことです。
といっても、コンピューターには、わたしたちの言葉、日本語であったり、英語や中国語が理解できるわけはありません。
コンピューターには、コンピューターなりの独自の言語があるのです。
それが、プログラミング言語です。
わたしたちは、このプログラミング言語で指示を与えることで、コンピューターにさまざまなことをさせているのです。
プログラミング言語には種類がある
「プログラミングを行うには、このプログラミング言語を覚えればいいのね?」
・・・たしかに、そのとおりですが、このプログラミング言語には種類があるのです。
わたしたち人間の言葉に、日本語、英語、スペイン語、中国語があるように、プログラミング言語にもいくつも種類があります。
また、英語や中国語のように使用している人数が多い言語もあれば、日本語やタイ語、ルーマニア語などのように、使用している人がその国民だけで、人数自体が少ないものもありますよね。プログラミング言語も同じように、さまざまな分野で活躍しているものから、一部の分野で使用されているだけで、使用しているエンジニアが少ないものもあります。
ただし、その言語がなくなってしまって良いかとなると、そうではないと言い切れますよね。
プログラミング言語もあまたの言語があり、それぞれの分野で働くエンジニアは、そのプログラミング言語を使ったプログラムを作り続けているのです。
プログラミング独学のために必要なパソコンスペック・環境
プログラミングを習得するにあたり、どのような環境を揃える必要があるのでしょうか。
プログラミングはコンピューター上で行うものなので、当然パソコンが必要となります。
そこで、プログラミングを習得するにあたって必要な、パソコンスペックやソフトについて具体的に説明してまいります。
<<パソコンスペック>>
○CPU::Intel Core i5相当またはそれ以上(現在、Core i3のパソコンをお持ちの方でも、わざわざ買い換えなくてもOK)
○メモリ:8MB以上(現在4MBの方は、メモリ追加を望ましいです)
○ハードディスク/SSD:空きが256GB以上(プログラムを保存するのに使います。写真などいっぱいになってしまった場合は、写真を外付けハードディスクに保存したり、ストレージサービスを利用すればOKです、)
○モニター:本体と一体型で持ち運びが楽なノートパソコンがおすすめですが、その代わりモニターは大きめのほうが使いやすいです。複数のツールを立ち上げて同時に作業をするということになるため、視覚的に楽になるからです。
○OS: iOSアプリ制作が目的であればMacOSにする必要あり。たとえば、プログラミング言語のなかでもiPhoneやiPad上で動くアプリケーション制作に使われる「Swift」を学びたい場合は、WindowsPCではなくMacを用意しましょう。ちなみに日本人が開発したプログラミング言語、「Ruby」もMacがおすすめです。
なお、どんなプログラミング言語があって、どのような特徴があるかは、「やりたいことやタイプから探す、学びたいプログラミング言語とその解説」を参照してくださいね。
<<その他の環境>>
○インターネット環境
○IDE=Integrated Development Environment(インテグレーティド・デベロップメント・エンバイロメント):日本語では「統合開発環境」と訳されています。
コードを書くためのテキストエディタや、コードをコンピューターが実行できるように形式変換をするためのコンパイラ、バグの発見・修正に役立つデバッカがセットになったものです。
自宅PCでプログラミングを独学する場合、この環境作りがもっとも重要であり、そしてハードルが高いといわれています。
プログラミング学習にはどれくらい時間がかかる?
パソコンや開発環境を準備したうえで、プログラミング言語を習得するのは、どれくらい時間がかかるものなのでしょうか。
プログラミング言語の独学を解説するWebサイトをみると、200時間とかかれたものや、1000時間とかかれたものなどさまざまです。
200時間と1000時間といえば800時間も差があります。
1日あたり8時間学習に充てたとして、前者は25日間、後者は125日間、つまり100日間も差があるわけです。
これほどまでに異なる数字がでる理由はどこにあるのでしょうか。
もっとも大きいのは、どのプログラミング言語を選ぶのかということです。
プログラミング言語には種類があると説明しましたが、プログラミング言語により習得の難易度が全く異なるのです。
比較的簡単に学べるものならば、たしかに200時間で習得できるでしょう。
しかし、難解なものも存在しており、まったく未経験の方が習得するには、1,000時間でも
足りない可能性が高いです。
参考までに、オンラインで学べるWebサービスの例をおみせします。
こちらのオンラインスクールでは、プログラミング言語別にコースを用意していますが、いずれの言語も「集中して学びたい人向け」の4週間プラン、「じっくり学びたい方向け」の8週間プラン、「多忙で時間がない方向け」の12週間プラン、「焦らず学びたい方向け」の16週間プランが用意されているのが特徴です。
しかし、これらの期間は、あくまで区切りとして設けているだけであり、実際に4週間で習得できるとは考えないほうが良いでしょう。
もともと、プログラミングの経験が少しでもある方がJavaを取り組む場合は4週間で習得ということも可能でしょうが、未経験の方が取り組む場合、実際に自分でプログラムが組めるようになるには4週間では厳しいでしょう。
プログラミング独学には挫折も多い!
「プログラミングを独学で習得してみせる!」とチャレンジする人は決して少なくはありません。
なぜなら、高速インターネット環境やWi-Fiが当たり前のいま、時間がある学生が、通学時間や帰宅後の時間を利用して少しずつ学ぶことは、決して不可能なことではないからです。
また、副業が自由化され、仕事をしながらプログラミング学習をはじめるサラリーマンも増えつつあるようです。いろいろな企業でテレワーク導入が進みつつありますが、とくに、在宅ワークが可能なプログラマーに対して、憧れもあるかもしれませんね。
もうひとつは、プログラミング言語に関するオンラインスクールや解説サイトが増えてきたからです。専門学校などに入らず、いままでどおりの生活を保ちつつ習得ができるとなれば「とりあえずやってみよう!」と思うのも当然でしょう。
プログラミング学習をはじめることに対してハードルが下がったにもかかわらず、挫折してしまう例も増えているようです。
専門学校などに入るのと異なり、手軽に始められることが気軽にやめることにも繋がるのでしょう。非常に残念なことですよね。
そのような状態を避けるために、なぜ挫折をしてしまうのか、よくある失敗例を学んでおきましょう。
失敗しない方法その1~IDEの活用~
自分のパソコンでプログラミングを行うには、下準備が必要です。
コードを書くには、まずテキストエディタが必要です。
これはパソコンに最初から入っている場合が多いのでとくに問題はありません。
ただし、コードを書く際にナビゲーションをしてくれるテキストエディタもあります。メモ帳と比較してプログラミングを容易にしてくれるので、準備しておくことがおすすめです。
つぎに、自分が書いたプログラムをコンピューターが理解してくれるような言葉に変えるコンパイラが必要です。そのままではプログラムは動かせないからです。
また、自分が書いたコードに誤りがないか見つけてくれるデバッガも、最低限必要なものとしてあげることができます。プログラミングは1字1句正しく書くことが重要だからです。言ってみれば「バグとの戦い」でもあります。だからこそ、エラーを見つけて修正する仕組みは必須。これらが揃って初めて、プログラミング学習が行えることとなります。
初心者の方は、これがネックになる可能性が高いです。
理由としてはいろいろありすぎること。1つ1つ見ているだけで時間がかかってしまいます。
ついては、初心者の方でとくにこだわりがない場合は、これらのものがすべて入っているIDEのなかから、自分に合いそうなものを見つけることが重要です。
使いやすいと評判の高いIDEは以下のとおりです。
まずはIDE探しをしっかり行うようにしましょう。
⚫Eclipse(イクリプス)
出典:ECLIPSE FOUNDATION
無料で使用できるメジャーなIDEです。IBMが開発したJava用のIDEでしたが、現在はオープンソースとして、自由にダウンロード、利用できるようになっています。また、C言語やC++、PHPなどにも対応しており、そのほかのカスタマイズも可能。使い勝手の良いソフトとして高評価されています。
ちなみに、上の写真では英語ですが、日本語化も可能です。
⚫Visual Studio(ビジュアル スタジオ)
出典:Microsoft
Microsoft社が開発した無料でダウンロードできるIDEです。
Windowsパソコンだけでなく、MacOSでも使用できるバージョンもあります。
一番のポイントは軽くて使いやすいということ。編集や実行、デバックなどの基本的な作業も簡単にできるうえ、拡張機能によるカスタマイズを行うことができます。Visual BasicやC++、C#など、汎用的なプログラミング言語を使うエンジニアに愛用されています。
ちなみに、AndroidやiOS用のアプリの開発にも使用可能ですよ。
フル機能を詰め込んだWindowsむけVisual Studioのほか、Microsoftでは、Visual Studio CodeやVisual Studio for Macなども公開しています。
●Xcode(エックスコード)
出典:Apple Developer
Apple社が開発した無料のIDEです。
MacOSや、iOSアプリ開発をしたい方におすすめです。Swiftというプログラミング言語を学ぶ人はこちらを利用します。現在は、iOS専用でなくてもAndroidの両方が対応できる、いわゆる「クロスプラットフォーム」もありますが、iOSに特化したエンジニアは、Xcodeを利用する場合が多いです。
●Ruby Mine
出典:RubyMine
プログラミング言語のひとつであるRubyを学びたいという方におすすめなのが、Ruby開発を目的につくられたRubyMineです。エラーハイライトやコード補完などの機能もあり初心者でも使い勝手が良いと評判です。
スマート検索を利用して目的の場所にジャンプできたり、ワンクリックだけで、宣言やスーパーメソッドなどに素早く切り替えができたりと、細かい工夫がなされているのも特徴です。
潜在的なエラーを検出してくれたり、初心者にはなにかと便利な機能も。有料ではありますが、無料で30日間体験することが可能です。
●Android Studio
Google developers
Android 開発用の公式 IDE「Android Studio」。Android アプリの構築に必要なものがすべて含まれています。しかも、コードの自動補完・置換・検索といった機能が備えられており、簡単なアプリならソースを一切記述することなく作成することも可能。まさに初心者にうってつけのIDEといえます。なお、仮想端末環境の装備により、Android端末を使わずに動作確認も可能です。
あくまでAndroidアプリを開発したいという方むけとなりますが、大変おすすめのアプリといえます。
●IntelliJ IDEA
出典:JET BRANS
JetBrains社が開発したIDEで、汎用性が高いJavaやScala、Kotlin、SQLなどといったメジャーなプログラミング言語に対応した万能プラットフォームです。また、人間工学に基づいたデザイン構成を行っているため、直感的に使用できると初心者にも好評です。当然、コーディング、デバッグ、テストなど、これひとつで行うことが可能なことから、多くのエンジニアに利用されています。
また、学んでいる言語ごとに、使用方法を公式サイトで参照できるなどサポート体制もばっちり。
動画チュートリアルもあるので、独学でプログラミング言語を習得したいという方にもおすすめです。なお、無料で30日間、体験が可能です。
失敗しない方法その2~プログラミング言語のチョイス~
プログラミング言語を学ぶにあたり、途中で挫折する大きな理由の1つは、プログラミング言語の選択ミスもあげられます。
プログラミング言語にはさまざまな種類があることは説明しましたが、十分吟味しないで決めると、途中で嫌になり投げ出してしまう羽目になります。
具体的には以下のようなケースが見られます。
1:選んだプログラミング言語が難しすぎた
高収入であることや、求人情報が多いことを優先し、習得に難しいプログラミング言語を選んでしまった。もちろん、プログラミング学習における時間がたっぷりととれる方や、会社がプログラミング言語習得に協力してくれる、知人や社内にプログラミングについて教えてくれる人がいる場合は、難しい言語でも習得することが十分できるでしょう。
しかし、上で挙げたような恵まれた環境にいないにもかかわらず、独学で難易度の高いプログラミング言語を選んでしまうと、「思っていたより大変だ!」などと、苦痛になるケースが多いです。だからこそ、具体的にプログラミング言語を学ぶ前に、プログラミング言語自体の難易度をつかんで、しっかりと選ぶことが大事なのです。
2:やりたい分野に合わせたプログラミング言語を選んでなかった
プログラミング言語には種類があります。
「アプリをつくるにはこのプログラミング言語」「Web制作をしたいならこのプログラミング言語」といったように、目的に応じたプログラミング言語をチョイスする必要があります。やりたい分野と違うプログラミング言語を選んでしまうと、仕事に生かすことができません。
プログラミング言語の難易度や使われる分野については、先に紹介した関連記事をご参照くださいね。
失敗しない方法その3~具体的な目標を設定しよう~
あなたが、プログラミング言語を習得する目的とはなんでしょうか。
そういった質問をすると、「高収入を得たいから」「子育てをしながら在宅ワークで働けそうだから」「将来独立、または起業できそうだから」などといった回答をする人が多いです。
しかし、プログラミング自体に具体的な目的がないと、やる気の継続や効果的な学習が行えない恐れがあります。
では、プログラミングに対する具体的な目標ってなんでしょうか。
それは、「iPhoneのアプリをつくりたい」「企業の基幹システムをつくる人になりたい」「かっこいいWebサイトをつくりたい」といったようなことです。
さらに言うと、「友達など限られた人と、写真や音楽ファイルをオンライン上で安全に共有するサービスをつくりたい」や、「自分の町の情報を自由にアップしたり、外部の人がそれを見て観光に訪れるきっかけとなるようなWebサービスをつくりたい」、「自分がつくったゲームアプリを、他人が試して、気軽に購入できるAndroidアプリをつくりたい」など、より具体的な目標だと、やる気の継続につながります。
また、その目標に向かって、具体的にプログラミングを行えるので、狙いを定めた効果的な学習が行えます。
プログラミングは、決まったコードを暗記すればよいのではなく、「〇〇をすれば、△△のようになる」など、具体的なコードを書くことが、プログラミング言語習得の近道だからです。
もし、実際にあなたがつくりたいプログラムが思いつかない場合には、自分が利用しているものや知っているサービスやシステムの真似をするなど、具体的な目標をたててみてくださいね。
失敗しない方法その4~相談先を確保しよう~
プログラミング言語習得には必ず壁があります。
プログラミングは、暗記してそのコードを書くという作業ではありません。プログラミング言語はあくまで手段であり、やりたいことに応じて、コードを駆使してプログラムを仕上げることが必要なのです。
単なる打ち間違いによるエラーならまだしも、きちんとコードを書いたつもりでも、思ったような動きをしないときが必ず起こります。しかも、何度考えても理由がわからない、そんな状態があることでしょう。
そんなとき、間違いを見つけて訂正してくれる人がいればいいのですが、本当に独学で学ぶとなると、そうはなかなかいかないでしょう。
だからこそ、せめて、解説サイトが多くあるプログラミング言語を選ぶことが必要です。
また、オンラインスクールでも、質問の受け答えをしてくれる手厚いサービスがあるスクールを選ぶことが重要です。
「1コインで授業が受けられる」「定額料金で好きなだけ授業が受けられる」など、さまざまなスクールがありますが、必ずサポートが充実しているスクールを選ぶようにしましょう。
まとめ
今回は、プログラマーを目指している方のなかでも、プログラミング独学法を探している方むけに解説をしてまいりました。挫折の理由やその対策を十分理解したうえで学習すれば、独学でもプログラミング言語を習得することができるはずです。
プログラマーは将来的にも必要とされる職業です。
プログラマーとして独り立ちできるよう、一歩一歩進んでいきましょう。