複業フリーランスのhillpointです。
ITエンジニアは、プログラミングできないことには話になりません。
なので、プログラミング言語を勉強するのですが・・・
プログラミング言語って、いっぱいあるんです。
プログラミング言語は、それぞれ特徴があって、システムやサービスを開発する際は、システムの用途や分野によって、どれが適している検討し、選択します。
また、会社員エンジニアであれば、会社でのエンジニア育成講習にて、その企業が得意とする分野で一番選ばれるプログラミング言語を選択します。
2個か3個は、演習します。
これから、ITエンジニアになろうなんて人は、まだ、これが得意?という分野は無いので、なりたいエンジニアによって、決めると良いです。
一部、言っちゃいますが
アプリケーションエンジニア(Web系じゃない人)になりたい人は、まずはJavaです。
Web系エンジニアになりたい人は、JavaScriptは必須習得で、その後に、PHPもしくはRubyです。
それでは、詳細説明します!
専門用語について
アイコンがついている専門用語は、「知らないと恥ずかしいITエンジニアの用語集」ページに説明を記載しているので、専門用語の意味が解らない場合、リンクをタップして、説明を参照してください。
たくさんあるプログラミング言語
こちらは、エンジニアが選んだ「今後、スキルを磨きたいと思う言語」です。
これで、全部じゃないですが、エンジニアが勉強したいと思っている言語だけで、こんだけあります。
聞いたことあるやつもあれば、無いものもあるでしょう。
なお、全部、できるエンジニアなんかいません。
経験の長いエンジニアで、3個、4個できる感じですね。
ITエンジニアになるために最初に勉強するプログラミング言語の決め方
多くのプログラミング言語から、最初に勉強する言語を選ぶのですが、最初に勉強する言語は、今後のプログラミングの基礎となるので、人気のある言語よりは、基礎として適している言語を選んだほうが良いです。
冒頭でも書きましたが、ITエンジニアというのは、少なくとも2、3個はプログラミング言語を習得します。
その中でも、最初に習得する言語が、一番勉強するでしょうし、エンジニアとしての技術の基礎となります。
人気のある言語や新しい言語は、今後も使われるか?すたるか?が未知数なので、最初に勉強する言語としては、基礎として適している言語が良いでしょう。
また、その基礎として適して言語も、よく使われている・メジャーな言語を選べば、案件数も多いので、案件ゲットにも役立ちます。
決め方の基準を説明します。
なりたいエンジニアの種類を決めておく
まず、エンジニアは、対応分野によって、いろんな種類があります。
エンジニアの種類によって、勉強する言語は変わってくるので、なりたいエンジニアの種類を決めておきましょう。
エンジニアの種類として、この記事見てください。
知っとるけ?IT系エンジニアの種類
続きを見る
ITエンジニアとしてプログラミング以外に最低限必要なスキルは先に勉強しておく
ITエンジニアになる上で、プログラミング以外に最低限必要なスキルというものがあります。
OS、DB、SQL と HTML/CSS/JavaScriptといったWebまわり。
これらは、プログラミング言語を勉強する前に、使えるというレベルで勉強が必要です。
最低限必要なスキルは、この記事参照ください。
ITエンジニアとして、こればっかりは、できんと困る。最低限必要なスキルセット
続きを見る
なお、これら、最低限必要なスキルを理解した後、勉強するプログラミング言語を決めましょう。
また、プログラミング言語の勉強は、これら最低限必要なスキルを使って勉強しましょう。
これらの最低限必要なスキルは、使うことが大事です。
エンジニアの種類別、最初に勉強するプログラミング言語
それでは、エンジニアの種類別で、最初に勉強するプログラミング言語のおすすめを解説します。
また、その言語の特徴を以下で現しますので、参考としてください。
- 言語タイプ
コンパイル型かスクリプト型か - 情報量
勉強する上でWeb上や書籍での情報が多いか? - 難易度
言語としての難易度 - 案件量
フリーランスエンジニア向けの案件の量が多いか?少ないか? - 代表フレームワーク
その言語の代表的なフレームワーク
アプリケーションエンジニアになるために最初に勉強すべきプログラミング言語
アプリケーションエンジニアがよく使うプログラミング言語もいっぱいありますが
最初に勉強すべきプログラミング言語は、Javaです。
オブジェクト志向の王道Java
え?なんか古くない?と思うかもしれませんが、基礎となる最初の1個は、情報量の多いJavaがおすすめです。
Javaは、オブジェクト指向型言語の最初の言語なので、オブジェクト指向に関する説明も多いのが理由です。
なお、今時のプログラミング言語は、どれもオブジェクト指向型であり、新しい言語は、オブジェクト指向は、当たり前なので、説明も無いケースが多いです。
まずは、Javaで、プログラミング言語の基礎と、オブジェクト指向の基礎を理解しましょう。
また、Javaは、今も利用率が高く、案件量が多いこともおすすめの理由です。
特徴 | 内容 |
言語タイプ | コンパイル型 |
情報量 | 非常多い |
難易度 | 普通 |
案件量 | 非常に多い |
案件単価 | 普通 |
代表フレームワーク | Spring Framework |
最初の第一歩のHello Worldは、こんな風に書きます。
1 2 3 4 5 | public class HelloWorld{ public static void main(String[] args){ System.out.println("Hello World!!"); } } |
私は、もっと最先端のプログラミング言語を勉強したい!という方は、Javaを習得後、2個目のプログラミング言語として、以下を勉強するのが良いです。
Googleが作った言語、Go
Goは、比較的新しい言語で、こんな特徴があります。
・文法がシンプルで書きやすい/読みやすい
・実行速度が速い
・並列処理に強い
なんか使い易そうですね。
Javaより、Goを勉強したほうがいいじゃない?となるのですが・・・
一個だけ、懸念あり。
Goが、これから、みんなに使われるか?というと、未知数です。
どのプログラミング言語が、流行するか?は、解らないんです。
ただ、使いやすいだけでは決まらないんです。
勉強はしたものの、使う機会が無い。。。では、あまりに悲しいです。
なので、Javaを勉強後、2個目のプログラミング言語として勉強するのが良いです。
特徴 | 内容 |
言語タイプ | コンパイル型 |
情報量 | 少ない |
難易度 | やさしい |
案件量 | 少ない |
案件単価 | 高い |
代表フレームワーク | Gin,Echo |
最初の第一歩のHello Worldは、こんな風に書きます。
1 2 3 4 5 6 7 | package main import "fmt" func main() { fmt.Printf("Hello world\n") } |
データ分析や解析系に強い、Python
Pythonも、最近人気のプログラミング言語です。
・文法がシンプルで書きやすい/読みやすい
・標準ライブラリが充実
・さらに幅広い用途に使える外部ライブラリが豊富
標準ライブラリと外部ライブラリが豊富なことから、AIや機械学習にも向いているという特徴があります。
特徴 | 内容 |
言語タイプ | スクリプト型 |
情報量 | 多い |
難易度 | やさしい ※ただし、AI・機械学習は難しい |
案件量 | AI・機械学習を中心に割とある |
案件単価 | 高い |
代表フレームワーク | Django,flask |
最初の第一歩のHello Worldは、こんな風に書きます。
1 | print('Hello World') |
Pythonの構文は、とてもシンプルなので、AIや機械学習の分野だけでなく、Web系にも使われることが多くなっています。
スクリプト型の言語なので、PHPに変わって、流行するかも?しれません。
Webエンジニアになるために最初に勉強すべきプログラミング言語
Webエンジニアになろうとしている人は、まずは、JavaScriptを習得してください。
もう、JavaScriptは、Webエンジニアにとっては、なくてはならない必須スキルです。
JavaScriptを使えるようになってから、PHPもしくはRubyを勉強してください。
なぜなら、JavaScriptは、クライアント側で動く言語なんです。
しかし、システムやサービスを開発する際には、サーバ側にもプログラムが必要になります。
サーバ側で動くJavaScript(Node.js)もあります。
まずは、今、よく使われているPHPもしくはRubyを勉強しましょう。
どっちが良いか?は、特徴を説明するので、気に入ったほうが選んでください。
簡単、便利、PHP
PHPは、Web用に作られたプログラミング言語です。
・文法が比較的容易で、誰でも習得することができる
・スクリプト型言語なので、書けば動き、デバックも簡単
・HTMLに埋め込んで使うことが可能
PHPは、とにかく、Webで使うのが簡単な言語です。
特徴 | 内容 |
言語タイプ | スクリプト型 |
情報量 | 多い |
難易度 | やさしい |
案件量 | 多い |
案件単価 | 安い |
代表フレームワーク | Laravel,CakePHP |
最初の第一歩のHello Worldは、こんな風に書きます。
1 2 3 4 5 6 7 8 | <html> <head> <title>PHP Test</title> </head> <body> <?php echo '<p>Hello World</p>'; ?> </body> </html> |
PHPは、Web用の言語なので、HTMLの中に、<?phpと?> で囲って、プログラムを記述します。
また、他のプログラム言語同様、ファイルを作って、その中にクラスやメソッドを作って書くこともできます。
日本の宝、Ruby
Rubyは、日本人のまつもとゆきひろさんが作った、日本製のプログラム言語です。
こんな特徴があります。
・文法が短く、シンプルで簡単
・日本製なので、日本語の情報が多い
Rubyは、Ruby用フレームワークのRuby on railsを使うことによって、簡単にWebアプリケーションを開発できます。
特徴 | 内容 |
言語タイプ | スクリプト型 |
情報量 | 日本語で多い |
難易度 | やさしい |
案件量 | 割と多い |
案件単価 | 割と高い |
代表フレームワーク | Ruby on rails |
最初の第一歩のHello Worldは、こんな風に書きます。
1 | print "Hello World" |
シンプルですね。
Rubyは、日本のWebサービスを提供するスタートアップにとても人気です。
PHPとRuby、どちらもシンプルで簡単にWebアプリケーションが作れるという特徴です。
どっちが良いか?と言われると
新しいことやってみたい、スタートアップの仕事してみたい!という人は、Rubyかな。
新しいだけにこだわらず、幅広く、Web業界で仕事がしたいという人は、PHP。
Webエンジニアになりたい人は、フレームワークも勉強する
PhpもしくはRubyを勉強した後、フレームワークも勉強してください。
Phpを選んだ人は、Laravelというフレームワーク
Rubyを選んだ人は、Ruby on railsというフレームワーク
フレームワークは、簡単なWebアプリケーションを作るチュートリアルがあるので、作りながら、触りながら、勉強します。
スマホアプリのエンジニアになるために最初に勉強すべきプログラミング言語
スマホアプリを作るエンジニア。
ちょっと特殊と言えば、特殊ですが、案件・需要はあります。
スマホアプリは、簡単そうに思うかもしれませんが、結構難しい。
なので、スマホアプリを作るエンジニアになるんだったら、スマホアプリ用言語でスマホアプリ開発に特化した勉強する必要があります。
Androidアプリ向け Kotlin
これまで、Androidアプリは、Javaで作られていました。
2017年にGoogleが、KotlinもAndriod公式開発言語に追加したことで、一気に人気となった言語です。
Kotlinでも、Andriodアプリが作れるということです。
Javaよりもコードの記述量が少なくなるので、人気となっています。
特徴 | 内容 |
言語タイプ | コンパイル型 |
情報量 | まだ少ない |
難易度 | 難しい |
案件量 | 少なめ。案件はAndroidアプリ開発のみ |
案件単価 | 高い |
代表フレームワーク | サーバー開発もできるので、spring系で使えるフレームワークもある。 |
最初の第一歩のHello Worldは、こんな風に書きます。
1 2 3 | fun main() { println("hello world") } |
iPhone向け Swift
iPhone向けのアプリ開発用の言語です。
特徴としては、「モダン」だそうです。
シンプルで、読みやすく、書きやすい
特徴 | 内容 |
言語タイプ | コンパイル型 |
情報量 | まだ少ない |
難易度 | 難しい |
案件量 | 少なめ。案件はiOSアプリ開発のみ |
案件単価 | 高い |
代表フレームワーク | サーバー開発もできるので、Swift用のフレームワークもある。 |
最初の第一歩のHello Worldは、こんな風に書きます。
1 2 3 4 5 6 7 8 9 10 11 12 13 | import UIKit class ViewController: UIViewController { override func viewDidLoad() { println("HelloWorld!") super.viewDidLoad() } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } } |
Swiftやるなら、Macが必要です。
以上 「ITエンジニアになるために最初に勉強すべきプログラミング言語」でした。