こんにちは!インストラクターの井上です。
プログラミングを学習者の方のご相談に乗らせていただいております。
その中でもプログラミング学習について話していて、「プログラミングって向き不向きってあるんですか?」とか、「エンジニアになるには才能が必要ですか?」といった事をよく聞かれます。
スキルをしっかり身に付ける為には実際相当な時間がかかりますし、自分が向いているかどうか不安になるのも当然ですよね。
そこで今回は「プログラミング」を習得するまでにおいて、どんな才能が必要なのか、塾生さんを見てきた中で思うことをまとめていきます。
プログラミングに才能は必要か?
そもそもプログラミングの能力に「才能」は影響するのでしょうか?
コレは確実に「YES」でしょう。
企業や国を代表するようなレベルになると、プログラミングにおいての才能(センス)の差は確かに存在します。
幼少期からプログラミングに触れていた人と、40歳から始める人が同じレベルに到達するのは不可能です。
ただ、『プログラミングスキルで仕事ができるようになるか?』というレベルで言えば才能なんて関係ありません。
プログラミングができるようになることは、自転車に乗れるようになるというような感覚です。
プログラミングの修得に遅い早いはあれど、しっかりと続けて学習すれば誰にでも出来るようになります。
では、修得の遅い早いはどういうところで変わってくるのでしょうか?
塾生さんと話していて、普段感じているプログラミング修得における3つの才能について解説していきます。
効率的に学習できる才能
プログラミング学習において、特に初心者の人には「何がわからないのか分からない」という状態が頻繁に起こります。
解決方法として、基礎的な知識を付けていく必要があるのは勿論ですが、
『自分が何を理解しているのか』
『逆に何を理解出来ていないのか』
『今何を理解すべきなのか』
ということを論理的に整理する能力が学習効率に直結してきます。
具体的に説明すると、学習の最初に関数や基本的な文法を学びます。
その時に、ただ難しくて分からないと片付けるのではなく、
「書き方が分からないのか」「上手く使えないのか」というように、
自分がどこでつまずいているのかを理解し、正しい学習が必要です。
初めから学習のセンスが良い人はたしかにいて、その人は論理的思考力がとても優れています。
なので、問題を切り分けて考えて、今自分に必要な情報を取捨選択することが出来るため効率が上がっていきます。
そんなの無いという方も、プログラミング学習においてロジカルな考え方は自然と身についていきますので、まずは調べながら手を動かして修得していきましょう。
プログラミングを楽しめる才能
同じ学習に対しても、
「こんなこと誰にでも出来るからもっとやらないと」
と否定的に捉えるのか、
「こんなことが出来るようになった!」
と、肯定的に捉えられるのかということでも修得スピードに影響が出てきます。
チャレンジ精神旺盛で学習自体を楽しめる人は、しっかりと学習時間を確保されている方の割合も多いです。
プログラミングにおいてよく数学などの理系のイメージを持たれる方がいます。
確かに高度なプログラミングを行うには「数学」の知識も必要になってきます。
ただ、プログラミング学習をポジティブに捉えられるかどうかは、「図工」が好きかどうかの方が影響が大きいと思います。
「目の前のことを楽しめる才能」というのは必須ではありませんが、その場合は次に紹介する「将来に前向きになれる才能」を育まないとモチベーションの担保が難しいでしょう。
将来に前向きになれる才能
プログラミングを習得する前に学習を辞めてしまう方の大半は、どうしても解決できないエラーに出会ってしまって、そのまま放置してしまうというパターンです。
そもそも世の中にエラー(バグ)を出したことがないプログラマはいないですし、仕事としてするにしても常にエラー(バグ)との戦いです。
仕事では既に見つかっているバグの修正やシステムの改良は勿論、いかにしてバグが出にくいように作るかということを常に考える必要があります。
初心者のうちから「出来るだけバグに出会わないでスキル習得しよう!」なんてのはまず無理です。
難易度の高い、苦しいバグと将来的に100%出会うと思っておきましょう。
バグを解決した数だけスキルが上がるので、修得を確実なものとする根本的な解決策は『くじけない心を持てるようにすること』でしょう。
解決したエラーは勲章という捉え方で、技術ブログに投稿するなどして、自身の実績として見える化するなどがよいでしょう。
また、自己啓発よりな話になりますが、「プログラミングスキルを磨くことへの目的・目標」を常に考えるというのも有効です。
初学者の方は自分が作りたいものや、今後やってみたい仕事のスタイルを徹底的に具体化してみましょう。
最後に
プログラマがよく使うスラングとして、
Shut the fuck up and write some code
=>ぐだぐだ言ってないでコード書けよ、ハゲ
というものがあります。
あまりよろしくない言葉遣いではありますが、仕事をやり始めるまではコレに尽きます。
プログラミング学習は自転車に乗るようなものだと述べましたが、自転車にのる前に物理学について勉強する人はいないでしょう。
まず乗ってみて、いっぱい転びながら習得して頂ければ幸いです。
関連記事