Life Literacy

エンジニアの生活の質を向上させる方法について整理中

プログラマであり続けるためにHackerRankをはじめてみた

www.hackerrank.com

プログラミングの時間が取れない

年齢が上がるにつれて、残念なことに自分でプログラミングをする時間を取れなくなってきている。 まだまだ若者よりはプログラミングが得意なつもりなので、プロトタイプ開発など迅速性が問われる業務の場合は、自分でプログラミングをすることもあるが、維持管理や保守で稼いでいくスタイルのために、なかなかそういった楽しいプロジェクトに出くわすことはない。

また、プライベートでは育児で忙しく、なかなか趣味の開発を進めることができない。 といった現状に、毎日少しモヤモヤしながら過ごしていたのだが、ある日、次のような趣旨の記事を読み、毎日30分でも1時間でもプログラミングの時間を取ろうと決めた。

週末に時間をたくさんとって開発をしようとしてもできるわけないから、毎日少しずつでも時間を取ってプログラミングした方が良い

確か英語記事だったと思う。思い出せたら改めて追記しようと思う。

HackerRankを選択した理由

実際のところ、Topcoder | Deliver Faster through Crowdsourcingでも何でも良かったのだが、最近外資系に転職した知人がHackerRank | Technical Recruiting | Hiring the Best Engineersを利用して面接をしたと話してたし、以前にも使ったことがあるので、HackerRankを利用することにした。

まずは習慣化することが重要

最初の内は難しい問題を解こうとせずに、プログラミング言語チュートリアルのような問題を毎日解いて、まずは毎日プログラミングを習慣化するよう心がけた。

今まで使ったことない言語だと躓きそうだが、得意な言語だと嫌気が差してしまいそうだったため、僕はC++を選択した。

最近は何を解いているのか

最近はずっとAlgorithmの問題を解いている。問題のレベルとして、Easyを選択した場合は大抵1日2つ、Mediumの場合は1つといった目安で進めている。

その日のうちに解けなかった場合は、次の日に回すようにしている。問題を解く言語は基本的に何でも良いので得意な言語を選択すれば良いだろう。僕はPythonPerl、時間に余裕があるときはC++で解くことが多い。

まとめ

最初の習慣化がうまく行ったおかげで、まだ1ヶ月程度ではあるが、いまのところ毎日プログラミングできている。また、夜にプログラミングをすることが多いのだが、この時間を捻出するために、電車や昼休みなどのスキマ時間での英語勉強を今まで以上に集中してできるようになった。

余裕が出てきたらプログラミングコンテストにも参加していきたいと思う。

プログラミングコンテストチャレンジブック [第2版] ?問題解決のアルゴリズム活用力とコーディングテクニックを鍛える?

プログラミングコンテストチャレンジブック [第2版] ?問題解決のアルゴリズム活用力とコーディングテクニックを鍛える?