学生アルバイトの神宮です。この度およそ3週間程の研修を終えましたので、その振り返りや入社して感じたことをお伝えしたいと思います。

私は現在都内の大学に在籍しており、もうすぐ学部3年に進学する予定です。プログラミングには中学時代にはじめて触れ、それ以来趣味としてのプログラミングを学業の合間に行っていました。とはいえ、趣味として行うプログラミングですから、チームとしての開発の経験はありませんでしたし、rooterで主に使用することになるRubyについても特別学習していたわけではありませんでした。

このような経緯から、大学に進学したものの、あまり新しい知識を身に着ける機会が少ないと感じていました。しかし周囲の学生が新しい知識をどんどん吸収しているのを感じ、自分の停滞感に少し焦りを覚えていました。大学に進学してから度々プログラミングのアルバイトをしてみたいと思うことがありましたが、今まで積極的にアルバイトを探すことはしていませんでした。実務未経験でも入社できるアルバイトはあまり数も多くありませんし、講義の合間にエンジニアとして働くのは少し難しいと考えていたためです。そのような中、大学の講義も遠隔が多く少し時間に余裕ができたこともあり、Wantedlyを通して声をかけていただきました。夜遅くにプロフィールを記入し、翌日にはお話をいただいた程のスピード感でした。

研修を通して

研修では与えられた課題を順番に解いていくことを行いました。課題を解くたびに社員の方にチェックしていただき、改善点があればその都度指摘していただきました。研修でとくに印象に残っていることについていくつか紹介したいと思います。

より安全で読みやすいコーディングを

大学に入学してからの2年間、私は余暇に競技プログラミングやCTFについての学習をしていました。競技プログラミングでは正答までの速さが競われることになり、かつ個人戦であることが多いために、変数名やメソッド名に気を使うことはあまりなかった印象です。研修では変数名などを意識していましたが、forによるループなどを控えるように注意されたことが記憶に残っています。とくに配列のように範囲が決まっているような場合では、インデックスが配列の範囲内に収まっているかどうかのテストをする手間を生じさせてしまいます。Rubyにはeachやmapといったメソッドがありますから、インデックスによるミスの心配をしなくて済むようになります。

インデックスの使用を避けられないような場合でもeach_with_indexなどといったメソッドを用いることでより安全にコーディングできます。これを用いて横持ちの表を表す二次元配列の二重ループを行った際にも、インデックスを表す変数をiとjなどとしないほうが良いと注意されたことも記憶に新しいです。これは、iとjのどちらが行であり、列であるかが理解しづらいためです。コードを読み返したときに混同する可能性がある変数の命名は避けるべきで、変数名を見れば行と列のどちらであるかが容易に理解できることも重要な点でした。

スクレイピングやWebの知識が得られる

私はあまりWeb系に詳しくありませんでした(今もですが)。スクレイピングやクローラーというのも、名前を聞いたことがある程度でした。CTFの学習では、ベーシック認証を突破してflagを得るようなものを行ったことがあります。そのwriteup(解法が記された記事)などで紹介されていた、「サーバーにリクエストを送り、得たHTMLをパーサーで解析する」といった手順もその時は深く理解していませんでした。研修ではスクレイピングの導入部分を学習し、以前はあまり理解していなかった前述の解法の意味を理解するとともに、スクレイピングに対して興味を持つことができました。スクレイピングの奥深さを実感するとともにより深い理解が得られたように感じます。

最後に

研修を終えて、研修の課題を解くために必要な知識以上に、学習したいと思うことを多く発見することができたと思います。また、アルバイト探しを始めてから本日まで非常にスピーディーに事が進んできました。それだけにとても密度の高い学習時間であり、これは趣味としてのコーディングでは得られない経験だと感じます。

まだ研修が終わって間もないですが、これからは既存のプロジェクトへの理解を進め、自分にできるところから貢献できるように学習していきたいです。

Pocket