こんにちは。8月28日から3週間ほどインターンとしてお世話になっている、東京工科大学の有田です。
ところで、プログラミングをこれから勉強するとき、ひとつの言語をある程度扱えるようにするべきか、いろいろな言語に触れてみるべきか悩む、そんな経験はありませんか。もちろん、いろいろな言語を完璧に扱えるのが理想ですがが、そう上手くもいかないでしょう。実際にネットの記事を漁ってみても、どちらの意見もそれぞれ正当性があり悩ましいものになっています。今回、インターンとしてWebアプリケーションの制作をし、プログラミングの勉強をし始めた人や大学生がインターンシップなどに向けてどう勉強するべきか、自分なりの考えが出たのでブログにまとめようと思います。
結論から言ってしまうと、ひとつの言語をある程度扱えるようにするべきだと思います。
理由は大きく2つ。
・他の言語もある程度読めるようになる
・アルゴリズムは変わらない
では、本編いきましょう。
知らない言語は思ったより読める
今回のインターンでは、GoogleカレンダーAPIを使う上で全く触れたことのないJavascriptについても扱いました。今までPythonと辛うじてJavaしか扱ったことがなかったので、取り合えずJavascriptのサンプルコード見ながら勉強するかと考えていました。
↓ソースコードの一部
function gisLoaded() {
tokenClient = google.accounts.oauth2.initTokenClient({
client_id: CLIENT_ID,
scope: SCOPES,
callback: '', // defined later
});
gisInited = true;maybeEnableButtons();
}
サンプルコードを見て、ふと気が付きました。
あれ?
読める、読めるぞ!
JavascriptはScript言語で扱いやすいからというのもあるのでしょうが、意外にもコードがなんとなく読めます。コードをアプリに使えるように修正して書けと言われたらすぐには出来ませんが、読むぶんにはそこまで困りませんでした。参考にC#などのほかの言語のコードを読んでみましたが、細かいところまではまだしも、なんとなくこんなことをしているのかは読み取れました。読むことができれば、習得も早いです。私の得意なPythonだったらこうだろうなと他の言語との差を考えながらやってみれば、今回のインターンで扱うGoogleカレンダーAPIのコードは自由に書き換えられるようになりました。
知らない言語も、今までの経験から思いのほか読むことができるのです。
アルゴリズムは変わらない
Webアプリケーション制作のなかで、取得した文字列から都道府県名を抜き出し、ローマ字に変換するというごく単純なプログラミングを書く必要がありました。都道府県の日本語名とローマ字名が取得できる連想配列がネットに転がっていたので、あとはWhile文で回すだけです。今までやってきたPythonやJavaと全く変わらない方法でプログラミングを書くことができるので、まずつまずくようなところはありません。
後日競プロのAtcoderで過去に解いた問題をJavascriptで解いてみましたが、PythonやJavaと変わらないアルゴリズムで解くことができました。もっと高度なレベルになれば言語のできること、できないことによって差が生まれてくるかもしれませんが、一定のレベルまでアルゴリズムに違いは生まれないと思います。
おわりに
今回はプログラミングを学び始めたばかりの大学生などに向けて、ひとつの言語を集中的に学ぶべきか、いろいろな言語に触れてみるべきか私なりの結論を紹介しました。ひとつある程度扱える汎用言語があれば、他の言語も一定のラインに引き上げるまでは難しくないと思います。これから勉強を始める人や、始めてのインターンやハッカソンに参加するためにスキルアップを目指す大学生などは、ひとまずひとつある程度扱える言語の習得をおすすめします。