世の中にはプログラムが出来る人間と出来ない人間がいる。
多くのプログラムが出来ない人は、プログラムが出来る人の事を「理数系」と考えるが、文系でも、ガテン系でも、プログラムをすることは可能だし、実際に趣味レベルでもプログラミングを行う人は少なくない。
今現在、プログラムの仕事をする場合、国家資格などは必要ないし、習得するために勉強する事に関しての障壁は全くない。
開発エンジニアとして飯を食ってきた僕自身の経験と周囲のエンジニアから聞いた内容を噛み砕いてエンジニアが上級にどのような工程で上り詰めるか考えてみた。
目覚め
エンジニアの職についた人の多くが、何かのきっかけでプログラミングに興味関心を持つことになるが、その前段階として、興味を持つための目覚めが存在する事が分かった。
目覚めは環境に影響されがちですが、必然でも偶然でも、そこに目覚めがあると自覚できるのは、少しスキルがついてきてからであることがほとんどです。
偶然的
自宅にあったPC操作をしていて楽しいという感情を覚える。
プログラムにより何かを作ってみたいと考える。
ゲームが好きで自分でも作って見たいと強く考える
必然的
仕事でパソコンを操作し始めてカスタマイズをして、チューンナップをし始める。
会社で先輩などに教えてもらい、バッチやマクロを組んでみて、面白いと感じた。
友達や会社の先輩を見て、プログラマーという存在を知る。
次ステップに移る状況
この時期はプログラムをする事でコンピュータが動かせるという漠然としたイメージと憧れを抱く、この憧れの大きさがスキルの高さに繋がる
興味
興味を持つきっかけがあると、その先に進みたくなると考えるのは必然的な自然の摂理です。
興味を高める動機づけは自分主体のものと他人からの影響の2つに別れますが、若い人程自己起因が強い傾向があるようです。
自己起因
覚えたてのHTML言語でホームページを、作れる事がわかり、世の中に情報を公開してみたくなる。
プログラムを作成するとアプリケーションを作る事ができるという事が分かる。
手元にあるスマートフォンを自分なりに便利に使うイメージが湧いて、プログラムを深く覚えたいと考える。
他人起因
人がプログラムしているのを見て、自分でもできるのではないかと考えて、言語を覚えることへの抵抗が無くなる。
友達から勧められて、プログラムを覚え始める
次ステップに移る状況
この時期は、自分の環境をコントロールできる事が重要。
コンピュータやスマートフォンを手に入れる事が出来ない人はここでストップしてしまうので、金銭的にもある程度の投資が必要。
強く作りたいもののイメージが出来上がる。
学習
何の言語を学習するか、決まっていると、webページや、書籍などを、読み漁り、チュートリアルをたくさん実行し、コーディングを楽しんで行うという時期。
上級エンジニアの人が「一番楽しかった」と懐古に浸れるのがこの時期らしい。
人から教えてもらうタイプ
学校に通い、プログラム教育を受ける。
セミナーなどに参加し、プロの人から教わる。
知人にフランクな環境でプログラムを教えてもらう。
自分で勉強するタイプ
WEBページを見て見よう見まね、コピペで、ある程度のプログラムを作ってしまう。
本を読んで調べる事で、理解が出来るようになり、自分でも何でも作れる感覚が身につく。
次ステップに移る状況
目的のためにどうすればいいか、疑問が出たときに、周囲に聞く事が出来る先輩がいると、このステップは加速されるが、運が悪いと、別の人の良くない概念を埋め込まれてしまうので、複数人のメンターがいる事が望ましい。
ここで実際に何かを作り上げる事が重要であり、投げ出してしまうと、プログラムに対して苦手意識がついてしまうようだ。
開発作業
作り上げる術を身に付ける事ができたら、実際に開発工程を行う必要があります。
仕事で開発を行うと、給料をもらってスキルが身につくんですが、趣味レベルの人は是非セミナーやイベントに出向いて、多くの他のエンジニアと交流することをオススメします。
覚える内容
開発を進める為の色々なルールを覚えて行きましょう。
チームプレイや、仕事におけるエンジニアの考え方、クオリティに関する事を覚えて、給料アップを目指しましょう。
開発工程や、色々な名称、人の書くソースをレビューする能力を覚えていきましょう。
次ステップに移る状況
多くのエンジニアがこの期間が長いのだが、年齢が高くなる前に次のステップに行くことでより上級への階段を早く登ることが可能になります。
先行的な考えが持てない人は、このステップでとどまりがちだそうです。
評価を受ける
他人のプログラムを見て、何が良くて、何が悪いかの自分なりの価値観を持つ事が出来る。
成長のポイントは、自分の作ったものを人からの評価される事でさらなる改良を加えて、成果物の質を上げる作業をすると、自分でこれからもスキルを上げる事が可能になる。
重要なポイント
人からの評価は、上級エンジニアではなく、アプリケーション利用者に目を向ける事
PDCAを回せるかどうか
学習時には、エンジニアの中で完結するのだが、このレイヤーは、プログラムしたものを使う人に視点が行かないと、プロダクトアウト型のエンジニアになってしまい、人からうざがられてしまう傾向がある。
是非他人の意見を受け入れる柔軟な脳みそを開拓しよう。
ステップアップ
プログラマーとして、最大の目標は、自分の作ったモノが、人の役に立つと実証された時。
そのためには質が限りなく研ぎ澄まされなければいけないを体感する事でしょう。
このステップアップという段階は、ゴールが無く、エンジニアたるもの、ひたすらスキルの上昇を行う義務を背奥覚悟が必要になる時期でもある。
スキルアップや、技術の習得を止めてしまった段階で、世の中のエンジニアとして取り残されていく事を感じるでしょう。
何故なら、3年経ったら今現在最新と言われている技術は「古い」というレッテルが貼られてしまうからです。
マネジメント
チームプレイや、リーダーシップを習得し、部下を育てたり、組織を構成し、運用する経営レベルの知識を身につけましょう。
ただし、マネジメントは、会社やチームなど組織の構成、環境が必要不可欠な為、運悪くマネジメント工程に登れない人も多くいます。
実は必ず覚えないといけない工程でもある
マネジメントという工程に興味がないエンジニアもたくさんいますが、フリーランスエンジニアになっても、独立をしても、マネジメントと経営能力、営業能力は確実に必要になるスキルなのでここから逃れることは出来ないと認識しましょう。
イノベーション
モノづくりのモチベーションと、行動力を兼ね備えているはずなので、他人への影響力を考える時期です。
イノベーション能力の無いエンジニアは単なるコーダーとしてしか価値が無くなるため、意識してイノベーションを考えなければいけません。
エンジニアは向上の生産ラインは有り得ない
ビジネスだけでなく、趣味でエンジニアを行う場合でも、イノベーションは必須です。
人の評価のいらない自己中でいいというレベルの場合は、今回の内容は当てはまらないので、ご自身の納得いくやり方を突き進むのがいいでしょう。
ただし、そんな向上の生産ラインのような考え方は、他人とのコミュニケーションの問題が発生すること間違い無しです。
プログラミングの必要性
エンジニアじゃないからプログラムが出来ないという時代はもうどこにもなく、多くの職場でパソコンをあてがわれ、エクセルのマクロや式が書けないと効率のいい仕事が出来ない時代になっています。
恐らく2045年の時点では、日本人で英語が話せない人は、満足に街中で買い物もできなくなるという未来と同じく、満足な生活が送れなくなる可能性もあるかもしれません。
2045年ってどんな年か知っていますか?
あの「ムーアの法則」の終焉する年という予測だそうです。
0 件のコメント:
コメントを投稿