プログラミングを仕事にして収入を上げる方法

プログラミング入門完全版!初心者が基礎から独学で勉強する方法

作成: 2018.09.27 更新: 2019.07.11

 

>> 世帯年収300万以下限定!
転職成功まで受講料発生なし

プログラミングを独学してみようと思って本を買ってみたものの、さっぱりわからない。何がわからないかもわからない。

そんなふうにつまずいている人も多いのではないでしょうか。独学でも効率的に勉強し、プログラミングの力をつけていくには、勉強前に知っておくべきことがあります。

それを知れば、独学でも今までよりスムーズにプログラミングの勉強が進むでしょう。

今回はプログラミング初心者の方でも独学でプログラミングをスムーズに学ぶことができる手順・期間、そして、プログラミングを学ぶ上で立ちはだかる壁の乗り越え方を、テクノロジースクールTECH::CAMP、TECH::EXPERTを運営する株式会社divのエンジニアがご紹介します。

プログラミングを独学で学びたいあなたが知りたい情報が詰まった記事も多数紹介しています↓
プログラミング独学12のSTEP_PC_banneri

この記事の目次

プログラミングを学ぶ前に知っておくべきこと

そもそもプログラミングとはなにか、きちんと説明できるでしょうか。

または、とにもかくにも形から、ということで、PCの購入を考えている方もいるかもしれません。

どちらの場合でも、まず学習を始める前に下記の章で基本知識をおさえましょう。

プログラミングとは?プログラミング言語とは?

プログラミングとは、コンピューターにしてほしい仕事を順番に書き出した指示書のようなモノです。

コンピューターは人間と同じ言葉を理解することはできないため、専用の言語=プログラミング言語を用いて指示を与えます(プログラミング言語を記述していくことを「コーディング」と呼びます)。

このプログラミング言語は200種類以上あると言われていますが、実際に使われることが多いのはこの10分の1程度です。

プログラミングは、単純な作業の高速処理や自動処理を得意としています

私達の生活を豊かにしているもののほとんどが、プログラミングによるものだと言っても過言ではありません。

LINE・Twitter・Facebook等のスマートフォンでの利用率が高いアプリケーションや、あらゆる機種のゲームは、プログラミングで作ることができます。

また、仕事面で言えば、エクセルでの面倒な作業や、ツール同士の連携などを自動化することも可能です。

このように、プログラミングは私達の便利な生活を支えています

初心者でもプログラミングの独学(独習)は可能!

「プログラミングに興味がある。けれど、初心者や未経験者には難しそう……」

「いきなりお金をかけてプログラミングスクールに通うよりは、まずは独学してみたい」

「独学とプログラミングスクールでの受講、どっちがいいのだろう?」

プログラミングを初めて学ぶ上で、こうした疑問を持つ方も多いでしょう。

結論から言えば、初心者でもプログラミングスキルを独学で身につけることは可能です!

独学を始める前に大事なことは「パソコンの準備」と「学習時間の確保」です。それぞれ詳しく解説します!

独学するならまずはPC(パソコン)を用意しよう – プログラミング学習には Windows か Mac どちらが良いのか

300時間の学習には、まずはパソコンが必要です。

プログラミングを勉強するにはPCが必要ですが、やはりどの機種が向いているかは気になりますよね。

そこでよく比較されるのが、WindowsとMacです。プログラミングにより向いているOSはWindowsなのでしょうか、Macなのでしょうか。

プログラミングにはMacがおすすめ!

結論から言いますと、プログラミングにはMacをおすすめします。

今からパソコンを新調しようと考えている方は、Macを購入すると良いでしょう。

もちろん、既にWindows OS搭載のPCを持っている場合は無理してMacを購入する必要はありません。

ただし、iOS向けアプリ(iPhoneアプリ)開発を行う場合は、Macが必須です。

さらにMacのメリットについて知りたい方は、以下の記事をご覧ください。

この記事ではMacを選ぶメリットや、安く購入する方法についてさらに詳しくまとめています。

じゃんけんゲームなどの簡単なプログラムであれば数時間、習作であれば数十時間で作成できるようになります。

どのプラットフォームでも、言語を学んで最初の実用的なアプリを作れるようになるまでの時間は300時間程度。1日10時間勉強するとして、最低でも1ヶ月の学習が必要です。

短期間の独学でスキルを身につけたい方は、まず「300時間の学習時間を確保するのに、どれだけの日数が必要か」を考えてみると良いでしょう。

作りたいサービス別 目安学習時間とロードマップ

こんなサービスであれば、このくらいの時間で作成できるという目安をご紹介します。あくまで目安ですので、勉強方法やペースによって時間は変わります。

電卓

電卓アプリの場合は変数の扱い方、算術演算のやり方、値の入力・出力方法をといった基本的な知識が理解できれば作成可能です。

12時間程度で、整数の四則演算ができる電卓を作れるでしょう。

ToDoアプリ

ToDoアプリの場合は、電卓アプリで必要な学習事項に加えて、変数の内容をプログラムが終了しても保存できる仕組みの理解が必要です。

また、デザイン(UI)もToDoアプリらしくする必要があるので、おおよそ24~36時間ほどかかるでしょう。

Web掲示板

Web掲示板の作成には、最低でも240時間以上はかかるでしょう。

