はじめに
非エンジニアですが、3日坊主で終わると思っていたことにハマってしまったので記事にしました。
こんな人でもできるんだな、と同じ世代に感じていただき仲間を増やすのも目的としてあります。
非エンジニア34歳のプロフィール
工業高校・機械課卒、勉強が苦手だったので、日本の伝統的大企業(製造業)に就職。18歳から保全業務16年。機械に潜って油塗れになったり、真夏の夜勤明け40℃近い地下ピットで熱中症になったりしてました。バリバリのゲーム好きインドアオタクなのに、仕事は肉体系でキツかったです。
2年ほど前から、デジタル化遅れうんたら、DXうんたらということで、デジタル業務担当になりました。デジタルに関しては上層部もほとんど知識(というか興味)が無く、ほぼ丸投げ状態でしたが、逆に良かったのかもしれません。仕方なくデジタル化に関して自分で色々情報収集するうちに、AtCoderにも出会った感じです。
知識に関しては、デジタル業務と言っても管理業務(Office等)や設備からデータを取るIoTなどが主で、プログラミングに関してはプの字もわからないという状況でした。設備にはPLCという業務用のCPUみたいなものがあるので、まあ知識0じゃなく1ぐらい……? もちろんアルゴリズム、高校数学に関しても、ほぼ知識は0です。微分? 順列? って何ですか?
タイピングに関してだけは、学生の頃、北斗の拳タイピングゲームにハマっていたので自信がありました。
Atcorderとは?
競技プログラミングのサービスです。
プログラミングで競技するってなんぞや? と最初は思いました。
動画など見ると理解しやすかったです。
当時Factrio(自動化ゲーム)にハマっていたので、面白そうだなと思いました。
しかも無料でワンチャン仕事にも活かせそうなんて最高じゃないか?
はじめにやったこと
興味は持ちましたが、何一つわかりません。
とにかくググりました。
どうやら言語はPython3が初心者にはオススメだそうです。
この最初の環境設定や参加方法、コードテスト・入出力が一番ハードルが高かった気がします。
入出力を覚えるとプログラミングが実際にできて、楽しくなってきました。
その後やったこと
基本的にはわからないことがあったらググるを繰り返しました。
偉大な先人はたくさんおりましたので、何かしら引っ掛かります。
特にお世話になったリンクを張ります。
やっぱりC++の解説が多いんですが、基本的なところは下記記事のようにPythonでも解説されているので、茶色レベルぐらいまでなら困ることは無いと思います。(茶色というのはレートのランク分けだと思ってください。赤が一番レベル高いんです。カッコいいですね)
「アルゴ式」さんは本当に基本のキから教えてくれます。プログラムや数学知識0からすると本当にありがたいです。
ただ、難しい問題もあるので全部やってから進める、ではなく随時進めるのが良いと思います。
「AtCoder Problems」は過去問、難易度や解いた数など参照できます。
過去問をひたすら解くだけでもどんどんレベルが上がると思います。
あと解いた数や難易度を見るとモチベーションも上がります。(大事)
平日は1~2時間ほどしか時間が取れないこともありますが、毎日何かしら問題を解くことを意識しました。
数学に関しては、必要とはわかっていますが頭に入ってこないので仕方ありません。
記号や順列やそういったものは意味がわからないと問題が解けないので、ググったりメモったりどうにかしています。
高校数学は通勤中にYouTubeの講座を聞き流したりしていますが、効果があるかは不明です。
まだ、大丈夫な気はしています。そのうち詰まるんでしょうね……。
結果
この前茶色になりました。一区切りだったので記事を書く動機にもなりました。
また、結果的には社会人になって長らく味わっていなかった「成長」を大きく実感できました。
正直仕事に活かせているかというと実感はないんですが、なんか論理的思考力とかそんなふんわりとした感じで活かされてるんじゃないかと思います。