私が受講している訓練ではC言語について
- 通常?のC言語
- SH4マイコン向けC言語
- Linux向けC言語
の3パターンを順次学習していくとのこと。
本訓練は基本的にプログラミング未経験者向けですので、当然C言語を一から学習していくことになります。
■アセンブラから一変して初心者にもやさしいペースに
アセンブラではかなりペースが速く、正直初心者にはキツイかなと思ってたのですが、さすがにC言語は本訓練のメインということもあり、かなり進捗ペースもゆっくりになりました。また訓練生に課題を与え実際にソースコードを書かせることを重視しており、初心者にもやさしい内容になってたと思います。
とはいえ簡単な内容にとどまっているわけではありません。
組込み系の実装では欠かせないと思われるポインタやビットフィールド、関数ポインタ等、初心者には多少難しいと思われる部分もしっかりカリキュラムに入ってました。
私の場合、業務で多少C言語にかかわっていたこともありましたし、
以前も紹介したように
Windows系SEの日記: C言語の複雑なポインタ char *(*a[10])(int **p)←こういうのを理解できる書籍を紹介
Windows系SEの日記: C++の定番本ですが「Effective C++」は読んでおくべき
Windows系SEの日記: 「Cプログラミング専門課程」SE向け書籍レビュー C言語をあまり使う機会がない若手のSEにオススメします
過去にC言語関連の書籍を読んだりしてましたので、通常のC言語に関する訓練はかなり余裕をもって対応できました。
■実際にC言語のソースを自分で書くことを重視しました
私の場合、業務でC言語のソースを読むことはたまにありましたが、実際にC言語でコーディングすることはほとんどありませんでしたので、訓練を通じてまとまった量のC言語のコーディングをできたのはありがたかったです。
とはいえ訓練で提示される課題だけだとかなり空き時間ができてしまったので、「Mastering Algorithms With C」あたりの書籍を参考にソートやリスト等の定番アルゴリズムのC言語での実装についても自分でコーディングしたりしてました。
熟練したCプログラマーには当たり前かもしれませんが、関数ポインタやmallocを駆使することで特定のデータ型に依存しないソート等のアルゴリズム実装例が紹介されており、うならされました。
次回からはいよいよ、訓練の本丸組込みプログラミングについて紹介していきたいと思います。