プログラミング言語は何から勉強したらいいの?
私は27歳で異業種からコンピュータ業界に転職し、約30年間の間に、C言語からはじまり、FORTRAN、COBOL、PL1、VB,VC,C++,JAVA等たくさんの言語を経験してきました。
コンピュータの世界は日進月歩で、Twitterやインスタグラムなどのアプリや閲覧システムなどを作成するRuby(ルビー)やAIに特化したPython(パイソン)など新しい言語が次から次へと生まれてきています。
このページでは、これからプログラミングを学びたいが、「プログラミング言語は何から勉強したらいいの?」という人の為に、30年間近くシステムエンジニアとしてIT業界で仕事をしてきた私が、何から勉強したらいいかを解説しています。
これからコンピュータを学ぼうという若い方の参考になれば幸いです。
プログラミングとはどういうものか、まだよく理解できていない人は、「1)プログラミングとは」の記事を読んでみてください。
プログラミング言語は何から勉強したらいいの?
プログラミング言語は非常にたくさんあり、それぞれ特徴があり、開発するシステムで向き不向きがありますので、将来IT業界でどんな仕事につきたいのか、自分の目標をしっかりと決めることが大事です。
ゲームソフトを作りたいのか、WEB系の仕事につきたいのか、システムエンジニアとしていろいろな企業のシステムを作りたいのか、社内SEとして働きたいのか、それによって学ぶ言語が全然違いますので、まず自分の目標をしっかりと決めることが大事です。
・WEB業界で働きたい人
・ゲーム業界で働きたい人
・システムエンジニアとしてIT業界で働きたい人
・企業の情報システム部門でSEとして働きたい人(社内SE)
・組み込み系の仕事をしたい人
・フリーランスとしてやりたい人(起業したい人)
・個人事業主としてやりたい人
・副業(複業)で稼ぎたい人
このあと目的別に学習してほしいプログラミング言語をご紹介します。
将来WEB業界で働きたい人
言語ではありませんがWEB系を学びたいならHTML、CSSの知識は必須です。
まずHTML、CSSを学んでからスクリプト言語を学ぶと良いでしょう。
スクリプトを書くことで、簡単なゲームや画面の動きや人と対話するアプリが作成できますので、楽しみながら勉強できます。
ブラウザとメモ帳があれば、スクリプトを書くことができます。
スクリプト言語としてjavascript、VBScriptなどがあります。
・HTML
・CSS
・javascript
HTML、CSS、スクリプトを学んだあとは、WEBサーバー上で動くCGIプログラムを勉強すると良いでしょう。
代表的なCGIプログラムには、PHPやRubyがあります。
Rubyは日本人が開発した言語で今人気がありますが、個人的にはPHPから学習することをおすすめします。
PHP
PHPは、Personal Home Pageツールの略で、その名のとおりホームページを作成するために、1995年に開発されました。サーバーサイドで動くプログラムは、CGIプログラムと言ってCやPerlで作成されていた。PHPは、CGIプログラムよりも、サーバーサイドで動的なウェブページ作成するための機能を多く備えているため、インターネットが流行りだしてから一気に人気が高まりWEBサービスを作成するスタンダードになりました。 また、データベースへのアクセス機能などもあり、特にApacheなどのWebサーバーから動作させるスクリプト言語としてWebアプリケーション開発に利用されることが多い言語です。 PHPは、CやPerl, Javaなどのプログラミング言語に強く影響を受けており、文法がこれらの言語に近く学習しやすい特徴があります。 ちなみにブログ作成に使われるwordpressはPHPで開発されています。
PHPがどのような言語かわかりやすく解説されているページをご紹介しておきます。
3分でPHPのことが理解できます。
PHPを学習したい人は、まずここからスタートするとよいと思います。
>>3分で理解できるPHP
Ruby
RubyはWebアプリケーションやホームページの開発などで使用されます。 CrowdworksやCookpad、食べログなどでの使用が見られます。 Rubyは日本人の開発による言語で、Webアプリケーション開発に向けたフレームワークのRuby on Railsによって人気が上がりました。 わかりやすい文法で初心者に向いている言語です。 参考書をはじめ日本語で情報を入手しやすいこともメリットです。
Rubyがどういうプログラムか解説しているサイトをご紹介します。
初心者の方は、まずここから理解するとよいでしょう。
PHPとRubyのどちらを学んだらいいか悩む方は多いと感じます。
>>PHPとRubyの違い
Rubyがどういうものか理解できたら、無料でRubyが学べるサイトをご紹介しておきます。
もし何かの言語を経験されている方なら、土日の2日間に腰をすえてやればきっとマスターできるでしょう。
>>Ruby入門
データベースの知識
WEBサーバー上で動くCGIプログラムは、画面から入力したデータをデータベースに書き込んだり、画面から入力された検索キーでデータベースを検索してデータを画面に表示したりなど、データベースと連携した業務が多い傾向にあります。 WEB系を学びたい人は、データベースの知識も必要になります。
私はオラクルがデータベースと連系したアプリを開発するために開発したPro*Cという言語で業務系のシステムを数年開発していた時があります。Pro*Cは、C言語の中にSQLを書いて実行するプログラム言語です。 PHPを学んだあとに、あるいは平行して、SQLやデータベースの知識も勉強するといいと思います。 自宅でオラクルを学ぶ環境を作るのは無理なので、MS-officeのProを購入してACCESSから勉強するといいと思います。
UNIXの知識
言語ではありませんが、PHPやRuby、ApacheなどのWEBサーバー、データベースもUNIX系のOS上で動作しますので、環境をつくったりするためには、UNIXのコマンドやシェルスクリプトなどの知識も必要になっていきます。
WEBデザイナーになりたい人
WEB業界は大きくわけて2つの職種があり、WEBデザインを担当する人と、プログラムを書く人に分かれます。
WEBデザイナーになりたい人は、HTMLやCSSの知識は勿論ですが、photoshopやIllustratorなどのソフトの使い方を学ぶ必要があります。
ベテランになってくると、エンドユーザーから仕事を受託して、WEBデザイナーやプログラマーに要件を伝えて、仕事をコーディネートするWEBディレクターという上級の職種があります。
無料でWEBデザインが学べるサイトをひとつご紹介します。
ゲーム業界で働きたい人
将来ゲームを作ってみたいという人は、Unityという言語を勉強すると良いでしょう。
今人気になっている任天堂のゲーム機スイッチで動く「どうぶつの森」は、このUnityで開発されています。
(私の二人の娘も今夢中になってやっています)
私もゲームは大好きで、学生の頃、任天堂のファミリーコンピュータで「スーパーマリオ」にはまってました。
ゲームが爆発的にヒットしたのは、この「スーパーマリオ」が先駆けではないでしょうか。
unity
Unityは、PlayStation4などの3Dグラッフィックで魅せるゲームから、スマートフォンなどのカジュアルゲームまで実に幅広いゲームを制作する事ができます。 白猫プロジェクトやポケモンGOはUnityで作られたゲームとしても有名です。 スマートフォン向けアプリ(iOSやAndroidなど)をマウス操作などで簡単に制作できます。 そのため「ちょっと、簡単なスマホゲームを作ってみたい」という人にはおすすめです。 また、無料で使えるというのも大きなメリットです。 より高機能なPlusやProといったバージョンもあるが、これらは有償ですが、簡単なゲームを作るだけなら無料のPersonalで十分です。
c#
Unityを勉強するためには、同時にC#という言語についても勉強する必要があります。
システムエンジニアとしてIT業界で働きたい人
将来システムエンジニアとしてIT業界に就職すると、いろいろなコンピュータや技術、言語を経験するでしょう。
上述したWEB系や制御系や組込み系など、開発する業界によって使用する開発環境や言語も異なってきます。
約30年以上、システムエンジニアとしてIT業界で仕事をしてきた私は、C言語からはじまり、FORTRAN、COBOL、PL1、VB,VC,C++,JAVA等たくさんの言語を経験してきました。
将来システムエンジニアを目指す人は、とりあえず「C言語」から勉強すると良いと思います。
今はやっているRuby、PythonなどもC言語の影響をうけていて、C言語の文法によく似ています。
一つ言語を習得すれば、あとは文法が少し違うだけなので、頭の中でロジックが組み立てることができれば言語が何に変わってもプログラムは作れますので。
C言語
私は若い頃に、カーナビの仕事をしていた時期があります。まだ商用化されていない頃です。 カーナビの内部に基盤があり、C言語で作ったプログラミムをOSと一緒にROMに焼き付けて、そのROMを基盤に埋め込むのです。電源を入れれば自動的にプログラムが起動するようになっています。 ほぼすべての電化製品の内部(基盤)にプログラムが埋め込まれています。 そうしたプログラムを組み込み系プログラムと言います。 ロボットを動かしたり、何かを動かすプログラムは、とっても面白いです。 そうした意味でも、C言語を勉強すると良いと思います。 今流行のRuby、PythonなどもC言語の影響をうけていて、C言語の文法によく似ています。 ただし、独学でC言語を学ぶのは少し難しいかもしれません。
VB、VB.net
Windowsで動くアプリは、Microsoftの開発言語を使うことが多いでしょうから、VB,VB.netもおすすめです。
私は趣味で本を見ながらVBでスクリーンセーバーを作ったことがあります。
蝶が画面いっぱいに舞うものや、ネコが画面を走り回るスクリーンセーバーをVBで作りました。
こうしたグラフィック系のプログラムを作るのは、とっても楽しいです。
VBはWindowsのパソコンがあれば、学習できますし、Visual studioのお試し版なら無償でダウンロードできたと記憶しています。C言語を学ぶよりもハードルが低いし楽しいと思います。
JAVA
もしC言語を習得できている人は、JAVAを学ぶと良いと思います。
はじめて学ぶには、かなり難しい言語です。
しかし、JAVA案件の仕事は確実に増えています。
それはJAVAがどんなプラットフォームでも動くからです。
システムエンジニアとは
システムエンジニアとして実際に仕事をはじめると、ここで紹介する言語以外にも学ぶことがたくさんあります。
構築するシステムによって使用する言語、ツール、開発環境、OSが変わりますので、その都度勉強が必要になっていきます。もし開発環境が、UNIX/Linux系だとUNIXのコマンドやviエディターやシェルを覚える必要がでてきます。それ以外にもデータベースやネットワークなど覚えることがたくさんあるのがシステムエンジニアです。
システムエンジニアが何をするのか、よくわからない人は、「5)システムエンジニアとは」の記事を読んでみてください。
iPhoneなどのアプリ開発者になりたい人
iPhoneやiPadなどのアプリを作ってみたい方はSwiftという言語を学ぶといいでしょう。
開発するにはmacOS搭載のPCで動くXcodeという開発環境が必要です。 (Windowsでは作れません)
Mac・iPhone・iPad・Apple Watchなど、さまざまなApple製品向けのアプリケーションをSwiftで開発していくことができます。 しかも、一般的なWebアプリの開発までSwiftで出来るようになったので効率はさらに向上しています。
・Swift
andoridなどのアプリ開発者になりたい人
Android向けのアプリを作るにはAndroid Studioという開発環境と、Kotlinという言語を覚える必要があります。
・Kotlin
Pythonエンジニアになりたい人
機械学習やAIのアプリを開発してみたい方は、Python(パイソン)を学ぶと良いでしょう。
データ解析系の処理にはPythonという言語がよく使われます。
Pythonの学習本を「初級向け~中級向け~上級向けと3段階」で紹介しているサイトをご紹介します。
企業の情報システム部門でSEとして働きたい人(社内SE)
私は50歳の時に、某業界の情報システム部門のSEとして転職しましたが、かなり専門的な開発ツールを使っています。社内SEはその業界によって独自のソフトを使っていたり、使用しているサーバーも違うでしょうから求められるスキルもまちまちです。そうしたスキルは就職してから先輩が丁寧に教えてくれるから大丈夫です。
事前に何かを学んでおくなら、EXECELやACCESSのVBAを学ぶのが良いとおもいます。
どの企業にいってもWindowsのパソコンはあるでしょうから。
EXECEL/VBA
私は50歳の時に、某業界の社内SEに転職しましたが、EXECELやACCESSのVBAでかなり社内システムを作成しています。 VBAは楽しいし、どんな業界の社内SEになっても社内システムの開発できっと使うでしょう。 VBAは勉強するにはおすすめの言語です。 EXECELやACCESSのVBAなら、WinodowsのパソコンとMS-officeがあれば自宅で勉強できます。 VBAの本は市販にたくさんあるし、勉強できる無料サイトもたくさんあるし、わからないことはネットで検索すれば、解決できるサイトはたくさんでてきます。
ACCESS/VBA
ACCESS/VBAも、社内システムの開発できっと使うでしょう。 ACCESSならデータベースやSQLの知識も必要ですが、勉強しておけばきっと役にたつと思います。
社内SEがどんなことをするか、もっと知りたい方は、「6)社内SEとは」の記事を読んでみてください。
フリーランスで働きたい人
将来WEB業界で働きたい人は勿論ですが、フリーランスとしてやりたい人もWEB系の言語を学ぶといいと思います。クラウドワークスなどWEB系の仕事が結構ありますので。ただし、いきなりフリーランスになって月30万とか稼ぐのは、難しいかと思います。WEB業界で3年くらい、いろいろなシステム開発を経験して自信がついてから、フリーランスとして独立した方が良いと思います。私の経験でも、5年くらい立って気の合った仲間で起業して会社を立ち上げた人達がたくさんいました。
副業(複業)で稼ぎたい人
本業をもっているが副業として稼ぎたいという人は、結構いると思います。 今のご時世、ひとつのところから収入を得るのでなく、複数のところから収入を得る、いわゆる「複業」は安定的な生活を送るためにも必要になってくると思います。 副業を認めている企業も少しずつ増えています。
私自身もブログでわずかですが、収入を得ています。
本題から外れてしまいましたが、副業(複業)で稼ぎたい人は、自宅で自分のパソコンを使ってやることになりますので、WEB系の言語やEXECELやACCESSのVBAを学ぶといいと思います。 クラウドワークスなどを見ていると、WEB系やEXECEL/VBAの仕事が結構ありますので。
単価は安いですが、パソコンの操作さえできれば、できそうなデータ入力や文字起こしの案件もあります。
記事を書くのが好きなら、ライティングの案件もたくさんあります。
何から学んだらいいかわからない人
まだ自分の目標がはっきり決められずにいる方は、IT業界でニーズの高いiPhoneなどのアプリ開発言語のSwiftやAIのアプリ開発にむいているPython(パイソン)などを学ぶといいでしょう。企業への就職・転職のときに「即戦力」として採用される可能性が高まります。スマホ向けアプリやAIのアプリ開発は市場が拡大中です。
最後に
以上、私がシステムエンジニアとして30年間学んだ経験から目的別に何の言語を学んだらいいかをお話してきましたが、これからコンピュータやプログラムを学ぶ若い方の参考になれば幸いです。
コンピュータの世界は、日進月歩で新しい言語や技術が次々と生まれてきますので、コンピュータ技術者は一生が勉強です。
是非、自分が楽しんで夢中になれる仕事を見つけてほしいと思います。
おすすめのプログラミングスクール
最後にオンラインで学べるプログラミングスクールをひとつご紹介します。
今なら1週間無料で体験学習ができます。調べるとWEBの基礎が学べるようです。パソコンとインターネットの環境があれば受講できます。
私がおすすめする理由
【TechAcademy】は自宅で学習できるので、自分の好きな時間に自分のペースで学習できます。
忙しくてスクールに通えない人にはおすすめです。
現在就職中でIT業界に転職を考えている人、WEBデザイナーをめざしている人、今後フリーランスでやっていきたい人、今の仕事に役立てたいと考えている人におすすめです。
わからいことがあるとすぐにチャットで現役エンジニアに質問できるところはいいですね。
また、一人で学習しているとメンタル面で目標達成に向かっていく気持ちが低下してしまうことがあります。
【TechAcademy】は一人ひとりにメンターがついてくれるので、自分の気持ちを常に前向きに保つことができるのはいいですね。
30年間でコンピュータとプログラミング言語がいかに進化していったか、「2)プログラミング言語の歴史」という記事でまとめています。こちらも参考になると思いますのでよかったら読んでみてください。
ディスカッション
コメント一覧
まだ、コメントがありません