udon's blog

思いついたことを、思いついた時に。忘れないように。

プログラミングはこうして覚えました

ふとtwitterで見かけたエントリで面白そうなのが。

「C 言語や Windows プログラミングはこのようにして習得した Part 1」
2011-10-13 - 登 大遊@筑波大学大学院コンピュータサイエンス専攻の SoftEther VPN 日記

やっぱりこう言うのって文章がうまいかどうかやなぁ、とか思いつつ。
ほんだら自分だったらどんなん書ける?ということでパクって書いてみることにした。

とりあえず自分の経験的には

  • 「C、たまにアセンブラ」がメインな組み込みer
  • 他にもちょこちょこ独学程度で手を出してます。な、
  • 業界8年目の30歳。

という程度です。

では、いってみましょう。。。


今思えばプログラミングというものに初めて遭遇したのは中学生の頃だったと思います。
父親がもともと仕事用にパソコンを独学していた人で、家にはMS-DOSの入ったパソコンがありました。
当時の僕は、良く言えば気分屋大げさに言えば軽い登校拒否でして、年に数回くらいですが「今日気分乗らんので学校行きたくない」という日がありました。

休んでた日はたいていボーッとするか、当時の父親のパソコンを使ってパソコン通信なるものに電話代を気にしながら接続して、ちょこっと遊んでみる。そんな生活をしてました。

そんな折父親から(おそらくサボってたのはバレてたんでしょうけど)「これに書いてあるのやってみたらええ」と何かよく分からないパソコン系の雑誌を渡されました。
「本の通りに書き写せばええ」ということで一応目を通して見ましたがなんのことかさっぱり分からず、なんやねんこれ?も思いつつ、ただ暇も相まってチマチマ本の内容を書き写してました。
結局それがなんの言語なのか、はては本当にプログラミング言語だったのかすら(本のタイトルすら)当時も今も不明ですが、今思えば何かのエラー的な物が出たりしてた気がするので、何らかのプログラミングに近いものではあったと思います。ひょっとしてBASICか何かだったのかもしれません。

ただ書き写すのに失敗してエラーばかりで本の通りの結果にちっともならず、イライラし、何がおもろいねんと思っていました。
結局その「プログラミングまがいの行為」はさっぱり面白くなく、すぐにやらなくなってしまいました。一ヶ月も続かなかったかもしれませんね。

あとそういえばブラインドタッチはこの時に覚えました。いちいちキーボードを見ないと打てないのに腹が立っていたところ、たまたまその雑誌にブラインドタッチの覚え方的な記事があったのでそれを読みながら覚えました。意外と覚えること自体はすんなりできたように覚えています。

なので結局この時に得たのはブラインドタッチだけと、そういう結果でした。

ここからしばらくパソコンへの興味は薄れてしまいました。ただその間も家のパソコンはWin3.1、95、98とゲイツに魂を売ったかのように順当にバージョンアップして行っており、「あぁ新しくなったのか」位の認識はありました。

等の父親ですが、どうも私を「パソコン界」へ引き込みたかったらしく、何も分かっていない僕に対して

  • 「Windowsの3.1いうのは一応マルチタスクや言うとるけど、結局一番手前のウィンドウだけが動いてて後のは止まっとんやぞ」

などと優しく教えてくれたり

  • 「Visual C言うのんを使ったら、今まで全部手で書かないかんかったのんがスケルトンでやってくれるようになる。プログラムを作る側は"どんなのを作るか"にもっと集中できるんぞ」

などと当時の私には意味不明な熱弁を振るう様な存在ではありました。

そういえば当時父親が持っていたCの本は林晴比古氏のVC入門本でした。
Amazon.co.jp: 明快入門Visual C++ 2008 ビギナー編 (林晴比古実用マスターシリーズ): 林 晴比古: 本

まぁ当時の私にはただの意味不明な本だったので読みもせず、そのまま高校へ進学。

PCに触れる機会はありましたが、結局「テレホでチャット」用であり、ここでもプログラミングはしませんでした。
確か当時は「ウィンドウ2つ開いてチャットを同時に進行させながらICQで4,5人とやりとり」という正気の沙汰と思えない遊び方をしていましたが、お陰でタイピングの速さはかなり鍛えられました。

