皆さんこんにちは
都内でwebのエンジニアとして働いている主です。
最近ツイッターでよく見かける話題
それは
プログラミングを勉強したいがどの言語を勉強すべき?
ってやつです。
私も昔を思い返してみると悩みました。
「javaはどのようなプラットフォームでも動作する!」
「phpはwebに特化した言語」
「COBOLは昔からある古い言語」
とか色々と自分なりに調べて考えました。
少し話がそれますが
2020年現代のITエンジニアといえばそもそも論として主に以下の2つのパターンに分類されます。(+ニッチなパターン)
フロントエンドのエンジニア
バックエンドのエンジニア
学習者はどちらかを目指すことになることでしょう。
(他にニッチなパターンとしては、ネットワークエンジニアやアプリのエンジニアやセキュリティ系のエンジニアなどがいると思いますが今回の記事では説明を省きます。)
2つのパターンのエンジニアについて
もちろん両方出来るハイブリット人材が強いですが、
初学者はどちらかにターゲットを絞るほうが良いです。
割合としては8:2くらいの割合で学習するのがベスト。
ちなみにフロントエンドのほうがとっつきやすいですが、バックエンドのほうが年収は高いです。
言語を選ぶ前に、まずは自分の方向性を決めましょう。方向性は超重要です。
これを決めていない場合について
どのような状況かというとわかりやすい例を出しましょう。
高校生 A君「学校の先生になりたい」
高校生 B君「僕も、学校の先生になりたい」
父親Cさん「そうか!2人とも何の先生になりたいの?国語?数学?」
高校生 A君「うーん。。。」
高校生 B君「理科の先生!」
こんな感じです。
A君、もっと考えろよ!って思いますよね?^_^
もちろん方向性が決まっていないのはA君ですよね。
方向性が決まったら次は、本記事の主題でもある
どのプログラミング言語を勉強すべきか
について、主に対象は、、、
フロントエンドのエンジニアの場合はこのようなキーワード
javascript,HTML,CSS,PHP.....etc
バックエンドのエンジニアの場合はこのようなキーワード
こんな感じですよね?
さてさて、この中からどれを勉強すればよいのかの
結論から書くと
ぶっちゃけなんでもよいです(超重要)
※しかし、自分の属する方向性に沿った分野であることは大事
それはなぜか?
理由は以下で説明します。
- プログラミングを勉強したいがどの言語を勉強すべき?
- フロントエンドのエンジニア
- バックエンドのエンジニア
- どのプログラミング言語を勉強すべきか
- プログラミング学習の言語選びのポイント1
- プログラミング学習の言語選びのポイント2
- プログラミング学習の言語選びのポイント3
- プログラミング学習の言語選びのポイント4
- プログラミング学習の言語選びのポイント総括
プログラミング学習の言語選びのポイント1
言語の乗り換えは割と簡単にできるので考えすぎない
プログラミング言語なんて
正直どれもそんなに変わりません。
1度プログラミングを習得してしまえば、他の言語なんて簡単に覚えれることが出来ます。
学習したことの無い言語でも仕事で1ヶ月くらい触れてしまえばもう思いのままに操る事ができます。
しかしながら、初学者はこのイメージを掴んでいないんですよね。
これをプログラミングを知らない人は
「英語を習得する & 中国語を習得する」
かのようにイメージしています。
しかし、そんなことは無いんです。
異なるプログラミング言語を習得する事を例えるならば
普通の日本人が「大阪弁」や「博多弁」を
覚えて話すようになるくらい簡易的なものなんです。
その地域に住んでしまえば簡単に覚えられそうですよね?
プログラミング学習の言語選びのポイント2
一番得意な言語を作ろう
先程の方言の例えを思い出して
少し大阪人の気持ちになってみてください。
ツッコミを入れたいと考えています。しかしここは大阪ではありません。
大阪弁では「なんでやねん」だけれど、
他の地域の言葉で話そうとすると「なんでだよ」
と 変換するかと思います。
それとプログラミングも全く同じで
Javaの書き方は「△△△△」、これがphpの場合は「xxxxxx」
って感じで一番得意な言語があると簡単に他の言語も応用することが出来ます。
また全く同じ書き方をする場合も結構多いです。
このように自分が1番得意な言語さえあれば、他の言語も簡単に覚えることが出来るんです。
要は
自分のプログラミング基準を作ること=1番得意な言語を作る
ということです。
プログラミング学習の言語選びのポイント3
悩んでいる暇があったら即勉強せよ!
初学者が陥りがちなパターンは
1.グーグルで調べまくる。
↓
2.xxxxのサービスはJavaで作られているから「Java」がよいのかな?それとも人気度の高い「Ruby」が良いかな?「Python」がよいかな?などと考える。
↓
3.疲れる。
こんな感じ。
先程の記事でも合ったようにプログラミング言語は
正直どれもあまり変わりありません。
言語で悩んでいるのは時間がもったいないです。
悩んでいる時間があったら勉強する時間にあてましょう。
プログラミング学習の言語選びのポイント4
初学者の勉強量はたかが知れているので言語よりやる気や意欲が大事
初学者が学習する期間なんてせいぜい3ヶ月~6ヶ月程度でしょう。
しかしプログラミングを仕事にしている人たちは何十年とその業界で働いています。
ぶっちゃけると
初学者のたかだか数ヶ月勉強した
プログラミング知識になんて対して何にも期待していません。
作れるものなんてたかが知れてます。
未経験が1ヶ月掛けて作れるものなんて、
業界歴5年の私なら、恐らく3日あれば作れます。 笑
プログラミングってそういうものなんです。
頭でっかちになって、「AIは最先端だからPythonだ」だの「Javaを使用している企業は減ってきている」だのと語るより
やる気や向上心を出すほうが未経験は歓迎されます。
プログラミング学習の言語選びのポイント総括
目に止まった言語を学習しよう
求人や自分が作りたいサービスを調べていると、
「xx言語」ってよく目にしますよね?
悩まずにそれを学習すれば良いんです。
目にする機会が多い言語 = 興味のある分野
以上のことから自分が目にする機会の多い言語が、
自分の目指したい方向や業界に近いと言えるでしょう。
先程記載したとおり、悩む時間があったら学習してみましょう。
プログラミング自体への「向き不向き」はありますが
Pythonは全然出来ないけれど、Rubyはめっちゃ得意!!
なんて人はいません。
仕事でプログラミング言語を変更する事を野球で例えるならば「内野手が外野手に転向する」くらいです。サッカーならば「攻撃的MFがフォワードに転向する」くらいです。
少しやり方が変わりますが、内野を守れない人が外野も守れるわけがありません。
またポジションの転向で野球やサッカーは「花が開く」or「少し窮屈な思いをする」ことがあるかと思います。
プログラミングそれと同じです。これらも野球やサッカーのポジションチェンジと近いですね 笑
なのでとにかく学習してみることが大事です。
さぁプログラミング学習を初めてみましょう。