悪いことは言わないから「まずやってみて」から自分の人生の進路を決めましょうよ
最近はてブ経由でプログラミングの習得に関しての記事をいくつか読みました。議論が盛り上がっているので便乗して20年くらいずっと思っていることをきちんとブログにも書いておこうと思います。同じことはすでにどこかに書いたかもしれませんが。
どういう経歴の人の意見なのか、というのは読者にとって重要な情報だと思うので簡単に私の経歴を書いておきます。
私自身は小学校時代にMSXでBASICからプログラミングを独学で学びはじめ大学では情報科学を学び、就職してからはWindows Server系のインフラエンジニアをしつつ、必要があれば自分でプログラムも書くような事をしています。そういう意味ではプロのプログラマーとは違うのですが、プログラミングの話もインフラ系の話もほぼ同じ話だと私は感じているというのが前提です。参考までに、私のもう少し詳しい経歴のようなものはこちらにあります。
以下の話は全てプログラミングの話として書いていますが全部インフラ系の話に置き換えてもらっても成立します。
まず以下のあたりのエントリには深い同意しかありません。
- お前は絶望的にプログラミングに向いてないから諦めて刺身にタンポポ乗せる仕事でもやってろ|古都こと|note
- 底辺IT企業は『書けない』プログラマとどう向き合ってきたか – megamouthの葬列
- はてなブックマーク – 底辺IT企業は『書けない』プログラマとどう向き合ってきたか – megamouthの葬列
そして下記も興味深い。
長いですが上記3つのエントリは是非読んでほしいところです。はてブのコメント含めて読んで見て下さい。本当の事が書かれています。
私が話をしたいところだけ抽出しつつ超要約すると
- 世の中には全くプログラミングに向いていない、それ以前の部分に問題がある人が多数いる。手厚く教育しても無理。
- 全くプログラミングに向いていない人が(底辺の)IT企業に入ってしまうと、まともに教育もされずに潰れる可能性が高い。
- (主に1に対して)専門学校の中には完璧ではないが素人に対して体系的にプログラミンを教えるノウハウがあるところがある。
という感じです。
個人的には「日本電子専門学校」の「情報システム開発科」で「少なくとも変数の概念を理解していなかったり、FizzBuzz問題が解けないような生徒はいなくなる」ようなところまで持っていけるというのは本当かな?そこまでいけずに学校辞めちゃうような人もいるんじゃないかな?とちょっと思いましたが、本当なら素晴らしいことですね。(いや、でもそれって(解法によっては)超簡単だからな…)
※ちなみに私の学んだ大学では一緒に入学したの108人に対して一緒に卒業したのはその約半数でした。
で、私の意見としてはシンプルに下記3つです。
- プログラミングに向いているかどうかはやってみればすぐに分かる
- 気軽にまず試してみるべきである
- 向き不向きを認識してから自分の人生の進路を決めるべきである
これって例えばプロのスポーツ選手とか芸術家とかだったら当たり前ですよね。一度も野球やったこと無いけどプロの球団の入団試験に応募する無謀な人は絶対にいないし、さらにまかり間違って合格してしまって、実力もよくわからないまま実際の試合にいきなり投入されて、実践のなかで野球のルールを覚えながら、「あ、やってみたら自分向いてなかった、そもそも楽しくない」とかそんなことに気がつくようなアホなことはありえないです。絶対にありえない。野球のところは他のスポーツでも、楽団等でも何にでも変更してもらっても全く同じ話だと思います。
でも、プログラミングを含むIT系の職業ってこのありえないことが当たり前におきてます。それどころか「未経験者歓迎」というのもゴロゴロある状況です。
大学の時も授業を受けてみてから「やりたいことと違った」と気がついてやめていく人が多数いました。社会人になってからも「むいてなかった、やりたいことと違った」と会社を去っていく人が多数いました。本当にもったいないと思うのです。
で、スマホ1つあればプログラミングなんて簡単に試してみることができますし、30分~1時間もやれば自分が向いているかどうかなんて簡単にわかっちゃいます。まずやってみるべきです。
試してみる方法は色々あると思いますが小学生くらいにはまず下記が良さそうです。iOSでもAndroidでもWindowsでもうごかせます。
この年末年始は妻の実家で過ごしていたのですが親戚の子供5人(小学校1年~中学1年)があつまっていて、たまたまみんなでプロゼミをいじって遊ぶことになりました。
小学生1年生でもちゃんと理解して操作できていましたし、ちょっとやっているだけで面白がって興味をもってどんどん自分で発想して作品を作るようになるのか、面白くなくてすぐに放り出すのかの違いが現れました。プロゼミが楽しくて色々と自分でやりだすようならプログラミング向いてるでしょうし、よくわからない、つまらないなら向いてないでしょうね。(※つまらないと感じても努力さえできればできるようにはなるとは思いますが)
はっきりいうと、プログラマーの面接ではプロゼミのようなものをつかって制限時間内で課題を解けることを必要条件にするとかそういうものを取り込むべきだと思います。
小学校でもプログラミングが教えられる…というような話も伝え聞きます。内容は全然理解していないのでおおはずれかもしれませんが、結果的に「あ、自分は向いていないからこの道にはすすまないでおこう」と思う人も出るような内容であればそれだけでも結構意味はあるんじゃないかなと思うところです。
私も過去に複数回採用面接の面接官をしたことがあるのですがエンジニア志望の学生さんでも相当高い割合で(95%程度の印象)仕事内容を理解しておらず、さらに一度も実際にやってみたこともないなかで「入社希望です!」と言ってます。なので私は面接のなかで仕事内容をなるべく具体的に説明しつつ、「学生のうちに何をしておくのが良いでしょうか?」という質問には「実際に自分で手を動かしてみて、楽しいと感じるかどうかやってみることをおすすめしますよ」と答えているのですが、これって面接で話す内容じゃないだろう!といつも思ってます。そして面接結果には低い評価をつけます。
一度もやったことが無いことを自分の仕事にして、その後に自分に向いていない、楽しくない、辛いとわかったら間違いなく酷いことになりますから…。それはやめましょうよ。というのが私の意見です。
このブログはWindows Serverの管理者向けでした(忘れてた!)。この方面を目指すなら無料のAzureのサブスクリプション枠がクレジットカード1枚あれば取得できますから、まずそれをゲットしましょう。画面は変わっているかもしれませんが下記のあたりが参考になりますね。
(追記)
学生さんであればクレジットカードが無くてもAzureサブスクリプションを取得できるそうです!知りませんでした!@Fumiya_kumeさん教えていただきありがとうございます!
下記からどうぞ!
(追記ここまで)
そうしたら、Windows Serverを1台展開してみましょう。
手順ではWebサーバーにするところまで書かれてますね。
で、これをやってみて「なんかすげー!面白い!もっとどんな事ができるんだろうか?調べてやってみよう!」となるなら向いてますし、「めんどくさい、よくわからない、何が面白いんだろう?」となるなら向いてません。
クレジットカードを持っていないからできない?うーん仕方がないですね、そのくらいの行動力はほしいところですが、年令によっては確かに難しいときもありますよね。
そんな方は下記をやってみましょう。クレジットカードが無くても完全無料でハンズオンまでできちゃいますよ。
下記のコースから面白そうなものを1つ選んでやってみるとよいでしょう。
たくさんコースありますし、目安の所要時間も書かれています。
やってみて面白いなら向いてます。やってみようとしても何が何だかよくわからず面白くないなら向いてません。
このくらいなら1日もあれば試せますから、せめてこのくらいはやってみてからその方向に進むかどうか考えてみてもらうのが良いんじゃないかと思います。