こんにちは。西日本テクノジー&イノベーション室所属、入社二年目の土居です。
私は文系学部卒のプログラミング未経験者としてTISに入社しました。見るもの・触れるもののすべてが真新しく不慣れなため、仕事の難しさを感じることがありました。一方で、困難を乗り越えることで喜びを感じたこともありました。今となってはその両方の経験が一年目の自分を大きく成長させる源になっています。そして、その成長モデルは他者から見て参考になる点があるのではないかと思います。そこで、今回は私事ながら入社してから今に至るまでに経験してきたこと・躓いたこと・学んだことについて、お話したいと思います。

経験したこと

入社前の私はプログラミング未経験でしたが、新人研修や教育施策を経験しつつ、複数の業務に携わりました。

新人研修

ビジネスマナーやシステムに関する基本的な知識を学習し、プログラミング研修を受講しました。画面の実装や、バージョン管理ツールを用いたチーム開発を行いました。使用したツールは以下の通りです。実際の現場でもこれらのツールを使うことが多いと聞き、研修後の業務に活かせるように毎日ツールを使って慣れるようにしました。

・Javaのフレームワーク・・・Nablarch
・タスク・QA管理・・・Redmine
・データベース操作・・・A5M2
・バージョン管理・・・GitBucket

フルスタックエンジニア育成施策

開発からサービス公開までを自力で達成する力を身につけることを目的として実施されている、部門の教育施策です。クラウドサービスを使って仮想サーバにアプリケーションをアップロードしたり、メトリクスを取得するなどの経験をしました。それにより、以後はプログラミングだけでなく、インフラに関するタスクについても取り組むことができるようになりました。

某システム開発のプログラミング工程

TISが公開しているアプリケーションフレームワークであるNablarchを活用し、画面の実装を行いました。新人研修で学んだことを活用できたのではじめてのプロジェクトとしては大変馴染みやすく、その分安心して業務に取り組むことができました。

某システム開発のテスト工程

自分が実装した機能とは別の機能と組み合わせてテストをする「結合テスト」を経験し、システムに関する業務知識を深めることができました。

構成管理

プログラミング工程で製造されたソースコードの管理をおこなうプロジェクトです。Jenkins上でソースコードをビルドするための設定ファイルを作成しました。Jenkinsについての知見をWebサイトで調べつつ、分からないところは先輩に相談しながら取り組むことを意識し、仕事の進め方を身につけていきました。

就職する前のイメージ/就職した後のイメージ

プログラミングがすべてではない。むしろ、全体の一部

TISに入社後、私はプログラミングだけではなく幅広い業務を経験することができました。就職前はプログラミング以外のタスクについてはイメージがつきにかったのですが、以下のようなタスクに着手してからは就職活動時に聞いていたことを身をもって実感することができました。

① ソースコードのビルド時の設定ファイルを修正する
② 要件を満たす機能を実装するために設計書を書く
③ 結合テストを実施する
④ クラウドサービスを使ってアプリケーションを公開する環境を整える

プログラミングの速さだけではなく問題解決能力が大事

就職前はプログラミングする力というのは速くタイピングする力のことだというイメージがありましたが、業務を通してエラーの原因を調査したり、仕様を満たす実装方法を考えたり、ひとえにプログラミング力と言ってもそのほとんどが問題を解決するために考える力が重要であることに気がつきました。

成長エピソード

ペアプログラミング

新人研修を経験したとはいえ、着任当初はまだ右も左も分からず仕事をどう進めていいか分かりませんでした。そこで、仕事の進め方を身につけるため、チームの先輩とペアプログラミングをしました。ここで学んだことは「自分が分からないことについて、どうすれば解決できるかを考えなければならない」ということです。
ある時、私が実装方法についての不明点を先輩に質問をしてもそれに対する回答を上手く理解できず、そもそもシステムに対する理解が不十分であることに気がつきました。そこで、先輩と一緒に仕様やプログラムについての理解を整理しました。答えを教われば目の前の問題は解決するかもしれませんが、分からないことについて調べ、自分の理解に落とし込んで実装を行わなければ同じ問題に直面します。問題についてどう対処するのか、その方法をペアプログラミングで教わりました。

何かに詰まったらまずは〇〇しよう