Webアプリケーション開発の場合は、ToDoアプリの応用で作成可能です。iOSやAndroidアプリとして作る場合は、サーバー側のプログラムやデータベースの用意が必要です。

ここで紹介した学習時間の目安は、あくまで「参考」にすぎません。効率よく学習すれば、もっと学習期間は短くて済みますし、学習方法が間違っていればどこかのステップで詰まって先に進めなくなります。

「せっかく勉強したのに途中でわからなくなって挫折した」

そんな事態を防ぐためには、学習の4つのステップを守りましょう。プログラミング学習の4ステップを続けて解説します!

▼実際にプログラミングを行っているエンジニアがおすすめする学習サイトについて知りたい方は下記の記事をご覧ください。無料で人気の学習サイト利用すれば、コストを抑えて効率良く学習が進められるでしょう。

プログラミングを学ぶための4つのステップ

オススメするプログラミングを学ぶ手順は次の通りです。

ステップ1: 作りたいものを決める
ステップ2: 学ぶべき言語を決める
ステップ3: ツールの使い方を学ぶ
ステップ4: 言語を学ぶ

ステップ1:作りたいものを決める

「プログラミングをしたいけど作りたいものがない。」ということは、「用事は無いけどただ山を歩きたい。」ことと同じです。山の景色を楽しむように、コンピュータの世界に触れてみたいのであれば、それも良いと思います。

しかし、もしあなたがプログラミングを学ぶことで自分を高めたいと思うなら、目標を決めましょう!

「iPhoneで〇〇みたいなアプリが作りたい!」といった程度でも、「このアプリを作れば、世界を変えられる」と思うようなプロダクト作りを目標としてもいいでしょう。

具体的なプロダクトをイメージしながら、学習することで学習効率は大幅に上がりますまた、学習のモチベーションが低下した時に、目標を再確認することで再び学習意欲が高まります。

何より真にあなたが欲しいものを作れるのは世界であなただけなのです。

どうしても何も浮かばない方は、先に紹介した電卓やToDoアプリなど、比較的短い学習期間で開発できるアプリを作ってみるのが良いでしょう。目標や目的が決まることで、学習のやり方も見えてくるはずです。

無料プログラミング体験会へ

市場動向を考えて作るものを決めるのもおすすめ

もし作りたいものが明確に決められないという場合は、最近のIT分野の市場動向を見て決めるのも良いでしょう。プログラミングを身につけて就職・転職をするのであれば、よりニーズの高まっている分野に必要なスキルを持っていることで「即戦力」として採用される可能性が高まります。

先ほど説明したiPhoneなどのアプリ開発。スマホ向けアプリは端末自体の普及に合わせて市場拡大中です。未だにニーズの高い分野でしょう。

その他にはVR(仮想現実)、AI(人工知能)、IoT(モノのインターネット)の分野も勢いがあり、2018年以降も大きく市場が広がると予想できます。これらの分野に関わる開発を行ってみてはいかがでしょうか。

▼参考事例として、日本国内のVR市場についてまとめた記事を紹介します。

ステップ2:学ぶべき言語を決める

「初心者が最初に学ぶべき言語」や「初心者オススメの言語」と検索してみると、C言語などの記事がたくさん出てきますよね。

では、一からプログラミングを学びたい初心者は、どのような言語を学べば効率良く開発できるでしょうか?

プラットフォームごとの代表的な言語をご紹介します。

▼最新情報はこちら。TECH::CAMPを運営する株式会社divのエンジニアが監修しました!

代表的な言語 iOSアプリを作るには Swift(スウィフト)

swiftscreenSwiftは、2014年にAppleが発表したプログラミング言語です。

言語のコンセプトに「モダン・安全・高速・インタラクティブ」を掲げており、初学者でもとても扱いやすい言語になっています。

Swiftが登場する以前、Apple系ソフトウェア開発言語では一般的にObjective-Cが使用されていましたが、他の言語と比較して学習コストの高いプログラミング言語でした。

そんなObjective-Cが抱えていた扱いにくさを、Swiftはモダンな文法や仕組みを用いて解決しています。よりシンプルなコードとなり学びやすくなりました。

また、SwiftはObjective-Cと互換性を持つため、Apple系ソフトウェア開発では今後も必要な言語です。

現在もアプリの市場は拡大しており、多くの企業が参入しています。エンジニアの中でもSwiftが使える技術者の需要は高まっています。

Swiftは他の言語と比べると新しい言語です。そのため、経験者がまだ少ないという現状から影響しているようです。給与や待遇などもよくなる傾向にあります。

代表的な言語 Androidアプリを作るには Java(ジャバ) もしくは Kotlin(コトリン)

Java ジャバ/Kotlin コトリン プログラミング言語Javaは、1995年にSun Microsystemsによりリリースされたプログラミング言語およびコンピューティング・プラットフォームです。

もともとはWebページ上での使用を想定して開発された言語ですが、あらゆるOS上で動かせるという特徴から、今ではAndroidアプリ開発を始め多種多様に用いられています。

またJavaと合わせて、Kotlinもオススメです。

2017年5月17日のGoogle I/O(Googleが主催する開発者向けのイベント)にて、Androidの開発言語にKotlinが追加されることが発表されました。

KotlinはSwiftに似た文法を持ち、簡潔かつ安全なプログラムを記述しやすい言語です。

