【プログラミング】シリコンバレーではどのテクノロジーに需要があるの? 【2015年】


「世界のITの中心は?」と質問すると、アメリカのシリコンバレーと返答が返ってくると思います。

そんなシリコンバレーですが、
海外Q&Aサイトに「アメリカのシリコンバレーのスタートアップ企業ではどの技術に需要があるの?」という質問が挙がっていました。


Source: As of 2015, in Silicon Valley start-ups, what is the relative demand of ....

OP :
自分はアメリカのシリコンバレーでビジネスビザを発行してくれる企業を探している大学生なのですが、
2015年のシリコンバレーのベンチャー企業ではどのテクノロジーに需要がありますか?

1. Ruby on Rails (RubyのMVCフレームワーク)
2. Python with Django (PythonのWebフレームワーク)
3. Javascript + Node.js (サーバーサイドJS)
4. List (プログラミング言語)




フロントエンド・デベロッパー :

Lispのことは考えなくていいよ。
全部よく使われてるけど、使われる順にランク付けしとくね。

1. Javascript
2. Ruby on Rails
3. Python/Django
4. Node.js (サーバーサイドJavascript)

自分はフロントエンド デベロッパーだからJS(Javascript)を基準に答えるけど、
全てのWebベースのプロジェクトはJSを要求されるんだ。

でもバックエンド(サーバーサイド)沢山の選択枠がある(.NET, Java.. etc)。

もし近道と考えてるならJavascriptが一番良いと思う。

言い換えれば、ROR(Ruby on Rails)デベロッパーはRORのプロジェクトを探す必要がある。

でも、JSデベロッパーは何処でも働けるんだ。

Node.jsは今だいぶ来てるよね。
でも、新しく出来た企業でも凄く重要視をしていないと思うよ。


最近ではRORやDjangoとフロントエンドMVCを組み合わせて使うことが多いかな(Angular.js, Ember.jsのような)

ビジネスビザについてはよく知らないけど、
重要なことは最低でも、どんなプログラミング言語でもフレームワークでも柔軟に習得する能力だよ。

特にスタートアップ企業では、
一つのことだけじゃなくて様々なことをしなくちゃいけないんだ。

例としては、RORでView(画面)を実装してJSを記述かな。

同様にJSでもバグの修正が必要になる。

 

少し役に立ったかな?頑張ってね!
 

フロントエンドとバックエンドは、プロセスの最初と最後の工程を指す一般的用語である。フロントエンドは各種入力をユーザーから収集し、バックエンドが使える仕様に合うようにそれを加工する。フロントエンドとバックエンドの結合部はインタフェースと呼ばれる。
 

出典元 : Wikipedia  


講師 :

質問に挙がってたテクノロジーなんだけど、データ上ではnode.jsに一番需要があるみたい。

Indeed(*世界で一番大きい求人サイト)でシリコンバレーの求人情報を調べてみたら下記の様な結果が出てきたよ。
(新卒って表現をjuniorっに置き換えた)

経験豊富なエンジニアのことをシニアデベロッパーと表現したりもします

Node.js: 22件

Ruby on Rails: 19件

Django: 9件

(Lispは0件)
 

求人情報は日々変わるけど、
3つのフレームワークにはエントリーレベルの求人が結構あるね。


ちょっと話が逸れるけど、
数週間前に自分の勤めてる学校の生徒がビジネスビザで仕事決まったよ。
Node.jsエンジニアでね!


Developer :

シリコンバレーでは凄いスキルが無い限りビジネスビザを発行するスタートアップ企業は中々ないと思うよ。
それに、凄く大きな企業じゃないと難しい。

もし有名なスタートアップ企業だったら(quoraのような)テクノロジーよりアルゴリズムのほうが重要視されることが多い。

それにプログラミングだけじゃなくて、
データベース、セキュリティ、サーバーのことも必要になる。

シリコンバレーで仕事を探すいい方法としては、、

- アメリカの大学で博士を取る
- 大企業に応募する(facebook, google ...etc)


Developer   :

Ruby on RailsとPython+Djangoは今でもスタートアップ企業で凄く使われてるよ。
でも、ソフトウェアの構造も学んだほうがいいかな。
(どの様に動いてるのか)

後、MVC(モデル / ビュー / コントローラ)の構造をしっかり理解することはフレームワークに関係なく、今後の技術を理解し易くなることに繋がるから。
 

MVCは、ユーザーインタフェースをもつアプリケーションソフトウェアを実装するためのデザインパターンである。
アプリケーションソフトウェアの内部データを、ユーザーが直接参照・編集する情報から分離する。そのためにアプリケーションソフトウェアを以下の3つの部分に分割する。

model: アプリケーションデータ、ビジネスルール、ロジック、関数
view: グラフや図などの任意の情報表現
controller: 入力を受け取りmodelとviewへの命令に変換する
 

出典元 : Wikipedia