【初心者向け】言語の選び方と勉強方法

フリーランス

この記事は、

「プログラミングを学習したいけど、
言語やデータベースが沢山あってどれを勉強すれば良いか分からない」

というプログラミング入門者・初心者向けに書いています。

また、あなたがプログラミングを学習する理由が

「手に職を付けるため」
(=エンジニア業務で仕事を貰うなり就職したりフリーランスになって、給料や報酬を貰うため)

である事を前提として書いています。

普及率が高く、需要が高い言語を選ぶ

まず、勉強するプログラミング言語の選択なのですが、

実際に普及しており、世の中で使われている言語を勉強すると良いです。

ここでは、Prosheetの検索画面を例にしてみますが、

まずここの検索の選択肢にないものは論外となります。

そして言語の選択肢は

PHP, Ruby, Java, Kotlin ・・・と続きますが、

先頭に近いものが普及率が高く、案件も多いと考えて良いです。

そのため、

PHP、Ruby、Java

あたりが良いという事になります。

これらはどれも実際に、ウェブアプリケーション開発においてメジャーな言語です。

また、普及している分ネットでも情報が充実していますので、勉強しやすいです。
(ただ公式以外のサイトは情報が間違っていたり、古かったりする事もあるので注意。)

もしスマホアプリの開発に興味があるなら、Swiftでも良いでしょう。

海外市場を意識する場合

なお、前述については日本に限っての話ですので、注意してください。

上記3つのうち、Java以外は日本ほど流行ってないようです。
(まったく使われていないという訳ではありません)

海外の案件を意識するなら、Java以外だと

PythonGo言語が良いです。

これらは日本でも最近普及してきました。

なので、まとめると

PHP, Java, Ruby, Python, Go

あたりが良いかなと思います。

将来的な普及率は気にしなくて良い?

よく、

「今後はXX言語が普及する」

だとか、逆に

「XX言語はオワコンで淘汰される」

だとか、そういった話がリアルでもネットでも出てきます。

こういった話は、参考・趣味程度にはしていいと思いますが、鵜呑みはしない方が良いです。

特に初心者のうちは混乱が増えるだけです。

たとえばPHPにおいては、言語のカオスな仕様もあり、昔から、

「将来的に無くなる」

と言われ続けられてました。

しかし実際には、バージョンアップやフレークワークの充実化を経て今に至っており案件が激減しているようには感じにはしません

たしかにRubyなど他の言語に分散してるようは感じもしますが、

僕自身PHPを昔から使っていて、転職先や案件で困った事は1度もありません。

言語の仕様や環境も、

高速化や、

Laravelのような良質なフレームワークによって良くなっています。

どんな言語でも基礎はほぼ同じ

いくらITの世界は時間が速いとは言え、

極端な話、

特定の言語が来月いきなり絶滅するなんて事は有り得ませんし、

どうせ未来の事なんて分かりません。

また、仮に自分が学習した言語が廃れてしまったとしても、

勉強した事によってプログラミングの基礎自体も学べた事になるので、

無駄にはなりません。

言語にこだわりすぎない

「あの言語は神」

とか

「あの言語はダメ」

だとか、

そういう話が好きな人も居ますが、好き嫌い言うぐらいは良いにしても

あまりそういうのに囚われて1つの言語に依存しないようにしたほうが良いです。

あくまで中級レベルまで勉強して、

あとは他の知らない言語でも調べながら使えるようになれれば良いです。

言語が変わった途端、

文字通り何も出来なくなってしまうのであれば

初心者を脱していない事になります。

重要なのは、

どの言語を使う事になっても

自分で調べた上で使えるようになる事です。

あれこれかじるより、まず1つの言語+α集中

浅く広く勉強しようとすると、

中途半端になりますし、情報量の多さで混乱します。

まずは1つの言語に集中してください。

また、それに付随して、

フレームワーク、DBの勉強も一緒にやってください。

フレームワークを使わずにシステム構築する事はほぼないです。

PHPならLaravel

JavaならSpringなど

が良いでしょう。

RubyRuby on Rails一択で良いです。

言語とセットで勉強しましょう。

「まずは言語単体でみっちり基礎を勉強してからフレームワークを使った方が良い!」

という意見もあるのですが、

個人的には習うより慣れろスタイルで、

最初からフレームワークを使って良いと思います。

また、併せてDB(データベース)の使い方も勉強しましょう。

実務においてDBを使わないシステムは、ほぼ無いです。

普及しているMySQLあたりで良いので、

勉強する言語+フレームワークで、DBを扱う方法を覚えましょう。

CRUDと呼ばれる機能を一通り出来るようにする

CRUDとは、

  • Create(作成)
  • Read(読込)
  • Update(更新)
  • Delete(削除)

それぞれの頭文字で
DBを操作する上で必要な機能です。

たとえば、ECサイトで言うと、

商品一覧や商品詳細画面の商品名や値段の表示は

DBからのデータ読込(Read)です。

ECサイトに新しく会員登録をしたら

DBへその情報を新規作成(Create)します。

そして、会員登録後、マイページで自分の住所を変更すれば

その情報を更新(Update)します。

そういう感じで、

普段使っているウェブサービスでは

これらCRUDのどれかでDBを操作しています。

逆にプログラム上でこれらが出来れば

DBの基本操作はOKという事になります。

実務で覚えるのが一番

そして、一番効率が良いのは、独学より実務で覚える事だと思います。


初心者や未経験者OKの現場に入り、そこで必要とされている技術要素を、実践しながら勉強が一番良いです。

と言うのも、経験上、

エンジニア業務で大切な事(=トラブルになりやすい事)は

プログラミング技術等よりも

プロジェクト関係者とのコミュニケーションとなります。

せっかく技術があっても、

クライアントとの意思疎通が出来なかったら

希望に沿ったプロダクトが作れません。

また、プロジェクトメンバーが何人も居る場合、

そういった人たちとの連携も必要になります。

これは独学が難しく、実務で鍛えるしかないと思います。

案件やプロジェクトの規模がどの程度だとしても、

関係者が皆無なプロジェクトというものは存在しないので

コミュニケーションを避ける事は難しいです。

技術と同じくらい、コミュニケーションは重要な要素である事を覚えておきましょう。

コメント

タイトルとURLをコピーしました