HOME > ソフテックだより > 第414号(2022年11月16日発行) 現場の声編「ソフテックに入社して 〜未経験者なりの勉強方法〜」

「ソフテックだより」では、ソフトウェア開発に関する情報や開発現場における社員の取り組みなどを定期的にお知らせしています。
さまざまなテーマを取り上げていますので、他のソフテックだよりも、ぜひご覧下さい。

ソフテックだより(発行日順)のページへ
ソフテックだより 技術レポート(技術分野別)のページへ
ソフテックだより 現場の声(シーン別)のページへ


ソフテックだより 第414号(2022年11月16日発行)
現場の声編

「ソフテックに入社して 〜未経験者なりの勉強方法〜」

1. はじめに

私は昨年半ばに第2新卒枠の中途採用で入社した、現在2年目の若手社員です。入社前はITとは縁の薄い環境にいて、パソコンでやることといえばWord、Excel、PowerPointがせいぜい……ことソフトウェア開発については全くの素人でした。今回は、そんな未経験入社の私の、1年間の経験とささやかな成長についてお話したいと思います。

2. 直面した課題

ソフテックに入社する以前、ITエンジニアを志望しだしたころから、プログラミングの勉強を自分なりに行ってはいました。期間にして2か月弱でしょうか。プログラミング学習支援のウェブサービスを利用したり、検索したときに引っかかるウェブ記事をつまんで読んだり、当時登録していた電子書籍サービスの読み放題に含まれているプログラミング本の冒頭十数ページをなぞってみたり、といったように、今思えばとても効率のいいとは言えない方法でした。
そんなことをしながら数か月が経ち、入社した私は、言い渡された研修課題を前に、愕然とすることになりました。

「何にもわからない……」

課題は、初学者の登竜門ともいえる ”電卓アプリの製作” でした。
複数の入力ボタンがあって、表示部があって、数字や演算子の入力を受けてどう処理するかを考慮する必要があり、初心者向けに適度に複雑でありながら経験者から見ればかなり単純でコードレビューも容易。

よくある課題とはいえ、どこから手を付けたらいいかわからない私は、勤務初日にして途方に暮れてしまいました。
「Visual Studio Codeは独習の時に使ったことあるけどVisual Studioはまた別物なの?」
「ターゲットフレームワークってなんだ? そもそもフレームワークとは?」
「型とかジェネリクスとか、そもそも用語の意味がわからない!」

3. 勉強と実務への反映

そんな私を見かねて先輩社員が導入までの道を示してくれました。
これこれこういった手順でこんな設定をすれば、画面を作成して表示できる。この入力があったときに実行する処理は、ここに書く。デバッグをするにはこうして、こういうところを確認する。まずはこの段階まで形にしていこう。
先を照らしてもらえたおかげで、暗中模索のために心が折れるような事態にはなりませんでした。
あとから知ったことですが、ソフテック社内には『先輩社員は新入社員の質問には手を止めてでも応えること』という御触れが出ており、初心者だろうと新参だろうと、質問しやすい空気がありました。

また、社内には技術系の専門書や雑誌のバックナンバーを集めた書架があり、そこから導入的な内容の書籍をいくつか見繕ってもらい、それを辞書引きしながら課題を進めることができました。ウェブで検索すれば何でもわかるような時代になってきたとはいえ、情報の散逸したところから自分の知りたいことをピンポイントで見つけ出すにはある程度の前提知識や経験も必要のため、体系のまとまった書籍を通じて流れで勉強するというのは効率的でした。

社内の書架
図1.  社内の書架

こうして学習環境の整った社内で、実務で鍛えられた先輩社員のコードレビューを受けながら課題を進めていくこと、およそ2か月。.NET系フレームワーク & C#の簡単なWindowsアプリ程度なら自分で作れるようになりました。(もっとも、電卓アプリの出来栄えとしては、見た目の “今っぽくなさ” もさることながら、中身もUIと処理の結びつきが強すぎるいわゆる “賢いUI” になっているなど、反省点の多いものでしたが……)

研修で初めて製作した電卓アプリ
図2.  研修で初めて製作した電卓アプリ

研修の終わりごろからは、ソフテックで請け負う実務にも参加していくようになりました。
CAN通信で機器の制御を行うアプリの製作、Modbus TCPプロトコルでリモート機器からデータを収集するアプリ製作、CODESYSというソフトウェアPLCを用いたシステム開発などなど……。
初めはC#一辺倒だった使用言語も、既存システムの開発環境や要件に合わせてC++、SQL、STなど少しずつ増えてきました。
同じ言語であっても、開発キットや使用するライブラリによってさまざまな関数が用意されており、知るべきことは尽きません。
こうして実務に携わってみても、結局やることは研修の間と同じでした。

書籍を活用しながら体系的に学び、わからないところは先輩に聞く。

ただし、実務ではもう少し状況の違うこともありました。知りたい、知る必要がある事柄があるが、書籍もなく、社内の誰もよく知らない。これは意外とよくあることで、そのたびに困ります。
でも、やることはあまり変わりません。

公式のドキュメントを探して読み込み、わからなければIDE・SDK等の開発元に問い合わせてみたり、公式やパブリックのフォーラムに質問したりする。

こうして、問題に行き当たり、調べて、解決するというサイクルを何度も何度も何度も繰り返して、本当に少しずつですが私も成長してきました。入社当初と比べると新生児と5歳児くらいの差があるかもしれません。
ボリュームの小さな案件であれば、大部分を任せてもらえることも出てきました。(もちろん、先輩社員の手厚いサポートは欠かせませんが)

4. おわりに

入社から1年以上が経過して、多少成長したとはいえ、自分ではまだまだ初心者の範疇を出ないと思います。そうは思いつつも、お客様の前で素人面はできません。
ソフトウェア開発の歴史も半世紀を超え、基礎的な内容だけでも学ぶ必要のあることは多く、ようやく少し理解が進んだと思っても、どんどん新しい技術情報が出てきます。
また、仕事の中で解決していくべきお客様の抱える課題についても、知らなくてはならないことが多くあります。
勉強の毎日です。

ここまで、研修課題、そしてその後の実務の中での勉強についてまとめてきましたが、こうしたことを通じて私が考える一番の勉強法は、次のことです。

例えば数学を学びたければまずは算数を教わって身につける必要があるように、知りたい内容があれば、その前提・基礎となる部分を一つ一つ調べてゆくこと。
そして自分で調べて分からなければ、知っている人に聞くこと。

「学校の勉強と同じじゃないか」「そんなの当たり前のことじゃないか」と思われる方もいらっしゃるかもしれません。それでも、結局これに勝ることはないのだと私は思います。

(R.O.)


関連ページへのリンク

関連するソフテックだより

ページTOPへ