サイトアイコン 脱サラ&独立開業体験記

プログラミングには適性があるのか?

プログラミングを始める人が増えています。

小学校や中学校でもプログラミング教育が必修になりますし、

注目を浴びているプログラミングですけどもー。

 

ところで、プログラミングを勉強する専門学校や、

短期のセミナーは今も昔もたくさんありますが、

それらに行けば簡単にプログラミングができるようになるかと言ったら

そんなことありませんので注意してくださいね。

 

大金をはたいて学校に通ったのに全然役に立たなかったとか言って怒ってる人は、

ちょっとプログラミングというものを誤解してます。

プログラミングにも適性があるので今日はその辺の話をしたいと思います。

 

え!?儲かるからプログラマー!?

圧倒的な人手不足とも言われているIT業界ですが、

最近では「普通の仕事よりも給料が高い」とか言われているらしいですね!?

 

IT業界にいる自分は、あまりそうは思わないのですが、

世の中では、給料が良いからIT業界を志す若者がいるとかいないとか・・・。苦笑

 

正直な感想としては、確かにプログラムは技術職であり、

素人さんが簡単にできるものではありませんから、

その意味で、少しは他より給料が高いかもしれません。

 

でも、それは大工さんや設計士さんとか電気工事士さん等と同じです。

いわゆる職人の世界ですね。

 

とはいえ、IT業界の中にも職種・種類がたくさんあります。

ITコンサル業務ともなれば、年収が2000万円とか、

とんでもない人もいますが、そこまでたどり着くには、

なかなか簡単な道ではありません。

 

それに引き換え、一般にプログラマーと言ったら、

IT業界の中では、正直、あまり高給ではないポジションです。苦笑

それでもIT業界の給料が高いと感じるとすれば、

残業代が多いからじゃないですかね?苦笑

 

昔はITといえば嫌がる人も多いキツイ仕事で、

終電帰りや休日出勤は当たり前の業界でしたし、

むしろ敬遠されていたくらいですからね。

 

プログラミングは理系の仕事か?

ところでプログラミングとはプログラムを書くことを指します。

では、プログラムとは何かというと、

誤解を恐れずに一言で言えば、

 

英語です。笑

 

でも、中学校や高校で習う英語のように難しくはありません。

なぜなら、覚えることが学校の授業よりも非常に少ないからです。

 

例えば、ロボットに、

「先生が来たら、こんにちはと言え」

というプログラムを組み込みたいとします。

プログラム的には、このように書きます。

 

If teacher comes here ,

then you say hellow .

 

ね、英語でしょ?

 

ようするに、プログラムを組むには最低限の知識として、

赤文字の if~then~. の部分(構文)だけ覚えておけばOKなのです。

 

「先生が来た」、「こんにちはと言え」の部分は適宜、

プログラミングしたい内容に入れ替えればOKです。

 

例えば世の中には、「パン」と手をならすと「ニャー」と鳴く猫ロボットとか、

色んなロボットがありますが、その程度のロボットならば、

こんな簡単なプログラムでOKなのです。

 

If I clap ,

then you say 'meow'.

 

プログラミングって、こういうものです。

実は、ほとんどのプログラムが、ifとthenしかありません

とても簡単なんですよ。

 

なので、よく誤解されるのですが、

理系にしかできない仕事ではありません。

文系の人でもできる仕事です。

しいて言えば、英語や国語が得意な人なら活躍できます。

 

プログラミングがつまらない人もいる

ところがですね、「適正ってあるんだなあ」って思ったエピソードもあります。

例えば僕が20代、サラリーマンだった頃にITの会社に在籍していたことがあります。

派遣でITをやっていた時もありますし、正社員で働いていた時もありました。

 

その時に周りの同僚を見ていて気が付いたことがあります。

それは、IT業界には次のようなタイプのエンジニアがいることです。

 

1.プログラミングをまったく面白いと感じていない人

2.研修を受けたはずなのに、酷すぎるプログラムを書く人

 

僕がとくに注目したのは「1」の人です。

実は僕は子供のころに、ファミリベーシックというファミコンの派生商品で、

簡単なプログラミングを組んだことがあって、

小さいころからプログラムって「遊び」や「ゲーム」の一種だと思っていたのです。

つまり、面白いものだと思っていたのです。

 

なので、「プログラムなんて全然面白くない」という人がいることに驚いたのです。

「だったら、なぜIT業界に入ってきたのですか?」

と、その人に質問したこともありましたが、

どうもその人は、プログラマーよりさらに上位のコンサルタントになりたかったようなのです。

実際、その後に外資系IT企業に転職されましたが、

その人にとってプログラマーは、単なるステップに過ぎなかったのです。

実際、プログラマーと言う職域は、IT業界内において、

SEという職種やコンサルという職種等に進む上での基礎にもなりうる職種でもあります。

 

それにしても、プログラムを面白いと感じない人もいるんだなあってのは、

僕にとって新鮮でした。

 

