近年プログラマーになりたいという方が増えています。IT社会の進展によってその勢いは高まり、学習書やスクールも比例して増加。

また昨今のフリーランスの増加傾向によってさらに拍車がかかっています。

プログラマーのなり方、特に未経験・高卒でもなれるのかについて、そのおすすめ書籍も含めてご紹介していきます。


未経験・高卒でプログラマーを目指すことは可能か?

「プログラマーになりたい」「フリーランスエンジニアになりたい」というのは比較的最近の傾向です。

そのため「大学でプログラミングをやっておけばよかった」「専門学校に通っていれば」と思う方もいるのではないでしょうか。

確かにプログラマーは専門性の高い職種に思えますが、実は学歴は実質的に関係ありません。文系や高卒の方でも活躍することが可能です。


未経験(実務経験なし)でも高卒や学歴がなくても問題なし!実績・成果物が重要!

なぜ学歴がそれほど重要視されないのかというと、プログラマーの世界は実績や成果物が全てだからです。言い換えれば「できるか否か」です。

大学や専門学校で専門に勉強していても、プログラミングできなければ問題外です。経歴に関係なく、プログラミングするスキルが重要なのです。

また「本当にプログラミングができるのか?」という客観的なスキルの証明も重要です。そのために「実績」「成果物」が重要となります。

さらに「コミュニケーションスキル」も無視できません。プログラミングを仕事とする場合、周囲には同僚・上司・クライアントがいます。

加えて1人でプロジェクトを進めるよりもチームで進める方が多いです。コミュニーケーションスキルは最低限必要なスキルといえるでしょう。


大学や専門学校でプログラミングを学んだ人に追いつくには覚悟が必要!

ただし、決してプログラマーに簡単になれるわけではありません。実務未経験で大学や専門学校で学習していない場合はその分努力が必要です。

プログラミングに関する前提知識がない場合、まずはその習得から始めます。また成果物も必要となるでしょう。

さらに「なぜ未経験なのにプログラマーになりたいのか」などの問いに答えられる必要もあります。

このように実務未経験・プログラマーにまつわる経歴もない場合は、ある場合の人とスタートラインが違います

この差を埋めるための努力が必要です。未経験や高卒という方は、まずはスキル・実績・コミュニケーション力に注力するとよいでしょう。


【プログラマーになるために】スキルの習得について

スキルの習得に関して、まずは何の言語を習得するかを決めましょう。プログラミングは言語(種類)が様々あり、それぞれ使われ方が違います。

そのため習得する言語を選ぶ必要がありますが、その点で重要なのが将来像です。具体的にいうと「何を作りたいか」です。

スマホアプリを作りたい、ゲームの開発をしたい、AIに携わる仕事がしたい、自分でWebサイトを作りたい。

ただ闇雲にプログラミング言語を勉強するのはかなり非効率的ですし、続きません。全くの初めての方はここから始めると良いでしょう。


スマホアプリが作りたい

スマホアプリを作りたいという方は「Swift(スウィフト)」「Java(ジャバ)」などがおすすめです。

「Swift」はAppleによって開発されたプログラミング言語で、iPhoneやiPadなど、iOS環境で働くアプリの開発に使われます。

Android向けのアプリを作りたい方は「Java」がおすすめです。またJavaはWebサイトの作成にも使われるもので、かなり汎用性がある言語です。


ゲームを作りたい

ゲームの開発をしたいという方は「C#(シーシャープ)」がいいでしょう。これを使えばゲームだけでなくスマホアプリの開発へ転用が可能です。

ゲーム開発の場合は「Unity(ユニティ)」という作業環境を、スマホアプリ開発の場合は「Xamarin(ザマリン)」でC#を使用できます。


AI(人工知能)や機械学習システムを扱いたい

AI関連の場合は「Python(パイソン)」が主流です。Pythonの特徴はそのシンプルさ。そのためスキル自体の習得は比較的簡単にできます。

ところがAI(人工知能)に転用する場合は、AIに関する知識が別途必要となるため、なかなか未経験では手を出しにくい分野といえます。


Webサイトを作りたい

Webサイトを作りたいという方は「PHP(ピーエイチピー)」「Java」「JavaScript(ジャバスクリプト)」「Ruby(ルビー)」がおすすめです。

「PHP」は初心者でも習得しやすく、Webサイトの構築では主流の言語。企業からの需要も高いのも特徴です。迷ったらPHPを選びましょう。

「Java」と混同されがちな「JavaScript」ですが、実は全くの別物。多くのプログラミング言語の中で需要の高さと重要性はトップクラスです。

「Ruby」は比較的初心者にも優しく設計されているプログラミング言語です。用途はWebサイトの作成だけでなく、アプリの作成にも使えます。


