xxxさんの備忘録

xxさんのブログです.xxさんはネカマです.

『コーディングを支える技術 ~成り立ちから学ぶプログラミング作法 (WEB+DB PRESS plus)』を読んだ

お疲れ様です。私です。 最近はWEBで受ける試験(oos-dbのシルバー)に落ちたりしてました。

コーティング試験って何やらの気持ちに近況なっていて、「paizaのb練習問題を曖昧にpython(前はjavaでやってたが出力を出すのに手間などの理由からpython)」などで解いたりしてます。 二本木探索、計算量とかが出てくるといきなり難しくなって(解けない、解く気がなくなる)のでatcoderは手を出してないです。

この本を読んだきっかけ

paizaのようなコーティングテストに手を出した関係で言語仕様のお気持ちについて知れる本でも読んどくかなぁと思いました。 それで『コーディングを支える技術 ~成り立ちから学ぶプログラミング作法 (WEB+DB PRESS plus)』を読みました。

ちなみに書けるものについてはgithubのメモにある通りで

  • 簡単なcrudがある個人開発→laravel(php)
  • ちょっと重めな個人開発(たぶんしない)、業務→spring boot(java)
  • ファイル操作する少し複雑なshellっぽいものが欲しいとき→python くらいの雑な世界観で生きてます。

まぁやったことがあるものが少ない上に関数型言語に全く手を出してないのがやば怠惰って感じがしますが本題の方に入りたいと思います。

良いと思った点(実践してみたいと思えるような内容等)

  • ざっと言語の仕様を確認することができる
  • 特に好きなのはwhileの説明の部分と"文字とは何か"の部分で、whileは「forがあればできるのに、何故あるのかわからなかった(forとwhileでやってることが同じように感じた。かつ習いたての頃にwhileで無限ループしてしまったので好きじゃないです)、「文字コードがやたらあるのかわからない」などの理由があるためです。

以下はメモです。

  • while

    • goto文が出来ることを制限を加えている(本書の雰囲気だと、whileのほうが歴史があって、whileの使いにくい部分をforとして表現することを発明したような書き方に感じた)。
    • for文との違いとしては以下のようにまとめられる。

      • forを使った書き方

        for (i=0; i<N; i++) {

        System.out.println(i);

        }

      • forを使わない書き方

        int i = 0; while(i<N) {

        System.out.println(i);

        i++;

        }

    • 上のように書くこと自体は可能だがwhile文を使用すると、「ループの外で'int i= 0'、ループの条件式でi<N、ループの最後でi++」といったようにコードが分散してしまうのを避けるために、whileとforが存在している。
  • 文字コードについて

    • 1993年、世界中の文字を含んだ文字集合Unicodeを国際標準として利用することがきめられた。
    • utf-8 - Unicodeという統一された文字セットを符号化する方法。
    • iso-2022,Shift_JIS,EUC-jpなどの文字セットがアルファベットと数字(限られた数字)だけではなく、日本語を表現したいというニーズに合わせて出た。

悪い点(苦手な点)

  • 読みやすくていろいろな言語に触れてるのがいい点ではあるが、ある程度の厚みがある話題とっちかり系ではあるので、(何かをするか決まってない時に)時間つぶしに読めるといい本で、逆に何をするか決まっている場合には結構厚いので読まなくてもいいかなという感じです。(関係ないですが、これより厚みがないワードと簡単な説明だけの説明になると、説明として薄い感じがして読むのが逆にだれる気がする。)

まとめ

  • 「目的を間違えて手に取らないでね(あんまりいなさそうだが)」って以外にはあんまり悪い点として書き出せるようなことがないので、概ね私の中では高評価です。
  • 後、コーティング的なプログラミングをする際に先駆者へのありがたみが若干出るので、いい本でした