プログラマーに才能って関係あるの?

こんにちは。

ITエンジニア・webディレクター・webデザイナーなどのIT人材の自立・キャリアを支援するITプロパートナーズ編集部です。

弊社では、独立精神旺盛な優秀なエンジニアの方々の独立・起業サポートや、フリーランス支援を行っています。
こちらでは、日々の現場でサポートさせていただいている中での、プロの目線で、エンジニアに役立つお話をしてまいります。

今回は、プログラマーに才能が必要なのかどうかについて見ていきましょう。

昨今では、プログラミングスクールに通ったり、オンラインでプログラミング学習をしている人たちが増えています。

一方、プログラマーになる上で才能が必要なのかシンパになる方もいらっしゃるようですね。

freelance

プログラマーの仕事とは?

thought-2123971_1280

プログラマーの仕事を簡単に言うと、システム設計者が作成した設計書を元に、プログラミング言語駆使してコーディングをし、システムを実装していくことです。

設計書を仕上がっていれば、コーディングはすぐに着手できますが、実際のプロジェクトでは、きちんと設計された設計書がプログラマーに渡ることは、難しいのが現状です。
設計書に記載されるシステムの仕様は、日々変更されていき、先週まで決まっていた仕様が、今週ではまったく別の仕様に変更されるということも、珍しいことではありません。

コーディングがすでに終了しているのに、仕様変更による対応でスケジュールが遅延することがあります。

このようなことが繰り返されると、プロジェクトの炎上やデスマーチなどの取り返しがつかない状態になってしまいます。仕様変更が起こることは想定してコーディングに着手して行かなければいけません。急な仕様変更にも柔軟に対応できるプログラマーは、評価があがります。

プログラマーは、コーディングがメインの仕事になりますが、中でも最も地味な仕事がバグの調査です。実装後にテスト工程に移り、仕様通り動くかのテストを実施します。動かない場合は、不具合と見なされ修正を行います。

そのバグは多岐に渡り、すぐに解決出来るバグから複雑なバグまであります。複雑なバグのときは、原因特定でも数時間かかるものでてきたりします。場合によっては1日で特定できない致命的なバグもあるかもしれません。

そのようにかなり長い時間1つのことに集中して取り組むことができるかが、とても大事になってきます。

プログラマーは、ソフトウェア開発の工程では実装を担当しますが、プロジェクトの規模や人数によっては、設計工程やテスト工程も担当することがあります。

同じような職種にシステムエンジニアというものがあります。このシステムエンジニアは、実装よりは、もう少し上流工程の要件定義や設計工程を担当することが多いですが、人手不足や設計をしているので、仕様を知り尽くしているということもあり、そのまま実装工程も受け持つことがあります。

プログラマーとシステムエンジニアは、名前は異なりますが、ほとんど同じような工程を担当します。

プログラマーの才能や適正とは?

どんな職業でも、自分の必要な知識については勉強をしてなくてはいけません。

特にIT業界で働いている人たちは、ITの技術の目覚ましい発展により、日々勉強をする必要があります。

それは、次から次へと新しい技術が出て来るため、昨日までの最新技術が、明日には古くなってしまい、日々の勉強を怠ると、取り残されてしまいます。最も怖いのが、今まで使用していたプログラミング言語の仕様がガラリと変わってしまい、今までのやり方が通用しなくてしまうことです。

プログラムを組むときに、調べながらすることもあると思いますが、勉強は基本的には勤務外で行うことになります。勉強のために、自宅に開発環境を設定して、帰宅後や休日にプログラミングをできるかということです。

プログラミングが好きな人は、おそらく苦もなく出来ると思います。プログラミングが好きでもない人や普通の人は、自宅でまでプログラミングをしないといけないのかとかなりの苦痛を伴います。

しかし、上記で述べたように、日々進歩するIT技術を学ばなければ、そのうちに自分の技術が通用しなくなるかもしれません。

また、プログラマの作業で最も時間が取られるのが、バグの調査と対応です。

