独学でプログラミング学習すると挫折しがち。テックキャンプなら「徹底したサポート」と「やりきらせる学習環境」を提供しています。
IT業界を理解したい人やキャリアに悩んでいる人は、テックキャンプの無料カウンセリング(キャリア相談)を受けてみませんか。テックキャンプの無理な勧誘は一切しないので安心してください。
あなたも年収アップを実現しませんか?
経験や年齢、性別に関わらず、多くの方がエンジニア転職を実現しています。
卒業生は、転職後1~3年で平均年収144万円UP!
さらに、仕事の満足度や自由度も向上。
市場価値を上げたい方、自由に働きたい方は、ぜひお気軽に無料カウンセリングにご参加ください。
更新: 2021.09.10
>>No1エンジニア養成プログラム テックキャンプ
プログラミングを独学してみようと思って本を買ってみたものの、さっぱりわからない。もう、何がわからないかもわからない。
このように、スタートの時点でつまずいている人も多いのではないでしょうか。
独学でプログラミングのスキルを身に付けるには、基礎知識を学んで学習のステップを理解するなど、正しい独学のやり方を理解することがとても大切です。
そこで今回は、プログラミング初心者が独学でプログラミングを基礎から学ぶためのステップ、効率的に学ぶポイント、壁の乗り越え方などについて徹底解説します。
この記事は現役エンジニアによって監修済みです。
この記事の目次
そもそもプログラミングとは何か、と聞かれて説明するのは初心者にはなかなか難しいものです。
まずは、手探りの状態で学習を始める前に知っておきたいプログラミングの基本知識や必要なものを理解しましょう。
プログラミングとは、コンピューターにしてほしい仕事を順番に書き出した指示書のようなモノです。
コンピューターは人間と同じ言葉を理解することはできないため、専用の言語=プログラミング言語を用いて指示を与えます。プログラミング言語を記述していくことを「コーディング」と呼びます。
このプログラミング言語は200種類以上あると言われていますが、実際に使われることが多いのはこの10分の1程度です。
この記事もオススメ
プログラミングによって開発するプログラムは、単純な作業の高速処理や自動処理を得意としています。
私達の生活を豊かにしているもののほとんどが、プログラミングによるものだと言っても過言ではありません。
LINE・Twitter・Facebook等のスマートフォンでの利用率が高いアプリケーションや、あらゆる機種のゲームはプログラミングで作ることができます。
また、仕事面で言えば、エクセルでの面倒な作業や、ツール同士の連携などを自動化することも可能です。
このように、プログラミングは私達の便利な生活を支えています。
以下の動画ではプログラミングを独学する前に知っておきたい「プログラミングとは何か」についてわかりやすく解説していますのでぜひご覧ください。
無料カウンセリング!本日も予約受付中
「プログラミングに興味がある。けれど、初心者や未経験者には難しそう……」
「いきなりお金をかけてプログラミングスクールに通うよりは、まずは独学してみたい」
「独学とプログラミングスクールでの受講、どっちがいいのだろう?」
プログラミングを初めて学ぶ上で、こうした疑問を持つ方も多いでしょう。
結論から言えば、初心者でもプログラミングスキルを独学で身につけることは可能です!
独学を始める前に大事なことは「必要なものの準備」と「学習時間の確保」です。それぞれ詳しく解説します!
この記事もオススメ
まずはプログラミングを始めるために必要なものを用意しましょう。
プログラミングを始めるために最低限必要なものは以下の2つです。
まずはPC(パソコン)が必要です。最近では性能が上がってきたこともあり、タブレットでもプログラミングは不可能ではありません。
ただ、がっつりとコーディングを行うのであれば、やはりPCの方が作業が行いやすいです。
インターネット環境は環境構築や不明点を解決するための情報収集などを行う際に必要です。Web開発を行いたいのであれば、なおさらインターネット環境は不可欠。
安定性が高く高速な回線を用意すると、ストレスを感じることなくプログラミングに集中できるでしょう。
その他にも、ソフトウェア面ではテキストエディタやIDE(統合開発環境)などの用意も必要です。
プログラミングに必要なものについてより詳しく知りたい場合は、関連記事の「プログラミングを始めるために必要なものとは?用意するものや環境も解説」をご覧ください。
プログラミングを勉強するためのPCはどれがいいのか、初心者だと悩んでしまうでしょう。
よく比較されるのが、WindowsとMac。プログラミングにより向いているOSはWindowsなのでしょうか、Macなのでしょうか。
結論から言いますと、プログラミングにはMacをおすすめします。
Macを選ぶメリットは
プログラミングの独学を始めるために今からパソコンを新調しようと考えている方は、Macを購入するとよいでしょう。
もちろん、既にWindowsのPCを持っている場合は無理してMacを購入する必要はありません。
ただし、iOS向けアプリ(iPhoneアプリ)開発を行う場合は、Macが必須であることは覚えておいてください。
こんなサービスであれば、このくらいの時間で作成できるという目安をご紹介します。あくまで目安ですので、勉強方法やペースによって時間は変わります。
日経XTECHにて弊社(株式会社div)代表の真子が述べているように、言語を学んで最初の実用的なアプリを作れるようになるまでの時間は300時間程度。
1日10時間勉強するとして、最低でも1ヶ月の学習が必要です。
短期間の独学でスキルを身につけたい方は、まず「300時間の学習時間を確保するのに、どれだけの日数が必要か」を考えてみると良いでしょう。
電卓アプリの場合は変数の扱い方、算術演算のやり方、値の入力・出力方法をといった基本的な知識が理解できれば作成可能です。
JavaScriptを用いて12時間程度で、整数の四則演算ができる電卓を作れるでしょう。
参照:Qiita
ToDoアプリの場合は、電卓アプリで必要な学習事項に加えて、変数の内容をプログラムが終了しても保存できる仕組みの理解が必要です。
また、デザイン(UI)もToDoアプリらしくする必要があるので、JavaScriptを用いるとおおよそ24~36時間ほどかかるでしょう。
参照:Qiita
Web掲示板の作成には、最低でも240時間以上はかかると考えられます。以下のようにPHPでの作成がよいでしょう。
参照:Qiita
ここで紹介した学習時間の目安は、あくまで「参考」にすぎません。効率よく学習すれば、もっと学習期間は短くて済みますし、学習方法が間違っていればどこかのステップで詰まって先に進めなくなります。
「せっかく勉強したのに途中でわからなくなって挫折した」
そんな事態を防ぐためには、学習の4つのステップを守りましょう。プログラミング学習の4ステップを後ほど解説します。
未経験から学習をスタートしても、300時間あればアプリを作れると紹介しました。短い学習期間でも、電卓やToDoアプリなどが作れるようになるのは事実です。
ですが実際に独学してみると思うようにいかず、挫折したり、途中で飽きるのが人間の性でもあります。
本当に独学で学習をはじめて、エンジニアとして成果を残した人や「皆に使われるサービス」を生み出した人はいるのでしょうか。
ここでは参考までに筆者の例を紹介します。
大学1年生の時に、独学でiPhoneアプリを作ろうと思い立って勉強し始め、当時、iOSの開発言語だったObjective-Cを学ぶのに2週間かかりました。
高校時代にC言語を学んでいたため、if文やfor文などの制御構文は問題ありませんでしたが、Objective-Cをはじめとしたオブジェクト指向言語ならではの機能を習得するのに時間がかかりました。
次に、ボタンやテキストフィールドなどのUIパーツの使い方を学ぶのに1か月かかり、途中からは並行して、iPhoneアプリ制作を開始しました。
最終的に全期間を通してかかった期間は、3ヶ月ほどでした。
なお、1日の勉強・作業時間は平均して1時間半ほどで、一つのアプリを作るまでに135時間程度かかったことになります。
このことからiPhoneアプリを作る場合、全くプログラミングに触れたことがない方でも200時間程度でそれなりのアプリを作成できます。
この記事もオススメ
オススメするプログラミングを勉強法の4つのステップは次の通りです。
以下で1つずつ詳しく解説します。
この記事もオススメ
「作りたいものは決まってないけど、プログラミングをしたい」は、「目的はないけど、山を登りたい」と同じです。
何となく山を登りたいと思ってスタートしても、「山の景色を楽しみたい」「山頂を目指す」などの目的が決まっていなければ、想像以上のつらさに挫折するでしょう。
「山頂を目指す」と決めたら、必要な装備は何か、どのような経路で進むかといったことが具体的に考えられます。
プログラミングもそれと同じです。もしあなたがプログラミングを学ぶことで自分を高めたいと思うなら、目標を決めましょう!
「iPhoneの〇〇みたいなアプリが作りたい!」「世界を変えられるようなアプリを開発したい!」など、目標は自由に決めてOK。
ただし、できるだけ目標は具体的に決めてください。
具体的な目標をイメージしながらプログラミング学習に取り組むと、ロードマップが明確になり学習効率は大幅に上がるからです。
また、学習のモチベーションが低下した時に、目標を再確認することで再び学習意欲が高まるというメリットも。
本当に自分が作りたいものを作れるのは世界で自分だけ、と信じてプログラミング学習に取り組むとよいでしょう。
どうしても何も浮かばない場合は、先に紹介した電卓やToDoアプリなど、比較的短い学習期間で開発できるアプリを作ってみることをおすすめします。
短期的な目標を決めて、それを達成したら次の目標を設定するというアプローチもありです。
以下の記事では独学でアプリ開発を検討している方向けに、プラットフォーム別の開発環境を紹介しています。
この記事もオススメ
もし作りたいものが明確に決められないという場合は、最近のIT分野の市場動向を見て決めるのも良いでしょう。
プログラミングを身につけて就職・転職をするのであれば、よりニーズの高まっている分野に必要なスキルを持っていることで「即戦力」として採用される可能性が高まります。
先ほど説明したiPhoneなどのアプリ開発。スマホ向けアプリは端末自体の普及に合わせて市場拡大中です。未だにニーズの高い分野。
その他にはVR(仮想現実)、AI(人工知能)、IoT(モノのインターネット)の分野も勢いがあり、今後も大きく市場が広がると予想できます。
これから伸びる分野を狙ってスキルを身に付けるということも、プログラミング独学の十分な目標と言えるでしょう。
「初心者が最初に学ぶべき言語」や「初心者オススメの言語」と検索してみると、C言語などの記事がたくさん出てきますよね。
では、一からプログラミングを学びたい初心者は、どのような言語を学べば効率良く開発できるでしょうか?
プラットフォームごとの代表的な言語をご紹介します。
この記事もオススメ
Swiftは、2014年にAppleが発表したプログラミング言語です。
言語のコンセプトに「モダン・安全・高速・インタラクティブ」を掲げており、初学者でもとても扱いやすい言語になっています。
Swiftが登場する以前、Apple系ソフトウェア開発言語では一般的にObjective-Cが使用されていましたが、他の言語と比較して学習コストの高いプログラミング言語でした。
そんなObjective-Cが抱えていた扱いにくさを、Swiftはモダンな文法や仕組みを用いて解決しています。よりシンプルなコードとなり学びやすくなりました。
また、SwiftはObjective-Cと互換性を持つため、Apple系ソフトウェア開発では今後も必要な言語です。
現在もアプリの市場は拡大しており、多くの企業が参入しています。エンジニアの中でもSwiftが使える技術者の需要は高まっています。
Swiftは他の言語と比べると新しい言語です。そのため、経験者がまだ少ないという現状から影響しているようです。給与や待遇などもよくなる傾向にあります。
この記事もオススメ
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を扱えるエンジニア、プログラマーの需要も高まっています。
求人数も増えており、給与や待遇も他の言語を扱えるエンジニアより良くなる傾向にあります。
HTMLは、Webページを記述するためのマークアップ言語(※)です。CSSは、それらの文章の構造や修飾情報をどのように装飾するかを指定する言語です。
Rubyは、SwiftやJavaとは異なりスクリプト言語という分類に入るプログラミング言語です。
比較的実行速度が遅いという欠点があるスクリプト言語ですが、簡単なプログラムであれば、短時間で構築して実行できるので、主にWebアプリケーション開発に用いられています。
また、Rubyは日本人が開発したこともあり、公式の日本語リファレンスが豊富で初心者でも非常に習得しやすい言語です。
まず最初に学習するプログラミング言語としてRubyを選ぶ人は多く、プログラミングの教育の場でもRubyが採用されるくらい習得しやすいです。
そんなHTMLやRubyを使って、Webアプリケーションを作るためのフレームワーク(ソフトウェアの部品集のようなもの)がRuby on Railsです。
素早く、高品質なアプリケーションを開発できることから、Webアプリケーション開発においてはRuby on Railsはスタンダードのフレームワークとして採用されています。
※マークアップ言語…コードの一部を「タグ」と呼ばれる特別な文字列で囲うことにより、文章の構造(見出しやリンクなど)や修飾情報(文字の大きさや組版の状態など)を、コード中に記述していく記述言語のことです。
この記事もオススメ
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のように低めで、プログラミング入門のための言語として、人気を集めています。
環境構築とは、選んだプログラミング言語をコンピュータ(パソコン)で動かせるようにすることです。
環境構築とは、特定の装置やソフトウェア、システムなどが動作するように、コンピュータや情報システムの状態を整えること。特に、コンピュータにソフトウェアを導入したり設定を調整することで、対象のソフトウェアが動作する環境を作り上げる作業を意味する場合が多い。(出典:環境構築とは – IT用語辞典)
料理でも調理器具の揃ったシステムキッチンがあるように、ソフトウェアでもIDE(統合開発環境)と呼ばれるソフトウェア開発に必要なツールが揃ったソフトウェアがあります。
これ一つでプログラムの作成はもちろん、実行やデバッグ(プログラムの動作の誤りを修正すること)に便利なツールも用意されています。
IDEはその全てを覚えなくても、必要なところを部分的に使うことでプログラムを作ることができます。プログラミング初心者にとって、大きなメリットとなるでしょう。
ここでは、前述した3つのプラットフォームでよく用いられるIDEと、その環境構築方法を説明した記事を紹介します。
Xcodeは、Appleが提供するiOSやmacOSのソフトウェアを開発するのに特化されたIDEです。
iOSシミュレータをはじめとして、開発に役に立つソフトウェアが多数用意されています。
XcodeはmacOSのみ対応していますので、環境構築方法もMacのみの紹介となります。
Android Studioは、Googleが提供するAndroid向けのIDEです。
Xcodeと同様にAndroid開発をサポートするソフトウェアが用意されています。
Webサイトは、テキストエディタとWebブラウザがあれば開発できます。
テキストエディタでHTMLファイルを作成し、ブラウザで確認を行います。
またJavaScriptを使うことで、ページの動的な書き換えもできるようになります。
具体的にはページの要素の書き換えや、ダイナミックな色の変更が可能です。JavaScriptも、エディタとブラウザがあれば開発可能です。
テキストエディタはメモ帳でも利用可能ですが、筆者がオススメするテキストエディタはVisual Studio Codeです。
Visual Studio Code(通称:VSCode)はMicrosoft製のコードエディタ。ショートカットや拡張機能が豊富で大変使いやすいのが特徴です。
この記事もオススメ
Webブラウザはお使いのものでも良いですが、Webアプリのデバッグ用に開発メニューが用意されているChromeやSafari、Firefoxがオススメです。
この記事もオススメ
ECサイトやクラウドファンディング、TwitterのようなSNSなど、ユーザーとの「対話性」を持つサイトは「Webアプリケーション」と呼ばれます。
対話性の無いWebサイトとは、管理者からの一方的な情報提供のみが行われる静的なサイトです。
対話性を持つサイトとは、ユーザーがフォームのクリックや情報の入力、商品の購入などを行えるものです。
コンピューターゲームも、ボタン操作を行い敵を倒すなど「対話」を行います。
こうした対話性を持つサイトは、ブラウザ上でアプリケーションを操作する「Webアプリ」です。
Webアプリ開発はテキストエディタとブラウザだけでなく、あらかじめ専用の開発環境を用意しておく必要があります。
Webアプリケーション開発のスタンダードとして使われるのは、Ruby on Railsです。
Ruby on Railsを扱うには、お使いのPCにRuby on Railsをインストールが必要です。
プログラミング初心者は、テキストエディターやデバッガなどが全てインストールできる統合開発環境(IDE)を使うのがおすすめです。以下の記事で詳しくまとめています。
この記事もオススメ
いよいよプログラミング言語を学び始めましょう。
プログラミング言語も言語の1つです。外国語を身につける時と同様、プログラミング言語も使わないといつまで経っても身につきません。
1つ学んだことがあれば、それを使って1つ簡単なプログラムを作る心構えで挑むと良いでしょう。どの程度理解できたら次に進めば良いかわからない方は、次の質問を自分に投げかけてみてください。
「どうやってそのように動くかは分からないけど、とりあえずコードを書いて正常に実行できるか?」という問いにイエスと答えられるなら、どんどん次の学習に進みましょう。
一度で完璧に覚えようとするより、大枠を理解し、復習を繰り返すことをオススメします。
プログラミング言語の学習の方法は、「【初めてのプログラミング】ゼロからプログラミングを始める手順や勉強法」で詳しく紹介していますので参考にしてください。
プログラミング学習は時間がかかるもの。
特に初心者のうちは最適な勉強方法や、勉強に対する心がけを見つけにくいかもしれません。
ここからは、プログラミングの勉強を始める前の段階として理解しておきたいことについて解説していきます。
以下の3つのコツを把握しておけば、壁にぶつかったとしても解消するきっかけを見つけ出せるでしょう。学習の準備を始める前に目を通しておいてください。
初心者向けのプログラミング勉強法については「【プログラミング初心者向け勉強法】効率よく成長する4つの方法」でも解説しています。
独学を進める中で意識したことが二つあり、一つは目標や目的を細かく設定することです。
目標を細かく設定することで、自分がどれだけ進んだかが分かりやすくなり、モチベーションの維持や残りの行程の確認にも役に立ちます。
できれば、1日どれくらい勉強したのかを記録しておくこともおすすめします。メモ書き程度でも構わないのですが、記録しておくと自身の成長を振り返りやすくなるでしょう。
もう一つ意識したことは、短い時間でも毎日学習を続けることです。プログラミングの独学は、学習を習慣化すると挫折しづらくなります。
習慣化すれば、学習に取り組むための心のハードルが下がり、知識の定着率もアップするでしょう。
例えば、毎週の休日にまとめて7時間学習をする場合、前週の復習に1時間くらいかかってしまいます。
毎日少しづつ学習を続ければ、復習にかける時間を少なくでき、より効率的に学習が可能。
プログラミング入門者にとって、最初のうちは日々のプログラミング学習を始めるハードルが高く感じるでしょう。
無理に長時間やろうとすると、集中力やモチベーションの低下につながりかねません。
少しずつ勉強しながらプログラミングの全体像をつかみ、本格的な勉強へと移りましょう。
まずは理解しできなかった部分があっても、現在取り掛かっている教材を一通り終わらせてしまうことをおすすめします。
そしてその教材を2周、3周と繰り返すことで、わからなかった部分を潰していってください。
正規表現とは、いくつかの文字列を一つの形式で表現するための表現方法です。
この正規表現を利用すれば、たくさんの文章の中から容易に見つけたい文字列を検索できます。
例えば、Apple製品が収められたデータベースの中から「iPod」「iMac」「iPad」などの「先頭に”i”がついていて、そのあと3文字続くもの」を取り出したい時には「^i…」と書きます。
正規表現をマスターすると、文章処理作業の効率が飛躍的に向上します。
それはプログラムの処理を簡単にできるだけでなく、検索・置換する際に正規表現を扱えるエディタならば、ソースコードを大規模に改良する時にも役に立ちます。
入門者にとって、プログラミング学習は高い壁のように感じてしまうこともあるでしょう。
原因のわからないエラーなどに遭遇すると、解決方法がわからず、集中も乱れがちです。環境を構築するところから手が止まってしまうことも考えられます。
まずは以下の4つの方法から試してみてください。
この記事もオススメ
理論やコードの意味はわかっても、思うようにコードが書けない方は、まずは真似から始めましょう。
他人のソースコードをコピペせずに書き写し、変数の値を変えるなどすると、動作の理解を深められます。
自分より上手な方のコードを知ることで、適切なインデントやコメントの書き方や、より効率的なコードを学べます。
はじめのうちは、仕組みまで完璧に理解する必要はありません。
その時は理解できなくても別の概念を覚えると理解できることが、プログラミング言語を学ぶ上では少なからずあるからです。
仕組みを理解できるのがベストですが、まずはプログラムの振る舞いを理解することを重視しましょう。
この記事もオススメ
インプットばかりで学習に面白さを感じられず、モチベーションが低下することもあるでしょう。
そんな時は、今まで学習した知識を元に、プロトタイプとして一部分でもアプリなどを作ってみるとモチベーション回復につながります。
頭の中にあるアイディアを少しでも形にすることで、あなたの目的へと近づいている感覚が得られるでしょう。
また、しばらくしてそのコードを見直し、学習不足だった点を認識することで、別のアプリや本番となるアプリを開発する際、同様のミスがないように役立てられます。
本当に一人でどうしようもなくなった時は他人に助けを求めましょう。
身近にプログラミングに詳しい人や、エンジニアやプログラマーとして働いている人がいるのであれば、わからないところは聞いてしまったほうがより早く身につきます。
その人の学習メソッド、コーディングのやり方を真似してみることで学習のヒントを得られるかもしれません。
もしそのような人がいないのであれば、SNSやブログなどを活用するのも一つの手です。
自分がわからない部分やつまずいている部分を素直に発信すると、それを見た人が答えを教えてくれるかもしれません。
プログラミングを習得することがこのページを見ているあなたの目的であり、独学は手段でしかありません。
プログラミングの体験会に参加して、講師に方法を聞いてみることもおすすめです。
独学ではわからなかったことも、人に聞けばすぐに解決できることも多いので、ぜひ活用しましょう。
この記事もオススメ
独学でプログラミング学習すると挫折しがち。テックキャンプなら「徹底したサポート」と「やりきらせる学習環境」を提供しています。
IT業界を理解したい人やキャリアに悩んでいる人は、テックキャンプの無料カウンセリング(キャリア相談)を受けてみませんか。テックキャンプの無理な勧誘は一切しないので安心してください。
プログラミングを身につけ、さらにスキルアップさせることができれば、それを生かして仕事をしお金を稼いでみるのもいいでしょう。
ここからは、プログラミングをさらに向上させ、エンジニア就職、フリーエンジニアへ進むための基本的な方法を紹介します。
この記事もオススメ
プログラマーの適正については様々な意見・仮説がありますので、一概には言えません。
それを踏まえた上で、あえて特徴を挙げるならば「論理的思考能力がある人」「大きな問題を細分化して解決できる人」「新しいIT技術に興味がある」「プログラミングが好きな人」などが挙げられます。
▼以下の記事では、プログラマーに向いている人の特徴をより詳しく解説しています。あなたはプログラマーに向いているでしょうか?ぜひ確かめてみてください。
プログラマーに向いている人とは?適性や素質について解説オリジナル作品を制作し世に公開すれば、あなたの実績となります。
仮に自分の作ったiOSアプリが世界中でたった50人にしか使ってもらえなくても、採用する側には少なくとも「自力でユーザーを集められるだけのアプリを作る力はある」と評価してもらえるはずです。
また、その経験はあなた自身の自信にもなります。
どれだけ洗練されたビジネスモデルを持って開発されたサービスも、世に出なければ評価されません。多少荒削りでも、自分の限界までやりきったのなら公開してみましょう。
ただし、個人情報や財産を扱うソフトウェアの場合は慎重になりましょう。しっかりと法律家の指導の下で利用規約を制定し、万全のセキュリティ対策を持って運用しましょう。
それができない場合は公開するべきではありませんし、そもそも作るべきではないでしょう。
コードを公開して問題ないと判断した場合は、習作であってもGitHubで公開していきましょう。そうすることで、採用担当の方があなたの実力を直接見れます。
GitHubでは、コミット(コードをGitHubにアップロードすること)数が視覚的に分かる仕組みがあり、その活動が活発なほど高く評価される傾向にあります。
(編集部追記 こちらのTECH::NOTEでは社長や人事にエンジニア採用についての取材をすることが多くあります。IT業界の採用担当者からは「GitHubでコードを公開していないエンジニアは採用しない」「判断材料がないため採用できない」という声をよく聞きます。)
この記事もオススメ
勉強会に参加することで業界最先端の技術に触れたり、有名プログラマに技術的アドバイスを受けられることができます。
また、モチベーションを上げる際も勉強会の参加をオススメします。
当日勉強会に参加している人と一緒に勉強することもやる気につながります。もし今後もつながれる仲間になれば、連絡を取り合って勉強の進捗を共有しながら進めるのもいいでしょう。
この記事もオススメ
結論から言いますと、目安として「ただ動かすだけ」以上のことを考えられるかが、初心者と上級者の分水嶺になります。
例えば、電卓アプリを作るにしても、初心者の場合は四則演算のプログラムを組むことに精一杯で、計算結果がオーバーフローした場合のことや不正な入力について考えなかったり、考えたとしても対処しきれないことがあります。
もしかしたら、最適でない処理を行っていて解を導くのがとても遅くなっているかもしれません。UIも既製品ほどのデザインではないかもしれません。
上級者はそれらの問題を放置しません。それ以前に、問題が発生しないようにコーディングを行います。
ユーザーが操作しないであろうことも世に出す前にあらかじめテストで検証し、高速かつ安全に動作するコードを書くのが上級者です。アイディアを働かせられることも求められます。
プログラムはただ動作すればいいのではなく、その結果が人々の役に立たないといけません。
プログラムが導いた結果が人々の役に立つには、できるだけ早く、正確であり、不正確さや問題が生じた際にはその旨をユーザーに伝えなければなりません。
また、結果を提供する時も受け取る側が理解しやすい形で提供するべきです。そういったことを考えて、プログラムを作成するのが上級者であるといえるでしょう。
フリーランスのエンジニアとして本業や副業で稼ぐのであれば、案件を積極的に受注して実績を積みましょう。
初めは単価が安くても構いません。案件を受注して実績を積めば、しっかりと仕事ができるエンジニアとしてクライアントに認知されます。
プログラミングのスキルがある程度身に付いたら、クラウドソーシングサイトなどを利用して、まず自分ができそうな案件を受注しましょう。
実際に働くことで自分の足りないスキルが見えてくるはず。その穴を埋めながらスキルのアップデートを繰り返すことが稼げるエンジニアになる近道です。
この記事もオススメ
インターネットで検索した情報から独学もできますが、やはり本で体系だった形で学習するのがおすすめです。
不明な点が出てきた時に調べる辞書としても、入門書のような本が1冊あるといいでしょう。
特に本格的にプログラミングを使った開発をしたい方は、今後、本の力が頼りとなるはず。
本を購入する際には発行年・版数ができるだけ新しいものか、自分の開発環境と同じものを選びましょう。
ここからはテックキャンプの現役エンジニアたちがおすすめする、プログラミングの独学に役立つ本を紹介します。
言語関係なく、きれいなコードを書くために必要なテクニックを教えてくれる本です。
きれいなコードとは、コードを見た瞬間に何をしているかが伝わってくるコードのことです。
初心者のうちは「何が良いコードか、何が良くないコードか」も分からないので、この本が役に立ちます。
おすすめの本として「リーダブルコード」選ぶエンジニアも多いです。
この本の対象はWebアプリケーションエンジニアや、フロントエンドエンジニアとなります。
そのため専門的な内容も含みますが、普通にWebアプリケーションのプログラミングを行なっているだけでは分からない、インフラの知識が詰まった本です。
Webサービスの高速化や、Webサービスのボトルネックを知りたい方の役に立ちます。
こちらはRubyの本ですが、言語の仕様・現場で使えるテクニックまで触れている超実践的入門書です。
1つの言語の仕様をざっくり分かっていることは他のプログラミング言語を勉強する上でも役立つので、Rubyから始める人には是非オススメしたいです。
どういうものがプログラムを利用して自動化できるのかがわかる、非エンジニアや、エンジニア初心者向けの1冊です。
本の中のサンプルコードはpythonで書かれていますが、考え方そのものは他の言語にも応用可能です。そのため、この本で一度学んだ知識は長く使うことができます。
ExcelやWord、PDFファイルなどの有効活用法といったエンジニアでない方でも役に立つ情報が掲載されています。
内容が非常に多い本ですので、目次を参照しながら、自分に必要な項目のみを読んでいくのがおすすめです。
著者のChad Fowlerさんはプロのジャズミュージシャンからソフトウェアエンジニアになりました。このような異色の経歴を通して、キャリア開発の重要性を語ったエッセイです。
これからエンジニア・プログラマーを目指す人々にとっては「練習を続けること」という面で教訓となる1冊です。
この記事もオススメ
ここからは、プログラミング独学者にはぜひ試してほしいプログラミング学習用のWebサイトを5つ紹介します。どれも有料会員登録をしない限り、月額無料で利用できるサイトです。
この記事もオススメ
Progateはオンラインでプログラミングの学習ができるWebサービスです。ご自身のスケジュールに合わせて進捗させられます。
イラストを中心とした「スライド学習」を採用し、直感的にプログラミングがわかるカリキュラムで学習を進めていきます。
学習した内容は実際にコードを書き、手を動かしながら実践していきます。これによって実用的なプログラミングが身につくのです。
学べるプログラミング言語の数も非常に豊富です。HTML&CSS/Ruby&Ruby on Rails/JavaScript/Java/PHP/Pythonなど。
プログラミング初心者にも学びやすい優しい言語を中心に学習を進めていきます。
出典:ドットインストール
ドットインストールは、短いレッスン動画で学習できる初心者向けプログラミング学習サイトです。
すべてのレッスンは3分以内の動画で提供されており、スマートフォンからも視聴が可能です。視聴だけなら移動中でも学習時間に充てられるでしょう。
導入となる初級者向けの動画のほとんどは無料で閲覧できますので、言語を学ぶ上で最初に見ておくと良いでしょう。
この記事もオススメ
こちらもドットインストールと同じく、動画を使ったプログラミング学習サービスSchooです。
異なる点としては、Schooの動画は生放送動画という点です。講師はリアルタイムで画面の向こう側で授業をしています。
そのため、もし分からないことがあればその場で質問できるという点が強みです。
近年、動画サービスは増えており、プログラミングの学習も動画を見ながらできるようになりました。
動画は非常に便利で、動画の内容を目で見て、真似しながら学習ができるので、初心者がプログラミングを学ぶハードルも下がります。
しかし、動画を見るだけでは受動的な学習にしかなりません。プログラミングを身につけるためには自分で手を動かすことが重要です。
動画はあくまでも学習への導入や、これからやる作業の全体像をつかむためのものと考えましょう。
動画を見て終わりではなく、その内容に沿って自分でコードを書いてみることで、初めて実践的なプログラミング技術となります。
Stack Overflowは、プログラミングに情熱をそそぐ人のためのQ&Aサイトです。
あなたが遭遇したエラーにどのようなことを試してみたか、具体的に何をしようとしているかを投稿すると、他のユーザーからその問題を解決するための回答が投稿されます。
「どうしてもこのエラーが解決できない!」という時に役立ちます。
学習メソッドを提示してくれるサイトというよりは、教材に載っていない内容を補ってくれる学習サイトというイメージです。
出典:Qiita
Qiitaは、プログラミングに関する知識を記録・共有するためのサービスです。
記事に付けたタグや、投稿したユーザ・ストック数・投稿日時の指定など、細かな検索機能で記事を検索できます。
「この言語の◯◯について深く知りたい!」という時に見てみると良いでしょう。
また、Stack Overflowほどピンポイントではありませんが、エラーに対するハウツーが紹介されている記事もあります。
原因がわからず解決できないエラーに遭遇した時にはStack Overflowと合わせて見てみましょう。
この記事もオススメ
あらゆる分野のスマートフォン向けアプリが日々リリースされていますが、プログラミング学習専用のアプリも多数存在しています。
仕事があってまとまった勉強時間の取れないサラリーマンなどは、スキマ時間を勉強に当てられる効率的なツールとなるでしょう。
ここからは。基本料無料で使えるプログラミング学習に役立つアプリを4つ紹介します。
codebellはiOSアプリケーション開発向けの言語であるSwiftを学べるアプリケーションです。
1つのレッスンあたり3分ほどで終わるので、電車の移動時間や、会社、学校の休み時間などを使って簡単に学習を進められます。
レッスンはチャットのような形で進んでいくので、文字量の多い参考書を読むよりも取り掛かりやすいです。
初心者がプログラミング言語を学ぶ初歩段階として利用すると良いアプリです。
プログラミングを学習する上で「アルゴリズム」(問題解決のための方法を定式化した形で表現したもの)を理解すると捗りやすいです。
このアルゴリズムをアニメーションによって学習できるのがアルゴリズム図鑑です。
このアプリで直接プログラミング言語を学習できるわけではないですが、もっと基本的な部分としてアルゴリズムを理解しておくことで学習の手助けになります。
プログラミングゼミは、小学1~3年生の子供達や、学校の先生の意見を反映して作成されたプログラミング学習アプリです。
ゲームのような感覚で、遊びながらプログラミングの基本から応用までを学んでいきます。
小学生から使えるということもあり、かなりゲーム性や遊びを用いた仕様になっているので、少々取り組みにくさを感じるかもしれません。
ただ、プログラミングの基本を学んだり、プログラミングに対する苦手意識を払拭するためのアプリとしては、一番おすすめできます。
Udemy Online Coursesは、プログラミング学習に特化したアプリではありません。
ただ、60,000以上の様々な分野の学習コースがあり、各専門講師が教えています。その中にプログラミングやウェブ開発などを教えてくれるコースもあるのです。
無料のコースもありますが、基本的には有料となります。
その分、有料コースは無制限で受講が可能ですので、ご自身の都合の良いタイミングで学習を進められます。
無料のアプリでは基礎の基礎、プログラミングに取り掛かる段階からスタートとなりますが、さらにもう1歩進んだ学習がしたい方はUdemy Online Coursesの利用を検討してみてもいいと思います。
プログラミング独学に役立つゲーム感覚で学べるサービスとアプリを紹介します。
テクノロジア魔法学校は、ディズニーの世界観でRPG感覚でプログラミングが学べるサービス。
とても親しみやすく十分なボリュームもあるので、大人のプログラミング学習にもおすすめです。
特にディズニー好きの人はモチベーションを保ちながら、楽しくプログラミングが学べるでしょう。
出典元:Paiza
女性目線で開発されたPaizaが提供するユニークなサービス「推しと学べるプログラミング」。
イケメンのエンジニア男子の中から推しキャラを見つけて、一緒にプログラミングが学べます。
PHP・Python・Ruby・Java・JavaScriptなど、学べるプログラミング言語も豊富です。
イケメンがとてもやさしくプログラミング学習をサポートしてくれるので、女性だけでなく男性も癒やされながら独学ができるかもしれません。
推しと学べるプログラミング | エンジニア男子と一緒にプログラミング!
出典元:CheckiO
CheckiOは、PythonとTypeScriptが学べる海外の無料プログラミング学習サイトです。
洗練されたUIとコンテンツCheckiOの魅力。基本は英語なので、プログラミングと英語を一緒に学びたい人にもおすすめです。
CheckiO – coding games and programming challenges for beginner and advanced
この記事もオススメ
プログラミング学習の初期においては「わからないことをわからないまま進める」ということは、必ずしも悪ではありません。
プログラミング初学者が最も忌避すべき考えは、「わからないからプログラミングをやめる」ことです。
時間がかかっても、丁寧に取り組めばきっと解決するはずです。挫折しないためには、目的を持ったり、積極的に交流会などに参加して仲間を見つけたり、SNSで発信したりしていくと良いでしょう。
スタートは何でもいいのです。さぁ、とにかくはじめましょう!
書籍やいろいろなサービスを使ってみても、うまくアプリを作れなかったり、きちんと実力が身についているのか自信がないと感じる…
そういったときには、プログラミングスクールを利用して学習効率を上げましょう。
以下のページでプログラミングスクールを比較紹介しています。
スクールのメリットを知りたい方は以下の記事で解説しているので、参考にしてください。