こんにちは鈴木祐登です。
今日はプログラミングに才能は必要なのか?ということに関してお話していこうと思います。
僕の主張は下記です。
プログラミングに才能は必要ないと思う
できないのは単に経験したことがないだけで、自分よりも才能があるように見える人はただ単に自分より経験年数が多くてやったことがあるからできる
自分も最初はターミナルの開き方すらわからなかった
今回はこれに関して解説していこうと思います。
プログラミングに才能が必要ない理由
あくまでプログラミング「言語」だから
この記事を読んでくれてる人に質問です。
英語ができるようになるのに才能は必要だと思いますか?
学生時代の英語の勉強を思い出してください。
英語のテストで点を取るために何をしましたか?
おそらく、単語を覚えたり、文法を理解して覚えたり、長文を読んだりっていうのがメインなんじゃないでしょうか?基本的に単語や文法を覚える行為っていうのは努力すれば誰でもできます。覚えられない人はやり方が間違ってたり、そもそも量が足りてないだけで何かを覚える行為っていうのは誰でもできますよね。
プログラミングの勉強っていうのも同じで、結局はどういう風にコードを書くかっていう「文法」を理解して覚えていく作業なんですよね。
英語に苦手意識を持つ人にも安心して欲しいのが、英語に関しては、単語や文法を暗記しないといけなかったのですが、プログラミングの場合はわからないことはその場で調べられます。
そう考えると中高でやってきた英語より簡単なプログラミングに才能は必要なくて努力でできるようになるのがわかるのではないでしょうか。
できないのは経験したことがないだけ
基本的に自分ができないのに周りのエンジニアができる場合っていうのは、自分に才能がないのではなく、自分が経験したことないだけだったりします。
プログラミングの経験をある程度積んでる人ならわかるんですけど、意外と技術ごとに被ってる部分が多いんですよね。
それを一番最初に実感するのは2つ目のプログラミング言語を勉強する際だと思います。言語によってある程度違いはあるのですが、書き方が違うだけでやっていることは同じだなというのを感じられると思います。
プログラミングには向き不向きがある
プログラミングに才能は必要がないとはいえ向き不向きはあります。
プログラミングに向いてないのは下記のような特徴を持つ人です。
- 考えるのが嫌いな人
- 自分で調べるのがめんどくさい人
- 何か新しいことを勉強するのが嫌いな人
順番に解説していきます。
考えるのが嫌いな人
プログラミングを勉強してると、何かシステムを作るってなった際にどういう仕組みで実装していくのか自分の頭で考えたり、コードを書いていてエラーが出た際にどうして間違っているのか自分で考えて色々と試していくような力が必要です。
時には一つのエラーを解決するのに一日中悩んだりすることもあるので、考えるのが嫌いな人からするとこれはかなり苦痛だと思います。
自分で調べるのがめんどくさい人
プログラミングの仕事をしているとわからないことは大量に出てきます。その際に自分で調べて解決していくっていうのは必須の能力になります。
その際にやはり、自分で調べることができないと中々プログラミングを続けていくのは厳しいです。
何か新しいことを勉強するのが嫌いな人
何か新しいことを勉強するのが嫌いな人もプログラミングをやっていくのは厳しいです。
プログライングで仕事を受けているとどんな案件を受けていても必ず自分の知らない技術が出てきたり、知っている技術でも知らない使い方に関してキャッチアップしないといけない場面があります。
さらにプログラミングの世界は技術の進歩が早く、次々と新しい便利な技術が出てきます。
そういった際に自分の知らない技術に関しても勉強していけないと続けるのは厳しいと思います。
向いてない人や向いてるけど自信がない人はどうすればいいのか
ここまで読んでくれて、じゃあ向いてない人は諦めるしかないのか?
と思うかもしれません。
僕もエラーに悩むことがしんどかったりすることは多いので、ここでは向いていない人や自信がない人向けの解決方法をお話していこうと思います。
プログラミングスクールに通って教えてもらう
これが一番ベストかなと思います。
どうしても独学だと挫折する可能性が高くなります。ある程度資金的に余裕がある人はプログラミングスクールに通ってみてもいいと思います。
僕もデイトラというプログラミングスクールに通ってプログラミングを教えてもらうことでエンジニアとして働くことができるようになりました。
メンターを雇って教えてもらう
プログラミングスクールは高すぎるから厳しい…
といった人はメンターを雇って教えてもらうのもおすすめです。
上記のようなメンターとのマッチングサービスを使えばすぐに自分とマッチするメンターを探すことができます。