はじめまして、管理人のプログラマーZです。
多言語プログラマーということで、複数の分野、言語をまたいでプログラミングをしています。
メインの言語はC、C++。WEBではCSSやjQuery。活動範囲はアプリとWEB。
現在はサイト制作用のツールを作ったり、ウェブサイトで記事を書いたりして生活しています。
このページはわたしのプログラミング歴についてまとめています。
プログラミングで悩み続け、ダメプログラマーから多言語プログラマーへ成長した過程を書きました。
Contents
管理人のプログラミング歴
中学生時代にプログラミングと出会う
わたしのプログラミングは、中学生のときに「HSP」という言語を使ったときからはじまります。
当時はゲーム作りをしたいという気持ちからプログラミングに熱中しており、部活から帰ってはひたすらプログラミングをしているという生活でした。
作ったのはローグライクというジャンルで、いわゆる不思議のダンジョンと呼ばれるもの。そのほかにも、便利なアプリを作ったりしてしました。
高校に入ってからもプログラミングをやり、ネット巡回をより効率的にするため、自分用にWeb閲覧用のアプリを作成。
高校までは順調にプログラミングをし、楽しい楽しいの連続でした。
しかし…
大学に入ったらC言語ばかりでわからない(泣)
大学は電気・情報系の学科に入学。
わたしはそこで大きなカベにぶち当たります、
多くの学生を悩ませる「C言語」というカベに…
内容もただ文法や簡単な処理をするだけではなくて、ダイクストラ法など本格的な部分までがカリキュラムとして存在していました。
当時のわたしはC言語に慣れておらず、また言語を変えるとプログラミングができないという状態。
そのレベルの人間にとって、大学でのCプログラミングは悩みの種でした。
今振り返ってみれば「そんなの楽勝じゃん!」としか思わないのですが、知識のない時期の自分にとっては苦痛で仕方がない。
プログラミング演習の授業ではレポートに加えて面接まで存在し、まるでイジメにしか思えませんでした。(笑)
プログラミングのアルバイトを始めるも…
大学3年生の時期を終え、4年生になってラボ生活がスタート。
研究室でもCプログラミングはあったものの、そこでのプログラミングは3年生までと比べて難しくはありませんでした。
内容は超音波のシミュレータを作るもので、C言語でシミュレータを作成して文献通りの結果を出すもの。
そこでのプログラミングは順調に進み、「もしかしたら自分ってプログラミングに向いているのかも」と舞い上がっていました。
しかしながら、その自信もすぐにへし折られます。
授業がなくて研究も前倒しでやるようになり、時間が余ったわたしは、プログラミングのアルバイトを始めました。
そこでもC言語でシミュレータを作っていたのですが、そもそものプログラミングのレベルが段違い。
並列処理や細かいパラメータの設定、それどころかシミュレータの内容で本が1冊書けてしまうほどの深いものでした。
たとえでいうと、スパコンに使われるぐらい。
検索すれど、ネット上にソースコードが載っているわけでもない。理解するには文献や論文を読み込まなければならない。etc…
それぐらいハイレベルなプログラミングを前に、まだまだ未熟だったわたしの自信はことごとくへし折られました。
当然、アルバイトを始めた当初は役に立つはずもなく、プログラムを動かしてデータ収集をしてもいいデータが取れない。プログラマーとしてはお荷物レベルです。
アルバイトで丸投げされてから大きく変化
シミュレータのプログラムを動かしてもいいデータが得られないい。それどころかソースコードの内容すらも理解できない。
そんな状態だったわたしは、もはや放置されるレベルまで来ていました。
担当者からは呆れられ、「君、何がやりたいの?」とまで聞かれる始末。
相当なダメさ加減だったわたしは、(プログラミングが出来なさすぎて)仕事を新しく作ってもらうという段階にまで突入しました。
そうしてシミュレータのバグチェックすらまともに出来なかったわたしは、オープンソースの開発ツールを探す、それに関連する文献を調べるといったことをほぼ丸投げで担当することに。
指示通りにすら動けないから、怒りを通り越して丸投げされる。
まさにそんな感じでした。(笑)
しかし、このときの丸投げを機にプログラミングではどんどん役に立てる方向へと成長していきます。
「シミュレータの開発をしたい。けど予算がかかるのはイヤだから、OpenFOAMと呼ばれるオープンソースの開発環境を調べて欲しい。もしシミュレータが作れるのであれば手を付けてみて欲しい。」
こんな感じで、オープンソースに関する仕事が丸投げで回ってきました。
そうして丸投げで回ってきた仕事を片付けていくうちにいい手応えが得られ、調べるように支持されたオープンソースの開発環境で実際にシミュレータを作成。
実際にやってみると今までとは手応えが異なり、スラスラと調査やプログラミングが進んでいきました。
以前まで与えられた仕事すらこなせなかった自分としては非常にビックリで、シミュレータが思い通りに作れてしまう。当時の自分としては「今まで悩んでいたのは何だったんだろう」と思うばかり。
結局、実用レベルのシミュレータまではいかなかったものの、その前段階、いわばプロトタイプについて、シミュレータを作成しました。
苦手意識しかなかったはずが、いつしかプログラミングは得意なものへと変わっていました。
これは後日談ですが、プロトタイプでの動作、インターフェースや入力データの扱いから、そのオープンソースの開発環境は利用が見送られることへ。
それでも、ごく簡単なレベルでもシミュレータを作れたのは大きな自信につながりました。
はじめての言語かつ丸投げでも、プログラムを作り切る
オープンソースの開発環境の仕事が終わると、今度は文献を参照してシミュレータを作ることに。
初めての言語かつ丸投げでシミュレータを作ることになり、最終的には作り切ることができました。
具体的にはFortranで文献を参考にして、複雑なシミュレータに使うための熱伝導の部分を作成。3ヶ月弱で作成し、デバッグまで終えることができました。
Fortranは初めてで、Cygwinでコンパイルとデバッグ。文献を参考にして作ったプログラムにはバグが当然のように存在し、デバッグには約2ヶ月を要しました。
実際にデバッグをしてみると次々とバグが現れ、「これ、いつ終わるんだろう…」と思うばかり。それでも粘り強くデバッグを続け、なんとか3ヶ月以内でシミュレータの作成を完了。
C言語のプログラミングで挫折し、ダメプログラマーだった自分が、はじめての言語で3ヶ月かからずにシミュレータを完成させてしまいました。
このときの達成感は言葉にならないほどです。
この頃になると言語を変えてもプログラミングが出来るようになっていて、複数の言語を併用してプログラミングをするようになっていました。
今では多言語で楽しくプログラミング
C言語のカベに当った時は、「自分、プログラミングに向いていないんじゃないか…」と思うばかり。
その後もプログラミングで挫折が続いたものの、丸投げされるのを機に、プログラミングで結果が出るようになりました。
今では言語をまたいでのプログラミングが普通で、C言語も当然のように使っています。
ウェブサイトでのデザインからコンテンツ制作のツールまで、プログラミングさまさまの生活です。
プログラミングは覚えるまでが大変で、一度覚えてしまえばあとは簡単。ツールもシミュレータも作れてしまいます。
このサイトにはわたしがプログラミングで悩んだ経験をもとに、プログラミングに悩める人に向けて「どうすればプログラミングが出来るようになるのか」をまとめました。
悩めるプログラマーのあなたに、このサイトの記事が役に立てれば幸いです。