僕がプログラミング始めたきっかけ

Twitter で @Sn0wNight さんが

中高生の人達がプログラミングをはじめたきかっけとか、どういう言語が好きなのとか詳しく知りたいからできれば中高生開発者やってる方はブログに書いてほしいなーとかチラッと思った

2011-05-16 18:50:03 via Twitter for Mac

とおっしゃっていたので自分語りしてみる。 ここに書いた事ってちょこちょこいろんなところに書いてるから、何度目だよって話もあるとおもう。

一応時間を追った流れになってる

プログラミング開始前

僕は保育園児の時に Windows 98 SE のノート PC を母からおもちゃとして渡された。 これがはじめて触った PC 。 ここから1ヶ月足らずでローマ字覚えたらしい。

きっかけ

小学 [56] 年生の時に友人にサイト作成頼まれた。 PC はよくいじってたけどこの分野は初めてだった。 俺に話が回ってきたのは、 PC だったらよしだだろ、っていうイメージが学年中にあったから。 面白そうだし快諾した。 ちなみにこのころは弁護士目指してた。 なお、サイトの内容はいじめられっ子を謗るもので完成後当人の親バレして問題になった。 ごめんなさい。 だからきっかけとしては胸をはって言えたもんじゃない。

JavaScript

そのサイトは Yahoo! ジオシティーズで作った。 でも、ウェブサーフィン()してた俺の目が肥えていたせいか、出来が、操作性が気に入らなかった。 メニュー展開したりとか、サイトの配色をユーザー好みに替えられたりとか。 そのために JavaScript 始めた。 最初はサンプルコードをコピペして喜んでた。 でも、それだけじゃつまらないから自分で書けるようになった。

HTML 、 CSS

Java Script つかってページの見た目いじるには DOM の知識が必要だったけど、ジオシティーズでテンプレートに文章はめて楽しんでた俺は HTML すら書けなかった。 だから HTML を始めた。 よくある「ホームページ作成講座」みたいなので HTML やっていった。 ある程度書けるようになって HTML 4.01 解説してる本買ったら、構造とデザインの分離のために装飾系のタグは非推奨で CSS 使え、って書いてあった。 だから CSS 始めた。

「ホームページ作成講座」開設

CSS もある程度できるようになった俺は小学生特有の万能感によって生意気にも HTML 解説するサイト作った。 まぁ、今考えたら無茶なんだけど、解説するためにいろいろ調べまわったから詳しくはなれた。

CGI 、 Perl

「ホームページ作成講座」のコンテンツが充実していくに連れて検索機能が必要になった。 Yahoo! の検索ボックスを貼ったんだけどインデックスされてないページもあるし、自作できたら幸せだと思って調べたら CGI というものを知った。 そして、 CGI は Perl で書くのがポピュラーだと聞いて Perl 始めた。 でも、 Perl の文法をある程度やったくらいで挫折した。 理由は多分飽きたとかそんなの。 だから今でも Perl はあまり馴染みがない。

PHP

Perl 諦めてからプログラム書く事自体にブランクができる。 そして、次にこっちに戻ってきたのが中1。 理由が金儲け。 ドロップシッピングとかいう仕組み(?)でオンラインショップを立ち上げたかった。 最初は全てのページを1つずつ HTML で作っていったけど面倒だしやめた。 そこで自作 CMS つくろうと一念発起。 そのために Perl やり直して CGI 書くしかないのか、と思いつつも気が進まず、いろいろ調べてたら PHP に出会った。 早速「14歳から始める PHP 」という本買った。 この中で XAMPP というのが紹介されていて、いとも簡単にローカルサーバー立てられた。

SQLite

商品とかのデータ突っ込むのに SQLite 採用した。 PHP には SQLite がバンドルされてて始めやすかったのが理由。 SQL 文法は SQLite で覚えた。

Ajax

オンラインショップでそれっぽいのが完成した。 次に何したっていうと経営とか集客とかの本読みあさってた。 その本の記述に従って SEO 施したりなどいろいろやってた。 それがある程度済んだら次はオンラインショップの機能拡充に手をつけた。

まず実装したのが関連商品機能。 Amazon がヒントだった。 カルーセルみたいに商品を見ていけるようにした。 そのために JQuery 使って、そこで知ったのが Ajax って言葉。