現状だとJavaと比べ参考文献や学習のメソッドを記したサイトが少ないので、初心者の方が勉強するにはハードルが高いかもしれません。

しかし、将来性は非常にあるためこれからAndroidアプリ開発を学習したいという方にもオススメできる言語です。

KotlinがAndroid開発言語として追加されてからまだそれほど時間が経っておらず、Kotlinを扱えるエンジニアは多くないのが現状です。

Anddoidアプリ市場も未だ拡大中であるため、Kotlinを扱えるエンジニア、プログラマーの需要も高まっています。

求人数も増えており、給与や待遇も他の言語を扱えるエンジニアより良くなる傾向にあります。

代表的な言語 Webアプリを作るには HTML & CSS & Ruby on Rails

HTMLは、Webページを記述するためのマークアップ言語(※)です。CSSは、それらの文章の構造や修飾情報をどのように装飾するかを指定する言語です。

Rubyは、SwiftやJavaとは異なりスクリプト言語という分類に入るプログラミング言語です。

比較的実行速度が遅いという欠点があるスクリプト言語ですが、簡単なプログラムであれば、短時間で構築して実行できるので、主にWebアプリケーション開発に用いられています。

また、Rubyは日本人が開発したこともあり、公式の日本語リファレンスが豊富で初心者でも非常に習得しやすい言語です。

まず最初に学習するプログラミング言語としてRubyを選ぶ人は多く、プログラミングの教育の場でもRubyが採用されるくらい習得しやすいです。

そんなHTMLやRubyを使って、Webアプリケーションを作るためのフレームワーク(ソフトウェアの部品集のようなもの)がRuby on Railsです。

素早く、高品質なアプリケーションを開発できることから、Webアプリケーション開発においてはRuby on Railsはスタンダードのフレームワークとして採用されています。

※マークアップ言語…コードの一部を「タグ」と呼ばれる特別な文字列で囲うことにより、文章の構造(見出しやリンクなど)や修飾情報(文字の大きさや組版の状態など)を、コード中に記述していく記述言語のことです。

Rubyは株式会社divで働くエンジニアやTECH::CAMPのメンターも一押しの言語です。エンジニアやメンターの声を以下の記事でまとめています。


代表的な言語 AI(人工知能)開発にはPython(パイソン)

AI(人工知能)という言葉をご存知でしょうか。

AI(人工知能)とはコンピュータ上で、人間の知能のように物事の判断・判別などを行おうとする技術のことです(開発者により定義は様々)。

2000年から現在まで、世界的にAI(人工知能)への注目が高まったことから「第3次人工知能ブーム」が到来しているとされています。

過去にも1950~1960年代に第1次人工知能ブーム、1980〜1990年代に第2次人工知能ブームが訪れました。AI(人工知能)は60年以上前からある技術だということがお分かりでしょう。

しかし第1次、第2次ブームの際にはまだ技術力が乏しく、理想のAI(人工知能)からは程遠いものしかできませんでした。

2000年以降はAI(人工知能)の精度が高まりを見せており、3回目のブームとなっているのです。

このAI(人工知能)開発に使われる言語がPython(パイソン)です。

コードがシンプルで、AI(人工知能)開発に向いたライブラリなどが豊富なことからPythonが採用されています。

AI(人工知能)開発なんて聞くと、初心者にはハードルが高く感じてしまうでしょう。

Pythonにできることは他にもたくさんあり、Webアプリ開発やデータ解析など汎用的に使える言語なのです。

学習難易度はRubyのように低めで、プログラミング入門のための言語として、人気を集めています。

▼Pythonの学習を始めるのであれば以下の記事も合わせてお読みください。Pythonでの開発に必要なソフトをダウンロードするやり方や、学習するメリットなどをまとめています。

ステップ3:環境構築とツールの使い方を学ぶ

環境構築とは、選んだプログラミング言語をコンピュータ(パソコン)で動かせるようにすることです。

