私はプログラム未経験のネットワークエンジニア@4年目です。

今年中にプログラマ(中小ソフトハウスなど)への転職を目指してPHPの勉強をしています。
プログラマとして3,4年ほど経験を積んだ後はSierに転職してSE/PMとして働きたいと考えています。

PHPを勉強しているのは転職支援コンサルタントに「いま旬の言語です」と薦められたからですが、
いくつかの企業の求人を見ていると応募条件に「Javaを使った開発」が目立ちます。

将来的にSierで業務系開発SEとして働く事を考えている場合はPHPよりもJavaの習得の方が有利に
なるのでしょうか?
転職前(選考時)と転職成功後の観点から教えて下さい。

よろしくお願い致します。

回答の条件
  • URL必須
  • 1人3回まで
  • 登録:
  • 終了:2009/06/12 09:13:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:pahoo No.5

回答回数5960ベストアンサー獲得回数633

ポイント18pt

Java, PHP の初期からの利用者として、またSIerとしての経験からご回答します。

業務系開発といっても幅広いので、まずは、その業務が BtoB(金融、製造など)なのか BtoC(小売、コンシューマ向けWebサービス)なのか絞ってください。両者はビジネスモデルが根本的に違うので、両方同時にこなせる SIer はほとんどありません。BtoC会社とBtoB会社が合併した場合は可能ですが、おそらく事業部は異なるために人事交流は少ないでしょう。


次に、今日の開発では、OSや言語が何であるかということより、どんなフレームワークが使えるかということが重要視されます。

マイクロソフト系であれば .NET、JavaであればEnterprise JavaBeans(EJB)など、PHPであればCakePHPなどがあります。


BtoBの場合、Javaで開発するケースが多いです。

これは、BtoB向けのJavaフレームワークが充実しているためです。


BtoCの場合、PHPやRubyが主流になっています。

これは、BtoC向けのWeb用フレームワークが充実しているためです。


コンサルタントがアドバイスする「いま旬の言語です」というのは的を射た言い方で、つまり、3,4年後には賞味期限が切れる可能性もあるということです。そうなったらPGとしては廃棄されます。

PGからSEにステップアップするには、OS、言語、フレームワークのトレンドにとらわれることなく、業務分析する力が求められます。そのためには、業務のプロである顧客と円滑なコミュニケーションを構築し、顧客からヒアリングする能力も必要です。

まずは、業務をUMLで表現できると良いでしょう。ただ、私は古い人間なので、業務フロー図で表現しています。ここから、使用するビジネスロジック(およびアルゴリズム)とデータ構造を導出するまでが、SEの大きな役割です。


技術的な入門書としては、ちょうど今月号の「日経ソフトウエア」にプログラミングの基本テクニックが特集されていますので、ぜひご一読ください。この雑誌は入門PG向けの特集記事が多いので、参考になると思います。

id:nanobyte

大変参考になりました。

ご回答ありがとうございました。

2009/06/11 14:44:40

その他の回答5件)

id:tera-p No.1

回答回数92ベストアンサー獲得回数21

ポイント38pt

ええと,SEやPMというのをどう捉えてらっしゃるかによりますが,PHPしか経験がない「SE」「PM」を出してくる会社というのはお目にかかったことがないです(もし来たら帰ってもらいます).Javaのほうはあります.

もしまともにSEとしてシステム設計をしていくのであれば,設計のしっかりした言語(Javaも悪くないと思います)を先に経験したほうが良いと思います.

もちろん,人それぞれの選択ですから,あえてPHPからというのも否定しきれませんが,たとえば下記のURLの「追記」のあたりを一読してからでも遅くはないかと.

http://www.rubyist.net/~matz/20080126.html#p04

なお,選考時ですが「XXの勉強をしました」だけでは,どちらにしろ弱いような気がします.現在,ネットワークエンジニアをされているとのことで,その専門を絡めたプログラミングスキルのアピールの仕方を考えてみてはいかがでしょう.

id:nanobyte

ご回答ありがとうございます。

大変参考になりました。

2009/06/11 02:16:39
id:newta No.2

回答回数68ベストアンサー獲得回数7

ポイント19pt

業務系開発の場合、Javaの方が多い印象があります。

楽天などはRuby開発者のまつもとゆきひろさんをフェローにしてRubyを押してますね。

http://www.atmarkit.co.jp/news/200705/31/ruby.html


開発人数が少ない開発のときや

業務系じゃないWebの開発の場合に

PHPなどが多い印象があります。


と、言っても業界全体が見えるわけではないので印象でしかいえません。


言語的に言えばやはりJavaの方が大規模向けで業務向け

PHPは小さく早く作ると言った印象が個人的にはあります。


業界全体が見えるわけではないので印象でしかいえませんが、

ひとりのSEとして働いている情報の中ではこんな感じです。


個人的には質問者さんのなりたいものを考えると

Javaを勉強しておいたほうが無難に思います。

id:nanobyte

ご回答ありがとうございます。

追加質問があるのですが、業務系の場合はJavaEE(servlet,JSP)を使うのでしょうか?

その場合はJavaでウェブアプリケーションを作る練習をすれば良いのでしょうか?

2009/06/11 02:24:34
id:nekomanbo56 No.3

回答回数1138ベストアンサー獲得回数34

ポイント18pt

Java Servletは、Javaを用いて、ウェブページのためのHTML文書などを動的に生成するサーバ上で動くプログラム、またはその仕様です。この機能を用いてショッピングサイトやオンラインバンキングなどをはじめとする多種多様な動的なWebサイトが構築されています。

