プログラミングで作りたいものが無い時にやること。

「本やオンラインでプログラミングを勉強したけど、作りたいものがないなぁ、、

仕事を取るためにも実績が欲しいけど、何をしようか思いつかない。

チュートリアルやサンプルをやってもつまらないなあ、、。

やる気はあるのにどうすすめばいいかわからなくてもどかしい、、 」

この問題に対して経験を元に解決方法を提案します。

目の前にある課題をプログラミングで解決しよう

IT化=プログラムでシステム化ができそうな課題を3つピックアップしましょう。

自分の生活周りでも、仕事の中でもなんでも大丈夫です。データの取り込みや加工、定期的なスクレイピング、日報の入力を簡易化などなど、、、。すでに存在している身近なシステムでも構いません。

ピックアップする課題をやる時には次ことに気をつけましょう。

  • 許可を求めずに勝手にやること
  • 学んだ言語やフレームワークと異なる環境でもやること
  • 難しそうに思えてもやること

それぞれ説明します。

許可を求めずに勝手にやる

自分が興味があるなら、上司の許可は取らないことが重要です。実際に作り上げて見て、「これは使える!」とあとで思わせることができれば十分です。

なぜなら事前に話すことはあまり意義がないからです。ほとんどの場合、あなたの上司は、今現状で機能している習慣を変えることを嫌うでしょう。

また、あなたはまだプログラミングを学んだだけで、他の重要なスキルがありません。すなわちうまく利害関係を調整した上での要件定義や、ほどよく妥協できる詳細設計、良い感じにサボれるプロジェクトマネジメント、テスト自動化などのことです。

実際に、私はシステムのたたき台を作らずに、上司に「これをやりましょう!」と相談を持ちかけても度重なるアイデアのダメ出しをされ行動にどんどん制限がかかってしまい、結局開発すらできなかった経験があります。

もちろんうまくやれる自信がある方は、そういった計画段階を人に話すところからスタートしても問題ないと思います。

学んだ言語やフレームワークと異なる環境でもやる

仮にあなたが、Ruby on Rails でwebアプリの作り方を学んできた。しかし、あなたが今いる職場では、エクセルのVBAを使った業務用アプリの開発が課題としてあったとしましょう。その場合は迷わずに後者のVBAでの業務アプリを行うべきです。

なぜなら、いかなるアプリケーションの開発であっても共通するプログラミングの壁が存在するので、それを超えた経験は必ず、次の開発の糧になるからです。

また、それぞれ異なる思想で作られたプログラミング言語やフレームワークが独自に持っている概念や手法が、今までの経験と合わさることにより、1種類しかやって来なかった人が生み出すことができない工夫やアイデアに生まれ変わることがあります。

さらに、どのみち、今後のプログラミング人生で山ほど新しいことをどんどん早く学んで身に着けることを要求されるのですから、いかにして爆速で新しいことを学ぶかを早いうちから練りこんでおいたほうがいいでしょう。

難しそうに思えてもやる

もしかすると、あなたの眼前にある課題は、とほうもなく難しく感じることなのかも知れません。しかしそれは大きなチャンスです。それこそ歯ごたえのあるチャレンジしがいのある課題なので取り組みましょう。

どれだけ難しい課題でも、あなたにとって着手できそうな大きさに分解して仕舞えばそれはもうちょっと背伸びすればできることになります。

何も難しい課題の全体像を解決しきる必要はありません。その巨体のほんの一部を解決することだけでも非常に価値のあることです。

そして、ここでも不足していることは、その都度学習してあなたの糧としましょう。

プログラミング以外のスキルも身につけよう

さて、ここまでお付き合いいただいたあなたはすでに気がついているかと思います。プログラミングを学んだあと、実践で価値を生み出すには、広い範囲でプログラミング以外のスキルが要求されるということです。

主に次のスキルの獲得と検討すると良いでしょう。

  1. 0 -> 1 を生み出すための発想力
  2. 1 -> ∞ にするための問題解決力
  3. 大量に新しいことを学ぶ爆速学習力
  4. 勝手に自走するリーダーとしてのメンタル

他にも、周りとうまく調整するコミュニケーション能力が必要になりますが、それは上記4つを取り入れてからでも良いと思います。

なぜなら、好き好んでプログラミングをやろうと思った私たちは、そもそも周りと協調することが苦手な面が多かれ少なかれあるからです。

まったく課題が出てこない場合は、思い切って一旦プログラミングから離れてこのリストのスキルを磨くことはぜんぜんアリだと思います。

そしてこれらは全て、一人で身に着けることが可能であり、孤独に耐えれる人が得意とすることです。まさに我々にうってつけだとおもいませんか?

事業責任者のメンタルでやろう

プログラミングを始めた動機でよくあるものは、「IT企業で就職したら稼げそう」「フリーランスでも稼げそう」「時代にのってそう」、あたりでしょうか。

動機としては全く健全ですし、私もそうです。

ただ、姿勢、メンタルのありようとして、「事業責任者」であると自己認識するとエンジニアとして仕事がうまく回り始めます。

私たちのやっていることは、事業の戦略レベルに影響を与える仕事です。そのため経営者目線で課題に取り組む方が自然でしょう。

そう考えると、私たちはエンジニアで収まらずに事業責任者として社会に影響を与える気概が必要かも知れません。

少なくとも、「課題は誰かから与えられるもの」と考えているエンジニアよりも「自ら課題を発掘し、それをプログラミングも利用し解決してみせる」という姿勢を持っているエンジニアに仕事を任せたいでしょう。

まとめ

「プログラミングで作りたいものが無い」という状態は、今後の人生をどういう姿勢で向き合い、社会にどんな居場所を作りたいかという問いに対して答えを整理するタイミングが来たことを意味していると思います。

いっしょに世の中に影響を与えるような、良い感じの何かをプログラミングのスキルをベースに作りだしていきましょう。

その過程は、すごく楽しくて刺激的だと思います。ぜひ前向きに挑戦しましょう。