環境構築とは、特定の装置やソフトウェア、システムなどが動作するように、コンピュータや情報システムの状態を整えること。特に、コンピュータにソフトウェアを導入したり設定を調整することで、対象のソフトウェアが動作する環境を作り上げる作業を意味する場合が多い。(出典:環境構築とは – IT用語辞典

料理でも調理器具の揃ったシステムキッチンがあるように、ソフトウェアでもIDE(統合開発環境)と呼ばれるソフトウェア開発に必要なツールが揃ったソフトウェアがあります。

これ一つでプログラムの作成はもちろん、実行やデバッグ(プログラムの動作の誤りを修正すること)に便利なツールも用意されています。

IDEはその全てを覚えなくても、必要なところを部分的に使うことでプログラムを作ることができます。プログラミング初心者にとって、大きなメリットとなるでしょう。

ここでは、前述した3つのプラットフォームでよく用いられるIDEと、その環境構築方法を説明した記事を紹介します。

代表的なツール iOSアプリを作るには Xcode

images (6)Xcodeは、Appleが提供するiOSやmacOSのソフトウェアを開発するのに特化されたIDEです。

iOSシミュレータをはじめとして、開発に役に立つソフトウェアが多数用意されています。

XcodeはmacOSのみ対応していますので、環境構築方法もMacのみの紹介となります。

代表的なツール Androidアプリを作るには Android Studio

andoroAndroid Studioは、Googleが提供するAndroid向けのIDEです。

Xcodeと同様にAndroid開発をサポートするソフトウェアが用意されています。

代表的なツール Webサイトを作るには テキストエディタとWebブラウザ

images (7)Webサイトは、テキストエディタとWebブラウザがあれば開発できます。

テキストエディタでHTMLファイルを作成し、ブラウザで確認を行います。

またJavaScriptを使うことで、ページの動的な書き換えもできるようになります。具体的にはページの要素の書き換えや、ダイナミックな色の変更が可能です。JavaScriptも、エディタとブラウザがあれば開発可能です。

テキストエディタはメモ帳でも利用可能ですが、筆者がオススメするテキストエディタはSublime Textです。

Sublime Textは入力補完が豊富で、足りない機能はプラグインをインストールして追加できます。

Webブラウザはお使いのものでも良いですが、Webアプリのデバッグ用に開発メニューが用意されているChromeやSafari、Firefoxがオススメです。

Webアプリケーション開発には、環境構築が必要

ECサイトやクラウドファンディング、TwitterのようなSNSなど、ユーザーとの「対話性」を持つサイトは「Webアプリケーション」と呼ばれます。

対話性の無いWebサイトとは、管理者からの一方的な情報提供のみが行われる静的なサイトです。

対話性を持つサイトとは、ユーザーがフォームのクリックや情報の入力、商品の購入などを行えるものです。

コンピューターゲームも、ボタン操作を行い敵を倒すなど「対話」を行います。

こうした対話性を持つサイトは、ブラウザ上でアプリケーションを操作する「Webアプリ」です。

Webアプリ開発はテキストエディタとブラウザだけでなく、あらかじめ専用の開発環境を用意しておく必要があります。

Webアプリケーション開発のスタンダードとして使われるのは、Ruby on Railsです。

Ruby on Railsを扱うには、お使いのPCにRuby on Railsをインストールが必要です。

プログラミング初心者は、テキストエディターやデバッガなどが全てインストールできる統合開発環境(IDE)を使うのがおすすめです。以下の記事で詳しくまとめています。

ステップ4:言語を学ぶ

いよいよ言語を学び始めましょう。プログラミング言語も言語のひとつです。外国語を身につける時と同様プログラミング言語も使わないといつまで経っても身につきません。

一つ学んだことがあれば、それを使って一つ簡単なプログラムを作る心構えで挑むと良いでしょう。どの程度理解できたら次に進めば良いかわからない方は、次の質問を自分に投げかけてみてください。

「どうやってそのように動くかは分からないけど、とりあえずコードを書き、正常に実行できるか?」

イエスと答えられるなら、どんどん次の学習に進みましょう。

一度で完璧に覚えようとするより、大枠を理解し、復習を繰り返すことをオススメします。

無料プログラミング体験会へ

独学プログラミング学習お役立ちサイト5選

ここからは、プログラミング独学者にはぜひ試してほしいプログラミング学習用のWebサイトを5つ紹介します。どれも有料会員登録をしない限り、月額無料で利用できるサイトです。

ドットインストール

出典:ドットインストール

ドットインストールは、短いレッスン動画で学習できる初心者向けプログラミング学習サイトです。

すべてのレッスンは3分以内の動画で提供されており、スマートフォンからも視聴が可能です。視聴だけなら移動中でも学習時間に充てられるでしょう。

導入となる初級者向けの動画のほとんどは無料で閲覧できますので、言語を学ぶ上で最初に見ておくと良いでしょう。

Schoo

 出典:Schoo

こちらもドットインストールと同じく、動画を使ったプログラミング学習サービスSchooです。

異なる点としては、Schooの動画は生放送動画という点です。講師はリアルタイムで画面の向こう側で授業をしています。

そのため、もし分からないことがあればその場で質問できるという点が強みです。

近年、動画サービスは増えており、プログラミングの学習も動画を見ながらできるようになりました。

動画は非常に便利で、動画の内容を目で見て、真似しながら学習ができるので、初心者がプログラミングを学ぶハードルも下がります。

しかし、動画を見るだけでは受動的な学習にしかなりません。プログラミングを身につけるためには自分で手を動かすことが重要です。

動画はあくまでも学習への導入や、これからやる作業の全体像をつかむためのものと考えましょう。

動画を見て終わりではなく、その内容に沿って自分でコードを書いてみることで、初めて実践的なプログラミング技術となります。

Stack Overflow

出典:Stack Overflow 日本語版(Beta版)

Stack Overflowは、プログラミングに情熱をそそぐ人のためのQ&Aサイトです。

あなたが遭遇したエラーにどのようなことを試してみたか、具体的に何をしようとしているかを投稿すると、他のユーザーからその問題を解決するための回答が投稿されます。

「どうしてもこのエラーが解決できない!」という時に役立ちます。

学習メソッドを提示してくれるサイトというよりは、教材に載っていない内容を補ってくれる学習サイトというイメージです。

Qiita

出典:Qiita

Qiitaは、プログラミングに関する知識を記録・共有するためのサービスです。

記事に付けたタグや、投稿したユーザ・ストック数・投稿日時の指定など、細かな検索機能で記事を検索できます。

「この言語の◯◯について深く知りたい!」という時に見てみると良いでしょう。

また、Stack Overflowほどピンポイントではありませんが、エラーに対するハウツーが紹介されている記事もあります。

原因がわからず解決できないエラーに遭遇した時にはStack Overflowと合わせて見てみましょう。

Progate

 出典:Progate

Progateはオンラインでプログラミングの学習ができるWebサービスです。ご自身のスケジュールに合わせて進捗させられます。

イラストを中心とした「スライド学習」を採用し、直感的にプログラミングがわかるカリキュラムで学習を進めていきます。

学習した内容は実際にコードを書き、手を動かしながら実践していきます。これによって実用的なプログラミングが身につくのです。

学べるプログラミング言語の数も非常に豊富です。HTML&CSS/Ruby&Ruby on Rails/JavaScript/Java/PHP/Pythonなど。

プログラミング初心者にも学びやすい優しい言語を中心に学習を進めていきます。

独学プログラミング学習お役立ちアプリ4選

あらゆる分野のスマートフォン向けアプリが日々リリースされていますが、プログラミング学習専用のアプリも多数存在しています。

仕事があってまとまった勉強時間の取れないサラリーマンなどは、スキマ時間を勉強に当てられる効率的なツールとなるでしょう。

ここからは。基本料無料で使えるプログラミング学習に役立つアプリを4つ紹介します。

codebelle-スキマ時間で学ぶプログラミング-

出典:codebelle-スキマ時間で学ぶプログラミング-

codebellはiOSアプリケーション開発向けの言語であるSwiftを学べるアプリケーションです。

1つのレッスンあたり3分ほどで終わるので、電車の移動時間や、会社、学校の休み時間などを使って簡単に学習を進められます。

レッスンはチャットのような形で進んでいくので、文字量の多い参考書を読むよりも取り掛かりやすいです。

初心者がプログラミング言語を学ぶ初歩段階として利用すると良いアプリです。

アルゴリズム図鑑

出典:アルゴリズム図鑑

プログラミングを学習する上で「アルゴリズム」(問題解決のための方法を定式化した形で表現したもの)を理解すると捗りやすいです。

このアルゴリズムをアニメーションによって学習できるのがアルゴリズム図鑑です。

このアプリで直接プログラミング言語を学習できるわけではないですが、もっと基本的な部分としてアルゴリズムを理解しておくことで学習の手助けになります。

プログラミングゼミ【低学年から使えるプログラミングアプリ】

出典:プログラミングゼミ【低学年から使えるプログラミングアプリ】

プログラミングゼミは、小学1~3年生の子供達や、学校の先生の意見を反映して作成されたプログラミング学習アプリです。

ゲームのような感覚で、遊びながらプログラミングの基本から応用までを学んでいきます。

小学生から使えるということもあり、かなりゲーム性や遊びを用いた仕様になっているので、少々取り組みにくさを感じるかもしれません。

ただ、プログラミングの基本を学んだり、プログラミングに対する苦手意識を払拭するためのアプリとしては、一番おすすめできます。

Udemy Online Courses

出典:Udemy Online Courses

Udemy Online Coursesは、プログラミング学習に特化したアプリではありません。

ただ、60,000以上の様々な分野の学習コースがあり、各専門講師が教えています。その中にプログラミングやウェブ開発などを教えてくれるコースもあるのです。

無料のコースもありますが、基本的には有料となります。

その分、有料コースは無制限で受講が可能ですので、ご自身の都合の良いタイミングで学習を進められます。

無料のアプリでは基礎の基礎、プログラミングに取り掛かる段階からスタートとなりますが、さらにもう1歩進んだ学習がしたい方はUdemy Online Coursesの利用を検討してみてもいいと思います。

プログラミング学習アプリだけで独学するのは難しい

ただ、現状プログラミング学習アプリは、学習の手助けをするという目的で作られたものが多く、アプリだけこなしていれば実践的なプログラミングスキルが身につくかというと難しいです。

プログラミングの書籍は分厚いものも多く、持ち運びは大変です。移動時間も勉強にあてたい場合などにはアプリによる学習が役に立つでしょう。

実践的なプログラミング技術の向上には、やはりパソコンを使ってコードを書くことが最も効果的です。

TECH::EXPERT 東京・名古屋・大阪・福岡

プログラミング未経験からWebエンジニアとして転職成功まで導くスクール TECH::EXPERT は、挫折しない環境を提供いたします。すべて駅から通いやすい便利な場所。いつでも質問できるメンター(講師)、一緒に頑張る同期がいるから頑張れる。そんな教室を是非見にきてください!

独学でプログラミング学習を始めた人たちの本音は?学習事例や有名人の例を紹介

未経験から学習をスタートしても、300時間あればアプリを作れると紹介しました。短い学習期間でも、電卓やToDoアプリなどが作れるようになるのは事実です。

ですが実際に独学してみると思うようにいかず、挫折したり、途中で飽きるのが人間の性でもあります。

本当に独学で学習をはじめて、エンジニアとして成果を残した人や「皆に使われるサービス」を生み出した人はいるのでしょうか。

ここでは参考までに筆者の例を紹介します。

iOSアプリのケーススタディ(筆者の場合)

大学1年生の時に、独学でiPhoneアプリを作ろうと思い立って勉強し始め、当時、iOSの開発言語だったObjective-Cを学ぶのに2週間かかりました。

高校時代にC言語を学んでいたため、if文やfor文などの制御構文は問題ありませんでしたが、Objective-Cをはじめとしたオブジェクト指向言語ならではの機能を習得するのに時間がかかりました。

次に、ボタンやテキストフィールドなどのUIパーツの使い方を学ぶのに1か月かかり、途中からは並行して、iPhoneアプリ制作を開始しました。

最終的に全期間を通してかかった期間は、3ヶ月ほどでした。

なお、1日の勉強・作業時間は平均して1時間半ほどで、一つのアプリを作るまでに135時間程度かかったことになります。

このことからiPhoneアプリを作る場合、全くプログラミングに触れたことがない方でも200時間程度でそれなりのアプリを作成できます。

 より効率的な学習を促進する4つのコツ

プログラミング学習は時間がかかるもの。

特に初心者のうちは最適な勉強方法や、勉強に対する心がけを見つけにくいかもしれません。

ここからは、プログラミングの勉強を始める前の段階として理解しておきたいことについて解説していきます。

以下の4つのことを把握しておけば、壁にぶつかったとしても解消するきっかけを見つけ出せるでしょう。学習の準備を始める前に目を通しておいてください。

目標・目的は細かく設定する

独学を進める中で意識したことが二つあり、一つは目標や目的を細かく設定することです。

目標を細かく設定することで、自分がどれだけ進んだかが分かりやすくなり、モチベーションの維持や残りの行程の確認にも役に立ちます。

できれば、1日どれくらい勉強したのかを記録しておくこともおすすめします。メモ書き程度でも構わないのですが、記録しておくと自身の成長を振り返りやすくなるでしょう。

1日30分でもいいからやる

もう一つ意識したことは、短い時間でも毎日学習を続けることです。

例えば、毎週の休日にまとめて7時間学習をする場合、前週の復習に1時間くらいかかってしまいます。

毎日少しづつ学習を続ければ、復習にかける時間を少なくでき、より効率的に学習することができます。

プログラミング入門者にとって、最初のうちは学習のハードルが高く感じることでしょう。無理に長時間やろうとすると、集中力やモチベーションの低下につながりかねません。

少しずつ勉強しながらプログラミングの全体像をつかみ、本格的な勉強へと移りましょう。

まずは理解しできなかった部分があっても、現在取り掛かっている教材を一通り終わらせてしまうことをおすすめします。

そしてその教材を2周、3周と繰り返すことで、わからなかった部分を潰していってください。

正規表現の基礎を学ぼう!

正規表現とは、いくつかの文字列を一つの形式で表現するための表現方法です。

この表現方法を利用すれば、たくさんの文章の中から容易に見つけたい文字列を検索できます。

例えば、Apple製品が収められたデータベースの中から「iPod」「iMac」「iPad」などの「先頭に”i”がついていて、そのあと3文字続くもの」を取り出したい時には「^i…」と書きます。

正規表現をマスターすると、文章処理作業の効率が飛躍的に向上します。

それはプログラムの処理を簡単にできるだけでなく、検索・置換する際に正規表現を扱えるエディタならば、ソースコードを大規模に改良する時にも役に立ちます。

独学プログラミングにおける 7つの壁の乗り越え方

入門者にとって、プログラミング学習は高い壁のように感じてしまうこともあるでしょう。

原因のわからないエラーなどに遭遇すると、解決方法がわからず、集中も乱れがちです。環境を構築するところから手が止まってしまうことも考えられます。

まずは以下の7つの方法から試してみてください。

思うようにコードが書けない → まずは真似をする!

理論やコードの意味はわかっても、思うようにコードが書けない方は、まずは真似から始めましょう。

他人のソースコードをコピペせずに書き写し、変数の値を変えるなどすると、動作の理解を深められます。

自分より上手な方のコードを知ることで、適切なインデントやコメントの書き方や、より効率的なコードを学べます。

概念が理解できない →「振る舞いが理解できればOK」と割り切る!

はじめのうちは、仕組みまで完璧に理解する必要はありません。

その時は理解できなくても別の概念を覚えると理解できることが、プログラミング言語を学ぶ上では少なからずあるからです。

仕組みを理解できるのがベストですが、まずは振る舞いを理解することを重視しましょう。

面白くない → 一部を作ってみる!

インプットばかりで学習に面白さを感じられず、モチベーションが低下してきた時は、今まで学習した知識からプロトタイプとして、一部分でも作ってみるとモチベーション回復につながります。

頭の中にあるアイディアを少しでも形にすることで、あなたの目的へと近づいている感覚が得られるでしょう。

また、しばらくしてそのコードを見直し、学習不足だった点を認識することで、別のアプリや本番となるアプリを開発する際、同様のミスがないように役立てられます。

モチベーションが続かない → 独学にこだわらない!

本当に一人でどうしようもなくなった時は他人に助けを求めましょう。

身近にプログラミングに詳しい人や、エンジニアやプログラマーとして働いている人がいるのであれば、わからないところは聞いてしまったほうがより早く身につきます。

その人の学習メソッド、コーディングのやり方を真似してみることで学習のヒントを得られるかもしれません。

もしそのような人がいないのであれば、SNSやブログなどを活用するのも一つの手です。

自分がわからない部分やつまずいている部分を素直に発信すると、それを見た人が答えを教えてくれるかもしれません。

プログラミングを習得することがこのページを見ているあなたの目的であり、独学は手段でしかありません。

プログラミングの体験会に参加して、講師に方法を聞いてみることもおすすめです。

独学ではわからなかったことも、人に聞けばすぐに解決できることも多いので、ぜひ活用しましょう。

無料プログラミング体験会へ

本を読み込む(プログラミング独学におすすめの本)

インターネットで検索した情報から独学もできますが、やはり本で体系だった形で学習するのがおすすめです。

不明な点が出てきた時に調べる辞書としても、入門書のような本が1冊あるといいでしょう。

特に本格的にプログラミングを使った開発をしたい方は、今後、本の力が頼りとなるはず。

本を購入する際には発行年・版数ができるだけ新しいものか、自分の開発環境と同じものを選びましょう。

ここからはTECH::CAMPの現役エンジニアたちがおすすめする、プログラミングの独学に役立つ本を紹介します。

おすすめのプログラミングの基本を学べる本 5選

本記事では、プログラミング学習におすすめの月額無料Webサービスやアプリを紹介しました。

しかし、月額無料の範囲ではプログラミングの導入部分しか学習できないのが実情です。月額課金制のプランに加入せざるをえなくなるでしょう。

プログラミングを基礎から学び、Webサイトやアプリに機能を実装できるレベルになるには書籍かスクールで勉強するのが一般的です。

書籍の数は多いですが、まずは以下の5つの書籍を参考に購入してみてください。どれも丁寧な解説が付いているおすすめ書籍です。

リーダブルコード

言語関係なく、きれいなコードを書くために必要なテクニックを教えてくれる本です。

きれいなコードとは、コードを見た瞬間に何をしているかが伝わってくるコードのことです。

初心者のうちは「何が良いコードか、何が良くないコードか」も分からないので、この本が役に立ちます。

おすすめの本として「リーダブルコード」選ぶエンジニアも多いです。

Webエンジニアが知っておきたいインフラの基本

この本の対象はWebアプリケーションエンジニアや、フロントエンドエンジニアとなります。

そのため専門的な内容も含みますが、普通にWebアプリケーションのプログラミングを行なっているだけでは分からない、インフラの知識が詰まった本です。

Webサービスの高速化や、Webサービスのボトルネックを知りたい方の役に立ちます。

プロを目指す人のためのRuby入門

こちらはRubyの本ですが、言語の仕様・現場で使えるテクニックまで触れている超実践的入門書です。

1つの言語の仕様をざっくり分かっていることは他のプログラミング言語を勉強する上でも役立つので、Rubyから始める人には是非オススメしたいです。

退屈なことはPythonにやらせよう

どういうものがプログラムを利用して自動化できるのかがわかる、非エンジニアや、エンジニア初心者向けの1冊です。

本の中のサンプルコードはpythonで書かれていますが、考え方そのものは他の言語にも応用可能です。そのため、この本で一度学んだ知識は長く使うことができます。

ExcelやWord、PDFファイルなどの有効活用法といったエンジニアでない方でも役に立つ情報が掲載されています。

内容が非常に多い本ですので、目次を参照しながら、自分に必要な項目のみを読んでいくのがおすすめです。

情熱プログラマー ソフトウェア開発者の幸せな生き方

著者のChad Fowlerさんはプロのジャズミュージシャンからソフトウェアエンジニアになりました。このような異色の経歴を通して、キャリア開発の重要性を語ったエッセイです。

これからエンジニア・プログラマーを目指す人々にとっては「練習を続けること」という面で教訓となる1冊です。

上記に紹介した本以外にも、おすすめの本を別の記事にてまとめています。ぜひ参考にしてください。

【Ruby on Rails】キャリアアップのための書籍5選
プロが教える「5分で分かる」Ruby入門!学習法も紹介
【PHP入門】学習方法、オススメ本徹底解説!

独学でできるサービスを利用する

プログラミングを独学で、無料で学べるサービスも登場しています。

書籍で勉強しても、いまいち理解できない。そういったときには、このようなサービスを試してみるのも良いでしょう。

気分転換にもなりますし、復習として役立てることもできます。

【社会人必見!】プログラミングの基礎を独学できるサービス10選
ゲームでプログラミングが楽しく学べる!厳選17サイト【子供から大人まで】

もう、独学は無理! ならばプログラミングスクールを利用する

書籍やいろいろなサービスを使ってみても、うまくアプリを作れなかったり、きちんと実力が身についているのか自信がないと感じる…

そういったときには、プログラミングスクールを利用して学習効率を上げましょう。

以下のページでいくつかのプログラミングスクールを比較紹介しています。

子どもから大人まで!最新プログラミングスクール17校徹底比較
【初心者OK】社会人におすすめ プログラミング教室 15校比較

無料プログラミング体験会へ

学んだことを仕事につなげよう!エンジニア就職・フリーランスへの道

プログラミングを身につけ、さらにスキルアップさせることができれば、それを生かして仕事をしお金を稼いでみるのもいいでしょう。

ここからは、プログラミングをさらに向上させ、エンジニア就職、フリーエンジニアへ進むための基本的な方法を紹介します。

プログラマーに向いているかどうか判断しよう

プログラマーの適正については様々な意見・仮説がありますので、一概には言えません。

それを踏まえた上で、あえて特徴を挙げるならば「論理的思考能力がある人」「大きな問題を細分化して解決できる人」「新しいIT技術に興味がある」「プログラミングが好きな人」などが挙げられます。

▼以下の記事では、プログラマーに向いている人の特徴をより詳しく解説しています。あなたはプログラマーに向いているでしょうか?ぜひ確かめてみてください。

プログラマーにはどんな人が向いている?素質や適性について徹底解説

インターネット上にオリジナル作品を公開しよう

オリジナル作品を制作し世に公開すれば、あなたの実績となります。

仮に自分の作ったiOSアプリが世界中でたった50人にしか使ってもらえなくても、採用する側には少なくとも「自力でユーザーを集められるだけのアプリを作る力はある」と評価してもらえるはずです。

また、その経験はあなた自身の自信にもなります。

どれだけ洗練されたビジネスモデルを持って開発されたサービスも、世に出なければ評価されません。多少荒削りでも、自分の限界までやりきったのなら公開してみましょう。

ただし、個人情報や財産を扱うソフトウェアの場合は慎重になりましょう。しっかりと法律家の指導の下で利用規約を制定し、万全のセキュリティ対策を持って運用しましょう。

それができない場合は公開するべきではありませんし、そもそも作るべきではないでしょう。

GitHubで自分のプログラムを公開しよう

コードを公開して問題ないと判断した場合は、習作であってもGitHubで公開していきましょう。そうすることで、採用担当の方があなたの実力を直接見れます。

GitHubでは、コミット(コードをGitHubにアップロードすること)数が視覚的に分かる仕組みがあり、その活動が活発なほど高く評価される傾向にあります。

(編集部追記 こちらのTECH::NOTEでは社長や人事にエンジニア採用についての取材をすることが多くあります。IT業界の採用担当者からは「GitHubでコードを公開していないエンジニアは採用しない」「判断材料がないため採用できない」という声をよく聞きます。)

IT系の勉強会に参加しよう

勉強会に参加することで業界最先端の技術に触れたり、有名プログラマに技術的アドバイスを受けられることができます。

また、モチベーションを上げる際も勉強会の参加をオススメします。

当日勉強会に参加している人と一緒に勉強することもやる気につながります。もし今後もつながれる仲間になれば、連絡を取り合って勉強の進捗を共有しながら進めるのもいいでしょう。

初心者と上級者のプログラミングの違いを知っておこう

結論から言いますと、目安としてただ動かすだけ」以上のことを考えられるかが、初心者と上級者の分水嶺になります。

例えば、電卓アプリを作るにしても、初心者の場合は四則演算のプログラムを組むことに精一杯で、計算結果がオーバーフローした場合のことや不正な入力について考えなかったり、考えたとしても対処しきれないことがあります。

もしかしたら、最適でない処理を行っていて解を導くのがとても遅くなっているかもしれません。UIも既製品ほどのデザインではないかもしれません。

上級者はそれらの問題を放置しません。それ以前に、問題が発生しないようにコーディングを行います。

ユーザーが操作しないであろうことも世に出す前にあらかじめテストで検証し、高速かつ安全に動作するコードを書くのが上級者です。アイディアを働かせられることも求められます。

プログラムはただ動作すればいいのではなく、その結果が人々の役に立たないといけません。

プログラムが導いた結果が人々の役に立つには、できるだけ早く、正確であり、不正確さや問題が生じた際にはその旨をユーザーに伝えなければなりません。

また、結果を提供する時も受け取る側が理解しやすい形で提供するべきです。そういったことを考えて、プログラムを作成するのが上級者であるといえるでしょう。

さいごに

プログラミング学習の初期においては「わからないことをわからないまま進める」ということは、必ずしも悪ではありません。

プログラミング初学者が最も忌避すべき考えは、「わからないからプログラミングをやめる」ことです。

時間がかかっても、丁寧に取り組めばきっと解決するはずです。挫折しないためには、目的を持ったり、積極的に交流会などに参加して仲間を見つけたり、SNSで発信したりしていくと良いでしょう。

まずは動き出すことが大切です。本を読み始める、勉強会に参加する、無料オンラインサービスを利用する。挫折したくないからTECH::CAMPを利用する、など。

スタートは何でもいいのです。さぁ、とにかくはじめましょう!

一度挫折したプログラミング、TECH::EXPERT(テック エキスパート)ならやりきれます

プログラミングを独学で学ぶことに限界を感じていませんか?

効率よくプログラミングを学ぶなら、プロのメンター(講師)のもとでしっかりと教わることがおすすめです。TECH::EXPERT(テック エキスパート)ではすぐにメンターに質問できるから「わからない」を「わかる」に変えられてプロとして通用する技術が身につきます。

同じくプログラミングを学ぶ同期がいるのも挫折しないポイントです。

無理な勧誘は一切ありません。まずはお気軽に無料カウンセリングでご相談ください。

無料カウンセリングの日程を見る

この記事を書いた人

TECH::NOTE
TECH::NOTE
TECH::NOTE(テックノート)は、テクノロジーを通じて人生をより良くしたい人のためのWebメディアです。 教養としてテクノロジーを学ぶ人や、プログラミング未経験からのエンジニア転職を志す人に貢献することをミッションとしています。学ぶことの喜び、挑戦することの楽しさを伝えていきます。