Column

開発に携わるのに必要なことを学んだ  QuinQueでのインターン1か月目

QuinQueでのインターンに参加させていただき、一か月が過ぎました。この一か月で学んだこと、気づきを振り返ろうと思います。

今回のインターンの内容は案件紹介プラットフォームから送られてくる案件のメールを、内製ハブとして申請から確約までをすべて管理できるようなwebアプリの開発です。

私は現在大学2年生で情報系の学科に通っています。しかし実際の開発ははじめてだったので開発の基本から入りました。

目次

1 1週間目 開発環境構築

初めの週はミーティングから始まり、自分たちがこれから開発に携わるものの概要を知りました。まずはNext.js,gitのインストールなどの環境構築などを行いました。次にGitHubを使った開発の流れを教えていただきました。

GitHubは使ったことがなくてどういうものかすらわからない状態だったのですが、Pull Requestからのmergeするなどのチーム開発でのプログラムの更新の仕方を学ぶことができました。

2 2週間目 開発に必要な用語の理解と試作物作成

環境構築はできたものの開発用語をまったく知らない状態だったので、開発用語について自己学習しまとめる時間を与えていただきました。

具体的にはNext.js、vercel、Supabase、リポジトリ、CIについて、それを使ってできることや特徴を調べ上げました。

いまのところ大学で学べたのは単純にコードをプログラミングすることだけだったので、システムの開発などは学んだことがありませんでした。上記のようなツールをつかって効率的にシステム開発を行えることができると知ることができました。

相互レビュー

用語を調べてまとめたあと、インターンもう一人の参加者とおのおのが調べ上げたまとめをお互いレビューしました。自分が調べられてなかった部分がわかると同時に自分の理解と違う理解をしている部分があったりして、より深くそれについて調べるきっかけにもなりました。後日お互いのレビューをミーティング時に伝え合い、議論しました。自分が理解できてるとおもっていても説明しようとすると言葉がでなくなるなど、人に自分が理解していることを伝えるむずかしさも学ぶことができました。

試作物作成

ここで実際にNext.jsをつかって試しにQiitaからAPIをつかって記事を取り込むプログラムを作成しました。特定の人の記事を引っ張ってきたり、人気の記事順に記事をとりこんでみたり、写真を取り込んだりとAPIを使えば自分が思うように欲しい情報が手に入ることを学びました。またそれと同時に同期、非同期処理などの概念、.envの役割を学ぶことができ、プログラミングの面でも勉強になりました。

3 4週目 コード理解と開発業務

3週目はあいにく体調がすぐれず稼働することができませんでした。

ここからは案件管理ツールの開発にいよいよ携われることができました。

コード理解

まず先にツールの開発を行ってくださっていた部分のコードを理解することから始まりました。

ページのコードを確認しながら関連するコンポーネントなどを理解していく作業でした。理解が難しい部分はAIに頼り、少しずつですが理解していきました。

またどのようにしてプログラムを分けるべきかについても知ることができました。1つの機能は1つに分けることで問題を起こすことなくコードの調整、拡張ができるなどといったSOLID原則に基づいた考え方を学ぶことができました。

開発業務

この週の後半から実際に開発業務に携わることができました。

まずは画面のレイアウトを、ページ間で統一する作業を行いました。

ページ間で余白を揃えることに苦労しました。というのも、親要素の「中の要素を均等に離す」というルールと、子要素の「自分の下に隙間を開ける」というルールが二重になったため、必要以上に余白が大きくなってしまっていました。CSSファイルを変更することも考えましたが、CSSファイルを変更してしまうとほかのページで同じ名前を持つ要素のレイアウトが崩れてしまう恐れがあったので、今回は余白が大きくなっている部分を例外的に余白なしにさせることで対処することができました。

気づきや学び

理解の難しさ

語句の理解から相互レビューを通して言葉で説明するむずかしさを知りました。これはコードの理解にもいえることで、処理をパッと説明できるまでは理解したと認識してはだめで理解する努力を続けなければならないと思いました。理解で言葉で説明できないことは理解できていないということ捉え、完璧に説明できるまで理解する努力をすることが大事だと感じました。

自分の無力さ

この一か月は最後以外ほぼコードをさわることなくあっという間に終わってしまった。これは自分がシステムや開発環境のことをまったく知らなかったからで、学ぶことばかりな状態なので、もっと自分で貪欲に知識を身につけなければならないとおもいました。

最後に

この一か月は学習中心で終わってしまいましたが、最後には開発に携わることができ成長できた一か月でもありました。次の一か月は引き続きプログラミング言語の取得など基本的な部分を学習しながら案件管理ツールの開発に本格的に携わり、実際の現場で役に立てるようさらに成長していきたいです。

目次