【プログラマーになるために】実績がない状態でどのようにアピールするのか

未経験でプログラム学習を始めた場合、実務の実績はもちろんありません。そして実績がない以上、実績作りのための案件の受注も難しいです。

一見八方塞がりのようなこの状況。そんな時はどうしたらいいのでしょうか。


実績なし=やる気がない/客観的な努力の証がない

プログラマーの世界は「実績」が重要になります。例えば「実務経験3年」や「〇〇を作成しました」などです。

未経験の方の場合、実務経験はありません。そのため「成果物」で自身のスキルとポテンシャルをアピールする必要があります。


成果物を作ろう

そもそも、なぜ「成果物」が必要となるのか。前述の通り、プログラミングに学歴は関係ありません。学歴は言い換えれば客観的な学力の指標。

では「プログラミングができる」の客観的な指標は?というとそれは「実務経験年数」であり、プログラミングした「成果物」となるのです。


成果物を作るメリット

成果物を「ポートフォリオ」という、いわば作品集の形で数点まとめておくと就職活動でも有利に働きます。

なぜなら、まずポートフォリオを作るために数点の成果物が必要です。その時点で、それだけのポテンシャルがあることがアピールできます。

またポートフォリオの作成には時間と労力がかかります。プログラマーの仕事は意外と体力・根気が必要なので、その素養もアピールできます

そしてポートフォリオを面接担当者に見せることで、その場でフィードバックをもらえることがあり、技術面のブラッシュアップも可能です。

つまり面接において有利に進められて、技術面でもスキルアップができるので、ポートフォリオの作成はおすすめです。


【プログラマーになるために】コミュニケーションスキルは必須

プログラマーとして働く上で、なぜコミュニケーション能力が必要なのか。まずプログラマーといえど、会社員です。

また、周りには上司や同僚・先輩後輩、そしてクライアント、さらに自分のプログラミングの先にはユーザーがいます。

プログラミングのプロジェクトは多くの場合チームで進めていきます。そのため、認識のズレは致命的なミスに直結します。

さらに自分がプログラミングした物を通してでしか、ユーザーにそのサイトの利点やアプリのよさはアピールできません。

表現し汲み取り、理解する能力はプログラマーにとって特に必要なスキルといえるのです。


プログラミングの学習方法とは?

プログラミングの学習方法には大きく2パターンあります。それは「スクールを利用」「独学」です。

それぞれにメリットとデメリットがあり、人によって合う合わないがあります。スキルを習得する上で、自分にあった学び方が必要です。


プログラミングスクールに通う

プログラミングスクールに通う人の多くは「先行投資」の認識で月謝を支払っています。スクールを利用するには、多くの場合月謝が必要です。

一部無料で提供されているものもありますが、サポートが薄いなどの口コミが目立ちます。

プログラミングスクールの月謝の平均額は2ヶ月で15万円ほど。プログラマーの平均月収が30万円以上なので、コストパフォーマンスはいいです。


独学で頑張る

一方、独学で頑張る方は「お金をかけたくない」「自分のリズムで進めたい」という理由が多いようです。

ただし後述しますが、独学での勉強は正直厳しいです。独学で進める場合、効率的な学習計画を自分で意識づけていかなければいけません。

徹底的な自己管理と明確な目標意識をもって、継続していく努力が必要です。


プログラミングスクールに通う

プログラミングスクールはプログラマーになるための先行投資です。また、もちろんメリットもデメリットもあるので、以下で説明していきます。


プログラミングスクールのメリット

プログラミングスクールのメリットの最たるものは「プロの指導が受けられる」と「学習速度を管理してくれる」でしょう。

またプロに指導されるので、その点が自信にもつながります。その自信の蓄積が、学習を進めていく上での精神的支柱になってくれます。

さらに「ハウツー迷子にならない」のもメリットです。プログラミングに関するハウツー本は数多く発行され、世間にあふれています。

プログラミング学習者の中には、あれこれ学習ハウツーを試した挙句に「ハウツー迷子」になってしまい、学習を断念する方もいます。

スクールの場合はこの心配がなく、指針を示して指導してくれます。またスクールによっては就職斡旋をしてくれる所もあります


プログラミングスクールのデメリット

人によってはプログラミングスクールに通う月謝が高いと感じる方もいるでしょう。また「お金を稼ぎたいのに、初期費用が大きい」という人も。

スクールの利用料金はスクールや内容によって差はありますが、高い場合は30万円以上のものもあります。

一方、無料のスクールもあります。ただし初歩的なことしか教えてくれない、サポートがないなど無料にはそれ相応の理由が存在します。

コストに関しては長期的に考えればコスパは良く、短期的に考えるなら痛い出費になるでしょう。


プログラミングの独学学習は厳しい!?

