Topics
11月
15
2013
  プログラミング

プログラミングを学ぶことで得られるメリットとは

最近は小中学生や大学生、社会人の方の中にもプログラミングを学習する方が増えたように思います。僕がいるwebベンチャー界隈ではプログラミングができる人の需要が極めて高く、こうした背景も需要を後押ししている気がします。勿論エンジニアでない方でも

「プログラミングとは何ぞや?」

というのを把握したい方が多いのも事実です。ということで今回はプログラミングを学ぶことによって得られるメリットについて書いてみようと思います。

僕自身の事例を上げてメリットを書いてみますが、僕がwebエンジニアをやってプログラミングをすることによってどんな恩恵を受けられるかを書き出してみたところ、下記のような感じになりました:

  • 1. 自分でwebサービスを作れるようになる
  • 2. ロジカルに物事を分析できるようになる
  • 3. 純粋に書いたコードが正しく動くのが楽しい
  • 4. 動いたコードを公開して皆と共有できる・フィードバック貰ってブラッシュアップできる
  • 5. 開発案件を受託できるようになる(フリーランスになれる)
  • 6. IT企業から「うちに来ないか?」お声がけいただくことがある(相手がベンチャーの場合、CTO候補としてもありうる)

この中でも特に僕が一番大きな恩恵だと思うのが1.の「自分でwebサービスを作れるようになる」ことです。これは本当に本当に大きなメリットだと思います。プログラムが書けるようになったら自分が作りたいものを作れるようになるんですよ。簡単なゲームを作ることだってできますし、あるいは世の中を相手にできるほどのwebサービスを作ることだってできるんですよ。これだけでもものすごい投資対効果じゃないでしょうか?

次いで大きな恩恵なのが、ロジカルな考え方が身に付く事です。「Aという機能を作りたい!」というテーマがあったとして、それをもっと細かく因数分解していくと「Aの機能を作る為にはBという小さいプログラムとCというプログラムが必要で、しかもBは何回も使い回したくて...」等ということが見えてきます。これらの要件をプログラミングでは"関数"や"クラス"という概念を使ったりして解消していくのですが、この自分で考えて解を導き出すまでの行程が完璧なまでにロジカルシンキングといいますか、つまるところプログラミングができるということは問題解決能力が高いというのと同じ事なんです

プログラミングを習得しようとする方はどんな人が多い?

大きく分けて、実際に動くプログラムを作りたい方とそうでない方に分けられます。前者の場合は僕がwebのスタートアップ界隈にいるということもあってかwebで起業を志す方々に多い気がします。が、基本的には単純にプログラミングやデータベース、インフラの技術を極めたくてやっている方が大半なのかなと思います。

後者の場合は営業やwebディレクションもしくはwebデザインをやっている方で、今までエンジニアの方と一緒に仕事を進めていたけどエンジニアの方々が普段何をやっていてどんなことに苦労していているのかというのを具体的に知りたい方のケースです。この方々はプログラミングを学んで実際に何か動くものを作ろうというよりは、エンジニアの仕事を理解して仕事をより円滑に進められるようにしようという狙いがあってプログラミングを学ぼうとする方々です。

どのような人がプログラミングの上達速度が早いのか?

僕が今まで見てきた限りで言いますと一番はwebで起業を志している方々で、この人たちは立場が学生であろうと社会人であろうと自分で作れるようになる速度が異様に早いです。あとは単純にプログラミングが好きな人です。これらの方々は実際に数ヶ月で作れるようになってしまっている例をよく見かけます。学ぶことに対する意欲が半端じゃないので恐ろしく貪欲ですね。

たぶん上記の方々が突出しており、他の方々は皆同じくらいの上達速度なのかなと思っています。僕がテックアカデミーでJavaScriptのプログラミングの講師をやった時は大半の方がプログラミング初心者の方々でしたが、多少の個人差はあっても皆大体同じくらいのペースで上達されている感じでした。

プログラミングを学ぶ場合、最初からセキュリティ面やパフォーマンス等を考慮したプログラミングができるようになった方が良いのか?

プログラミングで組み立てるプログラムは、他人が利用する前提のものなら必ずと言って良いほどセキュリティに関する知識と対策を求められます。そうでなくて自分だけが使うものでしたら特に意識する必要はないでしょう。最初のうちは赤の他人が使う前提のものではなく、自分だけが使う前提でプログラムを組んでゲームを作ってみたりすると良いと思います。ちなみに僕はプログラミングを始めたての頃はWindowsでPHPをコマンドラインで実行し、ドラクエの戦闘シーンのようなゲームを作って遊んでいました。

また、プログラムの組み方(コードの書き方)は何通りもありますので、何通りか書けるところまで上達した時点で初めてパフォーマンス(処理速度の短さやメモリを沢山消費しないか等)を意識したプログラミングを心がけるようにすれば良いかなと個人的には思います。というわけでまとめますと、セキュリティもパフォーマンスも趣味レベルで組むプログラムでしたらあまり気にしなくて良いのかなと。

ちなみにセキュリティやパフォーマンス、コードの綺麗さや使いやすさ等が最初から担保されたものとして"フレームワーク"というのがあります。フレームワークを使うとwebサイトの構築が非常に楽になるので、スタートアップ界隈ではほぼ確実に使われています。但しフレームワークは初心者の方にはややハードルが高い為、ひととおりプログラムが組めて自己流でwebサイトを構築できるようになってきた時点で初めて学ぶことをオススメします。例としてPHPにはcakePHPやFuelPHPが、RubyにはRailsやsinatraというフレームワークがあります。

最後に... 僕のプログラミングスキルの活かし方

僕は仕事だけでなく、自分でwebサービスやアフィリサイトを作る時にもプログラミングの力を活用しています。このサイトを作る時も大いにプログラミングスキルが活かされていますし、あとやはり物事を分析する力がどんどん向上しているなという実感もあります。

あと実は他にもメリットがあり、最近ですと僕の周りで「webサイトを作りたい!」とか「ショッピングサイトを作りたいんだけどどうやって作れば良い?」等の話をよく受けるようになったので、個別コンサルやプログラミングを教わりたいという方のコーチもしています。これはやってみて思うのですが、人に教えるというのは自分にとっての最大のアウトプットだなって本当に思います。自分が今まで経験したことの無い問題を抱えている方も多いので、一緒に解決していくことで相手を助けるだけでなく自分にとっても大きな学びになるんですよ。

webコンサルもプログラミングのコーチングもまだまだ経験浅いですが、これから本格的に力を入れてやっていくのでもし何かご自身でwebサービスを作りたいけど「技術的に〜で悩んでいる」という方がいましたら気軽に僕までお問い合わせください。(^o^) 参考までにですが、主にLAMP(Linux, Apache, MySQL, PHP)が僕の主戦場です。
サイト内検索
運営者紹介
カテゴリー
タグクラウド