2016年11月14日

【コンサルタント散歩】

~アルゴリズムの大切さ~

今回、コラムを初投稿することになりました。まずは簡単に自己紹介をさせて頂こうと思います。筆者は前職では主にソフトウェア開発の下流工程に従事しており、官庁系や金融系の業務を扱っておりました。今ではほとんど聞かなくなりましたCOBOL言語を用いてのプログラム開発や設計~本番稼働、運用・保守の経験をしたのちに現在に至ります。

筆者のコラムでは、開発経験や今後コンサルタントとして奮闘していく中で大事に思ったことやコンサルタントと開発のギャップなど、生の声をみなさまにお届けできればと考えています。「そんなことは知っている」、「そんなこと常識だろ」的なことを記載させていただくかもしれませんが、ごゆるりと時間のある時に片手間に読んでいただければ幸いです。

それでは、第1弾として開発現場(主にプログラマ)において当たり前だけど分かっていないと痛い目にあう「アルゴリズムの大切さ」について記載させていただきます。みなさんも痛い目に会った経験があるのではないでしょうか。筆者はアルゴリズムを疎かにしていたがために、新人の頃は「初期化のし忘れ」、「無限ループ」や」「後工程になってからのバグ」などで、徹夜や他の先輩にご迷惑をかけた経験があります。

まずは、復習になりますがアルゴリズムとは何でしょうか?Google先生に問い合わせると下記のような回答が返ってきます。

Google先生 :「アルゴリズム(英:algorithm)」とは、数学、コンピューティング、言語学、あるいは関連する分野において、問題を解くための手順を定式化した形で表現したものを言う。「算法」と訳されることもある。」

Google先生 :「アルゴリズムとは、ある特定の問題を解く手順を、単純な計算の操作の組み合わせとして明確に定義したもの。数学の解法や計算手順なども含まれるが、ITの分野ではコンピュータにプログラムの形で与えて実行させることができるよう定式化された、処理手順の集合のことを示すことが多い。」

他にも同じような内容がいろいろ回答として返ってくると思います。筆者は、「問題を解くための手順」、「コンピュータにプログラムの形で与えて実行させる」といったアルゴリズムの「考える力」が一番重要なのではないかと感じています。

次回は、この「考える力」を身に付けるために行ったフローチャートについて記載させていただければと思います。

2016年11月