プログラミングに触れて長い人にとっては当たり前のことでも、これからプログラミングを始めようとしている人やプログラミングを始めたばかりの人には分からないことがたくさんある。
今回は、いろんなプログラミング言語を学ぶのはプログラミングを学び始めたばかりの人にとっては時間のムダだよということについて。
Twitterのプロフィールに「Python, Ruby, TypeScript, React …」みたいな感じで、たくさんプログラミング言語やフレームワークを並べているのを見かけるが、初心者でプログラミングを仕事として使ったことのない人からすると、「この人いろんな技術に精通しててすごい!」みたいに感じたり、たくさん技術を理解している人のほうが素晴らしいエンジニアなのだろうと考える人も中にはいるかもしれない。
ぼくが数年前にこの業界に入りかけの時はそう思っていたので、間違いなくそう考える人もいるはず。結論から言ってしまうと、全くもってそんなことはない。
例えば、1つか2つのプログラミング言語しか書けなくても、6つのプログラミング言語のシンタックス(プログラミングの文法のこと)を理解している人よりもエンジニアとしてのスキルが高いなんてことは当たり前にある。
というか、プログラミングの基礎が分かっていれば他の言語なんてすぐにストレスなく使えるようになるので、たくさんの言語のシンタックスを理解して書けるということはあんまり価値がない。
もう少し掻いつまんで説明してみる。
プログラミング言語はほとんどが同じコンセプトだから
どのプログラミング言語にも関数やループや配列やif文や変数が用意されている。そして、そのほとんどが大体同じ感じで書ける。
Java, JavaScript, PHPの各言語でのループの書き方が、こちらのDEV.toに投稿された記事で紹介されているが、まさにほとんど同じといった感じなのがよく分かるはず。
多少シンタックスの違いはあるとはいえ、一つのプログラミング言語を習得している人ならば他の言語のざっくりした部分はすぐに理解できる。
加えて、プログラマーの最大の味方であるインターネットが使い放題の世の中では、シンタックスを完璧に暗記するなんて無意味であることを考えれば、たくさんのプログラミングを理解したがることがいかに時間のムダかがよく分かるかと。
たくさんのプログラミング言語をスラスラ書ける=すごいでは全くない
プログラミング言語というのはただの道具なので、Swiftが書けるからすごいとか、Pythonが書けるからすごいなんてことには全く繋がらない。
そもそもコンピュータが理解するのは0と1だけで、実はプログラミング言語を書いた後でいろんな工程があって最終的に0と1だけがコンピュータに指令として送られる。
もし頭がコンピュータ並みに賢い人ならばプログラミング言語すら必要なくて、ただひたすら0と1の組み合わせを自分の頭で作り上げて書くということもできるが、そんな人間は存在しないので人間は人間が理解できるプログラミング言語を介してコンピュータに指令を送っている。
話は脱線したが、要はプログラミング言語というのは目的を達成するための手段として存在しているだけであって、使わない言語をたくさん学ぶというのは特に初心者の人にとってはただ混乱するだけになるはずと思う。
まとめ
まあ、この記事で伝えたいのは、みんな心配せずにまずは基礎を理解しようぜということ。プログラミングはコンセプトさえ掴むことができれば、あとはひたすら前進するのみ。
それと、他人と自分を比べるほど意味のないことはないので、昨日の自分よりもレベルが上がっていればそれで自分を褒めてあげること。
あんまりこういう単純なことを書いてる記事を読んだことがなかったので書いてみた。