仕事中、甘栗の間食が止まらなくなっているアキゾラです。
食べ物でもなんでも、一度ハマりだすとしばらくアホみたいにそればっかりになる人、はい私です。
今日は女性のプログラマって少ないよねっていうところから、女性はプログラミングが苦手、と言われる所以、そしてさらに大きく「こんな人はプログラマ向いてなさそう」というところをアキゾラの独断と偏見でお届けます。
何となく共通認識みたいになってる「女性はプログラミングが苦手」というイメージ
これ、みんなそう思ってますか?どうなんですか?w
いやアキゾラもあまりはっきりは分からないところなんですけど、でも何となくそんなイメージあるような気はしています。
女性のプログラマって少ないんですよ。やっぱりそれはプログラミングが苦手だからなんでしょうか?
多分これ、大筋のイメージは以下のようなところからくるものじゃないかと思っています。
プログラミングは論理的な思考が必要
論理的思考、ロジカルシンキング!
あ、ロジカルシンキングって教育を受けたなーとふと思い出しましたわw
これ、YESだと思うんだけど、いざ論理的な思考ってつまり何?と言葉に出そうと思ったら手が止まったんですがw、アキゾラのイメージでは、例えば、ある事象に対して、そこに行き着くまでの道筋を一つ一つ順立てて整理していく、みたいな、そんなイメージ。
直感的にこう!っていうのじゃなくて、これがこうだから、ここがこうなるので、結果として、こうだ、みたいな。
こそあど言葉だらけで意味不明ですけどw
で、こういう思考って一般的に女性の方が苦手って言われてますよね。
プログラミング=理系の仕事、なイメージ
なんかおそらく理系のイメージありません?w
数学できないといけないような、そんなイメージなのかな。
そういう意味でいうと、理系に進む女子の割合はやはり文系よりも少ないのは確かだと思うので、この辺も影響していそう。
結局これも、最初の論理的思考につながるところだったりすると思うんだけど、数学の証明とかさ、あれって結構プログラマの思考回路と近い気がするんですよね。
論理的思考ですよね、数学の証明って。
こんなところから、女性はプログラミングが苦手、というイメージがあるんじゃないかと思います。
実際女性はプログラミングが苦手なのか?
アキゾラは一応、女性なんですけれどもw
自分自身でプログラミングを苦手だとは思っていません。
論理的思考っていう観点では、それとても大事なんですけど、仕事しているとそういう思考をするようになるので、あまり普段論理的に物事を考えるか、というのはそこまで関係ないと思ってます。
まぁ、本質的に向き不向きっていうのが絶対ないとは言い切れませんけど・・。
これ、本当にプログラミングをするときの話ですよ。コードを書く時の話です。
仕事の仕方とか、人との付き合いとか、そういう日常で論理的に物事を考えるかどうかとは別の話だと思っています。
そりゃ普段から論理的に物事を考える人の方が得意、すんなり入り込める、とは思います。
でも未経験なんかでプログラマの仕事についたら、やっぱり最初はプログラミング言語自体が分からないところもあるだろうし、プログラムの組み立て方が分からないのは、当然だと思うんです。
で、プログラムを組み立てるのに、論理的思考ってやつが必要なんですけど、この部分は習うより慣れろ、やってりゃその感覚が身についてきますんで、大丈夫じゃないかな。(無責任w)
理系だから、っていうのは、うーん。これも実際のところ、そこまで苦手かどうかとは関係ないと思う。もちろん、数字は使いますけどw、数学っていうんじゃないですよ、算数です。
ただ、10進数だけじゃなく、16進数とか2進数とかは使いますので、〇進数って何?ということを理解してないといけないし、慣れてないと、見慣れないwというのはあります。
あと、文系出身のアキゾラがざっくり理系っぽいというイメージでいうと、ビット演算とかするので、これも理解する必要があるし、慣れないと「理系っぽい」ことかもしれない。でも実際のところこれって理系うんぬんじゃなくて、単にプログラミングの考え方というか、テクニックであって、結局慣れですよ。
で、結論はどうかというと。
女性はプログラミングが苦手、ということはない(と思う)。
アキゾラは単純にこう思う。
女性のプログラマが少ないのは、女性はプログラミングが苦手だからではなく、単に女性にその職業が人気がないから。興味がないから。やりたいと思わないから(けちょんけちょんw)
もしくは、ここはやはり理系っぽいイメージが先行し、自分にできるとは思わないので、携わる職業として何となく選択肢に入らない。
激務、みたいなイメージが先行し、 携わる職業として全く選択肢に入らない。
じゃないのかなー?
性別に限らず、プログラマに向いていない人は存在する
女性だから苦手、ということではなく、やはり個人個人で差があると思います。
プログラマに向いてない(と、アキゾラが思う)人は、存在します。
コツコツ地味な作業を繰り返すことができない人
プログラミングは、映画とかで見るような、コードをがーッと打ち込んでタン!みたいな、スピーディーな作業ばかりではありません。
こんなことは、プログラミングの神様が舞い降りてきたときにしか起こりえないw
通常は、実現したいシステムのイメージ全体(要件)を、ざっくり機能ごとに分け、さらにその機能を細かく分け、その細かく分けた部品を作り上げるためにコツコツとコードに落としていきます。
例えば、「生年月日」から、「干支」「星座」を教えてくれるプログラムを作りたいとします。
かなり単純なプログラムですが、これを実現するためには、最低限以下が必要そうです。
- 生年月日を入力する形式を決める。
- 入力された生年月日の、西暦から干支を算出する。
- 入力された生年月日の、月日から星座を算出する。
画面から入力してもらう形式を想定することにします。
入力する形式は、例えば西暦だけの枠、月の枠、日にちの枠を用意するのか、一つの枠を用意して、YYYYMMDD形式で入力させるのか、決めます。
YYYYMMDD形式だったら、内部で西暦と月と日に分ける作業がいりそうです。
数字以外の文字が入力されていないかのチェックが必要です。
生年月日として正しい数字が入力されているかのチェックも必要でしょう。
例えば15月32日、とかありえませんから。
うるう年の問題がありますので、そこも考慮してこのチェックを行わなければなりません。
西暦から、干支を算出して表示する方法を考えます。
月日から、星座を算出して表示する方法を考えます。
どうでしょう、干支の計算とかは別として、人間がパッと頭で考えればすぐに分かりそうなことでも、プログラムに落とすと、ちょっとめんどくさくないですか?
うるう年とかさーwめんどくさwって書いてて思いましたw
出来上がってしまえばすごく便利なツールになるんですけど、それを作り上げる過程はとても面倒なことがたくさんあります。
アキゾラはプログラミングって、基本的に人間がめんどくさいと思うことを自動化するためにあるものだと思っています。
自動化するためには、そのめんどくさいことを全て一つ一つプログラミングしていかないといけないんです。
とっても地味な作業です。これをコツコツ繰り返していける人じゃないと、辛いんじゃないかと思います。
自分で調べて解決していく能力が足りない人
これ、向いてない人ってことで書こうとしているので、こんな言い方になってしまいますが、どっちかというと、何か分からないことがあった時にとことん調べて自力で解決していくことができる人が、向いている人、そうじゃないとキツイ、ということです。
プログラミングする上で、分からないことは多々出てきます。
それを、「分からない」・・・で止まってしまうと仕事になりません。
例えばさっきの干支と星座を表示するプログラム。西暦から干支を算出するって、どうやるの?ってところとか、ぱっと分からない人も多いのでは。
これをググるなりなんなりして、調べることができるかどうか。
干支は「 子(ね)、丑(うし)、寅(とら)、卯(う)、辰(たつ)、巳(み)、午(うま)、未(ひつじ)、申(さる)、酉(とり)、戌(いぬ)、亥(い)」の12種類を繰り返します。ここから、ピンと来る人もいるかもしれません。
こういうのは、西暦を12で割った「余り」に注目することで計算で出すことができます。
例えば、1983年は「 亥(い) 」、イノシシです。
1983 ÷ 12 = 165 余り 3
では、12年後の1995年は?これもイノシシ年です。
1995 ÷12 = 166 余り 3
はい、イノシシ年は、12で割った余りが3になる年なんです。
他も同じ要領です。12で割った余りは、0から11までの12種類となり、これが必ず干支のどれかに該当します。
これを自分ですぐ思いつく人はそれでいいんですが、思いつかない場合、自分で調べて解決していく必要があります。
この例はちょっと算数?数学?理系的な人の方がすぐにピンときそうですが、結局慣れなんですよねw
周りの人に聞けばよくない?というのも、それも有効、大事なんですけど、このレベルのこと聞いていては仕事してないのと一緒というか、そこを考えるのが仕事なのです。
ただプログラミング言語の書き方を分かっているだけでは仕事にならないのです。
これは本当一つの例にすぎませんが。
仕事していると、分からなくてググるとか、やり方に確証を得るためにググるとか、そんなことしょっちゅうありますww (ぐぐってばっかやん)
今ってネットに何でも情報が転がっているわけで、ちょっとググれば様々な情報が出てくるわけですが、この膨大な情報の中から自分の求める正しい(←ここ重要)情報を拾い上げる検索能力は、必要、かなり大事だと思います。
ググって確認するのは、関数とかAPIの使い方とかは基本的に公式サイトの情報を見るべきですが、こういう計算の仕方とかは公式もくそもないですねw
プログラミングが苦痛な人、興味ない人
そもそも論ですが、プログラミングが好き、興味がある、でないと続けるのはきついと思います。
このあたりは、新しい技術を追いかけることができるとか、学ぶのが苦じゃない、とかそういうあたりに繋がってきます。
やっぱり好きじゃないと難しいと思う。じゃないと、常にいやいや勉強みたいな感じになってしまうと思います。
あとね、地味に自分の主プログラミング以外の、なんか汎用的な作業を、なんとか自動化できないかな?とか考えて、batファイルに処理まとめて書いてみる、とかそういうの自分からできる人が伸びる人だと思う。別にbatじゃなくてもいいんですが。
個人的にはこういうのが結構大きいと思ってたりします。
例えば、プログラムがちゃんと動くかどうかを確認するテストで、一定期間ツールを連続で動かして、出力されるログを取り続ける、という作業があるとする。
ログは一定期間でラップアラウンドされてファイルの先頭から次々上書きされていってしまうので、定期的に退避させないと、最新のものしか残らず、確認したいものが流れていってしまいます。
こういう時に、愚直に手動でツールを毎回動かして、毎回自分で10分くらい経ったらログを別のところにコピーして退避、とか繰り返してたら効率が悪いじゃないですか。
ツールを定期的に起動させて、ログを定期的に別の場所に退避する作業をbatファイルにまとめて書いて、そのbatを動かせば、ほったらかしておけばいいわけです。
テストが終わったら全部確認すればいい。ほったらかしている間、別のことができますね。
こういう、簡単なbat書くだけでも、勉強になると思うし、こういうのも、基本的にプログラミング好きだからできることだと思うんですよね。
これも結局、人間がめんどくさいと思うことを自動化する、という根本のところだと思うわけです。
まとめ
アキゾラ的には、女性がプログラミングが苦手なわけじゃないですが、プログラミングに向いていない人、というのはいると思います。
なので、女性でも「向いていない人」に当てはまらなければ、プログラミング、ないしはプログラマの仕事は向いている可能性はある!w
長時間労働とかそういうのはプロジェクト、会社によるところもあると思うので何とも言えませんが、最近は働き方改革なんかもある程度浸透してきているんではないかと。
アキゾラは結構、女性にはお勧めの職業だと思っているんですけどね。
営業のように外回りすることもないですし、接客業みたいに一日中立っているということもないですし、お給料が激安ってわけでもなくソコソコだと思います。
でも逆に、基本デスクに座ってしゅくしゅくと作業って感じなんで、色々刺激が欲しい感じの人には向いてないでしょうね。まぁ事務系の仕事ならこの辺はどれも同じですかね?
あ、これはシステムエンジニアになるとまた話が違ってくると思います。
文系出身、未経験でプログラマになったアキゾラの話は、こちらでつづっています。同じような境遇になる人、これからが不安な人の参考になれば嬉しいです。
また、女性プログラマについてのあるある記事もどうぞw
ではでは!
コメント