アルゴリズムの学習(超基本)
こんばんは、あめじすとです。
昨日、IPAが4/19に予定されている情報処理試験等の中止を発表しました。
www.jitec.ipa.go.jp
別に受験の期間を設けるのか(次は秋期)、受験料の払い戻しはどうするのかは一切未定です。これを機にオンライン受験にしてしまえばいいのに…
実は今年の春期にはFE(基本情報処理技術者試験)を受けようと思っていたので(今更ではありますが、エンジニアの登竜門的な試験だし)、なんだか出鼻を挫かれた感じです。
さて、そのFEのために向けて特に注力して勉強していたことに「アルゴリズム」があります。
FEは午前・午後と試験が分かれており、アルゴリズム問題は午後試験に必須として出題されます。
私自身は、「アルゴリズム」が何か、ということを知ってはいますが、プログラマーではないので、システムのアルゴリズムは書いたことがないし、いくつかのアルゴリズムを見てもforやwhileのループが入れ子になっているので、考える前に思わず顔を背けてしまっていました。
本棚を見直すと、入社してから勉強しようと購入していたアルゴリズムの本があったので、それを読んで勉強していました(↓)
上記は新版(2020/4/2発売)で、私が持っているのは第3版です。
少なくとも上記の本はちゃんとついていけているので、恐らく超基本の本なのだと思いますが、「な〜んだアルゴリズムってそんなことか」と心理的ハードルが下げられたという意味では良い本でした。
過去のFEの問題も度々でてくるのですが、載っているパターンは多分そんなに多くないはずです…でも何度も言いますが、超基本で、アルゴリズムという言葉に心理的ハードルを持っている方にはおすすめします。
元々アルゴリズムを「自分で考えだすもの」と思っていたのですが、「基本の型」というものがあるのだなぁと腑に落とすことができたのはよかったです。
もちろん、実務ではクライアント固有の要件や制約があると思うので、自分で考える必要があるとは思いますが…
なんであんなにアルゴリズムの勉強嫌がってたんだろうという感じです。
個人的には、この本を2回ほど読み終わったら、英語でアルゴリズム勉強 or 初心者向けだけどもう少し難し目の本に取り組みたいと思います。
それでは〜
自己紹介。
初めまして。
あめじすと、と申します。
名前はしっくりくるものがなかったので、一番好きな宝石から取りました。
外資ITの会社でSE(システムエンジニア)になり、今年で6年目を迎えます。
このブログを始めた理由は、自分の「何か」をアウトプットしたかったからです。
外資ITのSEといっても、私はプログラミングができません。
ソフトウェアに詳しいわけでも、インフラに詳しいわけでもありません。
一番長く参画したプロジェクトではPM(プロジェクト・マネージャー)というか、案件の管理的なことをしていました。
できないことをできるようになるには、訓練と実践が必要だと思っているので、「開発工程に入りたい!!」とずっと思っていたし、希望もしていました。
しかし、会社がそもそも上流工程が強いという立ち位置なので、開発はオフショアや協力会社さんにお願いすることが多く、結局自身で開発する経験は積めませんでした。
かといって、趣味で何か作りたい、という願望もなく、
「プログラミング学びたいけど、作りたいものがないって結構絶望的だよなぁ。手段と目的がごっちゃになってるパターンだわ」
と結構自分をなじる日々でした。
しかし、近年SNSで、ITでもなんでもない業界からSEに転職し、バリバリプログラマーやエンジニアをしている方を見るにつけ、うらやましく、また後悔もしました。
もっと精一杯学んでいれば、もっと仕事の幅が広がったのかな…と。
「目の前のことをしっかりやる」を「言われたことをやる」にすり替えて、
私はゆるゆると言われたことのみをやって働いていました。
そして、SE就職はそもそも本意ではなかったので、
「早めにやりたいことを見つけて転職しよ〜」と思って、プライベートではほとんど勉強していませんでした。
超絶甘ちゃんでした。
転身して活躍している方を見ると本当に悔しくて、
のほほんとしていた自分が情けなくて、
今までとは全く異なるデータ分析系のプロジェクトに参画したタイミングで強く思いました。
(当時'19年11月)今から〜2020年はガンガン知識を吸収する。学ぶ。そしてアウトプットをしよう。
作りたいもの・やりたいことは結局今でも持ってない。
なら、本でもオンラインコースでも「これを作りましょう」と設定されるものを、とりあえず作ろう。
作りたいものができるまで待っていても仕方ないので、とりあえずやることにしました。
技術系ブログなんてまだまだ書けないけど、とりあえずやるしかないので、まずは勉強記録ということでお付き合いください。