独学でのプログラミング学習は自己管理と確固たる目的意識が鍵となります。なぜなら、挫折のポイントが多く存在するからです。

プログラミングの学習は、基本的に独り立ちしても続けていくもの。つまり1人でやるものです。

新しいコーディングの仕方や言語などを自分で取り入れていきます。1人で独学ができる方はそれだけ有利ではあります。

ただし初学者の場合は適切なサポートがある方が学習を進める上で効率的です。最初で躓いてしまうとあとが続かないからです。

継続的に独自で学習を進めるためには、自分で調べて解決すること、そのためのリサーチ能力が必要となります。


独学学習のポイント:基礎は短期間で終わらせる!

多くいわれていることとして「プログラミングの基礎習得は短期間で終わらせる」というものがあります。それはなぜか。

まず基礎学習を終えたからといってもそこはゴールではありませんし、プログラマーとはなりません。本当に重要で時間をかけるべきなのはこの先。

基礎に時間かけるのは非常にもったいないのです。独学で進める場合は4週間や8週間など、期間を決めて集中して学習しましょう。


独学学習のあとが大事

基礎学習を終えた後、ここからがプログラミング学習の本番です。ここまではインプットが中心ですが、ここからはアウトプットも加わります。

実際にプログラミングを行い、成果物やポートフォリオを作成。知らなかったコーディング手法を取り入れる。

常に両輪で学習と実践の繰り返しです。ですが、これを繰り返すことで着実に力がついてきますし、成果物も増えていきます。


独学者必見! プログラミングの独学でおすすめの本6選!

独学でプログラミング学習を進める方向けに、分野別におすすめの学習書を6冊ご紹介します。

まずは学習のきっかけの一冊として、または学習書選びのきっかけとしてでも構いません。自分に合う学習書を選んでいきましょう。


入門編|プログラミング入門講座――基本と思考法と重要事項がきちんと学べる授業

世界で2億人のプログラミング学習に影響を与えた一冊です。プログラミングに関する「そもそも論」から学習方法や、言語の説明などの概説書

プログラマーを目指しているが、まだ言語の選定まで進んでいない方にはぴったりです。


スマホアプリ(iOS)|やさしくはじめるiPhoneアプリ作りの教科書 【Swift 3&Xcode 8.2対応】

初心者向けに設計された入門書です。ただし内容はかなり濃く、概説的な説明から実際のアプリ作成まで進んでいきます。

入門書でありながら実践もできるので、初学者におすすめの一冊です。


スマホアプリ(Android)|はじめてのAndroidプログラミング 第4版

合計7個のアプリを実際に作るという、かなりボリューミーな一冊。しかし硬い感じもなく、初学者にもわかりやすく解説されています。

Androidアプリの開発に関してよくまとまった概説書であり、実践までできるので、あれこれ本を試す前にこの本を開いてみてはいかがでしょうか。


ゲーム開発|Unity2019入門 最新開発環境による簡単3D&2Dゲーム制作

「ヒヨコ本」と呼ばれ、初学者が開く最初の一冊として設計されています。Unityについての概説書というよりガイドブックです。

内容はインストール方法から始まり、ゲーム内のキャラクターの配置や風景の作り方など、全般的な操作方法等が学べます


AI関連|3ステップでしっかり学ぶ Python 入門

予習・実践・復習の3ステップで進んでいく一冊。オールカラーで挿絵も適度に入っているので、飽きずに進めていけます。

Pythonを初めて聞くという方も対象とし、Pythonとは何か、Pythonにできることについても解説しています。

Python学習の一冊目ぴったりです。


Webサイト作成|確かな力が身につくPHP「超」入門

基礎知識からデータベースに関する知識までをカバーしている王道的な入門書。初学者用なので記述も優しく、それでいてボリュームもあります。

学習を進めていくと、ショッピングカートの作成をしたりログイン画面の作成まで学べる一冊。入門書にしては実践面が充実しています。


プログラミング学習は暗記ではない

プログラミングは暗記ではありません。完全に暗記しようとするのはかなり非効率ですし、現実的ではありません。

加えて、実際のプログラミングの作業はカンニングし放題です。プロも調べながら作業しています

そのため、暗記ではなく「基本的な流れ・考え方・イメージ」の習得に注力しましょう。知識は実践を進めるうちに自然とついてきます。


まとめ

プログラミング学習は基礎知識と実践&吸収の2つのフェーズに別れています。基礎知識は手早く終えて、実践と吸収の時間を充実させましょう。

実務経験がなく、また大学や専門学校でプログラミングを学んでいなくても大丈夫です。自己管理と確固とした目的意識があれば進んでいけます。

この記事を読んで、独学で進めようと決意するもよし、スクールに通うことを選ぶもよし。自分にあった学習方法を選択していきましょう。