【初心者に告ぐ】勉強するプログラミング言語はこう見つけよう  

プログラミング


【初心者に告ぐ】勉強するプログラミング言語はこう見つけよう

 

f:id:ki-ki-blog:20200301115336j:plain
  • プログラミングを始めたいが、どの言語からやればいいかわからない
  • プログラミング言語がたくさんあって、どれがいいのかわからない

 

プログラミングを始めようかと思い、色々と調べると、必ずプログラミング言語の選択という悩みがでてきます。

 

仕事で強制的にやらないといけないようなことがない限り、自分にあったプログラミング言語の選択の悩みは、だれもが通る道ですよね。

 

こういった疑問にお答え致します。

私はこんな人です

疑問にお答えする前に自分の自己紹介しておきます。

  • 文系大学卒業
  • 17年間C言語の組み込みエンジニアをしています。
  • 開発の端から端(要求分析~テスト)、及びマネージメントと、開発の流れを一通り経験。
  • プロセスアセスメント資格も保持

 

現職エンジニア職であり、独学、アプリ学習、オンラインスクール経験もあります。

 

この記事の対象者

  • プログラミングをやろうとは思ったが、言語選択で悩んでいる方

 

この記事を読むことの利点

  •  世の中にはどんな言語があって、どんなところで使われているかがわかる。
  • また、それにより、自分がやりたいことにあった言語を見つけることが可能となる。

結論:あなたが実現したことで決めましょう

f:id:ki-ki-blog:20200301115452j:plain

あなたがプログラミングに興味をもった理由は何でしょうか?

それによって、選択する言語はおのずと決まってきます。

 

と、いうのも、

言語により、できること、できないことがあるからです。

 

と、いうことで、やりたいことベースで言語を説明していきます。

 

まず始めに、プログラミングって何? 

「プログラミングとは」が、曖昧とか、実はよくわからないという方、まずはこちらから。

 

 

www.ki-ki-blog.work

 

 

Webサービスを作りたい人

f:id:ki-ki-blog:20200301115513j:plain

昨今、インターネットビジネスの発達で、こんなことをやりたい方が多いのではと感じています。

 

  • 自分や知人が売りたい商品用のHPを作りたい
  • 自前ブログを開設したい
  • こんなアプリがあったらいいのに

 

これらを達成するのは、以下の言語となります。

 

Ruby

読み方:ルビー。

Webサービスを作るのに適している言語です。

Webサービスというのは、簡単に言いますと、ネット上でいつも使っているサイトやアプリとなります。

 

例えば、Amazon、楽天などのことです。ネットやる方ならほぼだれもが使っていますよね。

 

そこで、このようなWebサービスを作るのに適しているのがRubyです。

正確には、Ruby on railsという、開発キットのようなもの(これをフレームワークという)とセットで使われてます。

 

何事も、ゼロベースで作るのは大変ですよね。

Rubyの場合、このRuby on railsというフレームワークを使うことで、開発期間を短くすることができます。なので、主に中小規模なシステムで採用される言語です。

 

以下のサービスはRuby on railsで作られています。

 

  • Twitter
  • Cookpad
  • Gunosy

 

PHP

PHP(ピー・エイチ・ピー)は “The PHP Group” によってコミュニティベースで開発[1]されているオープンソースの汎用プログラミング言語およびその公式の処理系であり、特にサーバーサイドで動的なウェブページ作成するための機能を多く備えていることを特徴とする[2]。 名称の PHP は再帰的頭字語として、 “PHP: Hypertext Preprocessor” を意味[3][4]するとされており、「PHPはHTMLプリプロセッサである」とPHP自身を再帰的に説明している。 ※Wikipediaより引用

 

Python

Python(パイソン)は、汎用のプログラミング言語である。コードがシンプルで扱いやすく設計されており、C言語などに比べて、さまざまなプログラムを分かりやすく、少ないコード行数で書けるといった特徴がある。Wikipediaより引用

 

Java

Java(ジャバ)は、プログラミング言語Javaと、Javaプログラムの実行環境と開発環境を合わせた演算プラットフォームの双方を指す総称である[1]

Javaソフトウェアは、企業内システムの構築のほか、ブルーレイディスクレコーダーを始めとする家電機器と乗用車搭載の組み込みシステムマイクロ制御装置モバイル端末スマートカードサーバーマシン、パーソナルコンピュータ、スマートフォンなどの様々な環境に普及しており、幅広い用途で使用されている。

Java言語は、近年のグローバルな機械学習の需要増加により世界シェアでPythonには抜かれたが、システム開発では依然信頼されている言語であり、世界シェア2位の座を保っている[2]Wikipediaより引用 

 

ものつくりをしたい方

f:id:ki-ki-blog:20200301115542j:plain

C言語

