プログラマ。ソフトウェアを作る人。
その存在を知っている人は多いけど、実際にどんな仕事をしているのかはあまり知られていない気がする。
かくいう俺もプログラマの端くれである。
そこで、おそらく皆が抱いているであろうプログラマのイメージと現実を語ってみようと思う。
これからプログラマになってみようかなあ、とか思っている人がいれば、何かの参考になったりならなかったりするかもしれない。
- パソコンに詳しい
- 一日中パソコンをカタカタしている
- ハッキングができる
- コンピューターウイルスを作れる
- マウスなんか使わない
- 黒い画面に謎の文字を打ち込んでプログラミングしている
- タイピングが速い
- 数学が得意
- 英語が得意
- 頭良さそう
- アルゴリズムが大事
- プログラマよりシステムエンジニアの方が偉い
- 仕事中にパソコンで遊んでいる
- 残業が多い
- コミュニケーション能力が低い
- オタクが多い
- 不健康な人が多い
パソコンに詳しい
プログラマたる者、パソコンのことは何でも知ってる。
と、思われているかもしれない。
残念ながら、何でもは知らない。知っていることだけ。
得意な分野も人それぞれ。
ただまあ、日常的にパソコンを使わない人よりは、よっぽど詳しいと言えるだろうとは思う。
プログラマになれば自動的にパソコンに詳しくなるわけではなく、日々の興味の積み重ねで知識が形成されていく。
そのため、人によって知識が偏っている。
Windowsには詳しいけどMacは使ったことない、みたいなことは普通にある。逆も然り。
電化製品全般のことが見ただけで分かる、みたいに思われていることもたまにあるけど、使ったこともない最新家電の仕様なんぞ知らんし、修理もできない。
一日中パソコンをカタカタしている
プログラマの仕事のほとんどはパソコンを使う。
そのため、仕事中はずっとパソコンの前にへばりついていることもある。
さらに言えば、仕事で8時間、プライベートでも10時間とか平気でパソコンの前にいられる。(個人差あり)
最近はリモートワークが主流になっているため、なおさら外に出る機会が減ってしまった。
ハッキングができる
ドラマや映画のワンシーンで、天才ハッカーがひたすらキーボードをカチャカチャして、最後にEnterキーを ターンッ! と叩き、「ハッキング完了だ(キリッ」とか言っているのを見たことがあるかもしれない。
あれはただの演出。
ちなみに、こういう演出でよくある「組織のシステムに侵入して情報を盗み出したりデータを改ざんしたりする行為」のことを"ハッキング"と言われることがあるが、これは正確には"クラッキング"と言う。
プログラマは得体の知れない超技術を持っていて、他人のパソコンから情報を盗んだり、遠隔操作でパソコンを乗っ取ったりできるイメージが割とよくあるっぽい。
実際には、ほとんどのプログラマはそんなことできない。
そもそも、プログラミングはソフトウェアを開発するための手段なので、プログラミングだけある程度習得してもクラッキングの技術は身に付かない。
(プログラミングではなく「サーバー管理」の分野がそれに近い技術。)
というかクラッキングは犯罪なのでやってはいけない。
コンピューターウイルスを作れる
一応簡単に説明しておくと、コンピューターウイルスというのは、パソコンを正常に動作しなくしたり、パソコン内のファイルを壊したりするプログラムのこと。
他人のパソコンへ空気感染したり人間に感染するようなものでは無い。
コンピュータウイルスについては、多少の知識があれば誰でも作れる。
作れるからといって作るものでは無いし、騙して他人のパソコンに入れたりすれば犯罪。
現実で言う爆弾とか毒物とかと一緒。
マウスなんか使わない
プログラマはキーボードを叩くだけで何でもでき、マウスやタッチパッドなんか使わないと思われているかもしれない。
(個人差はあるが)そんなことはない。
ひと昔前ならともかく、現代のOSや数多のアプリケーションはほとんどがマウスやタッチ操作を前提とした作りになっているため、キーボードだけで操作するのは至難。
黒い画面に謎の文字を打ち込んでプログラミングしている
ドラマや映画で天才ハッカーが カチャカチャ ターンッ! しているとき、何やら黒い画面に無数の数字や英語が並んでいて、なんか超技術でヤベぇことをしているみたいなシーンがある。
コマンドラインと呼ばれるもので、皆がマウスやタッチパッドで行っている操作をコマンドの入力によって行うシステムがある。
Windowsではコマンドプロンプトというのがそれに当たる。
これはデフォルトでは黒い背景に白い文字の画面が出る。
コマンドラインの操作は"ぱそこんしょしんしゃ"にはスーパーハカーに見えてしまうため、これのイメージが定着してしまっているようだ。
(実際、営業部配属の新入社員に「プログラミングって黒い画面になんか文字打ってやってるんですよね!?」って言われたことがある。)
ちなみに、コマンドラインは主にOSのシステム系の操作を行う時に使用するもので、コマンドラインではプログラミングは普通できない。
実際のプログラミングでは、普通はプログラミング用のソフトを使用する。
タイピングが速い
ほとんどのプログラマはそれなりにタイピングが速いが、中にはブラインドタッチができないプログラマや、指一本でキーボードを叩くプログラマもたまにいる。
タイピングの能力とプログラミングの能力はあまり関係がなく、タイピングが早いからと言って仕事が早いとは限らない。
そもそも、プログラミングは「考えること」に大半の時間を費やす。
実際にキーボードを叩いている時間より、技術調査やトライ&エラーにかけている時間の方が圧倒的に長い。
一応俺はブラインドタッチできるが、それはプログラミングよりもメールやチャットで身に付いたものだと思っている。
また、プログラミングに関して言えば、コピー&ペーストを利用することも多いし、最近のプログラミング用ソフトは大体何文字か打てば自動的に候補を出して補完してくれる機能があるため、タイピングの速度や正確さはそれほど重要ではなくなっている。
数学が得意
プログラマには理系の割合の方が高いのは事実。
と言っても、文系出身者もそこまで少なくはない。
プログラマにとって大事なのは、数学の公式や理論を覚えることよりも、客観的かつ論理的に物事を考えられる能力。(個人的な見解。)
最低限、中学レベルの数学ができれば大抵はなんとかなる。
もちろん、いろんな知識を持つこと、興味を持つことも大事。
英語が得意
プログラマと話していると、横文字ばかりが出てきて何を言っているのか分からないことがある。
別に相手が分からない用語を乱用して煙に巻こうとしているわけではない。
本当に煙に巻こうとしている時もあるが。
パソコンは英語圏で生まれたものだから、IT業界は必然的に横文字の出現率が高い。
しかし、(日本の)プログラマは英語が得意かと言うとそうでもない。
今時は大体翻訳サイトや日本語化ソフトで何とかなるため、中学英語レベルができれば”英語で"困ることは少ない。
もちろん、英語ができるなら大いに役に立つ。
と言っても、必要なのはほぼReading(読む)だけ。
日本にいる限りは、Writing(書く)、Listening(聞く)、Speaking(話す)はほぼ不要。
頭良さそう
プログラマをやっていると言うと、親戚のおっちゃんおばちゃんには「頭ええんやねぇ」なんて言われることがある。
日常的にパソコンを使わない人にとっては特に仕事のイメージが湧きにくいし、よく分からない専門用語が多い業界なので、なんとなく「頭が良さそう」と思われているっぽい。
別に頭が良いとは限らない。
理解しているようでしていないことも普通にある。
これは本当に人による。
アルゴリズムが大事
なんだかよく分からないけど「アルゴリズムが大事」って聞いた。
と誰かが言っていた気がする。
まあ間違ってはいない。
アルゴリズムとは、処理の手順や方法のこと。
言葉の使い方としては、例えば「検索のアルゴリズム」や「並び替えのアルゴリズム」といったようなのがある。
アルゴリズムについて学習するときに大事なのは、アルゴリズムの仕組みを理解することであって、丸暗記すれば良いというようなものではない。
プログラマよりシステムエンジニアの方が偉い
プログラマと似たような職業として、システムエンジニア(SE)というのを聞いたことがあると思う。
なんとなく、システムエンジニアの方が上位職なイメージがある。
プログラマはプログラミングを専門とする職業で、システムエンジニアはシステムの設計から運用までを幅広く担う職業。
言葉の意味としては違うものの、実際にはあまり住み分けされていない。
俺はプログラマを自称しているけど、仕事の内容はシステムエンジニアっぽいし。
というか、プログラミングしかしないプログラマはほとんどいないと思う。
仕事中にパソコンで遊んでいる
仕事にパソコンを使う以上、いつでもパソコンで遊べる環境にある。
が、別に遊んで良いわけじゃないし、そもそもそんなに暇じゃない。
(息抜きにTwitterなんかを見ていることはある。)
残業が多い
残業が多いかどうかは会社による。
さらに言えば、部署によっても違うし、仕事の内容、時期によっても違う。
ただ、確実に言えることは、残業が多いかどうかは上司(あるいは先輩)の人柄の影響が大きい。
これは入社しないと分からないことなので、結局のところ運次第。
コミュニケーション能力が低い
コミュニケーション能力の良し悪しは人によるけど、平均的に見るとやや低い方かもしれない。
面と向かって会話するより、メールやチャットの方がやり取りしやすい人は多いと思う。
営業マンほどではないにせよ、社外の人とやり取りすることもそれなりにあるし、会議で発言したり、上司・部下と交渉する場面も結構ある。
初対面の相手とも気兼ねなく世間話ができるようなコミュニケーション能力は必要ないけど、事務的な会話くらいは普通にできる必要がある。
あと、報連相は大事。
オタクが多い
アニオタ、ゲーオタのプログラマは多い。
チャラい人はほとんどいない。
若手は特にそうだし、30~50代も結構な割合でオタク。
(もっと上の役員クラスになるとそうでもないけど。)
基本的にオタクに対しての理解はある。
不健康な人が多い
プログラマの大半は、不健康に太っているか痩せているかのどちらか。
不摂生の権化。(個人的な見解。)
一日中パソコンの前にいるため、目が悪い人が多く、眼鏡率は高い。
座りっぱなしで腰を痛めたり、痔になる人も少なくない。
オタ活のために睡眠不足になっていることも。
人によっては仕事中に結構居眠りしている。
いかがだったろう。
俺の周りでは大体こんな感じだけど、中にはもっと生き生きと仕事しているプログラマもいれば、デスマーチで死にかかっているプログラマもいるかもしれない。
まあ大体パソコンばっかりいじってるオタクなんだな~
みたいな理解で良いんじゃないだろうか。