こんにちは、KENTEM第2開発部のS.H.です。
本記事では今年の4月に新卒でプログラマとして入社した私がこれまで経験したツマヅキを3つ紹介しようと思います。気楽に読んでいただけると幸いです。
この記事の想定読者
- 実務未経験で新卒プログラマになりそうな人。
- 来年度に新卒プログラマを部下に持つことになりそうな人。
- 技術記事読むのに少し疲れて気楽に読める文章が欲しくなった人。
- 自分のときはどうだったろうか、と思い出したい人。
こんな人が書いています
入社前のプログラミング経験
高校生のときにゲームを作ろうとC#に手を出し挫折。
アプリケーションを1つも完成させることなく新卒エンジニアになりました。
入社してから担当した業務
React、Typescriptを使ったwebアプリケーションのフロントエンド開発。
入社して8か月たつので基本のキぐらいは書けるようになったと思います。それと引き換えにC#の書き方を忘れました。
本題
ツマヅキその1 コマンドを打つ場所が違う
すでにあるプロジェクトに参加することになった際、「GitHubからリポジトリをクローンして手元でデバッグ実行を行えるようにする」、というのがまず最初にやるべきことでした。
※PCへのgit、npmの導入は新人研修の時点で導入済み。
- 先輩から送られてきたGitHubのリンクからクローンのためのurlをコピーしてくる
- VSCodeを立ち上げて、「Gitリポジトリのクローン...」を選択
- コピーしたURLを貼り付けて確定を押す
と、ここまでやればプロジェクトのソースコードがPCの中に入ります。ただ、プロジェクトはReactを使用していたのでこのままではデバッグ実行には足りません。「node modules」と呼ばれるプログラムパーツ群を別でとってくる必要がありました。
やり方は簡単でVSCodeで「Ctrl+j」のショートカットを押してターミナルを開きます。そしてコマンドnpm i
を実行するだけ、のはずでしたが...
エラーが出た! しかも何行も出た!
エラーに慣れていなかった私はパニックになり隣にいた先輩の方に助けを求めましたとさ。
原因と対策
コマンドを実行するディレクトリが違っていたというただそれだけの話でした。
npm i
は「現在のディレクトリにあるpackage.json
というファイルを参照して足りないモジュールを取ってくる」というコマンドですが、意味も分からず実行してしまったので躓いた、ということです。
これ以降私は諸々のツール、コマンドの使い方を先輩方から教えてもらう際、どういう意味の行為なのかを調べたり尋ねるようになりました。
慣れない操作を間違ってもパニックになることは減ったように思います。
ツマヅキその2 コンフリクトの解消
- 開発環境ブランチからブランチを分けてコードに変更を加える
- ほかの人にチェックしてOKをもらう
- 既定の人数からOKをもらったら開発環境ブランチに変更を反映させる
チームでのプログラム開発は大体どこもこの流れで進むと思いますが、同じ部分に複数人が手を加えた場合、それぞれの変更が矛盾を生み、コンフリクトが発生することがあります。
その場合は後から開発環境ブランチに反映させる人がコンフリクトを解消する修正を加えてから反映させるわけですが、私はその修正が下手でした。というより今もたまに開発環境を動かなくさせることがあるので現在進行形で下手です。
具体的には以下のような失敗で開発環境をおかしくしてしまってました。
- コード内の括弧を消し忘れる、余分に消すことでエラーが出てくる
- 必要な機能まで余計に削除してしまった
- コンフリクトではないものの、結果的に変更が生じた既存コードの修正を忘れる
原因と対策
変更を加え始めた時点の開発環境ブランチと現在の開発環境ブランチが(ほかの人の作業が反映されることで)異なっている、というのがコンフリクトの発生する原因ですので、
- 変更を小分けにして開発環境ブランチにこまめに反映させる
- それが難しいなら作業中のブランチに最新の開発環境ブランチの変更を都度取り込む
などが対策です。
また、コンフリクトはGitHubのページから修正することができるのですが、そこからではVSCodeなどのエディタでできる静的解析が機能しないので、修正はエディタで行うようにしました。
大人になると欠点、間違いを指摘してくれる存在がありがたくなると以前耳にしましたが、それを実感する瞬間です。ありがとう、静的解析。
ツマヅキその3 社内の知識リソース活用不足
ツマヅキ、とは少し違うかもしれませんが、コーディング中にわからないことに遭遇した際、まず初めにWeb検索や生成AIを使って解決策を探しますが、それで解決せずに手が止まることがあります。
そんなときはつい先輩方に泣きついてしまうのですが、既に社内Wikiに類似の問題とその解決策が残っていることも多かったです。
一人で出来ることは一通り試したうえでどうしようもないときは他の人に頼ることはこれからもあるかと思いますが、アクセスできる資源は有効に活用することを心がけ、自分でも社内の知識資源に有用な知識を増やしていきたいですね。
社内でアクセスできる知識が増えるというのはコアコンピタンスの源泉?にもなりそうです。
(基本情報技術者試験の勉強中に「コアコンピタンス」という単語が出てきたので一度使ってみたかった)
まとめ
ツマヅキ自体は今も日々の業務でたくさんしてますが、それを外部の人にわかるよう伝えるというのは難しいですね。
入社して9か月目になろうとする現在も何かしらにつまづいてそこから学ぶを繰り返す日々ですが、周囲の先輩の助けが手厚いこともあり、なんとかやっていけてます。
おわりに
最後まで読んでいただいた方に向けてKENTEMの採用情報のご紹介です👇
KENTEMでは、様々な拠点でエンジニアを大募集しています! 建設×ITにご興味頂いた方は、是非下記のリンクからご応募ください。 recruit.kentem.jp career.kentem.jp