今回は私が転職後に経験したソフトウェア会社での新人研修についてまとめてみたいと思います。
「未経験で転職したいけど、ソフトウェア会社の研修ってどんなことするの?」
「勉強する内容について事前に学習しておきたい!」
こんな感じで思っている方の参考になればうれしいです。
結論として、実務未経験で転職してみた経験としては、未経験でもついていけるが「事前にある程度学習しておくこと」をオススメします!
ちなみに研修を受けた時点での私の知識・スキルはこんな感じでした。
・Java、C言語で簡単なプログラムが書ける。
・基本情報技術者試験の参考書を一通り学習済み
なお、公務員(幹部自衛官)からの転職だったのでIT・プログラムについては独学で学習しました。期間は9ヶ月くらいです。
では、具体的な新人研修の内容を紹介していきます!
研修期間は3ヶ月、その後はOJTで6~9ヶ月
私が転職したソフトウェア会社での研修期間は3ヶ月でした。
IT企業によって研修期間は異なりますが、「OFF-JT」として研修を受けれるのはだいたい3ヶ月~6ヶ月くらいで設定している企業が多いと思います。
研修期間が終わると、「OJT」として実業務をこなしながら先輩たちに教わっていくのが一般的な流れです。
私の場合は2か月だった
私の会社では研修期間は個人の習熟度によって変更していました。
私の場合は転職を見据えてIT・プログラムについて独学で学んでいたため、2か月の研修となりました。
基本的なアルゴリズムについて既に理解しており、C言語で簡単なプログラムを書くことが出来ていたので研修期間が短くなりました。
ですので、「全くプログラムを触ったことのない人」に比べると研修内容は省略されています。
研修:1週間目
1週間目に学習したのは以下の項目についてです。
- 2、8、16進数の考え方と計算
- 論理演算とコンピュータの基本回路(AND/OR/XOR)
- デジタルデータ(ビット、バイト)について
- シフト演算、ビット演算
- ハードウェア関連
→CPU、メモリ、補助記憶装置(HDD、SSD) - プログラミング言語について(コンパイル型、インタプリタ型)
- コンパイルの仕組み(コンパイラとリンカ、ローダ)
コンピュータの基礎について学ぶ
入社後、必要な事務手続きをしてすぐに研修に入りました。
入社したのは、社員数が15名という会社であったため同期はいませんでした。
ありがたいことに先輩がマンツーマンで教えてくれました。基本的に参考書を読み進めながら、逐次問題を解いていったり、質問をしていくというスタイルです。
基本情報技術者試験の勉強をしている中で、よく理解できていないことも多々あったので、この機会にいろいろと質問しました。
ハードウェアやビット演算についてしっかり勉強するのは、制御プログラムを扱う会社だから
恐らくWeb系企業などの新人研修では、ハードウェアやビット演算についてはやらないと思います。
しかし、制御プログラムではメモリに関する知識とビット演算が必須になるので新人研修でしっかりと学習しました。
事前に学ぶならn進数の考え方とデジタルデータは最低限理解しておいたほうがよい
どのIT企業にいっても「n進数の考え方」と「デジタルデータ」は理解しておく必要があります。
n進数の計算については、パソコンの電卓を「プログラマ」のモードにすれば計算できるので最低限で構わないと思います。
研修:2週間目
2週間目に学習したのは以下の項目についてです。
- OSの役割(windowsとLinux)
- ネットワークとネットワーク機器
- フローチャート
- データ構造とアルゴリズム
OSの細部についてはよく理解できなかった。笑
研修でOSについて学習しましたが、本当に基本的な役割のみです。
OSに詳しい先輩社員は熱心にいろいろと話してくれましたが、正直あまり理解出来ていませんでした。笑
とりあえず「あっ、理解できました!」って感じて頷いてました。笑
基本的な役割さえ理解できていれば、新入社員のうちは困らないと思います。
ネットワークとネットワーク機器
この分野については基本情報でよく学習している分野だったので、スムーズに研修が進みました。
ネットワークを専門にしている会社でない限り、新人研修で求められるのは基本情報レベルの知識だと思います。
フローチャートの書き方とデータ構造とアルゴリズムを学習
そもそもフローチャートとは何か?から始まり、各記号の意味と実際に書く際のコツなどを教わりました。
完全な初心者にとっては鬼門となる「データ構造とアルゴリズム」
データ構造とアルゴリズムについては、「変数」と「配列」を2週間目の最後に教わり、翌週からのアルゴリズム演習に備える流れになりました。
「配列」については、全くプログラムを触ったことのない方だと使えるようになるまで少し時間がかかるかもしれません。
特に「配列操作」のアルゴリズムでやや苦戦する可能性が高いです。
研修:3週間目
3週間目はひたすら「データ構造とアルゴリズム」を学習していました。出された課題をフローチャートに書いて、添削してもらうという流れです。
初めは簡単なアルゴリズムから始まり、最終的には基本的なソート(整列)とサーチ(探索)のアルゴリズムが理解できるようになるのが研修の目的でした。
作成したフローチャートの内容
作成したフローチャートの内容を選んで紹介していきます。(※似たような内容のものは省略しました。)
- クラスの人数分の国語、数学、英語の点数を入力して3教科の平均点と各教科の平均点を算出するチャート
- 国語、数学、英語の点数を入力し、合格・不合格を判定するチャート
- 配列の要素10個を順番に合計して表示するチャート
- 最大値、最小値を検索して表示するチャート
- 点数を入力し、リニアサーチで順位を検索するチャート
- 点数を入力し、バイナリサーチで順位を検索するチャート
- 九九を表示するチャート(多次元配列の操作)
- 3つの配列から共通する要素を検索して表示するチャート
- 選択ソートで降順にソートするチャート
- バブルソートで昇順にソートするチャート
- 挿入ソートで降順にソートするチャート
- 2つの文字列から共通する文字列を検索して表示するチャート
- 文字列を数値に変換するチャート
事前に学習するなら「基本的なアルゴリズム」まで理解できているとスムーズ
基本的なアルゴリズムとは具体的には以下の項目です。
ソート系(整列)
・単純選択法(選択ソート)
・単純交換法(バブルソート)
・単純挿入法(挿入ソート)
サーチ系(探索)
・線形探索法(リニアサーチ)
・二分探索法(バイナリサーチ)
良書をひとつ紹介
個人的な主観ですが、「基本アルゴリズムについてこれ以上分かりやすく書いてある本はない」と思うので1冊紹介しておきます!
基本アルゴリズムについてフローチャートを疑似言語で丁寧に解説してあります。
初心者がつまづきがちな「配列操作」についても図で解説してあり、非常に理解しやすい良書です。
研修:4週間目~2ヶ月目
ようやくC言語によるプログラム研修がはじまります。
ソフトウェア会社に入社したのに、初めの3週間はほとんどパソコンに触れていませんでした。笑
C言語で作成した研修プログラムの内容はこんな感じです。
各プログラムの内容については細かくなりすぎるので割愛します。
- 作成したフローチャートを実際にコーディングする。
→24個のプログラム - バイナリダンプ
- 電卓(四則計算)
- 〇×ゲーム
→絶対に負けないコンピュータを作る。 - チェーンリスト(単一方向)
- ビットマップヘッダーの読み取り
- ビットマップの書き出し
- CSVファイルに変換・編集して保存する
読みやすいコードの書き方についてもこの段階で教わる
私の会社には「会社としてのコーディング規約」は存在しません。
理解しやすく統一されているコードであれば、「字下げの文字数」や{ }(中括弧)の位置はそれぞれのエンジニアの自由です。
見やすいコードには一定のルールがある
見やすいコードの書き方には一定のルールがあります。
先輩社員たちもいろいろと教えてくれますが、自ら学ぶ努力も必要です。
私も早く「見やすく他の人が理解しやすくて、保守・改修が容易なコード」が書けるようになりたくて有名な本で勉強しました。
その本がこちらです!
「初心者プログラマ必読の書」とまで言われていますが、とても参考になりました。
転職や入社前にすでに自分でコードを書いている人は1度読んでみてもいいと思います。
実務できっと役に立ちます。
研修の紹介は以上で終わり
研修については以上で終わります。
その後はOJTで実際に実務をしながら学んでいます。実務で作成するプログラムは研修と比べるとかなり複雑です。しかし、その複雑なプログラムを作成できるようになったのも「基本・基礎」の土台があるからです。
各ソフトウェア会社やIT企業が行う新人研修は、「未経験者」でもついていけるように配慮はしてくれるはずです。
しかし絶対に! 事前にある程度の学習をしておくことをオススメします。
ITに関する専門用語を理解しているだけでも違いますし、簡単なプログラムを作成できるレベルまで学習しておくと「新人研修」レベルならスムーズに乗り切れるはずです。
読んで頂きありがとうございました!
コメント