technology.概念化とは、漠然とした目的を解釈して、個別の技術的な課題に切り分ける技術だ。これをアーキテクチャーと呼ぶ人もいるし、デザインと呼ぶ人もいるし、コーディングと呼ぶ人もいる。できればいいなあ」という希望から始めて、これをテクノロジーを使って実現させる方法を模索することが、概念化だ。メンバーは人々がリムジンをどこへでも携帯電話とクラウド上のインフラを使って呼び出すことを可能にした。このシステムを概念化したといえる。文字列に変換する技術だ。これは深淵で価値ある技術であり、非常に可搬性が高い。認識しておくべく重要なこととして、各言語には特徴があるのだ、ということがある。コードを書く方法をわかった上で、さらにメタレベルのプログラミング言語について理解が必要だ。どのようにコードを構造化して、可搬性が高く、そしてスケールさせることが可能な状態をつくりだし、機能開発とパフォーマンスの改善をしていくのか。そのためにはコンピュータサイエンスの根源に関して、かなり深い理解が必要だし、実際の技術に関しても深く理解している必要があるし、大規模開発と小規模開発の両方の深い経験が必要だ。最適な手法を決められるようになる必要もある。compromises.実装における重要な側面は、妥協点を見つける能力だ。締め切りと品質とデザインの間で、輝く解決策を見つける。くだらない妥協策ではなく。十分な時間を与えられればエンジニアは誰だって最高の解決策を見つけることができる。制限を与えると、くだらない妥協しか思いつくことしかできない。その中で最高の解決策となる妥協点を見つけなくてはいけない。both.実装の最適化は、これもまた今までの技術とは異なった技術で、あるプロセスになぜ時間がかかり、そしてリソースを消費するのかを理解し、時間もしくはリソース、もしくはその両方を減らしながら正常な動作をさせる技術だ。areas.一流のシリコンバレーの企業は、これら全ての領域のスキルを持った人物を探している。faster.彼らが探しているのは、漠然としたアイデアをコードで実装できる人物だ。その実装を時間内におこない、市場で価値があるものにできる人物だ。探しているのは、物事をさらに早く進めてくれる人物だ。them.まずは、簡潔に言えば、こういった問題に取り組むことを始めることだ。これらの問題をどう自分が解決するかを示すことだ。quality.職業プログラマーで、さらに向上したいと考えているのであれば、早速プロジェクトに取り組んで、漠然とした問題を理解して実装し、さらにそれをどのように改善するか、しかも高いクオリティを持った上で時間内に終わらせるか。それを実務を通して示そう。プロジェクトを最適化し、パフォーマンスを改善し、クオリティを保つ必要もある。politeness.もしまだ学生なのであれば、自分が関心のある問題を見つけて、それを解決しよう。課題を締め切り内に、しかも質の高いものを提出しよう。自分のプロジェクトでも同様に進めよう。コードが迅速に動くようにする方法を探すのも価値がある。インターネット上の幅広い技術コミニュティに関わろう。harder.コードを書く方法を知らず、新しいキャリアとしてエンジニアを始めたいのであれば、学校に行こう。それができないのであれば、それでも学習を始めよう。それは学校に行くよりは難しくはある。problems.結局のところ、企業が問うているのは、彼らのもっている課題を解けるのかということだ。何を学んできてかを確認し、課題についてどのような考え方をするのかを理解したいのだ。problems.ただ、彼らは、あなたが何を学んできたかには興味がない。それから実際の今のスキルがどうかでもない。興味があるのは、どのようにして学習をするのか、そして自分を成長させるのか。課題にどうアプローチするのか、ということなのだ。them.彼らが探しているのは、状況に適応し、プログラミングの原則を学習し理解できる人間なのだ。これは今まで私が書き出してきた通りだ。there.最低限必要な技術のレベルというのはあるが、そこまで学校は引き上げてくれることはない。skills.仕事に必要なスキルをもっていなくて、企業がそのスキルを勉強させてあげる時間がない場合もある。それが理由で採用されないこともあるだろう。いう場合には、スキルを身につければ、そのスキルが必要なプロジェクトにはつくことができる。anymore.もし企業があなたの持っている特定の技術に以上に関心を示しているとしたら、その企業は適切な方法で人選をしていないという危険性があるし、そうだとすれば働く場所としてはよくない場合もある。自分の能力を高めることができるのかそしてどうやって問題にアプローチするのか。