職業初心者プログラマが思うインプットとアウトプットのバランスについて

初めて、このブログにお問合せが来て良い質問だなーと思ったので記事にしました。

お問合せ内容

私は職業初心者プログラマです。 ブログ拝見しました。 とても興味深く、努力次第で変われるのだなと感じました。他に興味がある内容として、個人的にインプットとアウトプットのバランスについての記事を書いて欲しいです!

読者は、職業プログラマをめざすプログラム初心者と仮定(まだ、職業プログラマを目指している段階)して書いています。

また、職業プログラマを目指す上での、アドバイスであれば具体的で僕よりアウトプットが優れている人はわんさかいるので、そちらを参考にするか、または、その道のプロ(スクール等で就職実績がある講師)に聞くのがいいと思います。

なので、ここに書いている内容は職業初心者プログラマとしてというよりは、僕個人の経験で回答していく感じです。

回答

インプットとアウトプットのバランスで気をつけていることは、特にないです(ごめんなさい…)。

それは、どんなアウトプットをしたいかでインプットの量も質も当然変わってくるためです。

ですので、時間も集中力も限られた資源の中で、良いアウトプットの定義をし、最近はどうすればより良くアウトプットできるのかを考えています。

良いアウトプットの定義をする前に

インプットとのバランスを考えても、しょうがない…

なら、アウトプットから考えてみようというのが僕の考えです。

そして、良いアウトプットの定義をするためには、自分の中でどういうアウトプットが良くて、どんなアウトプットが悪いのか考えるのが近道です。

それは、前提や目的が変われば良いアウトプット(必然とインプットとアウトプットのバランスも)も変わってくるからです。

そして、良いアウトプットの定義をする前に、自分にとって何が重要かを考えておくといいです。

動機ってやつですね。

これが覚悟ってやつに最後は変わるので、ここが弱いと技術力とかそんなこと云々の前に辞めてしまうのかなーと思うので僕は重視しています。

自分にとって、何が重要か考える

僕の場合は、職業プログラマになった上で長くプログラムを書き続けることが重要だと思っています。

それは、目先のこと(お金や見た目、自由さなど)にとらわれると自分の場合、長い人生で良い判断ができなくなってしまうことが稀にあるからです。

自分にとって、なぜそれが重要か考える

それは、僕の経験からくるものです。10年前にプログラマになった人は、10年の積み重ねがあります。ですが、僕はないです。

良い悪いではありませんが、早いうちから自分が決めた道で積み重ねておくことはリスクヘッジであるとともに、信頼が積み上がっていけば面白いことが飛び込んでくるチャンスも増えます。

だからこそ、今後プログラマになると決めたので積み上げていこう、長く続けていこうと思ったわけです。

良いアウトプット、悪いアウトプット

動機が言語化できたら、次は良いアウトプットとはなにか、悪いアウトプットとはなにかを考えます。

ここはケースバイケースですが、僕の場合を書いてみます。

僕は、受託のプログラマになります。そこで、重視されるのは技術力は当然のことながら『動くものを納期以内』で作ることが求められます。

その上で、良いアウトプットと悪いアウトプットを考えてみました。

良いアウトプットとは

  • 面接と同じで、質問に対して無駄なことを答えない(質問から逸れた回答をしない)。
  • 取り掛かる前に質問(目的)を言語化し、その目的を納期以内に実現する。

悪いアウトプットとは

  • 面接と同じで、質問に対して無駄なことを答えてしまう(質問から逸れた回答をする)。
  • 取り掛かる前に目的を言語化せず、目的もなく時間も無駄に使っている

 

プロサーだったり、面接の練習だったりする中で僕自身とても無駄が多い人間だと自覚しました。はい…

それに、ベンチャーだったので身近で良いアウトプットをする人も見てきました。

その中で、良いアウトプットをする人ってすごいんですよ!

何がすごいのかと言うと、『今手持ちにある駒でどうするかを考える』

そうなんです、デキる人たちって最善思考なんですよね。過去よりも、前を見てどうすればよいかを考えている。

かっこいいです!

 

あと、最近、見たツイートでも良い定義があったので、引用します。
色々な考えがあるので調べてみると、まだまだ出てくると思います。
自分にフィットしそうなものを探したり、考えてみましょう。

良いアウトプットの学習方法

ここからは、まだ試してはいないです(今後、試していくものだと思ってください)。

  • 目的を言語化する(長くてもいいので、具体的であること) ※必須
  • 目的達成に必要な要素を書き出す
  • 目的達成に必要な時間を見積もる
  • 目的達成に必要ないことを書き出す→その行動をしそうになったら、ParkingLotに入れるか、紙に書いて破り捨てる。
  • 学習の流れに沿って、要点(目的に関係する事柄)をScrapboxに書き留めていく。
  • Scrapboxでリンクを深くしても良いが、深くても2階層までとする(目的に関係ない学習を避ける)。

ParkingLotとは、『重要だがいまやらないことを駐車場に入れておく』という意味です。
メソッド屋のブログでなるほど!と思って試しています。
ADHD プログラマの私がやっと見つけた「達成すること」が出来る方法 – メソッド屋のブログ

まとめ

たぶん、死ぬときにインプットとアウトプットのバランスなんて考えてなんかいません。
でも、今自分が実現したいことがあれば、あまり難しく考えず愚直にやっていればいいんだと思います。
でも、凡人ゆえに努力が苦手です(だって、努力が愚直にできればほとんどの人が天才プロgらm…)。でも、凡人だから考えます。

何が言いたいのかと言うと、僕は脱線する癖がすごいのでScrapboxで脱線しない仕組みを実践して、脱線しないように進んでいこうと考えてます。また、多分ちょっとしたら考えもアップデートされて違うことやっているかもしれませんが(PDCAってやつですね)…

少しでも、何かの参考になれば幸いです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です