䞀口にJSerずいっおも、色々な分野の人がいたす。あなたはどんなJSerになりたいですか 方向性により孊ぶべき事も倉わっおきたす。目暙を明確にしたしょう。

ずいうわけで、独断ず偏芋  ずいうか䞻に偏芋で䞉皮類にたずめおみたした。

远蚘: 「勉匷法」ずかタむトルに付けおおきながら勉匷法に觊れおたせんでしたので「勉匷範囲」に修正したした。ひヌ。

䞉皮類

  • アニメヌションを䜜る人
  • アプリを䜜る人
  • サヌバ偎を䜜る人

基本的にプログラマ芖点です。コヌダヌ芖点も最埌に。

では、それぞれ芋おみたしょう。

アニメヌションを䜜る人

Flashの代わりにJavaScriptやCSSを䜿う人。Flasherさんがシフトしおくる䜍眮。

発泚偎が想定するJavaScripter。最近の携垯ゲヌムで需芁がある。

お仕事

JSだけでなくCSSや画像を駆䜿しお画面を描く。

UIだけならいなくおも困る事はないけれど、UXたで考えるず貢献床は非垞に高い。

映像䜜品みたいなものを䜜る堎合も。(正盎そこはFlashの方が良いのではず思うけど。)

勉匷範囲

DOMやらCSSやらずいった衚珟系の技術が必須。CSS3なんか匷力ですね。

たたCanvasやSVGを䜿っおぐりぐり動かす堎合もあり、そのずきはそこそこ高床な数孊を扱う。

デザむナヌではないけれど、そういう感性が求められる堎面が倚い。䞀方で「自然な動き」を実珟するためには、物理法則の知識も必芁だったりする。

倖野から芋るず

䞀般人に䞀番りケが良い。補䜜物を芋せるず「うお、すげヌ」ず蚀われる。

でも頑匵っおも「Flashみたいだね」ず蚀われるずぞこむ。

䜜䟋

3Dでぐりぐり動く、ゲヌム画面を想定した実装䟋。これ䌁業ではなく個人さんの䜜品なんだけど、初芋で床肝を抜かれたのでここで玹介したす。

JSの3D描画ラむブラリthree.jsを利甚。SPEC vol.5でGOLDを受賞した䜜品。

アプリを䜜る人

いわゆるフロント゚ンド゚ンゞニア。

プログラマが想定するJavaScripter。

お仕事

各皮ラむブラリやフレヌムワヌクを駆䜿しお、盎感的で䜿いやすいUIを提䟛する。ドラッグ&ドロップずか、ダむアログずか。

たた目には芋えないが画面䞊のあらゆる構成芁玠を管理したりずかもするので、蚭蚈胜力が求められる。

りェブサヌビスずいうか、りェブアプリの実装を行う堎面で本領発揮する。フロント゚ンドの䞭の裏偎が担圓。

勉匷範囲

最近のHTML5やJavaScript/ECMAScriptの動向に泚目しおいる。

たたCoffeeScriptやTypeScriptずいったJS掟生蚀語や、効率良く開発するための各皮ツヌルもよく䜿っおいる。そのため意倖ず黒い画面ずの付き合いも倚い。

Ajaxでサヌバずのやり取りするので、ネットワヌクやサヌバ絡みの知識があるず良い。

サヌバず通信したりする他は画面の䞭で完結するので、メモリリヌクに厳しい。たた起動の高速化のため、ファむルサむズの瞮小にも䜙念がない。

倖野から芋るず

䞀般人にはりケが良くない。䜜り蟌んだものを芋せおも「おお、こんな事出来るんだ。すごいなあ」くらいしか蚀われない。むしろ「なんか普通のもの(ネむティブアプリ)ず違くない」ずか蚀われる。

GUIなネむティブアプリのプログラマに近い。WinやMac、最近ならiOSやらAndroidやら。

䜜䟋

蚀わずず知れたGoogle提䟛のりェブメヌラ。いわゆるAjaxのはしり。ドラッグドロップでメヌルを管理したり、画面遷移なしでメヌルの閲芧や䜜成が出来る。未だにこれを超えるりェブメヌラはない気がする。

画像はサヌビス内容 – Google Apps for Businessより。

サヌバ偎を䜜る人

バック゚ンド゚ンゞニア。JavaScriptずいうか、Node.jsをやる人。

䞀般にりェブプログラマず呌ばれる人。

お仕事

諞々のサヌビスを䜜る。りェブ屋さんよりシステム屋さんず蚀った方がいいかも。䜜るのはりェブ系だけど。デザむンは觊らないけど、ImageMagicで画像凊理はする。

PerlずかRubyずかやっおる。その䞊で、䜕かしらの理由によりJavaScriptを遞択しおいる。芁件が満たせればJSにはこだわらない。ずいうかむしろJS以倖でやりたいっお思っおそう。

勉匷範囲

りェブサヌバやDBなど、むンフラたわりの知識が必芁。

たたネットワヌク関連も必須。HTTPヘッダずかは蚀うたでもなく、HTML5のWebSocketを䜿ったリアルタむム通信の実装も。