自分で考えても分からないことはすぐ上司に相談しよう、でももう少し頑張って考えてみよう、が積み重なって進捗に遅れが生じてしまうことがありました。これについては先輩から以下のアドバイスを頂きました。それ以後、一人で問題を抱え込むことは少なくなりました。

  • 何かに詰まったらまずはアラートを上げよう
    質問を後回しにしていた原因を分析してみた結果、「そもそも手持ちの情報だけで解決できる問題ではなかった、ということに気づけなかったからではないか?」という仮説に至りました。そこでチャットで困っている内容を投稿し、困っていることを早めに伝えるようにしました。これにより、自力で解決できない問題については先輩と対話形式で整理をし、早めに問題解決をすることができました。
  • 何かに詰まったらまずは困っている内容を文字起こししよう
    これで「困っている」という意思を相手に伝えられました。次に、私は困っている内容が具体的にどういうものなのかを文字に起こして整理しました。方法は以下のサイトを参考にしました。これは自分の理解を再確認すると同時に、相手に質問内容を正しく伝える練習になりました。
    【質問は恥ではないし役に立つ】

調査タスクを設けよう

シェルスクリプトで行うバッチ処理を作成するタスクを担当した当時、コマンドに関する知識が不足していました。よく分からないが根性でやってみよう、と意気込んでタスクに臨んだところ、進捗に遅れが生じました。理由は事前にタスクに関する不明点を洗い出せておらず、不明点を調査する時間を確保できていなかったからです。これに対して先輩から、自分にない知識を使うタスクに着手する前には調査タスクを設けよう、とアドバイスを頂きました。
担当するタスクをこなす上でどのような知識が必要なのかを確認した上でWebサイトを参照したり、先輩に相談することで以前のような時間の浪費をすることがなくなりました。

役に立った社内制度・部門施策・仕事環境

分からないことを先輩に相談して解決&自らの知見として取り入れる。だけではなく、TISでは社内制度や部門施策を駆使して成長する機会も豊富です。以下は私が活用したものです。

1on1

上司部下間のコミュニケーションをとる場です。
仕事の進め方や将来のキャリアについて上司に相談しやすく、私にとって貴重な時間となっています。

メンター面談

業務内外問わず、自身のスキルアップを目的として有識者と相談できる制度です。 メンターと個人的に興味のある技術について話したり、勉強方法について相談できます。

グループ内技術QAサイト

TISインテックグループにはグループ内の社員が技術QAをやり取りするグループ内サービスが存在します。 技術的な質問やお客様への提案内容の相談などを、全グループ内社員が自由に質問し、グループ内有識者が回答してくれるというものです。
私はプログラミングに関する勉強方法についてどんなものがあるのかを知りたく、勉強方法に関する質問に対する回答を読み漁り、今後の学習に繋げました。

コア技術学習

次プロジェクトや将来の業務で役に立つ技術を学習することを目的としています。その上で、自分が学習したいと思う内容について自発的に取り組めるところがコア技術学習のメリットだと感じています。私はこの制度を利用してReactを使って画面実装をする学習をしました。

1年目に得た学び

自分だけの力で問題を解決する必要はない

業務に取り組むにあたり、はじめは自分が持ってるタスクは自分で責任をもって完遂させなければならないと思っていました。確かに最終的なゴールとしては自分で解決できなければなりませんが、途中の過程で誰かの助けを得ることは必要であることに気が付きました。
一人で考えてみて、調べても分からないことは先輩に相談し、解決することが成果に繋がります。そして、一度相談した内容は知識として取り入れておく。この連続によって成長できることが分かりました。

自分がやりたい仕事は何か?を考え続けることが大事

私は1年間の中でさまざまな業務に携わり、自分ができる仕事の幅に対する視野を広げることができました。そして、仕事をする中で「自分はどんな仕事をしたいのか」を考え続ける必要があることに気が付きました。自由に将来のキャリアを考えることができる環境だからこそ、仕事でより成果を上げるためには「自分は何が得意なのか?」「どんな仕事をしたいのか?」を考える必要があると思いました。

以上が新人SEである私の1年間の総括でした。これが何かの参考になれば幸いです。


本コンテンツはクリエイティブコモンズ(Creative Commons) 4.0 の「表示—継承」に準拠しています。