C言語を最初に学んで良かった点・悪かった点を振り返る【学生向け】の絵文字

C言語を最初に学んで良かった点・悪かった点を振り返る【学生向け】

2022-08-26

2022-08-26

はじめに

こんにちは、こふです。

C 言語を最初に学んで良かった、悪かったことを振り返ります。

書くことにした経緯

C 言語から勉強し始めた学生に届けば良いなと思っています。著者も投稿日時点では学生です。


この記事を読んでいただくにあたり自己紹介をする必要がありますね。

今(2022/08/26 時点)は大学 4 年生です。

プログラミングを大学 2 年生の授業で本格的に始めました。厳密にいうと、1 年生の時に Python を 3 コマ分くらいやったのですが、何も記憶にないですし、それ以降プログラムを書いた覚えはありません。

つまり、C 言語が初めて習ったプログラミング言語と言って差し支えありません。

良かった点

たくさんあります。

最初から型を意識することができた

  • 型を定義することが最初から当然になった
  • 動的型付け言語から始めると、型を書くのがだるく思ったりする
  • 当然、実行するまでバグに気づけないとか、エディタのインテリセンスが効かないとかある。当然 IDE にもよるり、Python でも静的解析もすれば同等に書けなくはない(実行速度を除いて)
  • 動的型付け言語を使う中で、静的型付け言語を使うメリットはわかってきて、自然と移行する人がほとんどだろうと推測できる
  • 結局は静的型付け言語に落ち着くと思っている

コンパイルして機械語にして実行する流れを最初から意識できた

  • インタプリタ型の言語だと、このプロセスを知ることは基本ない
  • どうやって実行しているんだ?と疑問に思い調べると、周辺知識から知ることができるかもしれない
  • しかし、C 言語ならその疑問がなくてもコンパイルせざるを得ない
  • そのため必然的に意識することができる

ポインタなどの計算機の仕組みを意識せざるをえない文法を学べた

  • Python・JavaScript などでは気付きづらい
  • C 言語ではsizeof でビット数を求められる
    • メモリリソースをどのように使っているか知るきっかけとなる
    • どの型は、どのビット数かなど、確認する機会も少しはあるはずで、豆知識にもなる
    • 文字列の長さを求める時にビット数で除算をするきっかけになる
  • malloc,free などのだるい文法も使う
    • メモリを確保して、その配列の空間を利用して、使い終わったらメモリを解放するなど

一般に言われる C 言語の問題点を感じることはなかった

  • よく言及されるほどの大規模なプログラムを書かないからだと思われる
  • 超優秀な大学では、大規模プログラミングをさせられるのかもしれない
  • しかし、標準的なレベルの大学では、この点を意識する必要はないはず

悪かった点

良かった点の裏を返せば、ということも含みます。

  • コンパイルや型、アドレス・ポインタを一度に学んだため頭がパンクして全てが理解できなかった
    • 途中で嫌になって挫折する可能性はわりと高い
  • 初めてのプログラミングとしては開発環境の構築が地獄
    • ネット上で C 言語を動かせる環境もあるが、それはあまり使わなかった(なんで?)
    • それを使わずに Visual Studio を最初は使った
      • 本か大学かで言われたけど、今思うと地獄だった
    • その後に Python を個人的に初めて Visual Studio Code に出会い、gcc を入れて CLI でちゃんとコンパイルした
  • ネット・本の教材は他の言語と比べ不親切なものが多かった
    • 上級者向けならたくさんあったが、という感じ
    • 僕が C 言語を勉強した時に使った本を載せておきます。レビュー記事はいつか書くかもしれませんが、簡潔にコメントも載せます。

使って良かった参考

さいごに

これで自分だけが思う、自分だけが語れることをまとめられて良かったです。

読んだ誰かに役立つ日を待っています。



アバター

こふ

情報通信を専攻している大学生です。大学・趣味・アルバイトでプログラムを書いています。ITサービス・文章を創作することが好きです。

ぼくについて

共有する