Rubyでアルゴリズムを学ぶ方法とは【メンターが回答】

「Rubyでアルゴリズムを学ぶ方法を教えてください」という質問にTechAcademyのメンターが回答しています。初心者がアルゴリズムを学ぶ上で覚えておきたいことや学習する上でのおすすめの教材をぜひ理解しておきましょう。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

※TechAcademyに実際に寄せられた質問に現役エンジニアのメンターが回答しました。

 

田島悠介

質問に対して現役のエンジニアが回答していくシリーズだね!

大石ゆかり

今回はどういう質問でしょうか?

田島悠介

今回は、Rubyに関する内容だね!実際に回答してもらった内容を紹介するね!

大石ゆかり

お願いします!

質問

プログラミングをRubyで初めて学んでいるのですが、アルゴリズム系の処理が苦手です。

paizaなどの問題をやろうにもDランクレベルの問題で全く解き方が思いつかない、ということばかりです。

個人的には、アルゴリズム系の問題を解く能力を付けたいと思っています。

初心者でも学べるようなおすすめの学習サイト、または書籍などを教えていただけると有難いです。

 

メンターからの回答

そもそも”アルゴリズム”とは?というところから考えてみましょう。

コトバンクでは、アルゴリズムを以下のように説明しています。

問題を解決するための方法や手順のこと。問題解決の手続きを一般化するもので、プログラミングを作成する基礎となる。アルゴリズムは1つの問題に対し、複数ある場合が多い。
https://kotobank.jp/word/%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0-532

問題解決を解決するための方法や手段であるという点が本質的な解であるように思います。

プログラミングは論理の塊です。コンピュータに対して我々が論理をぶつけて命令をシているわけです。
極端に言うと、バグを作るのも人間が作った論理が不完全であるためです。

アルゴリズムというものを砕いて説明しましたが、まずは既存の問題集をこなすと言うより論理的に物事を考える術をみつけることをオススメします。

  1. 解を設定する:今導き出したい値、解はなんなのかを考える
  2. 条件を整える:解を導きびき出すために今、揃っている条件を整理する
  3. 過程を考える:ここがアルゴリズムです。

過程は無限にあるので、まずは汚くてもいいので過程を考えてみることをオススメします。

最後にオススメの問題集を添付しますので前述した考え方をベースに、それで練習してみて下さい。

 

世界で闘うプログラミング力を鍛える150問 ~ トップIT企業のプログラマになるための本

 

[PR] Rubyのプログラミングで挫折しない学習方法を動画で公開中

回答してくれたメンター

メンターKN

エンジニアとして案件を受注し会社を経営しています。

Ruby on Railsでの開発を中心に、サーバーの保守運用も行っています。

 

大石ゆかり

回答分かりやすかったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

他にもメンターが回答したRuby raiseで例外を発生させる手順の記事も合わせてご覧ください。

また、TechAcademyでは初心者でも最短4週間でエンジニアになれるRuby on Railsオンラインブートキャンプを開催しています。

現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間でオリジナルWebサービスを開発することが可能です。

独学に限界を感じている場合はご検討ください。