新規記事の投稿を行うことで、非表示にすることが可能です。
2020年12月23日
プログラミング初心者は何から学べばいいの?現場で必要とされる言語とは?
世の中にあるたくさんのプログラミング言語には、それぞれ得意な分野があり活躍する場所も大きく違います。そんな様々なプログラミング言語の中から、プログラミング初心者はどの言語を選んで勉強すれば良いのでしょうか?
今回はそんなプログラミング初心者の方のために、言語の紹介からそれぞれの言語の活躍場所、はじめに学習するのにおすすめの言語や、それらを学習する上での躓きやすいポイントなどをまとめました。
【プログラミング言語ってどんなのがある?】
世の中にはたくさんのプログラミング言語があります。
例えば、よく使われるものの一部だけを挙げるとしても、これぐらいあります。
[topic color=”blue” title=”よく使われるプログラミング言語”]
・Java
・PHP
・JavaScript
・Ruby
・Objective-C
・C#
・C
・Swift
・Python
・Scala
・Go
[/topic]
たくさんの言語がありますよね。他にも様々な言語があり、それぞれにそれぞれの良いところや悪いところ、その言語が得意とする活躍場所等が異なります。
名前が似ていてもJavaとJavaScriptでは大きく違いますし、同じ「C」と名のつく言語でもObjective-CとC#とCはそれぞれ異なります。
サーバーで動く言語とブラウザ上で動く言語は扱いも大きく異なりますし、また物理学のとある研究分野でのみ使用されるようなニッチな言語もあります。
言語ごとの特徴は主に【この言語はなにが得意か】で表現できます。しかし、単なる得手不得手の他に【その言語自体の設計思想】もまた大きな特徴となります。【その言語がどんな思想のもとに作られたか】ということが、言語間の差異を決定づけるのです。
この「言語ごとの設計思想」についてですが、例えば0か1かで全てが決まるコンピュータの世界を、現実世界の【モノ】に置き換えることで理解しようという思想もあれば、関数として置き換えることで全てを人間に理解できる数式のような形にしようという思想もあります。
コンピュータらしく上から下へと処理を流すことに忠実な思想もあれば、そういった各種思想の中間どころをバランスよく採用するものもあります。
言語ごとの得手不得手にしても、設計思想にしても、それらの違いは実際に決して小さなものではありません。こういった違いは、【どんな分野でその言語が扱われるか】という違いにも直結します。
【なりたい職業によって必要な言語は異なる!】
言語ごとにそれがどんな分野で活躍するかは違う、ということを先ほど述べました。、
これはつまり、あなたが学んだ言語次第で、あなたが活躍できる職業が変わるということにも繋がるのです。
例えば、JavaScriptという言語は【画面上を操作する】ことに強い言語です。これはWEBページのアニメーションや画面遷移を作ったりする時にはほぼ必須の技術であり、WEBデザイナーを目指す人にはおすすめの言語です。
それとは対照的に、Pythonという言語は画面上の操作といったことには弱いですが、【データの分析】には強いです。その強みを生かして、この言語はよくデータサイエンティストに使われます。また、近年とても勢いを増している人工知能分野のエンジニアもこのPythonを使うことが多いです。
その他にも、Rubyという言語を学べばいわゆるスタートアップ系と呼ばれるベンチャー企業群に入り込みやすくなるでしょう。これは、Rubyが素早い開発を得意としており、時代の流行に機敏なスタートアップ系企業が、その流行に置いて行かれずに素早く新しいWEBサービス等をリリースする上でとても有利である為です。
一方でJavaを学べば大企業やインフラを相手取るような大きな仕事を引き受ける職場に入りやすくなります。JavaはRubyのような素早い開発をすることはできませんが、大企業やインフラのシステムに好まれるような堅実さがあり、大規模人数での共同開発に向いています。そういった業務に携わりたいのであれば、Javaを学ぶことをおすすめします。
このように、学んだ言語が異なるだけで、同じプログラミング言語とは言えども活躍できる場所は大きく変わります。
ですので、プログラミングを使う職業を目指すにあたって【どんな職業になりたいか】という目標がある方の場合は、学習を始める段階で学ぶ言語を適切に選択することが重要となるのです。
【どのプログラマーでも習得している言語はJavaScript!】
さきほど、軽くですがJavaScriptについて画面上を操作することに強い言語でありアニメーションなどの実装に必須のデザイナーおすすめの言語と紹介しました。
しかし、これはJavaScriptという言語のほんの一側面のみの説明に過ぎません。圧倒的な発展を遂げたJavaScriptは現在、ありとあらゆる場面で活躍する優れた言語としての立ち位置を築いており、どういった立ち位置のプログラマーであってもほぼ確実に業務で触れる機会のあるものとなっています。
圧倒的な発展を遂げたと述べましたが、これは例えば本来ブラウザ上のみで作動するJavaScriptが現在ではサーバー上、ブラウザ上共に動かすことが出来るようになっていることなどが挙げられます。
また本来はJavaScriptでつくることが出来なかったはずのスマホアプリの作成や、WEBアプリの開発についても、現在ではJavaScriptでその大部分を作成することが出来るようになっています。
さらには、当初の画面を動かすという方面の能力についてもJavaScriptは大きな進化を遂げました。条件に応じた画面項目のスムーズな切替はもちろんのこと、郵便番号を入力した後の自動的な住所補完や、ユーザのスクロールに応じて新しい画面やデータをサーバ上から引っ張り出してくることも得意としております。
Googleが提供するスプレッドシート(ブラウザ上で動くエクセルのようなものです)などのような【画面遷移を行わず、WEB上でありながらいわゆる普通のアプリのように使うことの出来るアプリ】をつくることについてはむしろ、実質JavaScriptの専売特許と言って良いほどの勢いを見せています。
このようにかなりの多方面で活躍するJavaScriptは、プログラマーとしてどういった職業で働く場合であっても、ほぼ必ず使うことになる言語です。覚えておいて損はありませんし、むしろこれから先さらに発展することが見込まれている言語ですので、しっかりと学習するのも良いかもしれません。
【ばりばりのプログラマーになりたいならJavaやPHP、Rubyがおすすめ!】
Java, PHP, Ruby。この3つの言語にはとある共通点があります。
それは、【その言語を用いた仕事の数】が多いということです。
特にJava、PHPは圧倒的で、この2つの言語のみで世の中に出回っているプログラミングの仕事の半分ほどが埋まるのではないかというほどです。
次点でRubyが来ますが、RubyはJavaやPHPほどではないにしても、スタートアップ系企業を中心とした「若くて勢いのある企業」から多くの支持を集めています。今後、大いに期待することができる言語と言えるでしょう。
しかし、この3つの中からさらに候補を絞るとしたら、わたしはJavaをおすすめします。
それは、Javaを学ぶことで他の色々な言語への応用が利くようになるからです。
Javaという言語は他の言語から色々と良いとこ取りをして作られている言語です。
設計思想としてもオブジェクト指向という現在のプログラミング言語のかなり多くが取り入れている思想を採用しています。また、その堅実性と歴史の長さから、Javaは他の良いとこ取りに留まらず、他言語への影響も与えています。構文も基本的であり、数多くのプログラミング言語の標準的な書き方に類似します。
これらのことから、Javaを学ぶことで応用が利くようになり、他言語の習得が容易くなるというメリットがあるでしょう。この点ばかりはPHPやRuby、また先ほど紹介したJavaScriptはJavaに及びません。
ですので、プログラミングについての応用可能な幅広い知見を得るための取っ掛かりとして、まずJavaに触れてみることをわたしはおすすめします。
ただし、もちろんPHPやRubyにもJavaを学習するだけでは得られない様々な知見を得ることが出来ますし、前述の通りそれぞれの業界ごとに好まれる言語は異なりますから、最初から【どの業界に行きたい】ということが決まっている方は、その業界で好まれる言語を選ぶことも良いと思われます。
大手ならJava、スタートアップ系であればPHPやRuby、そしてあらゆる業界で共通して使われるのはJavaScriptという図式は当分の間はこのままであるはずですから、もし希望の業界が決まっている場合は、安心してその業界の言語を選びましょう。
【本や学校では基本しか習得できない!間違いなく即戦力は無理!】
今しがた、面白いと感じる工夫でプログラミング学習の壁をうまく乗り越えよう、という旨のことを述べたばかりではあるのですが、実際のところ、プログラミング学習にはとても困難な場面が多々あります。
特に、いわゆる就職してすぐにばりばり働けるような即戦力レベルの技術を習得することは、本や学校などの独学では中々難しいでしょう。ほとんど無理だと言っていいほどです。
これにはいくつかの理由があります。単なるプログラミング学習の困難さもそうですが、その言語を学習して、実際に業務で使うにあたって求められるのは、それら技術の応用です。
例えば業務においてなにかサービスを開発するというとき、多くの場合はなにかしらのフレームワークを使うことがあります。
このフレームワークはそのプログラミング言語を使った開発に最適化されたサービス開発のための枠組みのようなものですが、このフレームワークを扱う技術を習得することも、また一筋縄ではいかないことです。
フレームワークの技術云々の話を抜きにしても、やはり業務で用いられるプログラミングの技術は独学の範囲で獲得するのが難しいものです。
例えば、初学者が学習に使うプログラミングの本には、良いコードも悪いコードも右へ左へと余分な足を出しまくって絡まりあってしまった「パスタのような」ソースコード(しかもその読みづらいコードが何千行、何万行と積み重なっている)を目撃する機会もなければ、そのパスタに【バグを出さないように】正しく作動するプログラムを新たに組み込むこともありません。これは当然のことです。
しかし一方で、実際の業務ではそのような理解があまりにも苦しいソースコードに遭遇してしまうことも多々あります。
こういったとき、いくら基本的な言語の扱い方について本で学んでいたとしても、その知識をうまく応用する力や、そういったコードを読み解いてきたという経験がなければ、読み解くことすら困難な状況に陥ってしまいます。
このように、業務で出くわすプログラミング上の問題やプログラミング周辺領域の問題に対処するためには、ただ本や学校で学習したという程度では力不足であることが多々あります。
このため実際にわたしが日頃接する会社さんのひとつも、技術不足を補うために、未経験か専門学校卒であるかを問わず、入社後4か月間はみっちりと研修を行っていると聞いています。
4か月ほどの期間を取らないにしても、ある程度の期間は研修としての時間の枠を設け、その間にプログラミングの学習はもちろんのこと、プログラミングに留まらないIT分野の広い知識も含めた知識の獲得に費やす企業は多々あります。
また、研修は短いものの、入社後一年間は誰にでも出来るような仕事しかさせず、その間にゆっくりと技術を覚えてもらうという企業もあります。
研修の形は様々ですが、どのような形であれ、入社した新入社員はほぼ必ずと言っていいほど勉強をさせられます。
プログラミングの技術もそうですし、例えばプログラミングしたものをテストする技術や、設計する技術、チームでソースコードのバージョンを管理する技術などなど、業務で必要な幅広い知識はほとんどの新入社員が入社までに独学や専門学校で学習した範囲の知識では持ち合わせていない(あるいは多少出来ても能力的には足りない)ことが大半だからです。
【プログラミング初心者はオンラインスクールなどで学ぶのがおすすめ!】
独学や専門学校での学習では即戦力レベルの技術の習得は難しいということをお話ししました。
しかし、実際のところ、即戦力ほどではなくともそれに近しいスキルを持った人は就職先を探している段階からかなり有利な立ち位置で事を始めることが出来ます。希望する企業へ入ることはもちろん、入社段階での給与交渉の面でもやはり、スキルがあるということはそれだけでかなり有利になります。
そう考えると、たった今、即戦力レベルになるのは中々難しいという話をしたばかりではありますが、なるべくそれに近い技術の習得をしたいと思いますよね?
そんなときに便利なのがオンライン上のプログラミングスクールです。
オンラインスクールでは、本や専門学校で学ぶ内容よりさらに一歩踏み込んだ内容を学ぶことが出来ます。ですのでスキル的に他人と差をつけたいという方にもうってつけですし、また、プログラミング初学者の方が躓きやすいポイントについても丁寧に教えてくれますので、独学では心折れてしまいそうという方にもおすすめです。
記事内で紹介しましたが、プログラミングの学習をはじめたものの、途中で壁にぶち当たり諦めてしまう方は多々います。そのような壁も、オンラインスクールをうまく利用することでちゃんと誰でも乗り越えていけるようになりますので、ぜひスクールの利用を検討してみてください。
【あなたがもしプログラミングを学びたいなら】
プログラミングについてお話しする前にプログラミングを学びたい方へおすすめのスクールをご紹介いたします。
・4ヶ月で最前線で活躍するwebエンジニアへ【CodeCampGATE】
・14日間無料体験あり!【テックパートナーズカレッジ】
・業界最安値のプログラミングスクール|SkillHacks(スキルハックス)
・今すぐ無料説明会を予約!月額9800円で通い放題のプログラミングスクール【Freeks】
・自宅にいながら本格的プログラミング学習|Tech Kids Online Coaching
・本気のプログラミングスクール【ウェブカツ】
・自走できるAI人材になるための6ヶ月長期コース【キカガク】
・受講者満足度90%以上のプログラミングスクール【DMM WEBCAMP】
・【継続率9割】長く活躍するならフューチャリズム