「ソフテックだより」では、ソフトウェア開発に関する情報や開発現場における社員の取り組みなどを定期的にお知らせしています。
さまざまなテーマを取り上げていますので、他のソフテックだよりも、ぜひご覧下さい。
ソフテックだより(発行日順)のページへ
ソフテックだより 技術レポート(技術分野別)のページへ
ソフテックだより 現場の声(シーン別)のページへ
私は、今年2006年4月に入社をした新入社員です。社会人になり4ヶ月経って、変化したことや感じたこと、それと初めて開発を行ったマイコンソフトについて書きたいと思います。
私は、今まで深夜にコンビニのアルバイトをしていて、夜型の生活から規則正しい生活になりました。さらに、大学4年生の1年間はほとんど大学に行く必要もありません。私は学生の楽な環境で遊んでばかりいて、この環境の違いに最初はかなり戸惑いを感じました。さらに生活だけではなく、社会人になり色々と学生の頃と考え方を変える必要もありました。今までと違い、「出来る」か「出来ない」かでなく、「やる」か「やらない」かです。「出来ない」と言ってしまえばそれで終わりになってしまい、結果的には失敗になってしまっても、とにかく行動してみることが重要だと感じました。
また、私の学生時代は強制されないと何もしないタイプでした。しかし、入社してその考えは変わりました。学校のように授業に出て勉強をするわけではないので、自分でやることが必要になりました。もし、休日にいつも遊んでいたら周りの人間にどんどん置いてかれてしまいます。入社して最初の頃は、慣れない環境でのストレスと、今までみたいに遊ぶ時間が取れないことで、休日にはその分を遊んでストレス発散しているという感じでした。しかし、このままではいけないと思い少しずつですが勉強をするようになりました。
どの業界も一緒だと思いますが、努力をした人が成功をするのだと思います。そのためには、入社時に必要なのは技術力よりもやる気だと思います。入社時に技術力が無くても、やる気さえあればいくらでも技術力は上がると思います。
上で述べたように行動、努力、やる気が必要だと私は入社して感じました。これらは当たり前のことですが、当たり前のことを実際に行うことの難しさを実感しました。
私は、入社をして最初にマイコンを学ぶことになりました。マイコンを学生時代に勉強したことがある人はめずらしいらしく、もちろん私も「マイコン?何それ?」という感じでした。そこで、まず「マイコンとは何か?」の基本から勉強を行いました。マイコンとは、一言でいうとパソコンにも入っているCPUのことで、マイクロコンピュータを略したものです。CPUは計算や処理の判断を行ないプログラムの実行をするものです。
また、家電製品などに組み込まれた特定の機能を提供するためのコンピュータシステムを組み込みシステムと呼びます。組み込みシステムもパソコンもCPU部にマイコンを使用しますが、パソコンは汎用システムで色々なことができ、組み込みシステムは特定の機能に限定したシステムです。そして、組み込みソフトはマイコンソフトと呼ばれることがあり、私が行う研修も正しくは組み込みソフトの勉強です。
※以下の文章では、マイコンソフトのことをマイコンと呼ばせて頂きます。
私は、まず動かしてみてマイコンがどのようなものか学んでいきました。そのために、本を参考にしながら基板についているLEDを光らせるプログラムを作ることにしました。本に従ってプログラムを書いて、「じゃあ、動かしてみよう」と思い、スイッチをONにすると
「・・・」
動作がありません。そこで、プログラムを見直して間違っていると思う部分を修正して、もう一度スイッチをONにすると、
「・・・」
また、動作がなく「何だよ、これ・・」という感じでした。
学生時代にマイコンだけではなく、プログラミング自体の経験が無かったので、なかなかマイコンを動かすことが出来ませんでした。
そして、本をよく読み修正を加えて、ようやくLEDを光らせることが出来ました。単純にLEDが光っただけなのにすごく嬉しかったことを覚えています。まるで、初めて車に乗りアクセルを踏み、進んだときのような感動でした。
こうしてマイコンのプログラムを作成してみて、プログラムの難しさと面白さを実感することができました。
マイコンの研修が終了して、次の仕事としてマイコンの通信プログラムの作成を行うことになりました。これは、社内用ではなくて、御客様に納品するものでした。
その通信の方法は、RS232Cケーブルを使用したシリアル通信です。通信には通信相手との間で決めたプロトコルという約束が必要です。このプロトコルが一致しないと正常に通信をすることができません。プロトコルに従って、マイコンと通信相手(パソコン)で通信ができるように通信プログラムを作成しました。
まず、設計作業を行ない、設計に従い通信プログラムを作り上げました。
そして、マイコンにソフトを書き込みんでスイッチをONにすると、
「・・・」
「やっぱりかぁ・・」という感じで、マイコンは動かなくて通信を行うことが出来ませんでした。原因としては単純なミスによるものです。
いったい何故ミスが起きたのでしょうか?理由はマイコンのCPUマニュアル通りに作っていただけだったからです。なぜ、そうなるか?をあまり意識していませんでした。そのせいで、原因を見つけるのに苦労をしました.。そのときに、マニュアルを読んで設定方法をただ覚えるのではなく、なぜそうなるかを考える大切さを知りました。
その後、プログラムが動いたので上司に確認をして頂きました。すると、
「こんなのじゃ、ダメだなぁ」
と返事が返ってきて、「何で?動くじゃん!」と思いました。
しかし、その指摘には納得の出来る理由がありました。プログラムは、ただ動けばいいわけではなく、ケーブルが抜けてしまった場合などの異常処理についての考慮がなくて、その上ソフトに変更を加えることになった場合を考えてプログラムされていないからでした。
自分の趣味で作る場合、異常がでたら作り直せばよく、変更を加えるにしても自分で書いたプログラムなら理解ができているので簡単に変更をすることが出来ます。しかし、仕事では御客様に異常のでる欠陥品を納品するわけにもいかず、わかりやすいプログラムでないと自分以外の人が変更を加えようとすると理解するのに時間がかかり無駄な時間を使ってしまうことになります。
このように色々と考え方を変えてプログラムを作成する必要があり
が重要だと学びました。
プログラムは動けばいいと思っていたので、趣味と仕事の違いを感じるとともに、改めて仕事の難しさを知る作業となりました。
このように作業は難しく、私はもともとプログラム経験が無く、どこまで自分で調べるべきかわからず質問も上手く出来ていなかったので、なかなか理解が出来ませんでした。それでも、上司や先輩方に助けてもらいながら完成させることが出来ました。機能としては通信をさせるだけで、パソコンから送られたデータによって、指定されたデータを返信するだけの単純なものですが、完成時にはかなり満足感があります。しかし、不安な部分もあり御客様が来社されて自分の作ったものを確認して頂いた時には
「大丈夫かなぁ、途中で止まったりするなよ・・」と
かなりドキドキしていました。確認が終わり何も問題が無かったので、ホッとすると同時に、ちゃんと仕事を出来たと実感し、「やっててよかったぁ」と嬉しく思える瞬間でした。
4月から7月まで勉強をしてきて、色々なことを学びました。正直、難しいと感じるものが多くて仕事は大変だと思います。しかし、何かを作りあげたときには大変な分、充実感もあります。これから勉強を続けていき、もっと色々と理解できるようになれば、段々と仕事がおもしろくなっていくと思います。ただ、すぐに成果はでません。それでも難しいからといってあきらめずに、早く一人前と認めてもらえるようにがんばっていきたいと思います。
(Y.R.)
関連ページへのリンク
関連するソフテックだより