はじめに
お久しぶりです。大学4年生になりましたFJ2123です。
そろそろ卒業も間近ですが、ちょくちょくNePPに顔を出したり、長期インターンでエンジニアとして働いたりと充実した日々を過ごしています。
今年も、サークルの方でアドベントカレンダーを書くことになったようなので、老◯の身ではありますが記事を投稿させていただきます。久々だから短めだけどご容赦を🙇
内容としては、3ヶ月ほど前に、AtCoderのほうで茶色(400↑)になれたので、やったことや、色々思ったことを総括しようというものになります。(自分のコミット量が少なかったこともありますが、結局1年ほどかかってしまいました、、、、)
なぜ茶色を目指そうと思ったか
(かなり古い記事ですが)
https://chokudai.hatenablog.com/entry/2019/02/11/155904
には、茶色コーダーのレベル感について以下の記述がありました
情報系の学生が茶色であれば、ちゃんと勉強してるなって印象になる
スキル的に確実に保証出来る点は、
標準入出力、if、forなどの単純な操作はできる
問題文を正しく理解し、計算量を考えない仕様通りの実装をすることが出来る
の2点です。ただし、完全に上の能力しか持っていないと茶色になることはできず、
- MARCH理系学部以上に入れる程度の数学力や論理的思考力があり、数学的な工夫が必要な問題を正解出来る
- 典型アルゴリズムに関する知識を多く持ち、探索による全列挙や単純な動的計画法など、典型的な問題に正解することが出来る。
- コーディングや読解速度が早く、単純な問題を早く正確に実装することが出来る
などの特徴を持っていなければ、茶色になることはできません。
上記を見て、自分でも達成できそうだなと感じたことや、来年就職する身として、同期となりうるだろう情報系学科の学生と同じくらいのアルゴリズム力を身に付けたかったというのが、目指した動機になります。
やったこと
結論
アルゴ式が最強です。異論は認めます。
理由は以下です
- アルゴリズムを段階を踏んで学ぶことができる
- Pythonが全然わかんないみたいな初心者レベルでも、標準入力の仕方から丁寧に学べる
- 問題形式が、前解いた問題に、違いを1点加えたものが多いので、負荷のかかり方が程よい
私自身大学では、アルゴリズム・プログラミングに関する授業はそれほど受けていませんでしたが、アルゴ式を画像の進度くらい進めて、その後はガンガンABC(AtCoder Beginners Challenge)に出ることで、Rateを順調に挙げられたかと思います。
得られた成果と思ったこと
プログラミング言語はPythonを使用していましたが、言語によらない基礎的な実装力は身についたかなと思います。
茶色に上がった段階では、まだ計算量などを検討して問題を解くことは意識できていませんが、今後も精進して、実装力を上げていければなと思います。
※ちなみに、就活をしていた当時は灰色コーダーだったのですが、面接などで聞かれることは特にありませんでした。就活のアピールポイントにするため取り組むというよりは、エンジニアとしての基礎体力向上といった名目で取り組むほうが長続きすると思います。