何か勉強しなければとは思いつつも何も出来ておらず、
このままでは行けないと思い、振り返りの意味も兼ねて、
未だに「プログラミング」が出来ているとは言いがたく、
頭が悪いことを悩むほどに頭が悪い努力をしなかった低学歴文系出身の僕が、
難しく底がないプログラミングの世界を理解する為に役だった
「足掛かり」的な本を紹介していきたいと思います。
プログラミング未経験、文系出身でも大丈夫という条件からシステムエンジニアという職種で会社になんとか就職できたとしても、やっぱりコンピュータの知識というのは必要なわけで、しかも会社によっては、プログラミングを組まずに仕事をしていくのが難しい所もあります。
ただ、プログラミング一切やったこと無いSEも多いし、そういう人達が発言しているせいかSEにプログラミングの知識って本当に必要なのか?
と思っちゃうかもしれませんが、プログラミング一切やったこと無いSEは
規模の大きい会社に就職した人か、プログラミングを行わない仕事の仕方をしている人で、僕みたいな人間とは頭の出来が違うのを忘れてはいけない。
「未経験でやっていける」を鵜呑みにすると、頭の悪く心が弱い僕みたいな人は
最初はなんとかなるけど、2,3年目から無能への葛藤で心に病を持っちゃったりすることになります。
そこで、当時勉強法とかどんな本を読んで勉強したか色々聞いて回ったんですが、みんな頭が良くて努力家、地頭が良いせいか勧める本が難しすぎて泣きたくなりました。
まともに読むことが出来ずその前の足掛かり情報が必要でした。
いろいろ回り道をしながら本を探して読んでこれは理解が深まったなぁという本を紹介していきたいと思います。
最初は
「コンピュータはなぜ動くのか」「プログラムはなぜ動くのか」「Windowsはなぜ動くのか」
の3つの日経BPの"なぜ"シリーズを読むといいと思います。
「 Windowsはなぜ動くのか」は仕事でWindowsの端末で開発する人だけでいいと思います。
このシリーズは言葉も専門用語をあまり使わずちゃんと理解ができとてもおすすめです。
また、細かい知りたいところはここでは調べずに忘れないように線を引くなり、メモするなりしてまとめておきましょう。
他にも魅力的な”なぜ”シリーズがあるのですが結構難しいので今はやめておきましょう。
この段階ではコンピュータ書籍に対する値段が高いと感じるかと思います。
その時は立ち読みして検討したり、中古を選択したりした方がいいかもしれません。
版数が古くても今の段階の知識ではそこまで問題無いです。
読み切るかどうかも分からない本にお金を出したくない、と最初は考えますが大丈夫です。
たんだんコンピュータ書籍に対して金銭感覚が麻痺してくるので、
後々5000円クラスの本も躊躇なく買ってしまいます。
ある程度コンピュータとプログラミング知識がわかったら、コンピュータの歴史で知識を保管するとなお興味と楽しみが湧いてくると思います。
そこでオススメなのが「CODE コードから見たコンピュータのからくり」です。
この本は2進数と電子回路の関わり、CPUという見た目ただの黒っぽい石が、そもそもどんな働きをしているかという事について本で学べます。
プログラミングとは程遠く回り道な気がしますが、メモリとか2進数とかそういったコンピュータ基礎知識の足掛かりに役に立ちます。
よく実際にコンピュータ学ぶんだったら電子工作から学べという言葉を耳にしますが機材揃えたり、時間的なものでコストがあまりにも掛かりすぎて現実的ではありません。
あと、電子工作とかそこまで手を出すと目的と手段が逆なっちゃうので今はやめておきましょう。
(というか僕みたいな低能に電子回路が引けるかってんだ・・・)
次に実際にプログラミングを習って行きたいと思います。
最初は情報処理試験の「CASL2完全合格教本」のCD-ROM付きでCASL2をやるのがマストだと僕は思います。
実務で使わないようなCASL2を進めるのは正直迷いどころではあるのですが、僕はプログラミングと2進数の紐付けがCASL2をやって初めて理解出来ました。
C言語とかで学ぼうとすると環境依存したりメモリが仮想領域だったり、DOSで学ぼうとするとプロテクトモードとかエミュレータを手に入れたり、環境を整えるのがやたらと難しくなってきます。
だったら潔くすべて仮想で動きが見えるCASL2をやったほうが頭に入りやすいです。
全部やらなくてもいいです多分3分の2程度やれば後は練習問題なのでやりたい人はやってください。
だけど最初の練習問題は紙に書いてやった方が面白いし理解が深まります。
次にC言語です。
どうもやるかやらないかの話になってくるとAll or Nothingになりがちですが、これは足掛かり的な意味なので別にC言語で給与システムを作れとかいっているのではないのです。
読んで頭が悪くなるわけでも死ぬわけでもないので少しお金を出してかじるくらいはC言語はやっておきましょう。
ということで「C言語改訂版①」「C言語改訂版②」がオススメです。
独習CとかCの絵本とか他にも色々あるんですけど「独習C」は言語仕様を反復的に学びC言語開発者向けです。
逆に「Cの絵本」とかになってくると、なるほど!で終わってしまう可能性があります。
ここではあくまでもプログラミングの足掛かり作る為なので言語仕様に偏り過ぎず、尚且つある程度楽しい本が良いでしょう。
次に上記の本でポインタの箇所を保管しておきたいのが、「C言語ポインタ完全制覇」です。
「C言語改訂版②」でも一応ポインタについて触れてはいるのですが、詳しくは載っていません。
そういう時に頭の整理の助けになるのが「C言語ポインタ完全制覇」です。
これは全部読まなくてもいいと思います。わからない所、痒いけど手が届かなかった箇所を上手く保管してくれる逆引き的な本として扱った方いいでしょう。
ここまで来たらだいぶプログラミングの足掛かり的な情報はできてくると思います。
今まで上げた本は業務では殆ど役に立ちません、即効性を求めるならその実際に行っている業務の言語を勉強するのがいいと思います。
しかし、僕みたいな低能には即効性を得られる本ですら読み解くことが出来ませんでしたが・・・
また業務でオブジェクト指向というプログラミングを組むことになったら
同じ”なぜ”シリーズの「オブジェクト指向でなぜつくるのか」がオススメです。
コンピュータの仕組みわかったけどオブジェクト指向の意味がわからないとなった時に足掛かりになります。
努力のできる人達、知識がある人達には分からないし理解は出来ないと思いますが、低能なりに振り返ってみました。
役に立てればうれしいです。