つまり、僕が言いたいことは、プログラミングにも適性があり

流行ってるから、儲かるからとかでプログラミングを職業にしても

やってみたら「つまらない」「苦痛」ということもありますよ、ってことです。

 

プログラミングの難しさとは?

ところで、もう一つの適正は、技術的な能力です。

サラリーマン時代に大企業で多くの新人エンジニアさんを見ていて思ったのは、

半年ほどプログラムの研修を受けたはずなのに、

まったくプログラムが組めない人がいるという事実でした。

大企業の社員さんとか学歴の高い人もいました。

 

例えば、

Aという処理だけをさせたいのに、

Bという無駄な処理をして、

Cという無駄な処理をして、

最後にAという処理をするとか。

 

または、Aという処理をさせるために、

DとEという処理が必要なのに、

それがないとか。

 

または、Aという処理はすでに存在するのに、

同じようなAという処理を書いているとか。

 

なぜこのようなことが起こるのか?

それは、プログラムの全体像を把握できてないからでした。

 

プログラミングって最初に説明したように原理は簡単なのですが、

実際の本物の実務で使うプログラムは、

下の例のように2行でおさまることはありません。

If I clap ,

then you say 'meow'.

このifとthenの条件分岐が、ものすごくたくさん出てくるのです。

つまり、何千行、何万行もの長文になっているのです。

 

そうです、もうおわかりですね。

プログラムって、英語の長文読解問題のようなものなのです。

 

英語と国語が好きな人は適性あります

僕が色々なエンジニアさんを見る限り、

プログラムは理系の人でも適性がない場合があります。

 

確かに理論的である必要はあるので、

その意味で理系脳は必要なのですが、

プログラムの本質が英語の長文である限り、

英語が苦手な人は、プログラムも苦手に感じるはずです。

 

さらに言えば、国語が苦手な人も同様に、

プログラミングが苦手に感じると思います。

 

英語や国語に共通して必要な能力とは、

文章に何が書いてあるかを読み解く能力です。

 

例えば、難しい評論とかの本を読んだ時に、

何が書いてあるかよくわからなくて、もう一度3行くらい前に戻って読み直すことってありませんか?

ざっと読んでも、1行前に書いてあったを忘れちゃって、また戻って読み直すとか。

こういうことが何度も続くと、「こんな本は難しくて読む気もしない!」って放り投げたくなると思います。

プログラムでも同じことが起こるのです。

 

しかし、読書が好きな人は幸いです。

本を読めば読むほど、難しい文章もスラスラと一度で読めるようになってきます。

実際、国語が得意な人は読書量も多いはずです。

 

それと同じように、プログラムもある程度は量をこなさないと、

スラスラと読むことができず、すぐには上達しないのです。

 

同じような研修を受けたはずの新人エンジニアなのに、

なぜここまでプログラムができる人と、

できない人の差が激しいのだろうと思って考えた結論はこれです。

英語や国語が得意な人はプログラミングの適性もあるので、

最初からうまくプログラムの読み書きができる場合が多いのです。

 

ただし、適正がないと言っても、練習をすれば誰でも上達します

どれだけ時間がかかるかは、その人の努力と能力次第ですけどね。

でも普通は人間って、苦手なものは練習さえもしたくないですからね。

 

結論としては、プログラミングの適性を測りたいと思ったら、

単に理系だからだけでなく、英語や国語が好きかどうかも、

その基準に加えてあげると、より精度が高まりますよってことです。

 

以下、参考までにブログツールで有名なWordPressのプログラムの一例です。笑

一般の人は何が書いてあるかわからないと思いますが、

慣れると誰でも(なんとなく)わかるようになります。

$post_ID = isset( $post_ID ) ? (int) $post_ID : 0;
$user_ID = isset( $user_ID ) ? (int) $user_ID : 0;
$action  = isset( $action ) ? $action : '';

if ( $post_ID == get_option( 'page_for_posts' ) && empty( $post->post_content ) ) {
	add_action( 'edit_form_after_title', '_wp_posts_page_notice' );
	remove_post_type_support( $post_type, 'editor' );
}

$thumbnail_support = current_theme_supports( 'post-thumbnails', $post_type ) && post_type_supports( $post_type, 'thumbnail' );
if ( ! $thumbnail_support && 'attachment' === $post_type && $post->post_mime_type ) {
	if ( wp_attachment_is( 'audio', $post ) ) {
		$thumbnail_support = post_type_supports( 'attachment:audio', 'thumbnail' ) || current_theme_supports( 'post-thumbnails', 'attachment:audio' );
	} elseif ( wp_attachment_is( 'video', $post ) ) {
		$thumbnail_support = post_type_supports( 'attachment:video', 'thumbnail' ) || current_theme_supports( 'post-thumbnails', 'attachment:video' );
	}
}

if ( $thumbnail_support ) {
	add_thickbox();
	wp_enqueue_media( array( 'post' => $post_ID ) );
}
モバイルバージョンを終了