Maccle

今のあなたはどこ?Webディベロッパーのキャリアにおける11のフェーズ

約 8 分
今のあなたはどこ?Webディベロッパーのキャリアにおける11のフェーズ

何らかのプログラミング言語をかじってきた開発者であれば、その言語を初めて触れたときからある程度習得できるようになってきた今までの過程において、誰しもが必ず通るであろう段階がいくつかあります。

そんな技術者としてのステップアップの段階を、Webディベロッパーを例に net.tutsplus.com にておもしろおかしくGIFアニメ付きで紹介されていました。

Web系の開発者じゃなくても通じるステップだと思うので、今の自分はいったいどの段階か、照らし合わせながら見るとおもしろいですね~。

(※弱小プログラマが主観も入ったかなり改変した適当な翻訳してますので、変な箇所があればご指摘ください^^;)


フェーズ1 : 新人

noob-o
開発を始めて右も左もまだわからない。そんな段階です。

Doctype?なにそれおいしいの?
<div>がなんだって?」状態。

とにかくすべてがチンプンカンプンで一気にゲンナリしてしまうときです。

でもあえてこの段階でのメリットがあるとすれば、それはチンプンカンプン過ぎてこの世界がどこまで深いのかがよくわかっていないところです。

HTMLを学ぶことなど、まずは初歩の初歩です。

フェーズ2 : はじめの一歩

1248951765_kitten-mittens
フェーズ1では、まずは「何をどうやってどこから勉強を開始すればいいか」ということに膨大な時間を費やすものです。

フェーズ2では、少しずつですが、プログラムや環境を覚えるための知識が頭の中で整理されてきて、自分のスキルセットが構築できるようになってきます。

確かに、CSSでビジュアルをスタイリングしていくことは、まだ「何それおいしいの?」状態かもしれませんが、手に入れたばかりのコードエディタでちょこちょこっとHTMLを書いて、ブラウザに反映していくだけのスキルはもっているでしょう。

フェーズ3 : フラストレーション爆発

1291664255_obama-kiks-door-open
調べても調べても、洞窟の中で迷っていくように、暗いトンネルの中を懐中電灯で照らしながらただ掘り下げていくだけで、まるで解決しない、わからない…

混沌

解決に導くわずかな光を求めて書籍やネットを彷徨いますが、残念ながらこの時期はちょっとやそっとで理解できるような段階ではないのです。

ここで何百時間も費やして、参考書を何度も何度も何度も読み返して、必死にこのモンスター級の謎と対峙しましょう。

どうしても解決できずに、処理能力の限界を超えて頭がパンクしてしまったら、精神安定のため必殺技を使うか、素直に同僚や先輩にアドバイスを乞いましょう。
あなたは一人じゃないんです。

フェーズ4 : なーるほど!な瞬間

1269259657_omg_cat
フェーズ3で、暗く寒い孤独で辛い状態を長く過ごしてると、あるときわずかなきっかけでズババ!っと謎が解けて理解が一気に進みます

このときばかりは、どんなに大人しいあの子も狂喜乱舞

この日の晩御飯はさぞおいしいことでしょう。

一つがクリアになると、すべてとはいきませんが、他の謎だった部分まで幾分かひも解けて理解できるようになることもあります。

ここにきて、フェーズ1から苦しんできたことが頭の中で体系的に繋がって、プログラミングがちょっと楽しくなってくるかもしれません。

フェーズ5 : 脆弱なコード

1238064149_bubble
脆弱なコードに悩まされるこの期間は長いかもしれません。

この段階では、あなたは一通りコーディングができてアプリケーションとして機能するものを提供できるだけのスキルはあるでしょう。

しかし、そのアプリケーションには予知できていない潜在的な問題がいくつもあるはず

このフェーズでは、まだあなたのメソッドは簡略化できる余地のある長い行数に渡るもので、デバッグやテストの概念は、まだあなたの中には十分に染みついていません。

でも、少なくともあなたはコードを正常にビルドできるだけのスキルがあるので、今のところはリファレンスとタイプミスの修正のために GitHub を限定的に活用していきましょう。

フェーズ6 : 他人のコードを模倣

1257979618_risky-business
初心者の段階で自分のコーディングスキルを一気に向上させてくれる一番の近道が、他人のコードを模倣すること。
これはとても重要なフェーズです。

よくネットでサンプルコードなんかを探していて、どんぴしゃなのが見つかると、実際とても勉強になります。

実現したかった機能の実装だけでなく、その人が培ってきたコーディングの仕方やテクニックを垣間見ることができ、感心すると共に自分の技術として必要なスキルを取捨選択して吸収していけるという一石二鳥のメリットがあります。