コードの文法が違うとか分岐の条件が間違っていたとか、見てすぐにわかるのは問題ありませんが、実際に動かしてみるとおかしな値になるなど、すぐにわからないようなバグは、地道に一つずつ動かして何が原因なのかを特定する必要がでてきますよね。

新人は経験がほとんど無いので、バグの特定に時間がかかりますが、ベテランは以前に同じようなバグの経験があれば、すぐに特定できるので、多くのバグを経験していると時間はかかりません。

このバグの原因特定は、特定出来るまで地道に調査ができるかが重要で、プログラマとしての適正に関わってきます。

プログラミングという行為は、理系の人のほうが得意ではないのかと思っている人が多いかもしれませんが、実際に働いている人が文系出身であることも珍しくありません。

そのため、プログラミングには才能はほとんど必要ないと言えるでしょう。

専門性の高い分野などで、例えば、金融関係、保険関係、統計、データ分析、工学・科学計算など数学が絡むような分野では、どうしても高度な数学の知識が必要となりますが、プログラミングではそこまで専門的な知見は必要ありません。

プログラマーに才能や適正は必要?

entrepreneur-1340649_1280

プログラマーに才能は必要無いですが、1つだけ重要なことがあります。

それは「プログラミングが楽しめるか」です。プログラミングは、地道な作業が続きます。

コーディングして、動作確認をする、そしてまた、コーディングして、動作確認をする。

この作業を設計書に書いてある仕様すべて組み込むまで、繰り返していきます。

プロジェクトは流動できなため、開発している最中に仕様変更が起きることもしばしばです。

一旦、組んだプログラムも場合よっては、一から作り直しすることもあり、プログラミングが楽しめないと、おそらくやっていけません。

しかし、日本人は勤勉と言われ、責任感も強いため、仕様変更が起きたときに対応していきます。

ここで問題となるのが、新たに追加・変更されたにも関わらず、スケジュールの締切日は変わらない事が多く、残業が増えていき、プログラマーの稼働が高くなり、体調を崩したり、精神的に追い込まれたりして、健康に害を及ぼしてもしまうこともあります。

プログラマーは才能よりも適性が重要で、3つの要素があると考えています。

①地道な作業をコツコツと出来ること

基本的にプログラマーは、コーディングして、動作確認をすることを何回も繰り返します。

設計書通りに作成するまで続けます。その後に、テストをして不具合があれば、バグ原因を特定して対応します。バグ原因の調査は人によっては時間がかかり、コツコツと地道にやる作業です。

②柔軟に対応できること

これはどの職業にも言えることかもしれません。システム開発のプロジェクトは、基本的に遅延することが多いです。

仕様変更が多くなってしまうと、遅延が増え、開発中に仕様が変わります。

この仕様変更が何回もあると、気が滅入ってきます。これらの仕様変更に対して、容易に対応できるとことが望まれます。

③継続して勉強ができること

IT技術の進歩はとても早いです。

次から次へと新しい技術が発表され、今までの技術はどんどん廃れていきます。

日々、研鑽を重ねないと、時代に取り残されてしまいます。

これを避けるには、コツコツと調べたり、新しい技術に触ってみたりして、知識や経験を増やしていく必要があります。

そこで得た知識や経験を開発に活かして行ければ、コーディングの時間が短縮できたり、バグの原因をすぐに特定できたりして、労力の削減ができるようになりると思います。

プログラマーは才能はなくても良いかもしれません。

しかし、適正がないととても苦労するでしょう。

プログラマーに向かない人の特徴って?

プログラマーは、仕事ができる人とできない人では明確に差が生まれてきます。

そのことはプロジェクト遂行において、大きな影響を及ぼします。プログラマーに向かいない人は確実にいますので、プログラマーに向かない人の特徴を5個あげてみたいと思います。

①地道な作業が得意ではない

プログラマーは、コーディングをして、動作確認する。この作業をシステムが完成するまで繰り返します。

システムが複雑だったり、巨大なシステムになると、気の遠くなるなほど繰り返していきます。

