広告

プログラミング言語を学習する時に決めておきたい事は「何のために学ぶのか?」

2020-04-22ソフトウェア開発, 雑記

「プログラミング言語XXX、YYY、ZZZのどれかを勉強したいけれど、どれを選べばいいのだろうか?」
「独学にするか、スクールにするか、迷うなぁ・・・」  

この記事はプログラミング言語を学びたい、現在学んでいる人に向けた記事です。  

ソフトウェアに関して、冒頭のようなことを考えたことがありませんか?僕は何度も何度も考えたことがあります。

ネットを検索してみると「###というプログラミング言語は***ジャンルに利用されるため、その道へ進む方なら必須と言えるものでしょう」と謳っているサイトがたくさん表示されます。この記事を書いている2020年3月だと、python3 が一番おススメされているような印象を持ちますね。

けれど、一度立ち止まって考えてみて下さい。

初めに達成したい目的があり、プログラミング言語はやり遂げるための手段のはずです。

大切なことは何をしようとしているのかをハッキリさせ、それを実現するために必要なプログラミング言語は何なのかを調べた後に、何のプログラミング言語を学習するのかを決める流れが自然ではないでしょうか?この記事ではこの考え方について、もう少し掘り下げていきます。

この記事には次のことを書きました。

自分にとって必要なプログラミング言語の選び方

広告

自分の目的を達成するために必要なもの

僕の考えを明示しておきます。

先ず自分の目的または仕事をはっきりさせましょう。その内容を分析して、どんなプログラミング言語を使えば実現できるのか調べていくのです。調べた結果から自分が必要だと判断したプログラミング言語を一つ選び、必要な事だけを学習していけば十分です。

自分の目的や仕事はインターネットを利用するのか、短時間で計算しなければいけないか、見た目は重要なのか、パソコンで使うのかスマホでも使うのかなどを明らかにしていきます。もしここで手が止まってしまうとしたら、なんとなくでプログラミング言語を学習しようとしている可能性がありそうです。

目的を書き出していけば、どんなプログラミング言語が使えそうなのか見えてくるはずです。WebサービスをやりたいのならPHPやJavascriptやRubyやPython、大量の計算を短時間で終わらせたいならC/C++、C#、java, CUDA, OpenCLなど。

流行っているもの、目的が無く汎用性のあるもの、といった理由でプログラミング言語を選ぶのはやめておく方がいいです。ゴール設定が無くずっと学習し続けてしまったり、今必要なことが分からないため、とりあえず一通り学ぼうとしてしまったりと、何かと時間をかけすぎてしまいます。

趣味であればあまり問題にならないかもしれないですが、ビジネスの種として取り組もうとするのであれば時間の浪費になってしまいますよね。

「そうは言っても、仕事道具のプログラミング言語はたくさん扱えて困ることは無いし、扱えない言語があるために機会を逃してしまうかもしれない」

このように心配する気持ちも分かります。複数のプログラミング言語を扱える人が少なくないですから、競争に負けないようにしたいですよね。

しかし、ソフトウェア開発は個人で取り組むより、チームで取り組む場合の方が多いですから、広く浅く知っている人より、特定の分野にとても詳しい人の方が重宝される可能性は高いです。僕の職場でもこうなっています。

ここまでをまとめると、

初めに、自分の目的を明らかにして、それを実現するプログラミング言語を調べ、必要だと思ったプログラミング言語について、必要な内容だけ学習する方針がよいです。

扱えるプログラミング言語がたくさんある方がチャンスを多く獲得できるかもしれませんが、何かにとても詳しい方がチームで重宝される可能性が高いです。

手段と目的が入れ替わってないか?

やや批判的な意見を描いてみます。

依頼主の目的が達成するための、仕事が上手くいくためのソフトウェアを開発する仕事があって、そのソフトウェアで取り扱うXXXという処理を得意とするプログラミング言語の代表的なものがYYYだから、このYYYを学習しよう。  

という流れが自然だと思っているのですが、本屋のプログラミングコーナーやググった結果を見ると、逆のことを言っているものがたくさんあります。

プログラミング言語ZZZを学習しよう。これはAAA処理で使われているので、それを取り扱うアプリの開発に活用できるよ!  

となっているものが多くないですか?


後者の場合、学習の結果がどこにも繋がらないので、趣味にとどまってしまう、そんな気がします。それで結構だよということであれば問題ないのですが、仕事のためにやっている場合は学習コストを回収することができず、赤字のままになってしまいますね。

いやいや、プログラミング言語学習者の視点で考えると、学習によって世界を広げることができているので、学習の効果は生まれている。世界が広がった結果、仕事につながることも十分考えられる、そんな意見があるかもしれませんね。

とは言え、ソフトウェア開発の仕事を頼む側にとって、依頼先がたくさんのプログラミング言語に精通しているかどうかなんて、仕事を頼むかどうかの意思決定にはあまり影響しないと思うのです。頼んだ通りのソフトウェアを開発してくれるかどうかだけですよね。

一流の寿司職人について考えてみると、洋食も中華も覚えておかないといけないと主張する人は滅多にいません。客が気にしていることは握ってくれた寿司が美味しいかどうかですよね。

ここまでをまとめると、

誰かのためになるソフトウェアを開発するのに必要となるプログラミング言語を調べ上げて、調べた結果からプログラミング言語の学習を始めるのが自然ながれだけど、学習してからお仕事を探していくことを進める本やネット記事が多いと感じます。

まとめ

自分にとって必要なプログラミング言語の選び方について紹介しました。ついつい新しいプログラミング言語を学習してみたいなと思いがちですが、一度「何のためにやるのか?」と立ち止まって、目的を明らかにしてから学習を始めるといいかもしれません。

広告

2020-04-22ソフトウェア開発, 雑記

Posted by Many