今日は、Twitterで受けた質問についてお答えしていきます。
質問内容は、
アルゴリズムって実際の仕事でよく使うんですか?
というものですね。
皆さんプログラムを勉強していて、(ソートや探索などの)アルゴリズムの問題を解くといったことはよくあるんじゃないのかなと思います。
でも、この手の質問を結構いただくので、「アルゴリズムって本当に必要なのかな?」と疑問に思われてる方が多いということですよね。
仕事ではほぼ使いません!
低レイヤーの部分(OSやセキュリティ)や特殊な分野(機械学習など)では、確かにアルゴリズムでパフォーマンスを上げて起動を速くしたりとか、そういったことも考えながらコードを書いていく必要性はあるかもしれません。
でも、(一般的なプログラマーの仕事で言うと)最近はアルゴリズム的な部分はもうほとんどライブラリーがやってくれているので、あまり知らなくてもプログラムを書けるようになってきてるんですよね。
例えばオブジェクトや数字を並び変えようと思ったら、ライブラリにあるソートの機能を使えば一発でできちゃいますので、アルゴリズムそのものを使って実際のソフトウェアをつくるってことはほとんどないと個人的には思っています。
でも勉強しておいた方が良い!
とは言え、アルゴリズムが勉強した方がいいのか、勉強しなくていいのかって言ったら、勉強してできた方がいいっていうのはあります。
アルゴリズムができたからと言って、仕事ができるわけではもちろんないです。
でも、結局はアルゴリズムってプログラミング脳を鍛えるトレーニングのようなものなので、そういった難しいパズル的な問題を考えられるということは、やっぱりソフトウェアを構築する際もどうすれば一番効率的にコードが書けるかとか速さを出せるかとか、そういったところまでよく考えるクセを持ってる人が多いんですよね。そういうこともあって、シリコンバレーにある企業の入社面接・コーディング試験では、アルゴリズムの問題っていうのはよく出されるわけです。
例えば、Googleさんの面接でも必ずアルゴリズムの試験があるんですが、Googleさんの仕事でアルゴリズムを使うわけではなく上述のようなことができる(考えられる)人を求めているということですよね。
それに加えて、シリコンバレーのIT企業は世界中から応募がありますから、面接対策としてきちんとアルゴリズムを勉強する忍耐力があるかどうかを足切りのために見てるっていうところでしょうね。
アルゴリズム=良い企業に入るため
っていう要素が大きいですかね。アルゴリズムは入社面接を突破するための技術であり、仕事で使いまくる技術ではない。と私は思っています。ただし、アルゴリズムの思考は役に立つので一通りやっておくと良いかと思います。
(繰り返しになりますが)アルゴリズムは実際の仕事ではあんまり使いません。
ですが、自分の忍耐能力や難しい質問に対して考えられる力なんかをアピールするため、つまりは良い企業に入る面接対策のためにアルゴリズムを勉強するというふうに考えていただけると、皆さんも頑張って勉強できるんじゃないでしょうか。
ということでですね、アルゴリズム、私は仕事でほとんど使っていませんが、「良い企業に入りたい」「良い企業で働きたい」という方は必ずやっていただければなと思います!
動画はコチラ↓
酒井潤
Twitterにて、こまめに情報を発信しております!フォロー大歓迎です。気軽にフォローしてください。
Follow @sakaijun
YouTubeも始めました。チャンネル登録よろしくお願いしまっす。
Twitterにて、こまめに情報を発信しております!フォロー大歓迎です。気軽にフォローしてください。
Follow @sakaijun
YouTubeも始めました。チャンネル登録よろしくお願いしまっす。
LINEで更新通知をお送りできます。読者登録もよろしくお願いしまっす。
コメント