blog

信頼できるJava scriptプログラマーの資質

この記事は著者がClouderaで働いていた2010年に書かれたもので、node.jsが流行る前で、まだ多くの人がこの地味なスクリプトに関心を持っていませんでした。この記事では、node.jsを真剣に...

Jul 5, 2025 · 5 min. read
シェア

この記事は、筆者がClouderaで働いていた2010年に書かれたもので、node.jsが普及する前、まだ多くの人がjavascriptという地味なスクリプトを見下していた時代に、JavaScriptは真剣に取り組むべきであり、信頼できるフロントエンドエンジニアになるためにはどのようなスキルを持つべきかを示唆しています。時代は少し遠く感じますが、この記事のアイデアのいくつかは今でも通用するものです。

ClouderaでJavaScriptのプログラマーを採用しようとしたとき、とても大変な作業だと感じました。JavaScriptを本当に理解している人を見つけるのは非常に困難でした。しかし、JavaScriptにのめり込み、その分野のエキスパートになる時が来たのです。ここ数ヶ月の間に、私は何人かの才能あるJSプログラマーを見つけ、彼らを雇おうとしました。もちろん、彼らにはたくさんの選択肢があります。彼らは様々な企業からのオファーに悩まされていました。彼らを採用しようとした者として、最初のインターネット・バブルの時に起こったことを思い出しました。彼は結局、別のスタートアップに移りました。

最終的にJavaScriptのエキスパートを名乗れるようになるために必要なスキルは何なのか、日常的に具体的に何をする必要があるのか、どれが天才で、どれが新人で、どれが平均的なのかをどうやって判断するのか、私が作ったリストです:

1. HTMLを知っている必要があります。文書型が何をするのか、どのように機能するのかを知る必要があります。 TBODYを書かなくても、ブラウザが自動的に埋めてくれることを知っておく必要があります。ブラウザがアップデートのたびに行う変更について知っておく必要があります。少なくとも私の場合はそうです。少なくとも私の場合はそうです。

2.後悔しないために、CSSを理解する必要があります。私が仕事でよく遭遇する問題のひとつに、クロスブラウザCSSの互換性があります。同じスタイルの段落でも、ブラウザによって表示が異なります。タイポグラフィを実現するためにmargin-topに負の値を追加すると、どうなると思いますか? z-indexを追加したにもかかわらず、ユーザーはクリックすることができません。 あるいは、自動適応できるCSSコードを追加しても、ボスがIEでページを見に行かないことを祈るしかありません。CSSについて知っておくべき最も重要なことは、CSSは世の中で最も価値のある技術のひとつだということです。得意である必要はありませんが、少なくともスケッチに書いてあることを正確に実行できるようになりましょう。

3.ブラウザを理解する必要があります。Internet Explorerでは、DIVに""を入れても、IEはそれをDOM要素に変換しません。しかし、HEADERに""を書くと、その要素は読み取り専用になるため、DOM要素に変換されます。Array配列やObjectsの最後にカンマを入れるとIEがエラーになることを理解する必要があります。IEのiframe内の要素にはオフセットの問題があることを理解する必要があります。IE だけでなく、Firefox でもフロートのクリアに問題があります。最新のwebkitの素晴らしい機能は、携帯電話やサファリでは必ずしも利用できないことを理解する必要があります。

4.JavaScriptの話はしましたか?メソッドに渡される引数には長さがあり、列挙することができますが、決して配列ではありません。プロトタイプがどのように機能するのか、フレームワークを使わずにプロトタイプを使用する方法、そしてその効果と利点について知っておく必要があります。ゴミ収集が機能するとき、重要なとき、そして機能しないときを知る必要があります。抽象化に長けている必要があります。自分や他人のためにAPIを設計することに長けている必要がありますし、コードをテストし管理する方法を知っている必要があります。

