今をときめくIT業界。未経験からIT業界に就職、転職する人は増えてきています。需要があるがゆえに人材が足りず、未経験でも簡単に入れるのが現状ですが、勘違いしてはならないのが会社は学び舎ではないということです。
「未経験者OK」という表示。これは「未経験でも会社がしっかりとバックアップして、技術が身につく」という意味ではなく「未経験でもある程度教えたらできる簡単な仕事」という意味です。つまり、IT業界に入ったからといってスキルが身につき、将来安定ということはありません。大抵の場合、収入をアップさせる人たちは休日を勉強の時間に当てています。休日に勉強をして、仕事では培えないスキルを身につける。そのスキルによって新しい仕事を任され、さらにスキルが身につく。IT業界の人材価値はどんどん2極化しています。
Webサイトでみかける「平均年収」など当てにしてはいけません。その数値は、圧倒的強者によって引き上げられている数値だからです。皆さんがIT業界に進んで収入をアップさせたいなら、「会社ではITスキルは身につかない」ことを前提に、自分でスキルアップさせることを考えなければなりません。
ただ、いきなり素人がプログラミングを独学で学ぼうと思っても、10人に9人が挫折するでしょう。挫折をしないためには、適切な順番で勉強することです。
では、具体的に何から始めれば良いのか。挫折しないプログラミング勉強法をお伝えしていきます。
目的の明確化
まずは、何のためにプログラミングを学ぶのかを明確にしましょう。
学ぶ理由は、大きく分けると2つに分かれるかと思います。
・エンジニアとしての市場価値を高めるため
・自分で事業展開をするため
ここでは、どちらかといえば前者の方向けに書いています。これからITエンジニアとして自己価値を高めたい。そのためにプログラミングを学びたいと思っている方、目的を再認識した上で、どうやって学習していくかを選択していきましょう。
学習方法
プログラミングを学ぶ方法は大別して3つです。
スクールに通う
動画コンテンツで学ぶ
本で学ぶ
スクールに通う
最もオススメする方法は、プログラミングスクールに通うことです。なぜなら、金銭的負荷が最も大きく、継続して行動しやすいからです。
スクールのメリットデメリットを以下に記載します。
メリット
学ぶための仕組みが整っているため、継続しやすい
同じレベルから切磋琢磨できる仲間ができる
わからないところを直接聞ける
人材業界と提携している場合、就職まで支援してくれることもある
デメリット
お金が高い
スクールのペースに合わせる必要がある
場所が限られる
スクールの一番のデメリットは、お金がかかるということです。しかし、自分の市場価値が上がることを計算に入れると、授業料が30万かかったとしても、そこで身につけたスキルによって1万円高い案件に携わらせてもらえたと仮定すると、2年半で返済できる計算になります。
人は、楽な方向に流れやすいという前提に立ったとき、最も諦めがしづらいのがスクールに通うことです。
金銭的負荷が大きい分、やめるハードルも高くなるのです。
動画コンテンツで学ぶ
今は、オンラインでの学習が充実しています。オンラインスクールのような講義形式のものもあれば、YouTubeのように単発で学べるものなど、豊富なコンテンツが溢れています。
オンラインのメリットデメリットを以下に記載します。
メリット
自由な時間に学習できる
繰り返し学習できる
再生スピードの変更、早送り、巻き戻しができる
デメリット
自分のPCスペックに依存する
観ただけで勉強した気分になる
その場で質問できない
オンライン学習の一番のメリットは、何と言っても時間の自由度でしょう。わかっているところは飛ばして進められるし、わからないところは何度も繰り返して学習できる。
仕事の都合上、隙間時間が多く発生したり、時間に制約がある方は、オンライン学習をオススメします。
本で学ぶ
本の良いところは、ある程度知見の高い、有名な人が出したものであるため、信頼性が高いというところです。
本のメリットデメリットをいかに記載します。
メリット
基礎的なところから丁寧に書いてくれている
自分のペースで進められる
まとめられた内容を視覚情報としてキャッチできる
デメリット
システムの導入で断念する場合がある
無駄な情報が多い
本は、独学で勉強をするなら必須アイテムですが、本だけで学習を完結しない方が良いです。オンラインコンテンツやスクールを利用しながら、+αで本を活用するのが良いかと思います。理由は、本は細かく書いているのがメリットですが、逆にそれは知っている無駄な情報が多いという特徴でもあります。
限られた時間で、質の高い学習を求めるのであれば、順番はスクール→オンラインコンテンツ→本でしょう。
それを踏まえた上で、自分の金銭面、得たいスキルレベル、期間などを考えて決断しましょう。
ここからは、具体的にどのプラグラミング言語を勉強をすれば良いのかを説明していきます。
最も需要のある言語は?
まず、どのプログラミング言語を勉強すれば良いのかは、目的によります。
Webデザイナーとしてサイトフォーマットを作成したいなら、JavascriptやCSS、iPhoneのアプリ開発をしたいならSwiftなど、TPOで学ぶべき言語は変わります。ここでは、全く知識のない人が、汎用性のあるプログラミング理解をするための言語をを紹介します。
汎用性の高さは圧倒的にJava
汎用性の高さで言えば、圧倒的にJavaでしょう。多くの有識者が「Javaの理解があるなら、他の言語を習得するのも早いだろう」と答えます。そのくらい、Javaを勉強すればプログラミングの基礎基本が学べ、あらゆる言語理解に応用させることができます。特に、PythonはJavaを簡略化したような言語になります。最初こそ言語特有のクセに引っ張られることがあるかと思いますが、慣れればすぐに対応できます。その他にも、Javaをオススメする理由はあります。
Webサイトにたくさん情報が載っている
大規模システムで使われているため、なくなりづらい
まず、プログラミングをしていると、わからないことは必ずあります。IT出身者ならわかると思いますが、基本的にIT界隈では「わからないことがあったらまずググれ」と言われます。google検索をして、それでもわからなかったら聞け、ということ。google検索をした時に、情報のわかりやすさと正しさで言えば、Javaの情報は圧倒的に多いです。それだけプログラミング言語の中では古株でなかなかの良い位置にいます。自動車でいうトヨタのようなイメージだと思っていただければ。
検索したときに、わかりやすい情報が載っているかどうか、これは非常に大きなポイントだと思います。最近流行りのプログラミング言語だと、参考書やサイトもまだ新しく、洗練されていないものである場合が多いので、検索してもよくわからないことがあります。ある程度プログラミングの中身がわかり、自分で仮説を立ててコードを書けるようになってから、最先端のプログラミングに取り掛かるとよいかと思います。
また、大規模システムというのは、なかなか変わりづらい傾向があります。例えば、銀行のシステムはJavaが使われています。皆さんがお金を降ろすとき、カードを入れて暗証番号を入力する、残高が表示され、そこから下ろしたい金額を入力し、お金を引き出す。この一連の流れをシステム化されているわけですが、ここに1つでも不具合が生じてしまうと大変なことになります。
暗証番号を入力したのにお金が下ろせない。
違う人の口座からお金が引き下ろされた。
入力したお金より多いお金が引き下ろされた。
こんな不具合が生じると大問題なので、別のプログラミング言語を使用し、簡単に新しいシステムに移行することなどできないでしょう。だからこそ、Javaは強いのです。
最後に、自主学習をする上でオススメする参考書をお伝えします。
「スッキリわかるJava」
たくさんの参考書を読み漁った中で、この本を超えるわかりやすさに出会ったことはありません。大学で学んだ4年間より、この本1冊の方が私は深くプログラミングを理解することができました。プログラミングを学び、しっかりと知識、スキルの土台を作っていきたい方は、ぜひお手に取ってみてください。逆に、この本を読んで何ひとつ理解できないなら、潔くあきらめましょう。そんくらい初心者のことを考えてくれている本だと私は思います。