ノンプログラマーが、プログラミングを勉強した方が絶対にいい理由
こんにちは、積不可視です。
今回は、ノンプログラマーがプログラミングを勉強した方がいい理由を書いてみたいと思います。
僕自身、文系出身で、米国に留学した時も、国際政治(アラブ・イスラエルの中東アジアの情勢)みたいなことをやっていました。英語は独学で喋れるようになったものの、特にサーバーや、プログラミングなんかを専門で勉強したことはありません。
しかし、起業をする時、ホームページを作らないといけないということに気が付き、HTMLの勉強からスタートしたのが始まりです。その時は、既に32歳(現在もうすぐ39歳)。。今では、HTML, PHP, CSS, Javascript, mysql, Linux, Windows Server, C#なんかを完璧ではりませんが、一通り理解できるようになりました。
ただ、今回はプログラミング言語が分かるようになったことはビジネス上のメリットであったのですが、それ以外の能力において、少し書いてみたいと思います。
プログラミングを覚えたプラスの影響
- 1.ロジカル・シンキングが強化された。
- 2.要素を分解して理解できるようになった。
- 3.分からないこと、知らないことに対する耐性が身についた。
ロジカル・シンキングが強化された。
プログラミングを書いているとエラーがつきものです。それは、構文(文法)上のミスかロジックの誤りという2通りがあります。
ロジックの誤りは、意図したプログラミング結果とならず、どこで誤っているのかを何度も確認することが必要となります。そこで気がつけばいいのですが、自分の思い込みの中にいるので、なかなか客観的にロジックの誤りを見つけることができません。
しかし、トイレに行く途中や、風呂の中とかで、リラックスしている時「アハ体験」が生まれ、ロジックのミスに気が付きます。そういったことを繰り返していると、現実の物事や状況において、自分の行動と結果の矛盾が気がつくようになります。
そうなってくると、今のやっていることが意図した結果に結びつくための正しい行動なのかとか、優先順位に誤りがないかとかが判断できるようになります。
要素を分解して理解できるようになった。
何かアプリケーションを作ってみる時、簡単なアプリケーションだったら、プログラムの命令はシンプルです。
しかし一般的なものは、複数のプログラムの命令をつなげて、作り出します。まずはここにデータを入れて=>出力=>計算=>結果=>配列=>別のデータベースへ。。と=>の間にあるのがすべて命令となります。
こんなことをしていると、「物事」を分解して考えることができるようになっていきます。
例えば、「問題」と一括りに捉えるか、その問題を分解して小さく取り扱うかで、行動が大きく変わります。問題を大きく捉えると、それに対処するために、何をしたらいいのかパニックになったりするんですが、その問題を最小単位まで細分化できれば案外、解決するのは楽だったります。
人生やビジネスでは、問題はつきものです。その問題を問題という単位で見るとと圧倒されてしまうのですが、、自分が解決できる一番小さな小さな単位まで小さくできれば、心理的な抵抗も少なく、時間はかかってもひとつひとつの問題は案外、解決できたりします。
3.分からないこと、知らないことに対する耐性が身についた。
プログラミングをしていると、分からないことだらけです。要するに、ある程度、分からないことを前提にして進めていきます。
分からないことにぶち当たると、まずネットで調べます。
ただ、ネットで調べても、知りたい内容と合致しているケースは少ないため、拾えてくるのは、エッセンスぐらいです。その集めてきたエッセンスを集めて、次は考えながら仮説をたてて実行します。その仮設があっていれば、それで良いし、間違っていたら、エッセンスをさらに集めるか、考え方を変えるなどをします。
ビジネスの現場でこれを例えると、分からないことをすぐに聞いてくる人がいます。恐らく、分からない状態が心理的に苦痛なので、早く解決したいという衝動ではと思います。これだと、答えは分かっても、答えの導き方は育っていません。「分からない、知らない」という状態を許容しながら、物事を進めていくというのが、どうも日本人は苦手なように見えます。
よくそういったことが理由でビジネス現場でもプロジェクトが途中で頓挫するようなケースが目立ちます。
しかしプログラミングをやっていると、分からない・知らない状態が恒常化するので、ある程度の仮説を繰り返しながら、物事を前に進める力が身につきます。「早く解決して、この状況から逃げたい」という心理から、時間短縮的な安易な解決方法を選びがちですが、その耐性が身に付けば、時間がかかっても根本を変えることに、注力できるようになります。
私のプログラミング勉強法
32歳でプログラミングを始めました。
私自身、天才プログラマーになれるなんて微塵も思ってもおらず、どちから言えば自分が作りたいものを費用をかけずに作れれば良いという考えです。まさに自分のことは自分でやるDIY的な発想です。。今までもホームページや掲示板、顧客データベース、フリーダイヤルの電話など、自分がほしいものを自分で作ってきました。まだ7年ぐらいの経験ですが、コツコツやれば理解はできるようになっていきます。そこで、私の勉強法を共有していこうと思います。
因みに、プログラミングには、大きく2種類あります。デスクトップパソコンや、iPhone, Andoroidを作るための言語、ウェブブラウザ上で動かす言語。個人的にはウェブ・ブラウザで動かす言語を覚えられることをオススメします。
動画で覚えた
最初、本を沢山、買ってきて覚えようと思うのですが、プログラミングの最初のハードルは、開発環境をどう、作るかになります。開発環境も丁寧に教えてくれる専門書が増えていますが、個人的には動画で覚える方が非常に効率的ではと思います。
それに費用もあまりかかりません。YouTubeでも沢山公開されていますが、個人的にはドットインストールがお気に入りです。
3分にまとめた動画集なんですが、プログラムの基礎から、実際のアプリケーション開発まで、丁寧にまとめてくれています。あと、有料(900円)を毎月払えれば、質問やプレミアム動画も見れるので大変、助かっています。
毎日、10分でもいいから書く
2時間やったけど、半年触らなかったとなると、まず覚えることはできないので、毎日できるだけプログラミングに触ることが必要となります。そこでオススメなのが、リファレンス集となります(PHP逆引きレシピ)など、これだと、毎日1ページずつ、書かれているプログラミングのレシピをただ写すということだけでも、力はついていきます。
アプリケーションを作ってみる
上の2つを何かしらやっていると、「こんなの作りたいなぁ」というのが自然に湧いてきます。。
その時に小さなアプリケーションを実際に使って、動かしてみることをオススメします。自分の作ったものがロジック通り動くのは本当に感動します。そして、その感動がまた、やる気を生むという好循環を作ることが出来ます。
作る喜びというには、大人になっても消えてはいきません。。
こういう人にオススメ
- 1.ビジネス書を沢山読んだが、少し抽象論ばかりで物足りないなぁと感じた方
- 2.費用対効果の高い学習や習い事を始めたい方
- 3.英語を若い時に習得して、日本にいて英語を使う機会がめっきり減った方
- 4.人付き合いに疲れて、それでもなとかしないと、と思われている方
プログラミングは本当に費用対効果が高い「学びごと」だと思います。
まずは、言語を覚える以外にも能力の向上が見込めるし、言語を身につけることができれば、その能力が対価として収益になりやすい。さらに、ホームページなど外注せず、自分で作れるようになれば、外注費も下がります。
若ければ、若いほど、良いかもしれませんが、私のように30歳になってから、始めた人間もいるんだなぁと思ってもらえれば、始めるのはいつでも良いように思います。
ほしい時が買い時の家電と同じで、やりたいときがプログラミングのやり時です。