次に実装したのが商品レビュー機能。 これも Amazon がヒント。 覚えたての Ajax っつうのを使いたくてうずうずしていた。 だから、レビューが n 件以上になったら n 件だけ表示して残りはリクエストがあったときに表示しよう、そのときにいちいちページ遷移させずに、次の n 件のレビューを非同期通信で取ってきて HTML に反映させよう、っていう仕様にした。

この Ajax っていうのを使えるようになるために調べている中でいろんなサンプルページ見ていって感動したのを覚えている。

C

オンラインショップの機能拡充をしていった俺は、いつの間にかオンラインショップの運営よりも、機能考えてそれを実装してるほうが楽しくなった。 このころがプログラミングに目覚めた頃。 とにかくコードが書きたかった。 それなのに、 SEO 対策や販促、集客に時間を取られるのがいつしかもどかしくなった。 だから、純粋にプログラム書くことに決めて潔くオンラインショップを潰した。 今思えばどこかにサイトを売却していればよかったかな、なんてことも思う。 まぁ、たいした額にはならんだろうがw

そして、プログラミングの基礎から始めることを決意した俺は C を始めた。 プログラミングやるには C は絶対不可欠だ、というのをどこかで聞きかじったのが理由。

Java

C をしこしこやりながらプログラミングにのめりこんでいく俺。 図書館でプログラミング関連書籍コーナーにいたら Java の本見かけたから手にとってみた。 まだ Web への興味が強かった俺は、 HTML に Java アプレット埋め込んでゲーム提供できたら素敵だな、と思ってちょこっと Java をかじる。 でも、すぐに挫折。 図書館の2週間の返却期限ってのも理由ではなかろうかと思う。 まぁ、初めてオブジェクト指向っつーのに真面目に向き合ったのがこの頃だから、完全に無駄ってわけでもなかった。

というわけで今でも Java はほとんど書けない。 近いうちひと通りはやっておこうかな、とは思ってる。

Python

C をしばらく頑張っていた俺だけど、 Python をやりたいな、ってことを強く思う。 理由はあまり覚えてないけど、 @isidai さんの「「ブラッディ・マンデイ」を考察する」って記事に加え、「ハッカーになろう (How To Become A hacker) 」ってウェブページの中で Python を知っていたこと、 GUI つくるのに Python だと Tkinter で簡単にできるよ、ってことや Python の文法は美しいよ、さらに Python は覚え易いのに柔軟に何でもできる最強言語だ、ということををきいたってあたりだと思う。 また、日本では Python 人口が少なく、少数派な俺かっけぇ、とかいうくだらない理由も有ることだろう。 で、 Python 始めたのが去年(2010年)の3月くらい。 だから、もう丸1年以上が経過している。

そんな感じで Python を始めた俺だけど、これは大正解だったと思ってる。 今ではすっかり Python の虜で、 Python を愛している。 CGI も Python で書くようになった。 Python は応用範囲が広くて素敵。

現在

俺はどうにも Web が好きらしい。 というか、 Web サイトの運営でやりたいことを実現するためにプログラムの学習を進めてきたから、 Web に傾倒するのはもはや必然。

今は個人的にアルゴリズムの勉強も始めたりで、 CUI で動くプログラム書くことも増えた。 また、技術系の高校に進んだから、情報の技術とかで学校の授業として C 言語 を扱うようになることと予想される。 推薦で入った俺は情報分野に進むことが確定しているから、3年とかでは学校の授業で自作スクリプト言語を作ることも有るらしい。

今まで一人でプログラムを書いてきた俺。 どうにも孤独だし、ライバルが居なかったから刺激もなくスローペースで勉強を続けてきた。 ところが、 Twitter を始めて技術系の人を多くフォローしてみたら世の中には同世代なのに自分よりも何倍もすごい人がいることを知った。 これは俺にとってプラスに働くおおきな刺激だった。

さらに、高校では少数でこそあったけど俺と同じようにコンピューターに興味を持っていて独学でプログラミングやってるような人もいた。 そんな方々と仲良くなった。 まっさきに Python 教への勧誘をしたw色々と教えたり、教わったりで、今まではそんなことが皆無だったからとても新鮮で、そして俺も頑張らなきゃ、という気持ちになる。

まぁ、そんな感じで最近の俺は日常が刺激に満ち満ちている。 そんな感じで、俺はいまとっても充実した気持ちで、どんどん精進していこう、と思っている。

以上