プログラミングに向いている人の特徴とプログラマーに求められる能力とは【何個当てはまる?】
今回はプログラミングに向いている人とプログラマーに求められる能力の2段構成でまとめていきたいと思います。
これからプログラミングを始める人やプログラマーになりたい人は自分がどれくらい当てはまるかチェックしてみてください。
ちなみに全部当てはまらなければプログラミングができないということではないので安心してください。
プログラミングに向いている人の特徴は下記になります。
- パソコンが好き。
- 新しい知識を得るのが好き。
- 論理的に考えることができる。
- モノづくりが好き。
- 疑問点を追求できる。
「IQ」はさほど必要ないです!
どうでしょうか、すでに結構当てはまっていますか?
自分で挙げているので当然なのですが、僕は全部当てはまります。笑
続いて、プログラマーに求められる能力は下記になります。
- コミュニケーション力。
- スケジュール管理能力。
- 自分で調べる力。
- 使う人のことを考えられる。
- 単純作業を苦に思わない。
システムチックな能力も必要になることはありますが、本質的に必要なものを挙げました。
プログラマーってコミュニケーション能力必要なの?と思ったりした人もいるのではないでしょうか?
間違いなく必要になります。
ただし、おしゃべりがうまいというのとは別です。
では、本題に入っていきましょう。
プログラミングに向いている人の特徴
パソコンが好き
これは分かりますよね。
パソコン嫌いの人がプログラミングを始めてもうまくはいかないでしょう。
なぜならプログラミングとパソコンは一心同体だからですね。
ポイントは「好きor嫌い」なところで「得意or不得意」ではないところです。
パソコン使ったことないからなあという人は、「不得意」なだけであって「嫌い」ではないはずです。
操作を覚えていくうちに楽しくなってくるかもしれません。
新しい知識を得るのが好き
プログラミングでできることは無数にあります。
そのため、いくらやってもすべてを熟知している状態になるのは不可能に近いです。
僕も自分の領域以外はからっきしです。
何かを作ろうとなったときに、知っている技術だけで組み上げることができるケースなんてほぼないと言ってもいいです。
つまり毎回勉強ということですね。
プログラミングは毎回勉強して新しい知識を得ることの繰り返しになるので覚えておきましょう。
論理的に考えることができる
別名「ロジカルシンキング」です。
割とよく聞く言葉ですが、抽象的な説明ばかりだったり、使いどころによって意味が微妙に違ったりしてよく理解できていない人も多いのではないかと思います。
プログラミングでロジカルシンキングというと、組み立てる力になります。
システムを作りたいとなったときに、どういった構成で作るかやパソコンへの命令手順をどうするか、処理同士が喧嘩しないかということを考える必要があります。
常識で分かるでしょ、というのが通じないのがパソコンです。
信号機で例えると、「赤なら止まる、青なら渡る」ということをプログラミングで教えてあげないといけません。
なんなら「信号を見続ける」という動作も必要ですね。
一回信号見て赤だったら一生渡らないというのがパソコンの常識です。笑
モノづくりが好き
プログラミング自体はアイデア次第で何でも作れてしまうので、モノづくりが好きな人に向いています。
Webサイトだって作れるし、ゲームなども作れます。
アプリ作ってお金稼ぎたいけど、何かを作ってる時間って苦痛なんだよね。という方には向かないです。
プログラミングは作ってるときが一番楽しいのですから、そこを無理してやるということであればお勧めできないです。
疑問点を追求できる
よく分かんないけどできた、というのは非常に良くないことです。
ネットに書いてあるソースをコピーして貼り付けたら動きましたといったときには、なぜ動いたのかを理解することが大切です。
知らないおじさんから「この粉を混ぜるとハンバーグがおいしくなるから使ってみて」と言われたら使いますか?
とても怖いですよね。笑
プログラミングも似たようなところがあって、場合によっては変なプログラムが紛れ込んでいるかもしれないです。
またきちんとしたコードだったとしても、自分ができなかったことの答えが目の前にあるのだから勉強しない手はないです。
分からいところがあったら追及していくことでプログラミングの技術は上がっていくので、疑問点は放置しないようにしましょう。
プログラマーに求められる能力
続いてはプログラマーに求められる能力についてお話します。
プログラミングを始めた人の中にはプログラマーになりたいという人も結構いると思いますので、参考にしてみてください。
コミュニケーション力
え、プログラマーってひたすらパソコンと向き合う仕事じゃないの?と思いますよね。
実は結構コミュニケーション能力が必要になってくる職業だったりします。
ちなみに喋りがうまいとかではないです。
質問力です。
プログラミングをしているとどうやっていいか分からなくなるタイミングが多く訪れます。
「技術的に分からないこと」と「仕様が分からないこと」です。
技術的に分からなければ先輩に聞いて助けてもらうことになりますが、「なんか動かないんですけど…」と聞いてしまった際には追い返されます。
また仕様で躓いた際にも、何が原因で分からないのかを明確にしなければ明確な回答はもらえないでしょう。
自分が何で悩んでいるのかをきちんと説明できれば大丈夫です。
スケジュール管理能力
プログラマーの仕事だけではないですが、納期にうるさい職種の一つになります。
スケジュールが定まっているので、いついつまでに自分に割り当てられた箇所を開発しなければいけないという縛りがあります。
チームで進めていく仕事になるので自分が遅れてしまうとその他のメンバーにも影響が出ます。
まずは割り当てられた仕事の難度を把握し、達成可能なスケジュールか確認しましょう。
難しかったら早めに上司に報告し、スケジュールの調整をしてもらう必要があります。
一人で背負いこんでしまうと、残業などにも繋がるので自分のスケジュールは管理できるようにしましょう。
自分で調べる力
何も見ずにプログラミングできる人はそう多くないです。
少なくても僕の身近にはいないですね。
基本的には毎日調べものをしながらプログラミングをしていくことになります。
場合によっては、日本語の情報だけでは足らず海外のサイトまで調べに行くこともあります。
また古い情報や誤った情報も数多くあるので、情報の取捨選択も時には必要になります。
何かあれば人に聞いて解決してきたという人は要注意です。
使う人のことを考えられる
システムは作って終わりではありません。
その後に使う人がいます。
仕様を決めるのはSEの仕事になりますが、それでも開発しているタイミングで「こうしたらもっと使い勝手よさそうなのに」と思うこともあります。
そういった場合には設計者に提案してみるのもいいかもしれません。
細かいところにも目を向けてユーザビリティを追求していくことはとても大切なことです。
間違っても作りやすいからという理由だけで、使いにくくするのは止めましょう。
単純作業を苦に思わない
プログラマーの仕事は作るだけではありません。
作ったもののテストを行う仕事もあります。
ひたすら何百とあるパターンを動かして検証していきます。
場合によっては画面のキャプチャやデータを残しておくことも必要です。
簡単な単純作業の連続なので、苦痛に思ってしまう人もいるかもしれません。
僕もその一人です。
他にも資料作成などの仕事もあるので、ずっとプログラミングしている仕事ではないことを認識しておきましょう。
まとめ
以上がプログラミングに向いている人とプログラマーに求められる能力のまとめでした。
どうでしょうか、プログラミングには向いてそうですか?
プログラマーは思ってた通りの仕事でしたでしょうか?
ぜひ挑戦したいと思った方は勉強あるのみです!
以下の記事でおすすめの勉強を紹介していますので読んでみてください。