初心者だった頃の自分に伝えたい!プログラミングの壁と突破方法

プログラミング 未分類

初心者だった頃の自分に伝えたい!プログラミングの壁と突破方法

「基礎文法はわかった。条件分岐やループ文、クラスはこうすればいい。しかし実際の開発で通用するのか?」
「言われたことをやっているだけで全体像わからないし、プログラミングできると言えるのか?」

プログラマー1年目の私は悩んでいました。
プログラミングスクールも行ったし、自分で本買ったりしているが、先輩、上司に追いつける気がしなかった。
もちろん、先輩は色々な質問に答えてくれます。
でも、そもそもその答えの導き出し方そのものが本当に知りたかった。

現役ITエンジニアとして13年以上働いてきた経験から、初心者だった頃の自分に伝えたい、上達の壁突破方法について解説します。

結論 : 自分発のプロダクト、アプリケーションを作ればOK

実はこれ、簡単に解決できます。
自分発のプロダクト、アプリケーションを作れば解決します。

そもそもなぜ不安があるのか、先輩とは何が違うのか、どこに壁があるのかを以下で説明します。

不安の理由は全体像がわからないから

自分が関わっている開発の全体像を図として書いてくださいと言われて、パッと書けますか?
今やっているプロジェクトの目的と自分の開発がどう役に立つのか、他人に説明できますか?

すぐに説明できない人が多いと思います。自分も全く同じでした。
上司がいない状況で客先から質問されても、上司がいないのでお待ちくださいと言うしかない状況。
こうじゃないかな?と思っても、確信が持てないので上司のチェックをお願いしてから返信。
情けないな、悔しいと思っていました。

適切な回答や説明ができるようになるためには、その現場固有の言葉や考え方をまず覚えていきます。
そのためには、開発の全体像がざっくりでいいからわかっていると、理解のスピードが劇的に上がります。

とはいえ、その全体像がなかなか頭に入ってこなかったり、理解できなかったりしますよね。
どうすればいいか。この対策として自分発のプロダクト、アプリケーションを作ることを強くおススメしています。

自分が考えたアプリケーションを一から作ると「全体像が見える」ようになる

全体像が見えないのは当然です。
勉強の過程では、簡単な練習問題に従って反復練習をするという、実際の開発とは異なる形式でプログラミングするため。
野球で言えば、素振り練習、キャッチボールだけをしているようなもの。
野球の全体像を知りたいならば、何度も試合をやるのが手っ取り早いと思いませんか。

スクールによっては、かなり実戦形式に近い練習を積むことができます。
しかし、あくまで実戦形式であって、期間も決められているので、"正解"がある状態で練習は進んで、カリキュラムを終了。
また、実践形式での練習の反復回数も少ない。
実際の開発では、"正解"が明確でないことも多く、期間も長いことが多い。

そこで、自分発でアプリケーションを作って、実戦経験を積んでいくことをおススメしているわけです。

アプリケーションを一から作ることで、以下要素の学習ができ、プロダクトの全体像を実体験することが可能です。

  • 解決すべき課題を設定
  • 課題をどのように解決できるか、アーキテクチャ分析、リサーチ
  • 要件をとりまとめる
  • 基本設計・詳細設計を考える
  • 実装
  • テスト
  • ローンチ

もちろん、普段の開発と比べると全然緩いですし、期間も規模も小さいものです。
それでも開発に関わる全体像を把握する力は身に付きますし、それぞれの立場の人が考えていることがよくわかるようになります。

職場で遊べるゲーム作ったら、急激に開発の全体像がわかるようになった実体験

アプリケーションを作ることをおススメしている理由として、自身の実体験についても書いていきます。

エンジニア1年目のときは、やる気はあったものの、セキュリティが厳しく、インターネットに自由にアクセスできない現場。
プロジェクトの状態によって暇になったときも、調べ物も難しく勉強も進めづらい。

そこで今まで持っている知識を組みあわせて、職場で仕事している風でできるゲームを作ろうと思いつきました。
任された仕事は速攻で終わらせて、暇な時間にExcelでできる、数独、マインスイーパ、フリーセルを自作。
同僚にも見せて、ブラッシュアップを重ねていきました。
他人の意見を組み込むのはなかなか難しく、自分で作ったコードが自分でわからなくなることもしょっちゅう。
コメントやわかりやすい記述にし、同僚にもテストしてもらって、職場で堂々と遊べるようになりました。
(今、こんなことしている後輩がいたら、、、うっかり応援してしまいそう。)

そんなことを繰り返していたら、ふと職場の開発作業が意外とシンプルと気づきました。
ゲームを作るよりよっぽど簡単でしたし、わがままな同僚に比べたら要件の調整もすんなりいく。

気が付けば、上司に頼らずに一人で案件を任されるようになり、せっかく作ったゲームも遊ぶ暇もなくなりました。
でも、そのころには仕事にやりがいを見出していて、それこそゲームのように取り組んでいました。

まとめ

ぜひ、自分発でアプリケーションを作って、実戦経験を積んでいくことにチャレンジしてみていただきたいです。
シンプルにわかることが増えると仕事が速くなりますし、できるようになると仕事が楽しくなります。

仕事が楽しくなる前に挫折してしまうのは非常にもったいないです。
ゲームでもなんでもいいので、自分の興味のある分野でアプリケーションを作ってみることをおススメします。

もう一つ利点を語っておきます。
驚くかもしれませんが、プログラマーなのにアプリケーションを作ったことがない人が意外といたりします。
アプリケーションを作ったというだけで、そういう人たちと差別化を図れますし、転職にも非常に有利に働きますよ!

-プログラミング, 未分類
-, , ,