5.情報フロー、グラフィックデザイン、ユーザーエクスペリエンスデザイン、コードデザインなど、きちんとしたデザインスキルが必要です。 ユーザー、顧客、見知らぬ人、専門家に適切な質問をし、彼らの問題を解決する能力が必要です。アイデアを話すだけでなく、それをどのようにプレゼンテーションするかを考えなければなりません。Illustratorを使って、さまざまなフレームスケッチから素早く解決策をまとめ、PhotShopでデザインを描き出す能力が必要です。世界最高のデザイナーになる必要はありませんし、私もそうでした。でも、何が良くて、何が悪いのか、何が優れたデザインなのかを伝える能力は必要です。自分の良いデザインを管理することができれば、あなたは強気です。

6.サーバーサイドに自信があること。ほとんどのフロントエンドの仕事では、JavaScriptを書くのに半分の時間を費やし、残りの半分は他の関連言語のコードに取り組む必要があります。 Python、Ruby、Java、PHP......。 1つの言語しか知らないのであれば、その価値はありません。JavaScriptとPHPしか知らないなら、他の言語が必要な仕事もあるでしょう。フレームワークは使えるに越したことはないですが、JavaScriptは1つしか知らないのでは、本当の意味でJavaScriptを知っているとは言えません。

7.それから、他にもマスターしなければならないことがたくさんあります。Gitの知識も必要です。Gitは素晴らしい、よく聞く話だと思いますが、自分を拡張するために何か新しいことを学ぶことを拒否する保守的な人を見つけたら、その間違いを教えてあげる必要があります。シェルスクリプトを知っている必要があります。VIやEmacsを開いて、メモ帳やTextMateやその他のエディタなしで設定ファイルを修正できる必要があります。何かをコード化する方法、ログファイルを傍受する方法、ZIPファイルを解凍する方法、何かを暗号化する方法、サービスをオンにして設定する方法を知っている必要があります。プロセスをシャットダウンし、スタックをトレースできる必要があります。

私は、アジャイル開発プロセスに精通し、オープンソースソフトウェアプロジェクトに携わり、新しいバージョンをリリースしたことのあるプログラマーとして自分自身を数えることさえしません。おめでとう、あなたは伝説の神です。

では、神になったら何が得られるのでしょうか?面倒なIE6のバグと何年も付き合ってきた甲斐があったというものです。そうですね、人事部から毎週メールや電話がかかってきます。転職したくなったら、何もしなくても、少人数の友人に話したり、ツイッターに投稿したりするだけで、目の前にたくさんの扉が開かれます。そうすれば、あなたの前にたくさんの扉が開かれるでしょう。そうすれば、あなたは伝説の家長になれるでしょう。在庫を手に入れ、製品の最初のバージョンをデザイン。1967年製のキャデラックが契約金としてもらえるのです。会社がまだ始まったばかりの頃、私はよくそういう連中を誘惑したものです。偉大なる神は、まだ存在しない製品のフロントエンドエンジニアでした。彼は、1、2年後にはそれが大きな価値を持つようになると指摘し、何年か後には "あれは私が作ったんだ "と人に言えるようになるんです。Twitter、Facebook、Gamil、Google Mapsのように、すでに数え切れないほど多くの人に使われているもの、Iphoneのインターフェイス、Github、YouTubeのように、"これは私が作ったんだ "と言う人がきっといるはずです。

その人はあなたかもしれません。

Read next

Visual Studio 2013の新しいエディタ機能

Visual Studio 2013 Editor には、生産性の向上と時間の節約を目的とした数多くの新機能が導入されています。これらの機能の中には、まったく新しいものもあれば、Power Tools の拡張機能として高い評価を得ているものもあります。これらの機能は、User Voice の提案、フォーラムへの投稿、Connect Bugs を通じたユーザーからのフィードバックによって追加されたもので、拡張機能の選択には MVP コミュニティも協力しています。

Jul 5, 2025 · 7 min read