どうも、フロントエンドエンジニアのワタです。
今日は「プログラマに興味があるんだけど、特別な才能がないとダメなんでしょ?」と思っている方に、「特別な才能なんて必要ないので、気軽にプログラミングやってみて」ということを伝えるために、この記事を書きました。
世界のトップレベルを目指すのなら、そりゃ特別な才能も必要ですが、それはどんな仕事でも同じです。一般的な人でもプログラマとして、年収1000万とか稼ぐのは難しくありません。むしろ、多くの仕事よりも簡単だと思います。それは、プログラマの圧倒的な不足により、平均的な年収がそもそも高くなっているからです。
僕が思うのは、ある程度一般的になってきたとはいえ、まだまだプログラマを「特別な仕事」だと捉えている人が非常に多いように感じます。
それでは、プログラマという仕事、才能、あった方が良い資質、向いている性格あたりを解説していきます。
Contents
まずプログラマを特別な仕事と考えるのを辞めるべき
最初に僕が強調したいのは、「プログラマを特別な仕事と捉えることを辞めるべきだ」ということです。どこか特別で異質な仕事だと捉えているので、「プログラマになるには特別な才能が必要なんだろうな」という発想に至っているように感じます。
現在は、プログラマの構築するシステムにより多くの仕事が奪われ、様々な分野で自動化が進んでいる転換期です。簡単な例で言えば、無人のレジとか。
これは、人間の働き方の転換期と言えます。自動化により必要のなくなる仕事のリストラが進み、一方で、プログラマーの仕事が増え認知され始めた状況です。だから現在プログラマーの年収が上がり、プログラマ関連のスクールなどが話題となっている状況なのです。ちなみに、プログラミングスクールなどはアメリカでは2015年頃から話題となっていました。そして遅れること数年、漸く日本でも普及してきた模様です。
しばらくすれば、確実にプログラマという職業も一般的になり、特別な才能なんていらない仕事という考え方が社会に浸透していることでしょう。
プログラマの才能とは何なのか?
まずは、プログラマの才能とは何かについて軽く説明します。よく言われているのが、物理学、数学、論理的思考力ですが、僕が最も簡単にイメージできて、そして重要であると思う才能、というよりも性格は、「どれだけプログラミングが好きか」ということです。このあたりは、以下で解説します。
プログラマが持つべき基本的な資質とは?
プログラマには特別な才能はいりませんが、ここでは、必要となるであろう基本的な3つの性格面の特徴を解説します。
- プログラミングが好き
- 継続的な学習意欲がある
- 論理的に物事を考えることができる
プログラミングが好き
最も重要なことは、プログラミングが好きかどうか。好きのレベルが相当高いと、あなたは、天才の領域にいるでしょう。でも、そこまで好きでなくてもプログラマにはなれますし、相当稼ぐことができるのも事実です。
みなさんは今の仕事が好きでしょうか?「好きなわけないだろう。仕事だからしょうがなくやってるんだよ」って方の場合、プログラミングの方が今の仕事より好きになる可能性は、相当高いと思います。
一点注意ですが、初心者、未経験者に伝えたいのは、最初のうちは「プログラミングを楽しめない」人が多いだろうということです。なぜなら、わからない事だらけだからです。そして、転職を目指すとなれば、そのストレスも重なり尚更でしょう。僕自身もそうでしたので。プログラミングを初めて、スクールにいき、その1年後ぐらいに楽しめるようになり好きになりました。
よって、プログラミングになれて、転職のストレスもなくなれば、「プログラミングが好き」という状態になる可能性も十分にあるでしょう。ですので、少なくとも半年ぐらいは根気よく勉強を続けるのが良いかと思います。こちらもですが、プログラミングに限らず、どんな分野でも似たような感じだと思いますが。
継続的な学習意欲、向上心がある
より良いプロダクトを作りたい、質の高いコードを書きたいという向上心さえあれば、これはそんなに難しくないことだと思います。一方で、「一度勉強して、残りの十年はその知識、スキルだけで稼いでやる」というようなマインドではプログラマには向いていません。10年もあれば、業界のベストプラクティス、使用される技術にも変化が起きているはずです。
2020年現在、有名なフロントエンドフレームワークは、React、 Vue、 Angularあたりですが、10年前は全て存在していませんでした。
論理的に物事を考えることができる
コードは論理的でないと動きません。特にバックエンド。フロントエンドは、動いてしまうこともありますが、論理的でないと、読みにくいコードになってしまいます。毎日最低8時間はロジック、ロジック、ロジックという頭の使い方をするのがプログラマです。
ここで、僕は、営業からプログラマに転職したときに面白い経験をしたので紹介します。コードを書いていない時でも、つい、いつもの癖でロジックゴリゴリで人間に対しても接してしまうので、面倒くさいやつになってしまいました。笑 少しの論理破綻もゆるさない!それがプログラマーです!起きている大半の時間を費やす仕事の癖というのは、性格に大きな影響を及ぼすことを、僕は身を以て感じました。ですので、今ブラック企業とかにいる人は、即辞めた方がいいですよ。性格まで影響してきますので。
才能があれば恐ろしく稼げてしまうのがプログラマ
ここでいう才能があるというのは、天才的な人は省いています。例えば、天才的な才能の持ち主とは、ブロックチェーンの技術とか、プログラミング言語そのものを開発する人たちのことです。
そうではなくて、全く有名ではない一般的な会社で働いている、そこそこ才能のある人です。この人たちでも、日給10万円の仕事とか、いくらでもあります。そうなると年収は2000万円を軽く超えてしまします。
このような人たちを見ていて思うのは、彼らは本当に「プログラミングが大好き」なのです。僕はジムにも行きますし、食べに出かけるのも、海外旅行も好きです。ということで、プログラミング意外にも時間を使っています。一方で、このような人たちは、仕事の後でも、有給休暇中でも、よくコードを書いています。ランチに出かけても、話題は常にプログラミング関連です。僕もプログラミングが好きですが、好きのレベルが違うように感じます。
才能がなくても稼げてしまうので未経験からプログラマになる人が増えている
才能があれば恐ろしく稼げてしまい、なくても結構稼げてしまうのがプログラマです。それは、単純に人材不足が深刻だからでしょう。
未経験者歓迎といって求人募集を掛けても、「プログラマになるには、特別な才能がいるんでしょ?」と思っている人が多いので、なかなか人材が集まらないわけです。今は、メンタルブロックさえ外してしまえば、未経験からプログラマになるのは結構簡単です。
というわけで、プログラマになる障壁をプログラミングスクールなどが軽くして、人材を送り込んでいる状況です。
プログラマの才能に関わらず鍛えておくべきスキル
才能ではなく、誰もがやれば身に付けることのできるプログラマに必要なスキルを紹介します。
- 英語力:技術の公式ドキュメントは英語です。そして、英語の情報量が圧倒的に多いので、日本語だけで検索するのはやめましょう。また、プログラミングのスキルというのは世界共通ですので、英語がそこそこできるだけで、働けるエリアが海外にも拡大し、より良い生活、自由な生き方、報酬をえる機会が圧倒的に増えますよ。営業ではないので、そこそこで大丈夫です。また、「私は海外興味ないので英語はいらないわ」というエンジニアは注意してください。日本でしか働かない予定の人でも、今後は日本の労働人口の減少に伴い外国人の労働者が増えるのは確実なので、今よりも英語が必要になってきます。LIneとか、すでに外国人エンジニアだらけですよ。メルカリもすでに英語でエンジニアの募集かけています。英語ができないために、仕事の機会が減っていかないように注意してください。
- コミュニケーション能力:実はかなり重要です。特に上のポジションに行くほど。コミュニーケション不足により、予想していなかったサイトやアプリの機能が追加され、作り直し!というのはよくある話です。多くのエンジニアはコミュニケーションが苦手です。ですので、営業などからエンジニアになる人には、「コミュニケーション能力」も強みの一つとなります。エンジニアのチーム構成で、全員技術力が高く、コミュニケーション能力がいまいちというよりも、半数は技術力高くコミュニケーション苦手、半分は技術力そこそこでコミュニケーション得意、というチーム構成の方がプロジェクトはうまくいきます。ですので、異業種からプログラマに転職してきた人には、他の強みがあることを忘れないでください。
プログラミングに興味を持ったら、今日から行動!
まとめです。今日は、プログラマの才能について紹介しました。特別な才能は必要ないけど、あると良い性格、スキルについても言及しました。
説明しとおいてあれですが、自分では向いているとかわからないものです。ですのでプログラマが気になるとか、興味を持ったらすぐに行動してみてください。今日から、オンラインコースをやってみるとか、プログラミングスクールの無料カウンセリングに参加して見るとか。
行動し、「やっぱあまり好きじゃないな」とわかれば、何か新しいことに挑戦することができますので、行動すればどっちにしろ前進することができます。「何が好きかわからない」という人は、行動量が足りてないと思いますので、意識して行動量を増やしてみてください!
[…] […]