C言語って難しいよなぁ。

ポインタが〜とか言われる言語だけど、ポインタ理解できてないと、入り口に立てない言語だよなぁ。

ポインタでつまづく、とよく言われるが、

ソース読むうちに開眼できないようではまず詰む。

関数ポインタやコールバックは当たり前のように使われており、それを読んだり書くうちに挙動や仕組みを理解できないと、ソースを改造することすらもできない。

 

また、ポインタ関係ないけど、非同期通信が絡めばソケット周り、select、fork、joinは当たり前のように理解してないとダメ。

 

システムコールも最低はexec系統抑えとかないと、めんどい。で、システムコール使うってことはエラーの黄金律やerrnoは当然しってるよな?と。

 

プログラミング以外にも

コンパイル、リンクもできて常識。

 

静的ライブラリ、共有ライブラリそれぞれ作れて、それぞれが混合しててもリンクできるようにする。

 

もちろん、それはMakeで自動化されてる。

 

と、Cは当たり前扱いされてる部分のハードル高いよなぁって思った。