どんな天才プログラマーでも、この模倣フェーズを経て今に至っているもの。

先輩プログラマたちの真似をして、刺激を受ける中で、あなたの独自の開発スタイルができあがっていくでしょう。

フェーズ7 : うぬぼれ

15g6454656
この段階になると、ある程度コードを書けて、他人のコードを読んで吸収できるようになり、満足のいくコーディングができると思い込んでいるため、本当はまだまだ無知なスキルやテクニックが山ほどあるのに、自分はプログラミングができると勘違いしがち。

間違っても GitHub や StackOverflow のコメントにカッコつけてしょぼいコードで回答を投稿しちゃダメ。

ここでは謙虚に、過去のクセや手法に問題やムダがないか自己反省して更なる向上に繋げましょう。

それがあなたのためでもあり、みんなのためでもあるのです。

フェーズ8 : Vimの活用

1290708698_magic-chair
もし同僚がVimをエディタとして、そのコーディング作業の速さにあなたが驚いたとき、それはあなたにとって更なるスキルアップやワークフローを加速させるチャンスかもしれません。

Vimはプログラマーにとってとても便利なエディタで、使いこなすには少々時間がかかりますが、慣れてしまえば加速的に作業効率が上がるでしょう。

コーディングテクニックだけでなく、開発環境としてどんなツールをどううまく使えるかも重要です。

フェーズ9 : コードがアートになる

1278414923_coraline-vs-puppeteer
かなり時間がかかったとしても、あるとき、あなたは自分で書いたコードが簡潔に見え、それは芸術以外の何物でもないと実感するでしょう。

そして、あなたのコードはバージョン管理され、より抽象化されて、検証しやすく拡張性にすぐれ、読みやすいものになっているでしょう。

この時点で、あなたはもしかしたら自分自身のコーディングスキルに自信をもっているかもしれません。

各言語の癖や隠れた機能を活用することが、必ずしも熟練した開発者の証というわけではありません。

結局は、複雑なロジックをいかにして簡潔に、わかりやすく、1行にまで減らしていけるかが重要なのです。

そうすることが、(自分にとっても、引き継ぎ後の担当者にとっても、会社にとっても、構築したシステムにとっても)将来的なメンテナンスを全く考慮してないコードを平気で書くような傲慢なプログラマーへの警鐘となるのです。

実行可能であると同様に、読みやすさも重要だとあなたが理解したとき、あなたが書くコードはアートとなります。

この段階では、あなたのコードは機械が理解するためのものだけではなく、人のためになるものになっているでしょう。

フェーズ10 : 熟練

1305563147_evan-longorias-amazing-baseball-catch
コードが直感的に書けるようになってきたら、あなたのキャリアは次のフェーズに行くところまで来ているのかもしれません。

もはやあなたは言語やフレームワークについて時間をとる必要がなくなっている代わりに、単純に問題をみて、自分のコーディングツールから解決に導くための正しいツールを選んでいけます。

精通した開発者は、なぜやっつけなコーディングが滅多に功を奏さないのかよく理解できています。

新たな機能を盛り込む際は、まずはホワイトボードを用意し、実装までの手法、ルール、プロセスをまとめ、そしてテスト項目を洗い出すための会議をプロジェクトメンバー全員で行ってから、はじめて1行目のコーディングが始まります。

この段階では、あなたは既にほかの人たちや組織、企業が必要としている即戦力の熟練開発者になっていることでしょう。

フェーズ11 : ロックスター

1243419788_bakflip-basketball-trick
ここまできたら「神」領域

このフェーズまでのし上がれるのは、開発者の中でもほんの一握りです。

日常業務に加えて、IRCにてサポートしながら、あなたはいくつものセミナーで講演したり、Webの将来をよりよくするために様々な貢献や寄付をしたり、数えきれないオープンソースプロジェクトを影で支える存在になっていることでしょう。

ここまで来れば、あなたは楽しみでコンパイラやパーサーを書く人になっているはずです。

あなたがどれだけ自分をラベル付けされるのが嫌でも、人々は「ロックスター」や「忍者」などと同じようにあなたを崇めるでしょう!

それでも、あなたはまだまだどれほど学ぶことがあるかを誰よりも知っているんです!

via [net.tutsplus.com]

この記事を書いたひと

某IT系なんちゃってエンジニアヨーダ
Apple好きだけど盲目マカーは気持ち悪いと思ってる中道だと思い込んでるしがないダメダメエンジニア。

今もってるApple製品↓
Macbook Pro 15 inch, iMac 27 inch (Late 2009), iPhone 6 Plus, iPad (初代! いらない!)
Follow :

コメントはこちら

*

COMMENT ON FACEBOOK