ナビタイムジャパンのインターンに参加してきた話

ナビタイムジャパンさんのインターンに参加してきました!

備忘録的に書き残しておこうと思います∧( 'Θ' )∧

概要

NAVITIME APIを使って経路探索のwebアプリを作る、というテーマで進めていきました。期間は3日間(+任意参加の講義半日)で、使用技術としてはHTML/CSSJavaScriptでした。

 

流れ

1日目の午前は若手社員の方にスライドやサンプルプログラムなどを使ってハンズオン形式でAPIの使い方を教えてもらいました。この講義のおかげで午後から開発にスムーズに入ることができたと思います!

また、嬉しい驚きだったのが学生1人にメンターさんが1人ついてくれること!通常業務をこなしながらにもかかわらず、slackでメンションを飛ばすとすぐに反応してくださってありがたかったです🙏✨初めてペアプロもしました!私を担当してくださったメンターさんは検索エンジンの開発をしているバックエンドの方だったのですが質問したら丁寧に対応してくださったし、何より話しやすい方だったのでslackで質問する時のハードルが高くなってしまうことがありませんでした。感謝です🙇‍♂️

1日目の午後から個人で開発を進めていく形になっていました。ロードマップのようなものを用意してくださっていてそれに沿って1つずつ実装していけば形になるようになっていました。レベルが1〜3に分かれていて、レベル1を埋めてからあとでレベル2,3に挑むもよし、最初からレベル1~3をやっていくもよしという感じでそこらへんもメンターさんとお話しして方針決めてました。

開発はNAVITIME APIのドキュメントを読みながら進めていたのですが、めちゃくちゃわかりやすいです。あまり使い慣れていない地図関連のAPIも親切でわかりやすいサンプルコードが載っていて、APIについてはほとんど詰まることがありませんでした。わかりやすかったです本当...(2回目)世界中のドキュメントあれくらい分かりやすくなればいいのに...

また、毎日社員さんとのランチ会を設定していただいてました!大学時代の選考や携わっている業務など、学生の要望を聞いてそれに合った社員さんとお話しできたのでよかったです。

 

反省点

主に2つあります。

1つ目はソースコードが汚くなってしまったことです。今回のインターンではスプシで学生の進捗を管理していて、他の人がどこまで進んでいるかが見られるようになっていました。自分がどれくらいの進捗なのか把握できる点はよかったのですが、私の場合周りの進捗が見えて焦ってしまい、作るものの全体を把握しないでコードを書き始めてしまいました。そのせいでコード量が増えていくうちに可読性がどんどん下がってしまいやっちまったなあとなりました。なんとか自分なりに読みやすいようにファイル分けたりしましたがキツかったです(自分のせい)。コードを書き始める前に全体を把握してある程度設計するべき、ということを身をもって感じました(当たり前体操)。

2つ目はコミュニケーション面です。先ほど書いたようにメンターさんや社員さんとのコミュニケーションは問題なかったのですが、もっと他の参加者の方と積極的にコミュニケーションとればよかった...と後悔しています。最初に「slackは気軽にグループラインみたいな感じで使ってもらって構いませんよ」と言っていただいていたのにひよってしまって何人かとは一言も交わさずインターンを終えてしまいました....3日間個人でもくもく作業するという内容はありましたが、縁あって同じインターンに参加した仲間だったのでもっと積極的にコミュニケーション取っていけばよかったなと思います。次回以降のインターンに生かします!

 

褒められたこと

3日目の最後メンターさんからのフィードバックをもらえる時間があり、その時に言っていただいたことなのですが、「一緒に働きたいと思えるような人柄」を褒めていただきましたえへへこれ自分で書いて照れますね//// slack上での文字でのやりとりや実際にお話したりした中で思っていただいたみたいです。会社に入るとものづくりは基本的にチームでやるものだからその「一緒に働きたいと思えるような人柄」は強みだよ、と言ってもらえました。恐れ多い....。エンジニアに限らず本当に大事な要素だと思うので常に意識していたいと思います。

 

感想

Reactなどのライブラリを使わず生のJavaScriptをがっつり書く経験が今までほとんどなかったのでその経験が積めてよかったです。

またその経験の中で、Reactのありがたさを実感しました。正直、ReactとDjangoで日報アプリを作った時、ReactのイイところってSPAにできることぐらいしかわかってなかったのですが()、今回のように生のJSでDOM操作しようとすると、タグを作って中身のテキストを作ってそれを最初に作ったタグの中に入れてまたそれを別のところに挿入する、というように欲しいUIと実際に書くコードがかけ離れていてやりにくかったです。それに伴って、可読性が下がったり少しだけ変更したものを追加したいとなったときに結構それが面倒な手順を踏まなければいけなかったりすることがありました。でもReactを使うと、欲しいものをそのまま書けばそのままで反映されるので直感的に書きやすいし、コードの可読性、再利用性も上がります。Reactの宣言的UIと再利用性の高さというメリットを身をもって実感しました。開発してる時に何度か「アア...こことここコンポーネントにして管理したい....アア...」となってました笑

 

まとめ

楽しい3日間でした!たくさんAPIを叩いたのでJSONの扱いにもだいぶ慣れることができたのでこのインターンに参加した目的は達成できたかなと思います。メンターさんもお忙しい中すぐに質問に対応してくださったりランチ会でお話ししていただいたり感謝です🙇‍♂️✨ この経験を糧にしてこれからも頑張っていきます💪