C言語(シーげんご、C programming language)は、1972年AT&Tベル研究所デニス・リッチーが主体となって開発した汎用プログラミング言語である。英語圏では「C language」または単に「C」と呼ばれることが多い。日本でも文書や文脈によっては同様に「C」と呼ぶことがある。制御構文などに高水準言語の特徴を持ちながら、ハードウェア寄りの記述も可能な低水準言語の特徴も併せ持つ。基幹系システムや、動作環境の資源制約が厳しい、あるいは実行速度性能が要求されるソフトウェアの開発に用いられることが多い。後発のC++JavaC#など、「C系」と呼ばれる派生言語の始祖でもある。ANSIISO、またJISにより言語仕様が標準規格化されている。 Wikipediaより引用 

C++

C++シープラスプラス)は、汎用プログラミング言語のひとつである。派生元であるC言語の機能や特徴を継承しつつ、表現力と効率性の向上のために、手続き型プログラミングデータ抽象オブジェクト指向プログラミングジェネリックプログラミングといった複数のプログラミングパラダイムが組み合わされている[2]。C言語のようにハードウェアを直接扱うような下位層向けの低水準言語としても、複雑なアプリケーションソフトウェアを開発するための上位層向け高水準言語としても使用可能である。アセンブリ言語以外の低水準言語を必要としないこと、使わない機能に時間的・空間的コストを必要としないことが、言語設計の重要な原則となっている[3][4]Wikipediaより引用 

スマホ用アプリ、ゲームを作りたい人

f:id:ki-ki-blog:20200301115612j:plain

ひと昔前ですと、ゲームに興味ある人の多くはプログラミングに興味をもち、何を作りたいかを言われれば、ゲームと答える人が多かったのではないでしょうか。

 

また、最近ですと、隙間時間でスマホゲームをやる人が多いかと思います。

そういったゲームを開発にするにはこちらの言語となります。

 

C#(Unity)

C#(シーシャープ)は、アンダース・ヘルスバーグが設計したプログラミング言語であり、構文はその名前にもある通りC系言語(C言語C++Javaなど)の影響があるが、構文以外の言語機能などについてはヘルスバーグが以前の所属であるボーランドで設計したDelphiからの影響がある。 Wikipediaより引用 

Swift

Swift(スウィフト)は、アップルiOSおよびmacOSLinuxで利用出来るプログラミング言語Worldwide Developers Conference (WWDC) 2014で発表された。アップル製OS上で動作するアプリケーションの開発に従来から用いられていたObjective-CやObjective-C++、C言語と共存することが意図されている。 Wikipediaより引用 

java

Java(ジャバ)は、プログラミング言語Javaと、Javaプログラムの実行環境と開発環境を合わせた演算プラットフォームの双方を指す総称である[1]

Javaソフトウェアは、企業内システムの構築のほか、ブルーレイディスクレコーダーを始めとする家電機器と乗用車搭載の組み込みシステムマイクロ制御装置モバイル端末スマートカードサーバーマシン、パーソナルコンピュータ、スマートフォンなどの様々な環境に普及しており、幅広い用途で使用されている。 ※Wikipediaより引用

プログラミングで収入を得たい人

f:id:ki-ki-blog:20200301115639j:plain

まずはこちらをご覧ください。

 

f:id:ki-ki-blog:20200226062420p:plain

             ※https://blog.codecamp.jp/programming-rankingより引用
 

 【注意】言語ランキングは見るならしっかりと

色んなサイトで、プログラミング言語ランキングを目にしますが、例えばこのランキング。(引用:http://pypl.github.io/PYPL.html)

f:id:ki-ki-blog:20200224054707p:plain

 

こちらは、チュートリアルの検索率によるランキングとなります。

なので、検索率が多い=利用者が多い=人気がある、という風に見えますが、

 

  • 人気といわれているRubyが下位になっている
  • 組み込み業界では神であるMatlabも下位
  • 難しいR言語が上位

と、なっておます。

一方、こちらのランキングでは、

 

f:id:ki-ki-blog:20200301112101p:plain

           ※https://techacademy.jp/magazine/8735#sec1より引用 

 

このように、一言でランキングといっても、指標により順位は大きく変わります。

なので、安易に特定のランキングのみ見て一喜一憂する必要はないかなと。

 

と、いうのも、こんな言葉があるからです。

 

言語選択は人生を決める

f:id:ki-ki-blog:20200301115701j:plain

せっかくプログラミングを始めても、

  • 難しい言語を選んでしまった
  • やりたいことと違う言語を選んでしまった
  • 使われていない言語を選んでしまった

 

これらが、理由により、せっかくプログラミングに触れ、ある程度勉強しても、結果無駄となってしまうことが多々あります。

 

自分も、最初はCOBOL言語という、現在では昔作られたシステムの改修以外では作られていないオワコン言語から勉強を開始したため、大きく遠回りしてしまった過去があります。 

 

このようなことで、結果としてプログラミングから離れてしまうケースが後を絶たないので、そういう意味でも、言語選択は大切です。

 

最後に

今回はプログラム言語の紹介と、その選び方を解説致しました。

色々と言語はありますが、まずは触ってみることをお勧めします。

 

小難しい話はその後でよいのではないでしょうか。