早いもので、未経験でプログラマ転職してから半年以上が経過しました。
入社したての時の記録がこちら↓
会社で何をやってたかって、記録しておかないと意外とすぐ忘れてしまうんですよね。
今回は、入社から半年間で何をやったのか、具体的に書いていこうと思います。
半年間でやったこと
ざっくり大きく分けるとこんな感じです。
半分が研修で、半分が実務だったかな。
それにしても、プロジェクト間の暇期間って何!?ってなりますよね。後ほどご説明します・・・笑
C言語研修(2.5ヶ月)
具体的な研修内容はこんな感じです。
- Visual Studioの使い方
- 基本文法(for文、構造体、ポインタ、配列などなど)
- コーディングルール
- ファイル入出力、ソートアルゴリズム、重複データ削除
- 詳細設計書、テスト項目書などの作成とレビュー
- テスト実施とエビデンス収集
最初は環境設定。でもここは正直、言われた通りにやっただけであまり分かっていません・・・。
Visual Studioっていうツールを使ってC言語を書いてくので、書いたプログラムが動くような設定をしていきました。
プログラマの新人って放置されるのが普通なの?という不安
環境設定ができたら早速、プログラミングの超基本を演習課題を通してやっていきます。
内容は大学の課題みたいな感じです。課題内容を調べるといろんな大学の講義レジュメのサイトが出てきました。笑
基本的に自分で調べて解決していく感じで、大学の講義や塾みたいな指導はありません。(当たり前か…)
行き詰まったら、少しヒントになるキーワードをもらったりして、また調べてやってく・・・の繰り返し。
仕事ってより、毎日自習室に通ってる感じでした。笑
え、こんなに人と話さなくて大丈夫?もっと積極的にいろいろ聞いた方が良いの?ってかこれ、放置されてる?!これで良いの?!
と不安になるくらい。
課題内容も独学素人には結構むずかしくて、「これは簡単!すぐわかる!」みたいな課題は1個もなかった印象です。
うちの職場は未経験者が多いのですが、その場合は必ずこの課題を取り組むことになります。
(´-`).。oO(みんなこれをクリアして実案件に取り組んでるのかー、すごいなー)
と思いながらやっていました。
開発の流れを意識した課題
課題が進んで少し慣れてきたら、実際の開発の流れを意識していきます。
設計書を書く→プログラムを書く→テストする の流れで課題に取り組みました。
ここで、コーディングルールを教わったのでそれを意識してプログラムを書いたり。
コーディングルールとは、変数の名前はこう付けてね!とか、インデントはこう合わせてね!とか、ヘッダーコメントはこのテンプレ使ってね!とか、プログラムを書く時の決まり事です。
今まで独学だと全く意識したことがありませんでしたが、会社でみんなが見るプログラムで、しかも数年後、数十年後に知らない誰かが読むかもしれないと思うと、このルールの大切さがわかりました。
課題の後半では、より実践に近い課題を通して上の流れをやっていきます。
課題内容は、入力データを読み込む → ソート → ファイルに出力 みたいなことです。
そして、設計書、コーディング、テスト仕様書それぞれが完了したタイミングで上司を交えてレビューをしました。これは緊張した!!!
でも、自分が精一杯考えて作ったものに対して第三者の目線が入ることは、本当に必要なことだと思ったし、かなり勉強になったのでとても有意義でした。
C#研修(1か月)
C言語研修の最後のフェーズをC#を使ってやる、というものでした。
「一度やってるから、同じことすれば良いだけだよ!」と言われましたが、言語が違うじゃん?!
しかも、C言語とC#って全然違うじゃん!?と思って戸惑いました。
C#はオブジェクト指向の言語で、C言語には無い考え方があるので、私からすると全く違う言語!!
でも慣れてくると「C言語ではあんなに大変だったのに、C#だとこんな簡単にできるの!?」みたいなこともあって面白かったです。
C#の方がゲーム制作に向いてるので、参考書やWEBサイトでの例題がゲーム作成だったりして楽しそうでした。笑
実務編(3ヶ月)
研修が終わり、ようやく実践!
具体的には↓のような内容をやりました。
- バッチファイル作成
- Linux環境でgdbを用いたデバッグ
- Windbgを用いたデバッグ
- Tera Termの使用
まずはテスト工程からやっていきました。
すでに出来上がってるプログラムたちを動かすためのバッチファイルの書き方を勉強しながら作成。
このバッチファイルってのはすごく便利で、もっと早く知りたかった!と思いました。
いつも開く複数サイトを一度に全部開けたり、フォルダを一気に作れたちゃったりします。ちょー便利。
あとはテスト工程で、追加したプログラムがきちんと動作するかを確かめるために、Windbgとgdbという2つの方法でデバッグしました。
Visual Studioが感覚的に使えてわかりやすいのに対して、とにかくわかりにくかった・・・!
1行ずつ変数の中身が正しいかとか、エラー処理ちゃんとできてるかとか確認していきます。
この工程でいくつかミスを見つけて、自分ちょっとお手柄かな!?と思ったりしました。笑
Linuxコマンドも勉強した
Linuxサーバーを立ち上げてのデバッグがあったので、Linuxコマンドも少し覚えました。
サーバー側に触れることで、実際に操作するマシンとサーバーの繋がりなど、だんだんプロジェクト全体のイメージが湧きやすくなってきました。
TeraTermを使って、コマンドプロンプトみたいな黒い画面でコマンドを打ちながら実行していくので、見た目はすごくプログラマっぽいなと思いました。
プロジェクトの間の暇時間(1ヶ月)
さて、思いもよらず「何も仕事がない期間」というのがありました。
それが、テストが終了して一つのプロジェクトが終わり、次のプロジェクトが始まるまでの期間。
それもなんと1か月!
私は干されてるのか?と最初は本気で思いました。笑
特に仕事もなく、何すれば良いの!?って感じでしたが、たまにこういうことが発生するようです。
基本的に自習になるので、みんな自分の好きなアプリ作ったり便利ツール作ったりしてるそう。
私は大きく2つの課題に取り組むことにしました。
Windows32APIの勉強
すごく古い技術ですが、プロジェクト関連の知識なので勉強してみることに。
Windows32APIというのを使って、登録番号などの入力画面を作ってみました。
これは例えば、TABキーを押すと次の入力欄にカーソルが遷移されるとか、Enterキーを押すとOKボタンに飛ぶとか、そういう操作を一つずつ指示していく感じです。
入力欄やボタンも全部自分でサイズや場所指定して作っていったので、結構地道な作業でした。
今となってはネット上にあまり情報がないので、同じサイトを何度も読んだりして結構苦労しました。
Excell VBAを使った社内ツール作成
先輩が作っている社内自動化ツールの一部をお手伝いとしてVBAで作りました。
Win32APIと違い、サイトが豊富だし、やればやるほど形になっていくのが楽しかったです。笑
もっといろんなツールを作りたいと思って、夫の仕事で使えそうなツールも作りました。
これは便利!と喜んでくれたのがすごく嬉しかったですね。
意外と些細な事でつまずいたり、そんな魔法のようにぱぱっと作れるものではないけど、出来上がったものは魔法のように一瞬で資料が出来上がるので楽しいです。
前職の時にやれば月初業務もっと楽になったんじゃ!?と思えてなりません。
まあやろうと思えば1か月くらいかかりそうだけど・・・それでもやる価値はあると思うくらい、いろんなことができるんだと発見がありました。
今まで働いた感想
自分はずっとPCに向かってるのが苦じゃないんだな、向いてなくはないのかな〜と思います。
こうして休日にまでPC広げてるわけですしね。プログラムを書いてる訳ではないとはいえ。
プログラムのこと、コンピュータのことがどんどんわかっていくのが純粋に楽しいです。
(暇期間もあったし)まだそんなに実務してないので、どんなことができるようになっていくのかこれからも楽しみです。
プログラムのこと以外にも、社風や会社規模も自分に合ってるなと思う部分が多く、今のところは働きやすいと感じています。
これからどうなるかわからないけど・・・納期に追われて会社で寝泊まりする可能性もあるけど・・・
先のことはわかりませんが、私はここで目の前のことに一生懸命取り組みながら、少しでも力を付けていきたいと思っています。
新人プログラマーの皆さんは、半年間でどのようなことをやりましたか?
長い社会人生活、程よく息抜きしながらこれからも頑張っていきましょう!
ではまた!