プログラミング

プログラミング初心者におすすめの入門言語は?独学?フリーランスエンジニアが答えます。

とりあえずプログラミングを学びたい!という方は多いのではないでしょうか?

そんな方々の中で出てくる最初の大きな問題、

「何の言語をやればいいのか。」

一言でプログラミングというワードで調べてみても、多岐に渡って存在しているため訳が分からないと思います。

プログラミング未経験者
プログラミング未経験者
何書いてあるか分からないし、数がありすぎて何やったら良いか分からない…
プログラミング未経験者
プログラミング未経験者
ほんとにこの言語で良いのかな?

などの不安に襲われるかもしれません。

文系でプログラミング初心者だった頃の私にとっては宇宙人語だとさえ思ってました。

そんな宇宙人語の中で何が良いか、考えてみましたのでご覧下さい。

プログラミングで何を作ってみたいかで決める

シマエナガ
シマエナガ
え、言語を教えてくれるんじゃないの!?
なるき
なるき
そもそもプログラミング言語は手段であって、目的じゃない。まずは何を作りたいか明確にしてから決めるのがおススメ。

プログラミングをしたい!と調べたあなたは、何を作りたいかを飛ばして考えてはいないでしょうか?

プログラミングはあくまでモノづくりです。完成イメージが無いままプログラミングの文字列と対戦を始めるのは、初心者にとって中々苦行であると考えます。

乗り物でのイメージだとこんな感じです。

・乗り物:完成するモノ

・部品:開発言語

・組み立てる力:プログラミング能力

車を作りたいから、作る為に何をすればいいか調べるのではないでしょうか。

ここで乗り物を何の種類にするかも決めないで、とりあえず作り方だけを知りたいって人は中々いないと思います。

なぜプログラミングだと逆転の減少ができてしまうのか、私は甚だ謎です。

原因の一つとして、プログラミングにフォーカスを当てた情報が多く、成果物は何なのか置いてけぼりになっている現状が起因しているかもしれません。

とはいえ漠然としすぎているので、私の例を書いてみました。参考までにどうぞ。

例:スマホエンジニアの私の場合

入社当時は最新技術を習得したかったので、スマホアプリを始めとしたIoTや、AI開発の道に進みました。

また、スマホアプリの技術を習得すればアプリをリリースして自分の形にできると思ったこともあります。
(現実はアプリ開発技術(フロントエンド)だけだと厳しいですが…)

それらの目的を達成する為には何の技術が使われているか?を調べてみると
Objective-CやJava、Kotlin、Swift、JavaScript(Alexaスキル開発)などの言語に出会いました。(地獄も見ましたが)

プログラミングであなたは何を作りたいのか、それを念頭に置いて考えてみてはいかがでしょうか。

シマエナガ
シマエナガ
とは言っても、自分が何をやりたいか思いつかないよ…
なるき
なるき
その場合もあると思うから、おすすめの言語を次の項目に書いてみたよ。

とにかくプログラミングをやってみたい場合


前項で触れた通り、

とりあえず、プログラミングに触れてみたいんだ!

といった方も中にはいらっしゃると思います。

そんな方にはオーソドックスにJavaをおススメしておきます。

巷では有料化だなんだと騒がれていますが、プログラミングの考え方を鍛える上では応用が利くようになります。

また、ベンチャーなどはモダンな開発言語を積極的に多用する傾向がありますが、

大企業になればなるほど安定した言語を利用する傾向がありますので、大体Javaが組み込まれていることが多い印象です。

その上規模が大きいほど修正には莫大な費用がかかったり人員を調達する事が難しい事からも、余程のことが無い限りは言語変更がかからないと思われます。

その為廃れていく可能性も低く、身に着ければ長く利用できるといえるでしょう。

加えて、次の表をご覧ください。

プログラミング言語別の求人数一覧

引用元:Nojov

2020/8/30現在も他のプログラミング言語に比べて求人数も多いことから、Javaは広範囲で活躍できる言語であるといえるのではないでしょうか。

まずはスクラッチでプログラミングの作り方に触れるのもアリ

また、私が現場でも、プログラミング初心者の方々におススメしているものがあります。

サインインは必要ですが、無料で利用ができる歴としたプログラミング言語です。

ScratchはMITメディアラボのライフロングキンダーガーテングループのプロジェクトで、無償で提供されています。
引用元:スクラッチについて

なぜ初心者におススメかといいますと、子供でもプログラミングができるように開発されたもので、コーディング記述なしで直感的に組み立てることができるからです。

組み立てる力がつけば、その考え方を元に各プログラミング言語に合わせて書いていくだけです。

後日使い方等を記事にまとめようと思いますので、お待ちください。

とにかく1つのプログラミング言語を極める

シマエナガ
シマエナガ
自分に合うやつ分からないから、色々やってみようかな!
なるき
なるき
色々やるのは良いけど、複数同時にやるのはおススメできないかも。

何を目指しているかにもよりますが、開発したい言語が決まったのであれば、それを習得するまで他のプログラミング言語で浮気をしないことがおススメです。(スクラッチを除く)

というのも私はObjective-Cから入ったのですが、曖昧な状態でJavaも始めることになり、書き方が混ざってしまいました。

簡単な例で言うと、メソッドの定義一つでも違う言語であれば書き方が異なります。意味は同じです。

// Java
public void method (double a){
}
// Objective-C
– (void)method :(double) a {
}

あいまいな知識のまま複数言語を扱うと、どっちの書き方がJavaだっけ?となり、覚えるのに時間がかかってしまいます。(当時はそれで苦しみました)

一つ柱ができると他のプログラミングも理解できるようになってきますので、まずは1言語に集中する事をおススメしたいです。

シマエナガ
シマエナガ
ドイツ語と同時にフランス語を学ぶようなものかな?
なるき
なるき
まさに二兎を追う者は一兎をも得ずだね。

まとめ


プログラミングは今年から学校で触れるようになったようですが、それ以前では義務教育で触れないものですので、中々縁がありません。

その為余程の適正があれば別だとは思いますが、仕事の合間などにやるにはハードルは中々高いと思われます。

だからこそプログラミングを仕事として始めたいという方は、これを作りたい!という意思を持って始めて頂けたら、今後食らいつけるのではないかなと思います。

自分がプログラミングしたものがリリースされたり、世の中で使われるようになると、達成感も一入です!

プログラミング技術に固執せず、モノづくりのワクワクを忘れないでいただきたいです。

シマエナガ
シマエナガ
いつの間にか技術にのめり込んで、それ自体が目的になってる人が多いからね…
なるき
なるき
耳が痛い…。自分も初心を忘れず、モノづくりを楽しみたいな!
要点まとめ
  1. プログラミングで何を作ってみたいかで言語を決める
  2. 特にない場合は、幅広く需要のあるJavaがおススメ
  3. 習得する言語を決めたら、その言語に集中する