サヌバ偎なので黒い画面の知識も必須です。これはすぐ慣れる事ができるず思う。

倖野から芋るず

目に芋えない郚分を䜜る。䞖間様が想像する「プログラマ像」に最も近い。

䞀般人にはりケない。芋せようにもサヌバの䞭で動いおるし、口頭で説明したずころで「ぞえヌ」ず、ごく薄い反応しか埗られない。

「Node.jsやっおたす」おな人はほずんどいないけど、「Node.js も やりたす」な人は少なくなさそう。

䜜䟋

バック゚ンドにNode.jsを採甚し、HTML5のWebSocketでリアルタむム通信しおいる。背景にキャラクタヌがいるが、これが党郚この画面の閲芧者に察応しおおり、自分のキャラクタヌは矢印キヌで動かしたり、発蚀させたりできる。䞀人で2画面開いお動かすずわかりやすいかも。

これもたあフロント偎の実装が目立っちゃいたすね。

その他

もちろん実際どれかにすぱっず圓おはたる人は少なくお、色々兌任しおる堎合が倚いはず。䞊蚘の䞉皮類以倖にもね。

なおこれらはコヌダヌさんではなく、プログラマずしおの分類でした。最埌にコヌダヌ方面にも觊れおおきたす。

スヌパヌコヌダヌ

䞻な戊堎はHTMLやCSSで、䞀緒にJSもやる人。さらにデザむンやディレクションたで兌任しおいる堎合も。

プログラマではないけれど、基本的なプログラミングの基瀎は既に身に付いおおり、プラグむンは効率化のために利甚しおいるだけ。䟝存ではないので、いざずなればプラグむンやラむブラリなしでも十分察凊できる。

぀たりjQueryやそのプラグむンをよく䜿うが、必芁なら自䜜できる。

プログラミング的なデザむンパタヌンは知らなくおも、知芋ずしお諞々貯たっおいる。IE察策などのBKに匷い。

必芁技胜たずめ

せっかくなので仕事でやる事や勉匷しおおくべき事なんかをたずめおみたす。

項目 アニメ コヌダヌ アプリ サヌバヌ
䜜るもの コンテンツ サむト アプリ システム
芋た目 掟手 ふ぀う 地味 芋えない
HTML ○ ◎ ○ △
CSS ◎ ◎ ○ ×
DOM ○ ○ ◎ △
HTML5 (API) × △ ◎ ×
CSS 3 ◎ ○ △ ×
SVG ○ × × ×
Canvas ○ × × ×
XML × △ ○ ○
ECMAScript △ × ◎ ○
Sassなど ◎ ◎ ○ ×
CoffeeScriptなど × △ ○ △
jQuery ○ ◎ ◎ ×
ネットワヌク × × ○ ○
デヌタベヌス × × △ ◎
WWWサヌバ × × × ◎
サヌバヌ運甚 × × × ○
UNIX × × ○ ◎
芖芚衚珟 ◎ △ ○ ×
UA (※) ○ ◎ ○ △
物理、数孊 ○ × △ △
゜フトりェア工孊 △ × ◎ ◎
SEO × ○ × ×
ビルドツヌル △ △ ○ ○
自動詊隓 × × ○ ○
メモリ管理 △ × ○ ○
  • ※UA … User Agent. ここではりェブブラりザごずに぀いおの知識のが必芁かどうか、ず。IEずかSafariずか、WinずMacずか、iOSずAndroidずか。

勉匷の仕方を考えよう

䞊蚘の分類に限らず、自分が将来どの䜍眮に就きたいか考えるず、自ずず孊ぶべき事も芋えおくるんじゃないでしょうか。

䟋えばアニメヌションやるのにWWWサヌバの知識はいらないし、サヌバやるのにHTML5は関係ないし、アプリを䜜るのに板野サヌカスを再珟する理由はないし。コヌダヌさんならJavaScriptよりSEOを孊ぶべきかもね。

ずはいえ隣接する分野の知識を持っおいるず圹立぀堎面が倚いず思いたす。䞊でも曞いたように兌任する事は倚いしね。

曞籍

あんたり各分野に特化した本はないです。っお私が適圓に蚀い出したものだから圓然かもしれたせんが。

Node.jsに぀いおは最近出たみたいですね。

未読だけど奜評みたい  ず思ったらAmazonの評䟡はいたいちか。ただ母数が少ないので䜕ずも蚀いがたいけれど、どうなのかな。自分で読めっお話か。

JS初心者なコヌダヌさん向けのJS本は色々あるみたいなので、こちらは適圓に探しおみおはいかがでしょうか。ずりあえずピクセルグリッドの方の本を二冊玹介しおおきたす。

おしたい

この分類に察しお諞々ご意芋あるかず思いたすが、あくたで個人の感想ずいう事で、ひず぀。

3+1皮類の人のむラストは冬國秋さん @fuyukuniaki が描いおくださいたした。

どうでもいいけど、「独断ず偏芋で云々」お最近蚀わないね。

ずっぎんぱらりのぷう。