PHPも特にサーバサイドで動作する Web アプリケーションの開発に適した言語です。

なのでWEB開発募集の場合です。

中小であれば、触ることはありますが。


開発といってもいろんな開発職があるので、4年間に培った中で習得された言語なり、ネットワーク技術を生かされる職種を選ばれた方がいいかと。

基本Javaは仕様しない職場はないと思うので無難かと思います。

C++は、最もよく利用される商用のプログラミング言語の1つです。その理解度があればC言語の派生がJAVAなのですんなり入っていけると思います。

http://q.hatena.ne.jp/answer

id:nanobyte

ご回答ありがとうございます。

C++、perl、bashは少し触った事はあります。

Javaはコードを見ただけではチンプンカンブンだったので、OOPの基礎から勉強する事にします。

2009/06/11 14:40:40
id:JavaBlack No.4

回答回数51ベストアンサー獲得回数4

ポイント20pt

個人的意見をあげておくと,

  1. 業務系SEを名乗るならばJavaくらいはやっておくべきだろう.
  2. PHPは異質な言語だ.PHPを囓っただけでプログラミングを理解したつもりになってはダメ.
  3. 特にPHPは言語設計的に非常に悪名高い言語でもある.必要悪として使うことはあっても,何が悪いかを自覚してないと心許ない.何が悪いかを自覚するには他の「マトモな」言語を一つマスターするのが最も簡単.
  4. 今の旬な言語を今から覚えて大丈夫?覚えて使いこなす頃には旬が終わってるのじゃないの?
  5. 将来の技術の方向性を読むこともIT技術者に求められる能力の一つのはず.それを転職支援コンサルタントに依存するようでは将来に不安が残る.
  6. いずれにしても言語の2つや3つくらいは学んでおくべき.一つの言語だけしか知らないと視野が狭くなりがち.

http://local.joelonsoftware.com/mediawiki/index.php/Java%E3%82%B...

私のささやかな経験から言わせてもらうと、伝統的に大学のコンピュータサイエンスのカリキュラムで教えられているもので、多くの人がうまく理解できないものが2つあった: ポインタと再帰だ。

しかしポインタと再帰の明らかな重要性以上に重要なのは、これらの学習から得られる精神的な柔軟さと、これらを教えている授業からふるい落とされないために必要な精神的態度が、大きなシステムを構築する上で欠かせないということだ。ポインタと再帰には、ある種の推論力、抽象的思考力、そして何よりも問題を同時に複数の抽象レベルで見るという能力が要求される。そしてポインタと再帰を理解できる能力は、優れたプログラマになるための能力と直接的に相関している。

http://d.hatena.ne.jp/JavaBlack/20070726/p1

http://d.hatena.ne.jp/JavaBlack/20070726/p3

id:nanobyte

ご回答ありがとうございます。

ご紹介いただいたリンクも面白く読ませていただきました。

2009/06/11 14:37:00
id:pahoo No.5

回答回数5960ベストアンサー獲得回数633ここでベストアンサー

ポイント18pt

Java, PHP の初期からの利用者として、またSIerとしての経験からご回答します。

業務系開発といっても幅広いので、まずは、その業務が BtoB(金融、製造など)なのか BtoC(小売、コンシューマ向けWebサービス)なのか絞ってください。両者はビジネスモデルが根本的に違うので、両方同時にこなせる SIer はほとんどありません。BtoC会社とBtoB会社が合併した場合は可能ですが、おそらく事業部は異なるために人事交流は少ないでしょう。


次に、今日の開発では、OSや言語が何であるかということより、どんなフレームワークが使えるかということが重要視されます。

マイクロソフト系であれば .NET、JavaであればEnterprise JavaBeans(EJB)など、PHPであればCakePHPなどがあります。


BtoBの場合、Javaで開発するケースが多いです。

これは、BtoB向けのJavaフレームワークが充実しているためです。


BtoCの場合、PHPやRubyが主流になっています。

これは、BtoC向けのWeb用フレームワークが充実しているためです。


コンサルタントがアドバイスする「いま旬の言語です」というのは的を射た言い方で、つまり、3,4年後には賞味期限が切れる可能性もあるということです。そうなったらPGとしては廃棄されます。

PGからSEにステップアップするには、OS、言語、フレームワークのトレンドにとらわれることなく、業務分析する力が求められます。そのためには、業務のプロである顧客と円滑なコミュニケーションを構築し、顧客からヒアリングする能力も必要です。

まずは、業務をUMLで表現できると良いでしょう。ただ、私は古い人間なので、業務フロー図で表現しています。ここから、使用するビジネスロジック(およびアルゴリズム)とデータ構造を導出するまでが、SEの大きな役割です。


技術的な入門書としては、ちょうど今月号の「日経ソフトウエア」にプログラミングの基本テクニックが特集されていますので、ぜひご一読ください。この雑誌は入門PG向けの特集記事が多いので、参考になると思います。

id:nanobyte

大変参考になりました。

ご回答ありがとうございました。

2009/06/11 14:44:40
id:QuestR2 No.6

回答回数435ベストアンサー獲得回数13

ポイント15pt

>業務系開発SE

業務系なら、Javaをおさえておいたほうがよいです。

Webから基幹系まで幅広く使われています。

http://q.hatena.ne.jp/answer

業務経験がない知識にかんしては参考程度で、有利にはなりえません。

id:nanobyte

ご回答ありがとうございました。

業務知識は全くないので、PGとして数年経験(業務知識、プログラミング)を積んだ後にSEへステップアップしようと考えています。

2009/06/12 09:11:14

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません