こんにちはカレイドです。
この記事はこちらの記事の続編になります。
【プログラミング】独学から実務へ移って1週間で感じた壁と学び【前編】
【プログラミング】独学から実務へ移って1週間で感じた壁と学び【後編】
というわけで今回は実務二週間目のタスクの確認とここまでに達成したことをまとめておきます。
タスク内容の確認と難易度
月曜日10時ごろにタスクを頂きました。それまでは基本的にUdemyでたりないと感じていたTypeScriptや、CSSなどを勉強していました。
今回は、実際のタスクを振るときのような感じで頂きました。ちなみにやりとりは全てSlackで行なっています。
今回はコンポーネント全部で6個、いきなり難易度があがってません?w
僕の推測だと大企業でこう言う場合はもう少しもたつくと思います。色々な申請だったり、大企業特有のセキュリティなど。
ベンチャーだからこそある程度の裁量権と自由度が与えられているのかなと思います。
まだ研修中なので期間は特に設けられていませんし、働く時間を設けられているわけでもないのですが、
とりあえずは1週間を目安に作り終えようと思いました。
しかもどれも似ているコンポーネントってわけでもないのできちんと自分でプランを立てて戦略的に終わらせていく必要があります。
個人的にはそうですね前回が10なら今回は100ぐらいには難しくなっているなとその時は感じました。
何が難しいかっていうと、前回は最大の救いとしてこのコンポーネントみながら作ってみてといった感じで、参考にするコンポーネントをいただいていたので割と何とかなりました。
今回はデザインを送ってもらってそのコンポーネントをとりあえず自分流(大まかなフレームはあるけど全体のデザインになっていればよい)に作ってみてくださいということなのでレビューを最後にもらう形になります。
なので完全に自力ですべて考えてやる必要があります。
実務行ったらこんな感じなんですかね。まぁいずれにしても今勉強している方たちは本当に自分で調べる力を身につけないと、先輩に頼りっきりになってしまいます。
後日談ですが、楽して仕事をするためにはうまく問題を切り分けていく必要があります。例えば仕様などは自分で考えても仕方がないので、全体を把握してまとめて聞いてしまう。
これをプランを立てずにこなそうとするとその度に聞くことになるのでお互いにとって良くありません。
逆に実装の部分はしっかり過去のコンポーネントだったり、最悪ドキュメントなどを読んで確認して自分なりの構想を考える。
15分から30分かけてわからなければ、簡潔にまとめて聞く。というようにうまく楽をしていきましょう。
せっかく優秀なエンジニアさんがいるので僕は割と自分の意見を伝えつつどう思っているかなどを聴きながら確認をとっていきました。
作成プランについて(6つのコンポーネントの全体的な構想と単体の実装の仕方)
とりあえず1日1つコンポーネント作れればいいかなと思っていました。
いや、前回5日間もかけてやっと一個だったのにストイックすぎないかと思ったけど今のところ何とかなっています。
何となくの流れを決めたら、実際に一日の流れでどのように最後の作成までもっていくかのプランを立てました。
一応リアルの就業時間だと思って7~8時間ぐらいで詰められるような感じをイメージしました。
まずは、2時間ぐらいでざっくり、そのイラストが使われていそうな他のコンポーネントを見つける。
2時間もいらないだろ思うかもしれませんが、個人的には作成時間<思考時間<微調整です。
というより作成時間は割と流れの道筋はもう決まっているのでそんなに悩むことはないです。
実は一番時間がかかったのが、微調整なんですよね。自分がまだCSSに精通しているわけではないので、レスポンシブ対応だったりとか、
全体は中央寄せで一部分は左寄せなど、普通のCSSを組むだけなら簡単なのですが、他の人が作ったコンポーネントを再利用する場合、
足りないプロパティを追加。ただし変に中身のCSSをいじってしまうと、すでに使われている他のコンポーネント内で不整合が起こるので
影響を及ぼさないように注意しながら、いじる必要があります。
微調整をするためには全体をいじらなければならなくなったりしてもはや微調整ではなくなったりもします。
ここがReactの一番難しいところかなと思っています。もしかしたらもっとうまい作り方があるのかもしれませんが、まだまだ手探りで実装をしている状態です。
実際の1週間
ある程度は順調に進んでいきました。
コンポーネントの5つは割と問題なく1日一つ、なんなら4、5時間ぐらいで実装することができました。問題は残り一つが既存の作成されたコンポーネントのデザイン変更ということだったのですが、かなり入り組んだ構造になっていてロジック含めて実装されているものであったので、まずは中身を理解するところから始まりました。
このコンポーネントだけはほぼ二日かけて考えました。自分で一から作るより、これまでに実装されたロジックやコンポーネントやそのコンポーネントの仕様などを理解する方がよっぽど大変だなと思いました。
だからこそ日頃から他人のコードを読んで理解する努力を怠ってはいけないといういい教訓を得られたのではないかなと思います。
なので、今勉強している皆さんも何かモジュール等で仕様がわからずにドキュメント読んだり、GitHubでコードを読むことになった時は嫌がらずに積極的に読むことを勧めます。割と新しい考えを得るのに一番いい勉強法だと思いますし。なんせ無料なので、損はしないと思います。
自分はまだ新人と言うこともあってできたコンポーネントごとにプルリクだしていました。
最終的なレビューは土日挟んだ翌週の月曜に帰ってきたので1週間での達成はあくまで自分なりの実装部分と言う形に落ち着きました。
でも明らかに前回より仕事の段取りもプロセスもうまく自分なりにルールを決めて作っていけたのではないかなと思います。
まとめ
今回はインターン2週間目の自分生活についてお話ししました。多分初めて1ヶ月ほどは壁を大きく感じる時期になると自分でも思っているので思ったよりダメージは少なかったです。むしろ、頑張ってついていけているので今までの自分の勉強法は間違っていなかったと強い自信を持つことができました。