My Footprint

どんな靴を履いてても、歩けば僕の足跡。 目標に向かって歩き続ける日々を書いていくブログです。

プログラミングについておもふこと

タイトルはなんとなく"おもふ"の方がシャレオツな気がしたのでやってみた\(^o^)/

今日は何となくプログラミングについて思っていることを雑記的に書こうかなと思います。
エンジニアもたまには思想にふけるもんである。(ワロス)

ネットなんぞを徘徊しているとしばしば初心者がフレームワークなんか使うな!基礎をやってからにしろ!
なんて意見を見かけることがある。

こういう意見には是非が問われる。
基礎を積んでいないのに高機能なフレームワークを学んでも、使いきれない、逆に学習コストが高くついて
つまずいてしまうなどの意見もあれば、フレームワークを使うことで学べることもあるはずだという意見もある。

個人的には前者にはおおむね賛成で、自分がJavaを勉強しだした時は、最初は言語自体の文法や
仕様などを主に勉強し徐々に他のことをやりだした。
実際これのおかげで他の言語を学ぶときの手助けにもなったし、フレームワークやらAndroidなどのプラットフォームをやるときは
割とすんなり入れた(もちろんそんなにできるわけじゃないけど 笑)。

この経験から基礎は大事だとは思ってます。
ただ、"おおむね"と書いたように絶対そうでないといけないとは思っていません。

プログラマーには大きく分けて2種類の人間がいるんじゃないかぁと思います。

一つは技術が大好きな人。
技術を追い求め、コンピュータの道を極めんとする人。
いわゆるギークな人たち。

こういうギークな人たちは言語仕様を完全に理解し、更には言語仕様に口出しするようになり
しまいには言語そのものを作り出す。みたいなことが多分すき。
技術自体を生み出したり、極めることに情熱を燃やしている。

もう一方は技術を使ってモノ作りをするのが好きな人。
実際に動く物を作ったり、サービスとして世の中に公開して行く。

自分はこっちがすきです。実際に自分が作った物が動き出したりするのがすき。
技術はモノ作りをする為のツールだと思っています。

もちろん新しい知識や技術を身につけるのはそれなりに楽しいことではあるのだが、
ひゃっはー!!最高にクールだぜ!!!とはあまりならない。

元々コンピュータ系の大学に入ろうと思ったのは映画がきっかけでした。
高校生の頃、ALLWAYS 三丁目の夕日をみて、そのCGに圧倒され、自分もあんな物を作ってみたい!
と言うのが始まりでした。
まぁ結局CGの道には進みませんでしたが(笑)

技術自体にこだわりはないですが、プログラミングはすきなので、モノ作りにエンジニアとして
参加して面白い物を作って行きたい!!と思いながらプログラマーやってます。

だいぶ話がそれましたが、プログラマーをやっていく上で大事なことはモチベーションなんじゃないかなと思います。
ギークな人たちは技術自体を学ぶことが好きなので、言語の基礎とかそういったところからスタートするのはいいと思います。

ただ、モノ作りが好きな人、例えばJavaを極めたい!ではなく、Androidで面白いアプリ作ってみたい!みたいな人。
こういう人にいきなりAndroidなんてやるな!まずはJavaの基礎からやれ!とか、
かっこいいWebサイトが作りたい!面白いWebサービスが作りたい!と言う人にフレームワークなんて使うな!PHPもわからねーくせに!
と言って低レベルなレイヤーをいきなり押し付けるのはどうなのかなと思う。

確かに基礎は大事だ。基礎がなっていないのに応用をうまく使えるわけがない。
でも、上のような人たちが必ずしもそこをスタート地点にする必要はないんじゃないかと思う。

モノを作りたい人にそういったところをいきなりやらせても、おそらくつまらないと感じてモチベーションを保てないと思う。
だって早く動く物がみたいんだもん。
最高にクールで完璧なプログラムを書きたい訳ではないんだもん。

最近はとりあえず作ってみたい!って思って始める人も多いんじゃないかと思います。
特にスマートフォンが身近になってから、自分でもアプリ作ってみたいとか。

だからそういう人たちにいきなり、それはまだはやい!今すぐやめて基礎をやってこい!と言うのは酷だと思う。
とりあえずやってみる。そして自分が作った物をより良い物にするべく基礎や応用を学んで行くという手順を踏んでも
言うほど悪くはないんじゃないだろうか。