野良猫エンジニアの放浪記

気ままに、時には全力なエンジニア目線で。

【よくわかる】エンジニアの勉強法

こんにちは!Nozinekoです。

 

本日はベンダー系エンジニアである僕が普段どのように技術仕様を習得しているかを紹介します。

 

最初に記載しますが、学校でやってた勉強と変わらないなぁって思います。

文字におこすと「なんかすげーことやってる感」はあるんですが、この記事を読んでくださっている読者様が日頃から繰り返している事と大きく差はないかと。

大層な内容でもありませんが、気づきの場としてみてくだされば幸いです。

 

ではいってみましょう!

 

製品ごとに使われている技術要素を洗い出す

IP電話に限った話ではありませんが、製品や商品には「規格」がありますよね。
身近にあるものではWi-fiも規格の一つですし、携帯電話の「4G」や「5G」など一つの規格が世代によって分かれているケースもありますね。
また、iPhoneのLightningケーブルのように企業独自の規格で製品を作っているような例もあります。
 
同じように海外メーカさんが作る製品にも同様に多くの規格に準拠して作られている事がほとんどです。
そして僕たちエンジニアは扱う製品に含まれている規格や仕様がどういったものなのかを整理します。
僕が扱っているIP電話で代表的なものを列挙しますと以下のような規格があります。
H.323/SIP/MGCP/SCCP
・音声のEncode/Decode(G.711/G.729/iLBC...etc)
・ビデオ映像のEncode/Decode(H.262/H.263/H.264...etc)
 
これらがどういった仕様なのかは調査する必要があります。
規格自体はインターネットで調査すれば英語で書かれた難解な技術文書が公開されてますし、英語がわからなくても懇切丁寧に解説している人はたくさんいます。
製品の仕様と挙動の仕様、この二つを整理することが製品技術を習得する上での第一歩です。

 

仮説を立てる

製品に使われている技術の仕様をなんとなく把握したら次は「どう動くのか?」の仮説を立てます。
 
例えば「IP電話が動作するプロトコルSIPで動作させるよう設計する」であれば、
SIPはサーバ/クライアント形式で制御信号をやり取りするので、IP電話の挙動一つ一つはサーバと通信する?」となります。
もはや横文字だらけで何が何やら…ただこればっかりはIT業界の常、ですかね…。
 
仮説を立てる事がなぜ必要であり求められる能力か、はこの後説明します。

 

実際に動かして挙動を理解する

製品が使用している技術の仕様を理解したら実際に動かしてみます。
百聞は一見に如かず、ですね。やはり経験が大事。
 
また、この過程で予め予想していた仮説が正しいかどうかがわかります。
仮説が間違っていれば仕様や挙動に対する理解を修正出来ますし、何が間違っていたのかを把握することが出来ます。
仮説通りにシステムが動いたのであれば、その理解が正しかったと自分自身にフィードバックできます。

 

仕様を理解したうえで仮説を立て、動かしてみて挙動を理解する。
エンジニアはこれらを反復することで自分が扱う製品に対する理解を深めていくことになります。
学校で勉強して、勉強した結果をテストで試して!と同じようなイメージですね。

 

最後に

いかがでしたでしょうか?

実際の業務ではシステムを設計する工程の中に、製品の仕様と設計方針通りに製品が動作するか検証する工程があります。
その検証工程では意図したとおりに動作するか確認するため、テスト項目を自分で考える必要があります。その中で仮説を立てる能力が活かされます。
手を動かして製品の挙動を確認する事で経験にも繋がりますので、仮説→検証→確認といった地味な事を繰り返す事が一つの能力の指標にもなるのです。

 

本日はここまで!ありがとうございました。