こんにちは、かわそんです!
プログラミング大好きです。
さて、このような疑問を持ったことはないでしょうか?
- プログラミングに才能は必要なのか?
- プログラミングに必要な要素はなんなのか?
初心者の方ほど、不安になるものですよね。
そこで本記事では、下記の内容を解説します。
- 才能は必要?←必要ですが、議論に意味なし
- 必要なのは3つの「気持ち」です
目次
「プログラミングに才能は必要ですか?」←この質問は意味がない
まず、「プログラミングに才能は必要ですか?」という質問に対して。
必要です。
っていうのが答えです。
、、、「才能なんて要りません」っていう答えを期待していましたか?
これも正しいです。
どっちなんだ!
っていう話ですが、これだけじゃ条件が不明すぎて、答えられないんですよね。
「才能」が必要なのはトップ層だけ
プログラミングで才能が必要なのは、本当にトップだけです。
というのは、シンプルにプログラミングに向いた頭を持ってることがあるから。
例えば、Google、Apple、Amazon、Facebook、、、世界のIT企業には、いわゆる「やばいレベル」のエンジニアがゴロゴロしています。
彼らは「才能」がある。
そこまで行こうとすると、努力だけではキツイです。
圧倒的な強者
ちょっと、僕の友人のお話を。
彼は京大の学部生で、Go言語が大好きな人です。
学部2回生ではもうLINEにインターンが決定(ちなみに日本最高峰の難易度です)、3日で10万のDE○Aのインターンでは優勝を勝ち取ってます。
話すたびに、差を感じる。
やっぱり天才っているんですよね。
でも、別に彼と戦う必要はない。
自分が戦えるフィールドを見つければokです。
ほとんどの場合「才能」は不要
さてさて、たぶん、僕たちが想像する「エンジニア」はこんな感じでしょう。
- 好きな時間に働ける
- 好きな場所で働ける
- 単価が高い
ぶっちゃけ、これくらいなら、「才能」が必要になりません。
それよりもはるかに手前の段階なんですよね。
なぜ言い切れるか。
僕の体験を入れつつ、説明します。
プログラマバイトをしていた時
1年くらい前ですかね。
エンジニアバイトをしていました。
Railsを使って、いろんなアパレル商品を売るシステムを作ったり、社内連絡を行ったりしてました。
大学紹介のインターンって無給だったり、結構雑にあしらわれるって聞くけど、自分で動いてエンジニアバイトした時の対応はすごかった.
・ストックオプションつける
・能力によっては時給4000でもok
・カフェ手当が出るこれバイトか…?って思いつつ、エンジニアってチャンスだなって思った😌 https://t.co/vNUYEx8oXW
— かわそん@BlogとGoを育てる (@KKohey4) May 9, 2019
上記のツイートの通り、
カフェ手当が出る
能力次第では時給4000円
、、、学生ですよ?
かなり自由度が高い。
ぶっちゃけ、僕は才能ある方だとは思ってなく、努力してきた人間です。2年くらいプログラミングに挫折してきましたし。
学生でもできます。
プロならできないはずがないです。
「才能」は言い訳です
さて、ちょっと深掘りしてみましょう。
「才能が必要か?」
っていうのは、ネガティブな意味を込めてませんかね。
というのは、
- できない自分の正当化
- どの分野でも同じこと
だから。
思うような結果が出ない時。
「才能」のせいにするのはカンタンです。煙に巻けますからね。
2つめ、
「どの分野でも同じこと」
だけ、ちょっとだけみてみます。
才能が「不要」な分野とは
「才能が必要か」
っていう問いのウラには、
「才能が不要な分野がある」
ってことが隠れてます。
、、、果たしてそんな分野あるのでしょうか?
営業、銀行マン、公務員、、、
みんな何かしらの「トラブル」を抱えますし、それを解決するための能力を持ってます。
これは「才能」とも取れるし、「後天的なスキル」とも捉えられます。
こうやってガラッと捉え方が変わる。
だから、「才能が必要か?」っていう質問には意味がないんですよね。
プログラミングの「才能」よりも必要なこと
「プログラミングに才能が必要か」
っていうのは、答えようがないと紹介しました。
じゃあ、他に必要なことはないのか。
あります。下記の通り。
楽しむ心
優しさ
上記の通り。
これは、絶対に必要だと断言できます。
いわゆる「性格」の部分ですね。
好奇心が行動力のもと
まずは、好奇心。
これはまじで大切です。
というのは、ITの世界ってすごいスピードで進化しているから。
ですので、どんどん新しいことに興味をもつ。
これが絶対に必要なんですよね。
とはいえ、最初は「ツライ」っていうのが、正直なところでしょう。このあたりは、最後に補足します。
とにかく楽しむこと
「プログラミングを楽しむこと」
実装している時に、毎回大事だなああと思ってます。
だっていちいちエラーで萎えてたら、務まらないですもん。
ここは「エラーは友達」感覚じゃないと、乗り切れません。
だから、楽しむこと。
基本ですが、大事なことです。
人に優しいこと
「他人に対して、優しいこと」
これだけちょっと毛色違うかもです。
これって、チームで何かを作る時に、まじで大切なんですよね。
僕も今、大きいサービスを作っています。
とてもじゃないけど、1人では作れない。
そんな時に、デザイナー、フロントエンジニア、インフラエンジニア、いろんな人と能力を組み合わせます。
そして人に対して優しくないと、、
「この人には協力したくない」
って思いますよね。
さっきも言いましたが、「楽しむ」って大事。
ここで亀裂が入ると、終わりです。
なので、優しさっていうのも1つの要素かなと。
[守破離]正しい方法で学んでいくこと
では、どうやったらこういうマインドを作っていけるのか。
ここで書くと1万文字くらいになるので、
別記事を用意しておきました。
[保存版]プログラミングを始める前に知っておくべきこと[完全初心者むけ]
「挫折を防ぎつつ、プログラミングを身につける方法」のところで解説してますので、ぜひどうぞ。
最後に:ごちゃごちゃ考えず、とりあえず始めよう
記事をサクッとまとめておきましょう。
- トップ層は「才能」が必要です
- ほとんどの場合は不要です
- どの分野も苦労はある
- 「才能」を言い訳にしていないか
- 好奇心、楽しむ心、優しさが必要です
こんなところですかね。
ぶっちゃけ、ごちゃごちゃ考えてても、何も始まりません。
出てくるのは「やらない言い訳」だけ。
とにかく動きましょう。
それが最速・最善ですし、
結局、自分を変えられるのは自分だけですので。
ではでは、このあたりで失礼します。
✔️参考
時給1万になったり、ハッカソンで受賞したりしてきました。
また、年間50人以上にプログラミングを指導しているので、今回はその経験も含めて、お話しますね!」