プログラマーは才能ではない! 仕事内容から分かる、むいている人の特徴について解説
「プログラマーになるような人は、きっと才能があるんだろう」
「才能がないといいプログラマーになれない」
など、プログラマーには特別な能力が必要だと考えている方が多いです。
ほかにも、「理系でないとプログラマーにはなれない」と諦めている文系の方も多いようですね。
しかし、実際にはそれらは必ずしも正しいとは言えません。
プログラマーとして活躍している方々には、才能とは違う、共通する特徴があります。
それはどのようなことなのか、プログラマーという職業の仕事内容をひもときながら見ていきたいと思います。
プログラマーの仕事内容とは~概要編~
プログラマーの仕事内容とは、パソコンのプログラムを作るためのコードを書くことです。
一般的にSE(システムエンジニア)と呼ばれる人たちが作成した指示書に従うので、プログラマーにもっとも必要なこととしては、「どのようなコードを書けばそれが実行できるかということを考える」ことと言えます。
そして、つくるプログラムの対象は、以下のようなものがあります。
・Webサイト、Webアプリケーション・・・企業のWebサイトやWeb上で動くプログラム
・スマートフォンアプリ・・・スマートフォン上で動くアプリケーション
・ゲーム・・・家庭用ゲーム機器用のソフトからスマホやパソコンなどのゲームソフトまで
・組み込み系・・・家電製品や産業機器、スマートフォンなどの通信機器など
・汎用系システム・・・銀行や証券会社など金融系や鉄道会社などで利用する大規模基幹システム
これらのうちどの分野の開発を手がけるのかによって仕事内容や流れは異なりますが、プログラマーの仕事や適性について知るために、システム開発の流れも説明します。
クライアントから要望を受け、まずは開発するシステムの要件を決めていきます。
次に、どのようなシステムを組めばよいか具体的に設計をし、クライアントに了解を得たうえで、今度は実際にプログラムを行うための詳細設計、仕様書の作成が行います。
ここまではおもにシステムエンジニアの担当で、上流工程と呼ばれます。
そしていよいよプログラマーの登場です。
システムエンジニアの仕様書に基づき、プログラマーはプログラミングを行うのです。
とはいえ、全てを1人でまかなうケースがほとんどありません。
1つの案件に複数のプログラマーがかかわることが一般的です。
そして、システムエンジニアやチーフプログラマーの割り振りのもと、自分が担当する部分だけのコードを作成するということになります。
プログラマーの仕事内容とは~詳細編~
では、次にプログラムとは何を行うのかについて説明していきます。
つまり、先ほどの工程のうちオレンジ色の「開発」部分についてです。
プログラマーは、仕様書に従いコードを書くという仕事だと説明しましたが、そのコードというのは、英語でも日本語でもなく、コンピューターが理解できる「プログラミング言語」による命令文のことです。
人に牛乳を持ってきて欲しいと人にお願いをするときには、「牛乳もってきて」と言えば済むと思います。
しかし、コンピューターにお願いをするときには、「戸棚の上から2段目に入っている『グラス』を1つ取り出し、次に冷蔵庫の扉をあけて、『牛乳』を取り出して、そのグラスの4分の3程度まで注げ」と細かく説明する必要があります。
さらに、その言語は日本語ではなく、プログラミング言語で書くことになるわけです。
プログラマーは、仕様書に基づき、このような命令文(コード)を、ひたすらプログラミング言語を使って書く仕事ということになります。
プログラマーに才能は必要ではない!
ここまで読んでいただき、プログラマーの仕事であるコードを書くという作業に必要なのは「プログラミング言語の知識」ということがお分かりいただけたと思います。
そして、知識というものは才能によるものではないということは、説明するまでもありません。
一般的に才能があると言われる人でも、まったく学習していないプログラミング言語を書くことは不可能であり、だれでも平等に、プログラミング言語を学ぶという行為が必要なだけなのです。
プログラミング言語を学べば、「こうしたいときにはこう書く」ということが分かりますので、あとは、仕様書に従ってそのコードを書いていくだけなのです。
プログラマーにむいている人の特徴
プログラマーには才能が必要ないということがお分かりいただけたところで、次は、プログラマーにむいている人の特徴について説明していきます。
—————————-
1:地道に努力ができる
—————————-
プログラマーに必要な知識であるプログラミング言語を覚えるために、まずは地道な努力が必要です。
専門学校に通う場合は、最低でも2年程度かけてログラミング言語を少しずつ学んだり、仕事の流れについても講義を受けることができるため、課題などをこなしながら学んでいけば、自然とプログラミング言語を習得することができるでしょう。
しかし、現在、他の仕事をしていてプログラマーへの転向を考えている、または子育て中で働いていない方が子育てをしながら学習して、在宅ワークでプログラマーを行おうと考えている場合、専門学校に通うことは現実的ではありません。
書籍や無料のインターネット上の解説サイト、動画、または、オンラインスクールなどを利用しながら習得していくことになるでしょう。
ここで問題となるのが、エラーが出たときに解決に至れるかという問題です。
なぜなら、プログラミング言語は、言語の意味を1つずつ理解するだけでなく、実践的な練習が必要だからです。
英語を学ぶときに、英単語の意味をひたすら暗記しても、英語が書けたり、話したりできるようにならないのと同じように、こうしたいときにはこのコードを使うといった知識を少しずつ増やしていったり、実際にあるプログラムを想定してコードを書いてみるといった作業が必要となるのですが、なぜかエラーが出て、プログラムが動かないといった場面に必ずといっていいほど遭遇します。
そのとき、テキストに「こういうエラーが出たときは、これが原因」などと載っていることはありません。
自分で探していき、正しいコードに直すことが必要なのです。
専門学校であれば先生に質問をすることができますが、独学で学ぶ場合は自分でなんとかする必要があるのです。
自分で課題(プログラム)を出して、そのコードを書く、検証するといった作業を繰り返す地道な努力が必要であり、その努力ができる人がプログラマーにむいていると言えるのです。
—————————-
2:論理的な思考ができる
—————————-
プログラミングは理系がむいていると考えている方も多いです。
その理由は関数など数学的な考え方をするコードがあるからでしょう。
しかし、全般的には、プログラミング言語は論理文と言えます。
さきほどの牛乳の例を思い出して下さい。
人にだったら、「牛乳もってきて」で言えば、相手が赤ちゃんや幼児などでなければ、コップに注がれた牛乳が出てくるのではないでしょうか。
まさか牛乳パックをそのまま持ってくるといったような、想定外の対応をする可能性はかなり低いと思います。
万が一、相手が分からないことがあったとしても、「大きいグラス?それとも小さいグラス?」などと質問してくるでしょう。
しかし、パソコンの場合は、適格に、詳細まで指示をしないと質問を返してくるということもなければ実行もされないのです。
さきほどの例のように、「戸棚のどこにあるグラスを使う」「数量は1つ」「そのグラスに4分の3注ぐ」など、そのものの属性や数字まで指定しつつ、行動の順番どおりに指示をしてあげる必要があります。
こういった指示をするためには、論理的にものごとを考える必要があります。
そう考えると、文系、理系に関係なく、論理的な思考ができる人がプログラマーにむいているというわけです。
—————————-
3:つねに学び続ける姿勢
—————————-
プログラミング言語は、実は1つだけではなく、何種類も存在します。
人間の言葉に英語や中国語、フランス語に日本語があるように、プログラミング言語にも種類があり、組むプログラムによって使い分けされています。
つまり、さまざまな仕事をできるようになるためには、たくさん勉強が必要です。
それだけではありません。
プログラミング言語は、改変されより良い書き方が生まれたり、新しいことができるようになったりと変わっていくものです。
つまり、つねに情報更新をしていく必要があります。
とくに、フリーランスとしてやっていきたいと考えている方は、複数のプログラミング言語を取り扱えることで仕事を安定的に受注ができたり、最新知識を得て腕をあげることで高額案件を受注できるようになるなど、収入に大きく影響します。
そういった意味では、つねに学び続ける姿勢は、プログラマーにとって重要な要素と言えるのです。
プログラマーに欲しいスキル
プログラマーにむいているのは、先に述べたような特徴を持ち合わせている人ということがお分かりいただいたうえで、今度は、このようなスキルや能力があれば、優良プログラマーとして活躍が期待できるというというところを説明していきます。
————-
1:英語力
————-
プログラミングのコードはアルファベットを使いますし、その単語は基本的に英語がベースとなっています。
だからこそ、英語が得意だったという方はとくにコードに親しみやすく、素早く習得できるのです。
さらに、プログラミング言語に対する情報更新はつねに行っていくことが、優良プログラマーになるポイントですが、プログラミング言語は世界共通の言語であり、最新情報は英語で書かれているものが日本語で書かれているものより圧倒的に多いです。
インターネット上で、英語で検索したときに、日本語で検索したとき、検索結果の数や情報量が違うので、ある程度英語力がありその記事を読めることは、プログラマーにとって重要なポイントになると言えるのです。
————-
2:正確さ
————-
プログラマーは、プログラミング言語を使って、命令文を書くことが仕事ですが、人間が期待した結果をパソコンが確実に実行してくれるように、論理的にコードを書くだけでなく、一字一句間違えずに打ち込むことが必要です。
せっかく無駄のない、論理的なコードを書いたとしても、スペルが間違っていては理解してもらえませんから、エラーが出た場合は修正しなければなりません。
プログラミングはたいてい納期があり、時間内に仕事を終わらせることが求められるので、ミス無く打ち込める正確さがあれば、自然と評価されるプログラマーになれることでしょう。
———————————
3:コミュニケーション能力
———————————
プログラマーは、プログラミング言語を駆使できれば良い仕事と思われがちですが、コミュニケーション能力があると非常に役立ちます。
そもそも仕事はクライアントがあっての仕事ですし、少なくとも複数で、大規模プロジェクトの場合は十人以上のチーム制ですすめていく仕事です。
仕様にかんしてシステムエンジニアに確認を行ったり、場合によっては良い方法について提案をしたり、チームで進め方を話し合ったりなど、必ず人との関わり合いが生まれます。
プログラミングにはとても長けているが、コミュニケーション能力が低い人もいるなかで、コミュニケーション能力があれば、プロジェクトを円滑に進めることができるので重宝されたり、プロジェクトリーダーなどへの抜擢もあり得ます。
まとめ
一般的に、才能がなければプログラマーにはなれないと思われがちですが、才能よりむしろ日々の努力や、いたって普通な能力が必要だと言うことがお分かりいただけたと思います。
となれば、「もしかして自分も・・・!」と思われた方がいらっしゃるのではないでしょうか。
早速明日からでもプログラマーへの道を踏み出してみてくださいね。