独学のプログラミング
何かスキルを身に着けたい! そんな漠然としたキャリアアップを思い描いた時、ここ最近では、プログラミングを思い浮かべる方もかなり増えてきたのではないでしょうか。
最近ではあらゆるもののAI化、IoT化の波もすさまじく、小学校義務教育ではプログラミングの科目が必修となり、ますますプログラミング学習に注目が集まっています。
今からプログラミングを勉強するなら・・・。
ひと口に「プログラミング」といっても、多種多様な言語があり、できることの種類、拡張性、習得の難易度、求職数の多さ、年収など、全然違います。
特に「転職」や「就職」を視野に入れた場合は、習得している言語で、あらゆる面において差が生じます。
また、独学での習得を目指している方であれば、WEB上で検索したときの[text type=marker color=pink]「情報量の多さ」[/text]なども非常に重要になってくるでしょう。
独学でのプログラミング学習ははじめの一歩が重要
プログラミングを通じてやりたいことや目的が違えば、選ぶべき言語ももちろん違ってきますが、個人的には「最初に選ぶ言語は重要」だと思っています。
理由は以下の通り。
[box class=”box_style_blue” title=”独学の第一プログラミング言語が重要な理由”]
- まず、そもそもプログラミングが楽しいと思えるか?
- 一つの言語を覚えさえすれば、第二言語以降は「強くてニューゲーム」
- 選んだ言語で割と年収が変わる
[/box]
楽しくなければ、自主的な学習なんか中々続くものではありません。
個人的な意見ですが、楽しいかどうかというのは、やはり、「見た目のある成果物を作りやすいか」というところに左右される気がします。
また、最初の言語を覚えるのが一番ハードルが高いというのも理由の一つです。何しろ全てが初めてなので・・・。
しかしながら、一つの言語でもよいので、一通り習得してしまえば、次の言語を習得するための学習コストは大幅に下がります。
もちろん各言語特徴的な文法などは存在しますが、基本的には[text type=marker color=pink]「書き方がちょっと変わる程度」[/text]だからです。
あとは、選んだ言語で、就職のしやすさや、年収が割と変わったりするのも理由の一つとして挙げさせていただきました。
どんなプログラミング言語が独学習得しやすいのか?
[text type=marker color=pink]「未経験者がプログラミングを勉強する」[/text]という前提に焦点をあてて話を進めたいと思います。
開発環境の構築が簡単
プログラミングの未修得者にとって、最大にして最初の難関、それが、開発環境の構築になります。
各言語には特定の動作環境があり、まずはそれを準備する必要があります。
人間、わからないことに関しては中々手を出すのが億劫なもので、はじめの開発環境の整備こそ、おそらく最大の難関と言っても過言ではありません。
ネット上に情報が豊富
上の項でも述べましたが、「プログラマーの仕事はググること」と言っても過言でないレベルでググります。
ネット上での情報の多さは学習難易度に直結します。
独学で習得しやすいプログラミング言語
HTML/CSS
WEBページの開発においてHTML/CSSの知識は必須です。
厳密にはHTML/CSSはプログラミング言語ではなく [text type=marker color=pink]「マークアップ言語」[/text]に分類されます。 普通はプログラミング言語としては紹介されることはないと思いますが、 この後紹介するJsvaScriptやPHPなどと関係の深い言語ですので紹介しました。
HTMLとCSS自体は別々の種類の言語ですが、セットで学習していくのがいいです。
学習というか、WEBページを作るぜ! ってなった時に避けて通ることは不可能ですので、 どうせ覚えます。
大体はJsvaScriptとかPHPを勉強してると、勝手に一緒に覚える感じですね。
意識的に学ぶべきなのはデザイン寄りのコーダーを目指してる方とかになるかと思います。
反面、WEBページ開発の実際の仕事現場でも、深い知識を身に着けている方は意外と少ない印象。
みんな「なんとなく使ってる」感はヒシヒシと伝わってくる言語です。
特にこれらマークアップ言語は検索順位に影響を与えると言われていて、[text type=marker color=pink]SEOと密接に関係のある言語[/text]ですので、一定以上の知識があると現場では重宝されると思います。
JsvaScript
こちらもWEBページの開発で主に用いられるプログラミング言語です。
基本的にフロントエンドと呼ばれ、UI(ユーザーインターフェース)の入力に対して、結果を出力していくというのが主な役割になってきます。
最近ではサーバーサイドもJsvaScriptでやることが増えていますが、郵便番号を入力したら町名までの住所が一瞬で自動入力されるヤツなんかはイメージしやすいかと思います。あれはJsvaScriptで結果を出力しています。
昨今、動的なWEBページも非常に増えていて、特にJQueryと呼ばれるJavaScriptライブラリはWEB開発に必須といっても過言ではないレベルの普及率です。
プログラムらしいプログラムをブラウザ上で簡単に開発できるという、開発環境構築の容易さの面から考えても、未経験者、初心者にはとっつきやすい言語であると言えます。
独学で勉強しようとしたときに、検索から得られる情報量も非常に多く、意欲さえあれば独学習得の難易度は非常に低いと言えます。
反面、実際の現場では、出来なくはないと思いますが、JsvaScript単体で全ての開発を終えるということは中々ないと思われますので、あくまで他のプログラミング言語とのコンビネーションで何かを作るというイメージになるでしょう。
基本的には上で挙げたHTMLとセットで学習していく形になる思います。
PHP
こちらもJsvaScriptと同じくWEB開発に特化した言語です。
JsvaScriptとは違い完全にサーバーサイドで動作するプログラミング言語です。
WEB上で動作するアプリケーションの開発に非常によく使われていて、求人案件数も国内では圧倒的と言っていいほど多いです。
独学習得のための情報量でもJavaScriptを凌ぐ情報量で、よほど専門性の高い開発でない限りは、ググって解決策が見つからないことは少ないでしょう。
このブログでも使っていて、世界一普及しているブログCMS「ワードプレス」はPHPを使って作られているため、PHPを勉強したければブログを作ってみるのもいいかもしれません。
JavaScriptと違うのは初期のローカル開発環境の導入が若干ですが、面倒です。
クラウド開発の方が今は楽かもしれません。オススメはAWSのCloud9というエディタ。サーバー環境も一気に整うので楽々です。
求人案件は多いもののPHPを習得している人口自体も割と多いです。初心者でも習得が比較的容易である反面、実際の現場で報酬や給料水準にコミットしていくには、他のPHP習得者より抜きにでた能力が必要になってくると思われます。
Python
最近の僕のお気に入り言語です。
Pythonは非常に拡張性が高く多種多様な開発用途で使われる、世界基準では非常にメジャーなプログラミング言語です。
PHPのようにWEB上だけに限定されることなく、ネイティブアプリ、WEB開発、ロボットなど、さまざまな現場で使われているPythonですが、最近注目されているのはディープラーニングやAIと言ったキーワードでしょうか。
特にPythonは機械学習に関するライブラリが整っており、「AI作ってみよっかなー」なんて思ったときにとりあえずスタートダッシュは切りやすいプログラミング言語と言われています。
Pythonエンジニアは今、引く手あまたと言ったところです。
しかし、プログラミングの未経験者、初心者に一番初めに学ぶプログラミング言語としてPythonをオススメできるかというと、あまりオススメできません。
特に独学での学習という前提に絞って語るのであれば、今まで紹介してきた言語の中で言えば、おそらく最高難易度です。
理由は情報量の少なさ。加えて言うと、Python単体で目に見えるGUI的なモノを作ろうと思うと、専用のフレームワークなどを学ぶ必要が出てきて、成果物の作成には少しハードルがあるからです。
海外では小学校の授業で使われるのもPythonだったりします。 しかし、何故か日本ではググって出てくる情報が、他の言語と比較して、圧倒的に少ないです。
上でも述べましたが、プログラミングを独学で勉強しようとしたときに主軸になるのはGoogleです。
どうしても第一言語にPythonを学びたい! という強い意志のある方はこのブログでも少し初心者向けに開設したページを作っていますので是非とも参考にしてみてください。
反面、多少プログラミングの知識がある状態で学ぶのであれば、情報が少ないながらも理解することは難しくないと言えます。
理由はPythonのコード自体の可読性の高さにあります。
可読性というのはそのコードが何をしているのか、「誰が見ても分かりやすい」ということです。
プログラムというのは書いて終わり、 ではなく、状況が変われば必要に応じて、 加筆や修正をする場面に出くわします。
アップデートというやつですね。時間が経ってから修正を迫られた時、場合によっては自分で書いたコードですら 「何やってんだ?コレ」ってなることも割とあります(笑)
Pythonで書いたコードは後で見ても美しいです。
VBA
VBAは僕自身一番初めに完全習得したと言えるプログラミング言語です。
基本的にExcelというUIが完全にベースとなるため、拡張性は全くないです。
しかしながら、Excelというソフト自体が非常に汎用性が高いソフトであり、 むしろExcel使ってない会社はないんじゃない?というほど使われてますよね? 事務仕事の人がVBA使えたら、どれだけ仕事の効率が上がるでしょう?
VBAが使える場面は実は非常に多く、 毎日入力する内容、単純なコピペ、特定の形式へのデータの加工なんかは全て自動化できます!
VBA自体がIE(インターネットエクスプローラ)を操作できるので、ネット上の情報を拾ってきてエクセルにまとめる、なんてことも簡単にできます。
開発環境もExcelがあればOK。独学習得の難易度も非常に低く、ググれば分からないことはない、といっても過言ではないレベルで情報が出てきます。
反面、VBAが使えることが条件の求人はそれほど多くなく、エンジニアになりたい!という方が学ぶのは少し違うかもしれません。
とはいえ、実用性は非常に高く、小~中規模データの整理という観点だけで見れば紹介した中でダントツの使い勝手の良さがあります。
「それVBAで一回組んだら、1秒でできるけど・・・。」
ってことをわざわざ手作業で、 毎日何十分もかけて、 繰り返し行ってる現場は非常に多いです。
エンジニアというイメージとは少し異なるVBAですが、最強の事務仕事スキルとして重宝されることは間違いありません。
C言語
Cは比較的歴史が古く、 長い間、多くの分野で主軸とされてきたプログラミング言語です。
僕自身、最初にプログラミングの学習に取り組んだのはC言語でしたが、古い分ネット上でも一定以上の情報量はあり、情報源に困ることはありませんでした。
Cはコンパイル言語と言って、コマンドライン(黒い文字だけ表示された窓です)で操作するのが基本で、高速な処理が可能なのが特徴ですが、UIを使った何かを作るのは得意ではありません。
[text type=marker color=pink]縁の下の力持ち[/text]みたいなヤツです。
割とここが僕がC言語の学習をやめてしまった原因だったのですが、「目に見えて面白いものがすぐに作れるわけではない」 ということですね。
ググった時の情報量は少なくはないですが、変数のメモリへの格納順序、とか、コンピューターにより深い部分で理解をする必要があり、小難しいのであまり初心者にオススメできる言語ではありません。
情報量の多い少ないではなく、 単純に難しすぎて心折れるパターンですね(笑)
また、上でも述べていますが、独学において、「目に見えた成果物」 は割と大事だと僕は考えています。
「出来た!」という実感がありますからね。継続するモチベーションになります。
C言語をやってみた感想としては、 [text type=marker color=pink]出来た感を感じることは少なかったです。[/text]
結局、初心者が学ぶのにオススメのプログラミング言語は?
冒頭でも述べたように、やりたい事、作りたいものによってオススメできる言語は変わってきますが、プログラミングの未経験者/初心者が一番学び易いのは個人的見解ではJavaScriptだと思っています。
CSSはさておき、同時並行的に少なくともHTMLは学ぶことが必達となりますが、ググればいくらでも情報は出てきますので困ることは少ないでしょう。
PHPの項でも述べましたが、ベースをワードプレスにして、自分のサイトを少し作ってみるのがいいかもしれません。
JavaScriptを使って一通りプログラミングの基礎が理解でき始めたら少しずつPHPを織り交ぜたより高度なWEBアプリケーションを作ってみるのも楽しいと思います。
HTML/JsvaScriptを織り交ぜた開発はWebMakerが一番お手軽です。 実際HTML・JsvaScript・PHPができるようになればWEBベースでやりたい事のほとんどは一人で実現可能です。
コメント