なんちゃってプログラミング…才能が無いと言われたけど、こうやったら出来た!

今回は自身の体験談で、自伝と言ったほうが良いのかも知れません。

これは事実ですので、プログラミングをしたくても出来なくて諦めている人や、○○だから無理だと思っている人にとっての助けになれば幸いです。

面接でプログラマーとしての適正テスト

そこそこ大きな会社に就職したのですが、プログラミングがしたくて、転職を決意し知人のツテで、とあるソフト開発会社の面接を受けさせてもらうことになりました。

そうは言っても、パソコンがそこそこ使えるレベルなだけで、プログラミングを仕事にしたいというのは、単なる希望であり、プログラミングスキルがあるわけではありません。

ですから、給料は少なくても、プログラミングさせてくれる会社ということで、知人に頼んで、面接とちょっとした適性テストのようなものを受けさせてもらいました。

結果は、自身の甘い考えとは異なり、「頭が固まってきているから、営業ならば採用してもいいよ」と社交辞令のような言葉をかけられ…はっきり言えば、プログラミングの才能がないから諦めなよということですね。

非常にショックを受けましたが、丁重に営業はお断りして、トボトボと帰宅したのを覚えています。

WEB関連のしごとで頑張る

その後は、プログラミングは忘れて、WEB関係の仕事をしていました。

しかし、WEB関係でも、こんなプログラムがあれば便利だなとか…そんなふうに思うことも度々ありました。

諦めきれず趣味で始めてはみるものの…

どうせ趣味なのだから、誰にも才能が無いから諦めろとは言われないので、チャレンジしてみることにして、プログラミング言語の将来性などを比較検討したものです。

いくつか候補をえらんで、PCに開発環境をセットしたものの、はっきり言ってさっぱりわかりません。

そして、再びプログラミングに厳しい現実を見せられてしまったわけです。

趣味でもだめかと諦めかけた時…

やはり、無理かと思っていましたが、どうせ無理なら、なにも流行りの言語や将来性のある言語にする必要はないなと気が付き、片っ端からソースコードを見てみました。

すると、その当時唯一「もしかするとこれはわかるかも知れない」と思ったものがありました。

人間の言語で言えば、なにも知らない場合は、韓国語は見ただけで理解不能って気がする人が多いと思いますが、中国語は読むだけなら理解できそうですよね?

まさに、そんな感じを受けた言語に出会いました。

急がば急げの精神で「なんちゃってプログラミング」を開始

それで、今までの逆で理解することにして、本などを購入せずに、サンプルの利用を許可している人がいますので、他人が作ったサンプルコードをいじり倒してみることにしました。

いままでは、基礎から入っていたので、非常につまらない足踏み感が満載の上、理解できないというおまけ付き。スグに嫌になって「ダメだダメだ」となるのが落ちですが、この逆から行く手法は見事ハマりました。

簡単に言えば、「I have a pen.」というのがコードだとしたら…

「I have an apple.」に変更してみるという手法で、これを繰り返していく方法。

他人のサンプルコードの一部を変えるだけなので、自分の意思は反映しているし、スグに形になるのでやる気も起きます。

理解するのは、やる気が起きてからというより、色々と修正していって、欲しいものが出来た時でいいやと思っていましたが、欲しいものが出来た時には、なんとなく理解できるようになっていました。

いつのまにか他の言語もわかるようになった

その後は、気がつけばソフトウエアを自分で作って、シェアウエアとして販売したり、スマホアプリをリリースしてみたりというところまで行き着きました。

さらに、やっとひとつのプログラミング言語がわかるようになったのですが、気がつけばいくつかの言語を使えるように…

以前、人間の言語の話ですが、「ひとつの外国語をものに出来ると複数の言語も使えるようになる」「複数の言語を同時に覚えると良い」などと聞いたことがあったような気がします。

プログラミング言語もそうなるのかなと思っていましたが、結果的には同じでした。

ただ、最初に自分の思考パターンに合った「きっかけの言語」が必要だったと思います。

ただし、基礎はいらないということではありませんので、誤解の無いようにお願いします。

まとめ

面接でプログラマーとしての適正テストを、知人に頼んで受ける。

「頭が固まってきているから、営業ならば…」と社交辞令のような言葉をかけられ…トボトボと帰宅。

その後は趣味で、いくつかプログラミング言語の候補を選び、取り組んだものの、やはりだめかと諦めかけた時…

片っ端からソースコードを見てみたら、当時唯一いけるかもと思ったものに出会う。

基礎から勉強せずに、他人が作ったサンプルコードをいじり倒してみることに…

コードの一部を変えるだけなので、スグに形になり、それを繰り返し行うことで、欲しいものが出来た時には、なんとなく理解できるようになっていた。

いままでダメだったのは、最初に才能が無いということを言われ、躓いた時にはすぐそのことを思い出し、負のスパイラルにハマってしまった為と思う。

本当は、自分の思考パターンに合った「きっかけの言語」があればもっと違ったかも…