で、そのまま大学へ進学するために実家を離れることに。

大学は一応「情報科学」の名のつくところに進学しました。(ひょっとするとその時点で父親の目論見はある程度達成していたのかもしれません。)
一応C言語の授業もあったので、ほんの少しですが学校のPCでVisual C++を使ってプログラムを作ったりしました。ただやはり専門学校でもない大学の単なる一講義であったので、C言語自体はただの手段。んでもってよく分からないハノイの塔の問題を解かさされたりして、ちっとも面白くなかったです。テストなんて紙に手書きでプログラムを書く様なものでしたし。

ちなみにこの頃のプログラミングの認識は

  • C言語 := Computer 言語
  • 書くことも含めてVisual C++でしか作れない

という感じでした。一応学校のPCに秀丸は入っていたのですが、「エディタ」というものがわかっていなかったので起動してみても「?」でしたね。

そんなプログラミングとは縁遠い大学時代も「就活」なるものをしなければならない時期に達し、すでに当時から「インターネットで就活(というかエントリー)して当たり前」な時代であったので、ここで初めて自分用のPCを購入することになります。
もちろんPCの用途は就活とビリヤードのゲームのみで。。。

無料ゲーム・オンラインゲーム・PC ゲームのハンゲーム

そんなこんなでついに(公務員試験に失敗しつつ)いわゆる「独立系SIer」な企業に就職。
そこを選んだ理由も「滑り込めたのがそこだけ」「なんか、いろいろできるかなぁ」という、素晴らしくアマちゃんな動機でしたが、なんとそこで用意された新人研修が

  • 秋月のH8ボードを使った組み込み研修

AKI−H8/3694F(QFP) タイニーマイコンキット(完成モジュール): マイコン関連 秋月電子通商 電子部品 ネット通販

「あー、なんかこの緑色なん、みたことあるような」というのが最初の感想。でも

  • プログラミングとやらで作るのは、PCとかで動いてるexeだろう?

と思ってましたので、こんなチマチマしたもんに何するんやろ?なんて思ってました。全国8千万の組み込みerにしばかれそうです。

で、研修はと言うと、

  1. 最初はアセンブラのサンプルを眺めて、ちょっと修正
  2. 同じサンプルをCで書いてみる
  3. チームでちょっとして擬似プロジェクト

な感じだったと思います。途中でちょっとボードにRAMを足したり@半田付け もしたかもしれません。

ようやくプログラミングというものに本格的に対峙するようになったわけですが、この時期に遭遇したとあるサイトがありました。

『パソコン初心者の館』

サイト主の著書である『Cプログラミング診断室』という(当時絶版だった)本が全文が公開されていました。
書籍案内:改訂新版 Cプログラミング診断室|gihyo.jp … 技術評論社
(今も在庫なしらしい)

「全文公開ってすごいなぁ」というのもありましたが、何よりその内容にハマり、研修をサボっては読み、家に帰ってからもむさぼり読む様になりました。
多分、二週間くらいかけて読破したように思います。

  • 3000行以上あるNever Ending Function
  • フローチャートなんぞ不要

などなど、当時チーム研修で仕様書にフローチャートを書いていた私は「えーーー」で、衝撃を受けた覚えがあります。ただ、「ちゃんとプログラミングに向かいあうきっかけ」だったかもしれません。

それからは、「チーム課題を他の人に任せてサイト読破」し、「javaperlpythonsmalltalk等々の環境をインストール」などなど、順当にプログラマとしての道を歩き始めたわけです。

なんとなく

  • 「ほぉ。こんなんあるのか。ちょっとやってみよ」で環境をインストールし、HelloWorldをして終わり。

くらいの量で、雑誌をナナメ読みするくらいでいろんなモノを試していたのですが、それはそれでまぁ、酒のアテくらいにはなっているような気もします。

あとそうそう、当時の会社の同期にすごいやつがいたのも大きかったかもしれません。
院卒で入社した彼ですが、入社当初既に「プログラミング歴10年」とかいう人で、私としては「彼に追いつけるのか?」というのが目標というか、ある意味テーマなのかもしれません。まぁお互い転職してしまい、ちょっと疎遠になってしまいましたが。

エイジゼロ株式会社
↑その彼の所属する(はずの)会社さんです。

そんな感じですかね。