「動くコード」から「効率の良いコード」へ。
ロジック力を鍛える『実践アルゴリズム』を公開しました

「とりあえず動くコードは書けた。でも、この書き方で本当にいいんだろうか」。プログラミングの基礎を終えたあと、そんなふうに感じたことはありませんか。

その次の一歩に応える新コース『実践アルゴリズム』を公開しました。テーマは、言語やフレームワークが変わっても通用するエンジニアの基礎体力、アルゴリズムとデータ構造です。

アルゴリズムと聞くと数学を思い浮かべるかもしれませんが、このコースに数式は出てきません。FizzBuzzなどの身近な課題から始めて、実際にコードを書いて動かしながら、効率の良いコードの書き方を体感していきます。

 

アルゴリズムを学ぶと、何がいいの?

たとえば、あらかじめ順序よく並べられた10億件のデータから目当ての1件を探すとき、先頭から順に調べると最大で10億回の比較が必要です。二分探索というアルゴリズムを使えば、30回ほどで見つかります。同じ結果を出すコードでも、書き方しだいで速さはまるで違います。その差を生むのが、アルゴリズムとデータ構造の知識です。

この「効率の良い書き方を選ぶ」感覚は、フロントエンドでもサーバーサイドでも、どんな言語でも役立ちます。コーディング面接で頻繁に問われるのも、それが理由です。

 

このコースで何ができるようになる?

・配列・文字列を使ったロジック問題を自力で解けるようになります
・二分探索・深さ優先探索・幅優先探索といった代表的なアルゴリズムを、自分の手で実装できるようになります
・計算量を意識して、効率の良い書き方を選べるようになります
・正規表現やオープンデータを使った、実データの処理を経験できます

 

どんな順番で学ぶ?

手軽なブラウザでのコーディングから始めて、実務と同じローカル環境での開発へ、段階的にステップアップします。

まずはブラウザ上の腕試し問題でウォーミングアップ。買い物リストの合計やFizzBuzzといった定番から、フィボナッチ数列や配列の回転などの応用まで、12問にJavaScriptで挑戦してロジック力を鍛えます。

続いて自分のパソコンにNode.jsやリンターを含む開発環境を構築したら、ここからはTypeScriptを使った本格的な実践課題です。

 

アルゴリズムとデータ構造

複数のアプローチでフィボナッチ数を計算し、処理速度の違いから計算量の概念を体感します。そのうえで、二分探索を使った宝石探し、深さ優先探索によるファイルツリーの探索、幅優先探索で友達とのつながりの最短距離を求める課題に取り組みます。

アルゴリズムの応用

学んだアルゴリズムを組み合わせて、現実の課題を解きます。ドローン配達の最短経路を求めたり、逆ポーランド記法で計算できる電卓を作ったり、あいまいな言葉でも探せる柔軟なFAQ検索を実装したりします。

データ処理の実践

総仕上げは実データです。正規表現で文字列を自在に扱い、国土交通省のオープンデータから「一度に最も多く市区町村が更新された日」を抽出するなど、実務さながらのデータ処理に挑戦します。

 

こんな人におすすめ

・JavaScriptの基礎を終えて、次に何を学ぶか探している方
・数学に苦手意識はあるけれど、アルゴリズムとデータ構造を体系的に学びたい方
・コーディング面接や競技プログラミングに備えたい方

 

対象・受講方法

実践アルゴリズムコースはプロプランで受けられます。難易度は中級レベル、学習時間の目安は15時間ほどです。JavaScriptの基礎とコマンドラインの基本操作を学んでいれば取り組めます。腕試し問題はJavaScript、ローカル環境での実践課題は主にTypeScriptで実装します。

コースの詳細・受講はこちら