実装工程が終わった後は、テスト工程に入り、バグが発生すればそれの対応をします。バグの原因を調査しますが、この作業も地道に原因を特定していくことになります。

以前に同じようなバグを経験していたり、ネット検索に引っかかるととてもラッキーで、作業量を減らすことができます。

このようにプログラマーの作業は基本的に地道にコツコツとやることが多いので、地道な作業が得意でない人、嫌いない人は向いていません。

②モノづくりが好きではない

プログラマーは、モノづくりします。しかし、実際に手に取れるようなモノを作っているわけではありません。作成するのは、文字の羅列であるソースコードです。

プログラマーの仕事はプログラミング言語の決められた文法を使って、決められた仕様を実現していく作業です。

プログラミング言語には、繰り返し、分岐など極々簡単な文法しかありません。これらを駆使して、システムを開発していきます。

1つ1つの処理、アルゴリズムを考えることが実質の作業です。

しかし、アルゴリズムは、物と違って、手に取ることはできません。創造されたモノです。何かを1から作っていくことモノづくりが苦手な人は、向いていないかもしれません。

③几帳面ではない

プログラマーは、1人で開発することは、ほとんどありません。チームでの開発が多いです。複数人での開発になると、ソースコードに人それぞれの癖やパターンが出てきます。

それが良い方向に作用していれば良いのですが、大抵は読みにくかったり、汚かったり、悪い方に偏っていくことも多いです。

それを少しでも改善するために開発する際にプログラミング規約などを定めていることが多く、それに従って作成していきます。

規約が定めてあるにも関わらず、自分のやり方に従って開発していく人もかなりいますのでが、ソースコードの統一感がなくなってしまいます。規約に従って、隅々まできちんとできるかがとても重要です。きちんとできない人は、向いていません。

④孤独に耐えられない

プログラマーの作業は、基本的に1人で作成していきます。朝から晩まで、1人でコツコツ作業することに耐えられない人は、向いていないでしょう。

まとめ

いかがでしたでしょうか。

プログラマーは、高給取り、華やか、スマートな職業と思われがちですが、そんなことはありません。

特に日本では、プログラマーの地位はかなり低いと言われています。

これは、プログラマーは誰でもなれると思われていることが大きかもしれません。

しかし、プログラミングは、とても論理的であり、誰もが組めるわけではありません。プログラマーになりたいと思ったら、まずは、自分のパソコンでプログラミングを初めてみましょう。

おすすめ関連記事

【注目!!】探せばこんなにある!?在宅OKのプログラマの仕事を集めてみた

【これを見ずして何を見る】フリーランスプログラマの魅力って?!

bn04

もし、今あなたが

・フリーランスになるか悩んでる
・自分に合った案件があるのか不安
・そもそも何から始めればいいのか分からない

などお困りであれば、ぜひ弊社ITプロパートナーズのサポート内容を確認してみてください!

登録後、専属エージェントに無料相談もできますよ!

※週2日 / 30万〜のフリーランス案件を紹介中です
※ご経験やご希望によっては案件を紹介できない場合がございますのでご了承ください。


よく見られてる関連案件

b80c977483d024c14549510e194361fe 2_anken 3_anken
The following two tabs change content below.
ITプロパートナーズ 代表取締役 木村 直人

ITプロパートナーズ 代表取締役 木村 直人

「すべらない起業論」編集長であり、エンジニアの起業・独立・フリーランス支援のプロエージェント。大手損害保険会社を経て、I&G Partners(現アトラエ)入社。成功報酬型求人サイト「Green」の立ち上げから関わる。その後、「IT起業家・フリーランスの自立を支える」というビジョンの元、「週2日からの業務委託案件を紹介する、ITプロパートナーズ」を立ち上げる。 ■BestVenture100に創業初年度で選出 ■取材記事:自立する覚悟が、働き方を変える
ITプロパートナーズ 代表取締役 木村 直人

最新記事 by ITプロパートナーズ 代表取締役 木村 直人 (全て見る)

freelance