少しずつプログラミング学習

20代にMacintoshでプログラミングを学習する為、大枚はたいてC++のコンパイラと書籍も買って毎日わけも分からず勉強したのですが、結局当時は、Macintoshというややこしい環境での学習、そして情報の少なさ、周囲にプログラミングスキルを持った人が居ない等から、どんどん独学の意欲も疲弊していき、トラウマだけが残った苦い記憶があります。

つい最近まで、私はそのトラウマを克服できず、プログラミングと呼べるまでのスキルは身に付けることが出来ず、ちょっと既存のスクリプトを改造してみたり、部分的に取り出して応用してみたりという程度までしか出来ませんでした。

しかし、フリーランスとしてIT系のジャンルで食っていく関係上、プログラミングスキルの重要度は高いと判断し、このトラウマを克服すべく、昨年末から地道に独学に取り組んできました。大きなきっかけは、MIT App Inventorを使ってAndroidアプリを視覚的な開発環境で作ってみた経験です。もしかしたら出来るかも知れないなと感じました。

そしてそれを本当に実感したのは、Visual Studioという、Microsoft社の統合開発環境(IDE)を使ってサンプルを作ってみたら、9割方理解出来た時でした。アプリの見た目、ボタンやテキストボックスの配置は、Windowsアプリならではのマウス操作で行えますので、MS-AccessやFileMakerを使った経験があるなら何の苦労も無く行えるでしょう。レイアウトも自分が思い描く理想通りに配置出来ます。そこにボタンをクリックした時の挙動等を、ソースコードとして記述する訳ですが、意外と少ない記述で情報の取り込み等は行え、肝となる処理部分をじっくり考えれば、当初は無理なレベルのプログラムが作れたのです。

正直言うと、入門書籍を数冊購入したのですが、多くは退屈なサンプルばかりで、最後まで到達出来たチュートリアルは半分位です。私は、どうしても興味を持てないチュートリアルには没頭出来ません。これは社会人経験の長い人がプログラミングを始めた際に壁に突き当たる大きな原因だと思います。社会人経験によって短時間で結果を得られる方法を選択するクセがついてるからです。基礎から学ぶという遠回りは大切だと理解していてもそういう道を通ることが事実上出来ません。学生とは学習の仕方、受け入れ方が大きく違うのです。私は自分が知りたい事をすぐに学びたいのです。(これは性格など個人差が大きいと思います。)

幸い、Visual Studioはいじっている内に、色々なアイディアが湧いてくる刺激をくれます。最初はシンプルなプログラムでも、徐々に機能を追加してみようとか、こうすれば合理的だなとか言う発想がどんどん出てきます。それを実現するのに、じつはそんなに高度なスキルが無くてもなんとか出来上がったりするのが面白いのです。(当然熟練者が作ったアプリに比べると洗練度は話にならないレベルでしょうが)

それでも、回数と学習を重ねていく内に、徐々に合理的なソースコードが書けるようになって来ます。これは良い感じに書けたなぁというのも最近では徐々に増えて来ました。

そして思わぬ効果は、Visual Studio C#以外の言語でも、そこそこ書ける様になっていることです。元々PHPやPythonは超ビギナーレベルではあったのですが、越えられない壁をVisual StudioでC#を学習している内に越えてしまっていた様です。なんでコレが分からなかったんかな?というのが今の心境です。難しく考えすぎていたのです。

PHPを使ってWordPressのプラグインもいくつか作りました。もちろんプラグイン作成に必要な知識はありますが、それらを調べると漠然としたイメージが湧くようになりました。そして実際に作り始めるとまずはこれを表示させてみる。次はこうしてみる。そうやって段階的に進めて行く事を無意識に実践していました。いきなり全体像の細部まではイメージ出来ないけれど、全体像の部分部分を拡張して行くイメージであれば作れるようになりつつあります。

そんな私ですが、プログラマーとして仕事をするつもりはありません。あくまでもプログラミングスキルは、仕事をやりやすくする程度のレベルで充分だと考えています。ちょっとした便利ツールや、業務上の不便を補助する程度のツールが作れれば充分です。それ以上のものは専門のプログラマーに依頼して作ってもらうのが本道でしょう。私はプログラマーではないのだから。クライアントが望むこの仕様ならこれくらいの大変さがあるな・・とイメージ出来るだけで充分だと思っています。

さて、そんな私のプログラミング学習ですが、まだ辞めるわけではありません。もっと続けていきます。プログラマーを目指している訳では無いけれど、もっともっとスキルアップはしたいです。Web系の開発手法もある程度把握しておく必要があるので、PHPやJavaScript等を使ったWebサービス、各種APIの活用も最近の課題にしています。少しわかってくるとプログラミングは実に楽しく有意義な作業だと思っている今日このごろです。

コメント

タイトルとURLをコピーしました