プログラミングに必要なもの一覧(道具・能力・適正)

プログラミングに必要なものは、
道具・能力・適性など様々な面に及び、
あなたの現在の技術レベルや立場によって
変わってくる為、一概には言えません。

その為、今回の記事では、それぞれについて、
できるだけ広い括りで、一般的な考えとしての
必要なものについて、解説していきます。

プログラミングに必要な道具

パソコン

どんな現場でも、プログラミングにはパソコンが必要です。
特に、自宅で勉強する場合や外出先で使う場合は
その為のパソコンも別途必要になります。

注意点としては、性能が作業スピードに直結する為、
CPU、メモリ、SSDなどは高性能な方が良いです。

最低でもそれぞれ
・CPU:core i5以降
・メモリ:8GB以上(16GB推奨)
・ハードディスク:SSD128GB以上

最低でもこれくらいは欲しいです。特にメモリの大きさは
複数の端末やソフトを立ち上げた時の動作にかなり影響します。

また、WindowsとMacを選択できる場合は、
Macを優先してください。環境構築が楽で、
ローカル環境の設定やエディア等に便利なサイトが多く、
Macの方がプログラミング作業には優れています。

また、ディスプレイが二つ三つあることも大事です。
体感ベースで5割以上は作業効率が変わってきます。
自宅なら即買い、職場でも使えるよう交渉してみましょう。

プログラミングに必要な能力

言語に関する知識

プログラミングは、パソコンや機械に命令を与える言語なので
その言語特有のルールや命令を覚える必要があります。

このブログで主に取り上げているWEBプログラミングならば、
HTML、CSS、Javascriptなどの端末上で動かす言語、
サーバ側で動かすPHP、SQL、git、Rubyなどの言語があります。

他にも、大企業の案件や古くからの技術を使うシステム
(特に工業製品の組み込み式OS、社内業務インフラ整備など)
に関しては、PerlやC言語などを使うところもあります。

こういった、目的別や就職を目指す業界別に
必要なプログラム言語を、必要な分だけ覚える必要があります。

ブラインドタッチ

これはものすごく早い必要はありませんが、
分速60文字~100文字程度まではある程度の練習で伸ばせるので、
パソコン自体が初心者の場合は、練習をしましょう。

単純に、入力速度が1.5倍や2倍になれば、仕事や勉強の内、
少なくともコード入力の作業時間は短縮が可能です。

下記のサイトで無料検査をしてみたところ、
僕は勉強を始めたばかりの段階ではありますが、
普段からパソコンに触っていた影響もあったので
普通の人に比べると、そこそこ打てるみたいです。

働き方に応じたスキル

社会人としての基礎的なビジネススキル

プログラマーである以前に、社会人です。
例えば、フリーランスなら営業も外部の人との交渉も
金銭管理も、全て自分がやらなければいけません。

また、社内やチームで他の人と共同開発をする際も、
以下のような能力が必要になってきます。

報告・連絡・相談が普通にできること

相手が何をいつまでにどのようにしてほしいのか、
それを適切に解釈し、進捗に問題があったり
トラブルがあった場合は素早く報告すること。

こういった当たり前の作業も、育ってきた環境次第では
年齢相応にできない人が、社会にはたくさんいます。
相手との意思疎通は、仕事をする上での基本です。

相手の気持ちを推し量る能力

取引先でも社内でも、相手が全ての情報を
そのまま率直に伝えてくれるとは限りません。

重要なキーマンの予定を優先するために、
意図的にひとつの仕事のクローズを遅らせる人、
会議で過半数の賛成を取るために、裏で根回しをして
交渉をするなんてことは、日常茶飯事です。

特に、お金が絡むことや、会社の面子関わることは、
筋が通らなくても言えない立場の人は、特に上司に多い。

そういった人達に不満をぶつけるのではなく、
仕事で成果を挙げることを優先する人は、
それを承知した上で、交渉の仕方を選び、
言葉の裏側を擦り合わせて会話をする方法を覚えます。

社会人経験を積み、年齢を重ねていくと
そういった話法を前提にコミュニケーションをする事が
増えていくため、いつまでも青臭い正直な会話以外
何もできない人は、ビジネスの場に呼ばれなくなります。

すると当然、マネージャーや経営の立場では
仕事が出来ない為、いつまでも1人のプレイヤーとして
プログラムを書くことしかできなくなります。

(マネージャーの方が立場が高いと考える人ばかりではなく、
プレイヤーとしてのキャリアを選び続ける人も多いです)

プログラミングに必要な適正

常に勉強をし続けることができるか

他の業界から移ってきて強く感じるのは、
プログラマーやWEBエンジニア全般の人は、
常に新しい技術を勉強し続ける必要があることです。

技術情報のポータルサイトQiitaで一年以上前の記事に
注意書きの表示がされるように、数年単位で扱う技術の
流行り廃りがあり、入れ替わりで新しい技術が生まれます。

よって、勉強を普段からする習慣が無かったり、
勉強そのものが嫌いな人は、仕事の単価が上がらなかったり
新しい仕事を任せてもらえなくなる可能性があります。

私は大手製造業のメーカーで働いていましたが、
汎用性のある技術ではなく、レガシーな技術ばかりだった為、
社外でその経験が直接役に立つことはありませんでした。

しかし、プログラミングの技術の場合、
特にWEBエンジニアの技術は高い汎用性がある為、
一度経験を積むと、他の環境でも通用するエンジニアになれます。

よって、勉強を苦にしないかどうかは、一つのポイントです。

プログラミングをすることが好きか

プログラミングの適性があっても、プログラミング自体が
苦痛でたまらない人、全く好きそうではない人は、
採用する側としても、採ることを躊躇する原因になります。

元々趣味でやっている人ですら、仕事として取り組むと
ストレスになることも増えますし、自分のやりたくないことも
業務として取り組まなければいけないことはありますからね。

なので、プログラミングを仕事にしようとしている人は、
そもそも、コードを書いたり、自分の作ったものが
端末上で動いたり繁栄されること自体を楽しいと思うかどうか、
ある程度触った段階で、自分に問いかけてみましょう。

まとめ

私は元々、プログラミング自体がすごく好きだった訳ではなく、
自分の状況と目指すものを客観的に見て、納得した上で
プログラミングを勉強させてもらっています。

しかし、本当に体や精神が拒否反応を起こす人の場合、
末期症状になると、才能の無さに泣いてしまったり、
出社できなくなるなどの事例も、ネット上では紹介されています。

なので、ある程度学習や仕事が進んだ段階で、
自分が本当に向いているのか、周りの人の意見を聞いたり、
客観的に見て、考えてみようと思っています。

20代後半や30代からのスタートだったとしても、
あと30年くらいは皆働くことになると思いますので、
自分の一生の仕事にするのに相応しいかどうか、
あなたも考えてみてください。