web-dev-qa-db-ja.com

キャリアアドバイス:PHP=にとどまるか、別のキャリア(.Net?)

6〜12か月でNYに引っ越す予定なので、新しい仕事を見つけざるを得ません。私が別の都市で生活を始めることを計画しているとき、それはおそらくキャリアの変化について考える良い機会でもあります。

私はPHPと.NetとJavaについてさまざまな意見を見つけましたが、ここでは取り上げません。私はどちらの言語が優れているかについて新たな戦いを開始したくありません。プログラミング言語を知ることは、ソフトウェア開発者であるために最も重要なことではありません。本当に優れた開発者になるには、OOP、デザインパターン、テストを理解する必要があります。言語は、物事を実現するための単なるツールです。

だから私の質問に戻ります。私はITの混合経験を持っています-ITサポート担当者(Windowsの管理とサポート)として1年間、組み込みプログラミング(VB.Net 2005)で約2年間の経験があり、過去2年間はPHP/MySQLで働いています。私はMagentoのWebショップで作業し、Symfonyのいくつかのプロジェクトを支援し、いくつかのDrupalサイトを変更しました。

私の主な懸念は次のとおりです。

  1. PHPでスキルを磨き続けますか。 Zendのようないくつかの主要なPHPフレームワークの学習を開始するために、symfonyはいくつかのPHP認定を取得する可能性があります。
  2. または、.NETまたはJavaの学習を開始しますか。 .NETの方が使い慣れているので、選択が.NETとJavaの間にある場合は、おそらくそれを選択します(または、Javaを選択するように説得することもできます)。

キャリア的には、何が最良の選択なのかわかりません。新しいフレームワークと言語の学習は、PHPの既存のスキルを向上させるよりも時間がかかります。しかし、.NETには多くの可能性(Windows 7 Phone開発、Silverlight、WPF)があり、より良い仕事を見つける可能性が大きくなる可能性があります。

私の研究によれば、PHPの仕事は少なくとも.NETよりも給料が少ないです(私が間違っている場合は修正してください)。しかし、今.NETから始めれば、私は初心者であり、給与は低くなります。ニューヨークで5万〜6万ドルを超える仕事を見つけようとするためには、少なくとも2年以上の言語での経験が必要です。今後2〜3年の私の主な目標は、6万〜8万ドルのカテゴリーで仕事を見つけることです。誤解しないでください。私はお金を追いかけているのではありませんが、家族を始めようとしているときはお金が重要な要素です。

私は27歳ですが、自分のキャリアに関して間違った判断を下す余地はあまりないと感じているので、どんなアドバイスでも大歓迎です。

更新

問題を解決するために時間を割いていただきありがとうございます。回答とコメントはすべて非常に役に立ちました。私はPHPに固執することに決めましたが、C#とSilverlight 4についても学習することにしました。

34
Christian P

私は51歳で、1987年の卒業後に初めて有料のギグを取得して以来、少なくとも15の言語やフレームワークを使用しています。

お大事に。

やりたくなかったので、管理職に就くことはありませんでしたが、プログラミングの方法や、チームのモチベーションを保ち、優れたコードを提供する方法を知っています。あなたは人々のスキルに取り組み、あなたを引き伸ばす興味深い仕事を探す必要があります。学んだり楽しんだりするのをやめたことはありませんが、途中で止めることでできることはありましたが、コーディングや旅行ではありませんでした。

自分の原則を損なうことなく生計を立て、個人の責任を果たすことができる限り、自分の行動(私の両親の世代にはなかった贅沢)を楽しむ限り、そのまま続けてください。

.NetとJavaは一般的に企業向けです(有用な処理を行うにはコストがかかりますが、拡張性は非常に高いため)、PHPは一般にスタートアップです。私はRubyを使用しています_(通常、何らかの理由でデザインスタジオから生まれたスタートアップ)。多くの人が独立しています。 PHPにこだわる場合は、OOのことを学んでください。あなたが持っているものを少し再実装したほうがいいですが、最終的には人々が物事を行う方法になると思います。Javaそして、彼らはそれをはるかに動的にすることができたでしょう。 Pythonを行って旅行をしたい人は、結局世界中であらゆる種類の興味深い科学的およびゲーム関連のことをやってしまう可能性があります。 Perlも依然としてランナーであり、同様のプロファイルを持っています。

言語を忘れて、好きな産業を選び、人間が管理する会社を選び、それを高く評価する人々に価値を提供する楽しみを持ってください。後悔はしません。

64
Francis Fish

プログラミング言語の選択は、あなたのキャリアとどのような関係がありますか?

この質問は、「職場には2つの選択肢があります。上司がノルウェー語のアクセントがある場所で働くべきですか、それとも上司がスペイン語のアクセントを持つ場所で働くべきですか?」

たくさんより重要なキャリアの考慮事項があります。

  1. スタートアップまたは設立された会社?
  2. ITがサポート機能である製品会社または会社?
  3. 新しいことを学んだり、古いものをリハッシュしたりしますか?
  4. 9から5または「80時間の仕事をしたいですか?」
  5. 同僚はいいですか、それとも同僚ですか?
  6. 賢い同僚または愚かな同僚?
  7. スーツとネクタイ、それともTシャツ?

このリストは何時間も続く可能性があります。プログラミング言語の選択は、髪の毛を左または右にとかすかどうかの選択と同じくらい、プログラマーのキャリアに関連しています。あなたがたまたま話しているプログラミング言語の方言に関係なく、それはすべてソフトウェア開発です。

120
Joel Spolsky

できる限り多くの言語を学習します。できれば、主要な開発分野ごとに少なくとも1つは学習してください。

  • スクリプトプログラミング言語(PHPを既に持っている、Rubyを試す、Pythonまたは他の何か))
  • 豊富なフレームワークで仮想マシン言語にコンパイル:.Net、Mono、Java
  • ベアメタルにコンパイル:C/C++
  • 関数型言語:LISP、F#、Haskell

これらはそれぞれ、ソフトウェア開発の基本について教えてくれます。もちろん、それに加えて、さまざまな設計アプローチ(OO、機能、データ駆動型)、さまざまなチーム作業方法(アジャイル、tdd、より厳格なタイプと比較)、さまざまなプラットフォーム、さまざまな展開メカニズム(ネイティブ、フレームワークベース、ウェブ)。リストは続く。言語の流暢さは全体のほんの一部です。

これらすべてについて、熟練するには、それらを使用して少なくとも1つの実際の製品を作成する必要があります。

一部の人々は、1つのテクノロジー(PHP、.Net、Java)に特化し、そのテクノロジーを中心にキャリアを築いて進歩を遂げる必要があるとあなたに告げるでしょう。私はこれにまったく同意しません。私は、10年間を費やして1週間に1つのことを行ってきた1つ以上のプラットフォームとテクノロジーで数回ブロックを回っていた開発者を取り上げます。その理由は、テクノロジーは毎年変化するため、新しいテクノロジーを手に入れてAPIを読み、ライブラリーの機能を暗記するだけでなく、より一般的な方法で経験を適用できる開発者は、長期。では、10年間の.Netのベテランが.Netのスターティングブロックからより速く離れるようにしますが、その初期のリードは約1か月で失われます。それは、さまざまなアプローチやテクノロジーで経験されているという広い視野と比べると、重要ではありません。

23
Steve Streeting

PHP仕事を探すことをお勧めします。それがあなたが一番得意なことだからです。

また、学習したい新しいテクノロジーについて学び始めて、最終的にそれらを使用して仕事を探すことができるようにすることをお勧めします。あなたはこれらの巨大なものを十分に知って生産的になることができます。 timepracticeが必要です。時間と練習量を過小評価しないでください。

「Javaでプログラムできる」潜在的な従業員が何ができるかを推定するには、 Sun Javaチュートリアル[〜#〜] i [〜#〜]は、リストされた概念の少なくとも半分に精通していることを想定しています。あなたが書いたプログラムを使って正しくそのレベルに達するには、6か月以上の余暇の勉強が必要だと思います。

7
user1249

私は荒らしているようには見えませんが、学ぶべき言語は英語です。あなたの投稿にはたくさんのエラーがあり、それはずさんに見えます。私が採用していて、それがあなたの履歴書だったとしたら、あなたがどんなプログラミング言語を知っているかは気にしないでしょう。あなたの英語の不器用さがプログラミングの仕事に引き継がれると思います。

第二言語として英語を使用しているようには見えませんでした(もちろん、私は間違っている可能性もあります)が、ほとんどの採用担当マネージャーが一時停止するのに十分な文法およびスペルの誤りがありました。彼らは最初はあなたの書かれた単語を見るだけなので、あなたはそれを修正する必要があります。

この質問に対する長期的な回答は、基本的に私たちの尊敬するホスト(Joel Spolsky)とSteve Streetingが言ったことです。中核となるプログラミングは、言語を使用することではなく、コンピュータを使用して問題を解決することであり、時間をかけて学習し、作業し、考えなければならない技術です。コーディング方法を知っていても、プログラマーになるわけではありません。

しかし、あなたは実用的で時間に敏感なトピックを尋ねました...今、あなたは何をすべきですか?

PHP=引っ越しまで掘り下げます。一生懸命、週20時間、仕事の外でハードに掘り下げます。PHP itは非常に簡単です..ホスティングアカウントとドメインを取得し、アプリの構築を開始します。焦点を絞った努力で、6か月は永遠です。その間、本当に上手になります。これは、Newで良い仕事を見つけるのに役立ちますヨーク、そしてあなたがブートするのに優れたプログラマーになる可能性が非常に高いでしょう。

BTW ..まだ知らない場合は、StackExchangeファミリーに IT雇用サイト があります。

その後、人生の移行が少し落ち着いたら、 Mr。Streeting's playbook をフォローし始め、コーディングのトレードではなくプログラミングの技術について学びます。仕事以外の時間を使って、他のプラットフォームや他のツールで物事を読んだり実行したりします。

5
tomjedrz

短期;米国での雇用慣行はわかりませんが、6〜12か月で引っ越すことを考慮して、当面はPHPそれの経験の。

私のここでの経験(オランダ)は、企業はテクノロジーとフレームワークの経験に非常に短期間焦点を合わせる傾向があるということです。 「年間のC#の経験」と尋ねても、言語は実際にはそうではありません。つまり、「フレームワーク/クラスライブラリとツールの3年間の経験) d C = "で使用します。

(そうでなければ、C#の構文と言語機能を学ぶのに3年間必要な人を雇いたいと思う理由は私を超えています。私は雇いたくない人のように思えます。)

新しい言語を学ぶ。静的、動的、機能性は、視野を広げる上で大きな価値があります。ただし、関連するクラスライブラリとその言語で物事を行う方法を学ぶには、経験が必要です。

テクノロジースタックを1つ選び、それについて深く学ぶことをお勧めします。他の環境を使用してインスピレーションを得ます。

もちろん個人的な好みも関係してくる。たとえば、市場はたくさんありますが、PHP job :-Pを受け入れることは決してありません。スタックを選択し、それに基づいて就職活動をします。

長期的なキャリアの構築については、コーディング(最終的には、ドキュメントを学習し、読み書きできるようにすることがすべてです)とその日のテクノロジーだけでなく、ソフトスキルなどについても検討する必要があります。テクノロジーの出入りはかなり迅速です。もちろん、グッドプラクティスやより一般的なノウハウについて学ぶべきことはたくさんありますが、残念ながら、私の経験では、彼らが就職市場で探すことはめったにありません。

1
Joppe

多くの場合、人々はプログラミング言語とフレームワーク/テクノロジースタックを混在させていると思います。新しい言語を習得するのは比較的簡単ですが、大きなテクノロジーを使うとはるかに難しくなります。最も重要なのは全体的なプログラミング/問題解決の経験であるといういくつかの回答に同意しますが、誰もが1週間で完全に新しいテクノロジーを理解できるとは思いません。

確かに、開発者の大部分は、1冊のテクニカルブックを一度も読んだことがなく、使用しているテクノロジーのビルディングブロックそのものを理解していません。彼らは問題から抜け出すだけで、非常に「成功」​​しています。私はPHPでキャリアを始めました。最初はHTTPがどのように機能するのかさえ理解していませんでした。しかし、私が最も尊敬している一部の雇用主は、「物事がどのように機能するか」についての深い理解を期待しています。彼らのプロジェクトの成功の機会を増やすため。

この理解を得るために最低限必要なことは、新しい馴染みのない開発環境での一般的な問題の解決策のプロトタイプを作成するのに十分な時間を置いて、優れた本を何冊か読むことです。 1週間でできますか?これができる人と一緒に働きたいですが、すぐにそういう人に会いたいとは思いません。

一部の雇用主は、実際に他のテクノロジースタック(ある場合)での深い技術経験全体を尊重し、この理解を得るのに十分な時間を与える準備ができていますが、残念ながらほとんどはそうではありません。

また、テクノロジーを変更する場合、最も重要なのはあなたの個性です。物事がどのように機能し、新しい分野でどのように行われるかを理解するのに十分な時間を費やす、謙虚で好奇心の強い人です。

要約すると、私の答えは次のようになります。十分な可能性があり、(最も重要なことに)仕事であなたを幸せにするテクノロジーを選択してください。このテクノロジーを専門とする求人市場はこれを重視し、目標給与を得るのに必要な数年はそれに見合う価値があります。しかし、熱狂しすぎないようにしてください。他のテクノロジーに少し時間をかけてください。全体的にはるかに優れたプロフェッショナルになります。

1
Konstantin

主なポイントは、結局のところ、ソフトウェアエンジニアは、その制限を除いて、言語が現在のタスクにほとんど影響を及ぼさない状態になるはずだと思います。

あなたが言語を知っているかどうかにかかわらず、あなたがあなたのベアリングを見つける間だけ初日ほどスピードアップするためのマニュアルがあれば、違いを生むべきではありません。

とはいえ、プロプライエタリ言語では、ドキュメントやサンプルがウェブ上に広がらない傾向があるため、仕事に持ち帰りたい場合に慣れにくくなり、問題が発生しやすくなります。

1
Orbling

私のアドバイスは、あなたが興味を持っていることをしている仕事を見つけて、楽しむことです。 PHPを楽しんでいるなら、続けてPHP=スキルを開発してみませんか。興味のあることを行うスキルを学び、開発する方がはるかに簡単です。

.NETまたはJavaを以前に見たことがありますか?そうでない場合は、それらの言語に興味がないことを示唆している可能性がありますが、おそらく1週間ほどかけてそれぞれを見て、あなたがどちらかに興味があるかどうか自分自身のために。

1
cspolton

私はジョエルに同意する必要があります。しかし、彼の答えは技術的なスキルと好みを超えています。

私の経験では、使用したいものではなく、特定のテクノロジーやプログラミング言語を指し示すのが通常の仕事の要件です。彼らがまだ何を使うのかを定義していないスタートアップでない限り。そして、あなたが探しているものを正確に利用して仕事/会社を見つけることを誰も保証できません。

だから本当の問題は、あなたは新しいものを手に入れるのが得意ですか?プログラミング言語に関係なく、問題に対処してタイムリーに解決できますか?

優れたプログラマは、ソフトウェアの構築とソフトウェアエンジニアリングの概念をよく理解している必要があります。あなたの質問は、あなたがそれらを学ぶために十分な時間を費やしていないと私に信じさせます、それはおそらくあなたがあなたのスキルとあなたの実際の可能性が何であるかを不確かにします。そして正直に言うと、それを実行していない場合は、その時間です。それがないと、おそらく遠くまで行かないでしょう。

私たちのほとんどのプログラマは、30歳になるまで注意を払わない傾向があるもう1つのことがあります。プログラミングスキルは、優れたプログラマを作るスキルの半分にすぎません。あなたは良いチームプレイヤーですか?あなたは他の人から知識を受け取っているのと同じくらい(またはそうでなければならないのと同じくらい)同僚に喜んで知識を渡しますか?人々のスキルは私たちの多くによって軽視されていますが、実際には非常に重要です。

1
mspir

この掲示板に記載されているほとんどのコメントに同意しません。

ソフトウェアエンジニアリングの原則と理論を学ぶ以外に、習得する言語はキャリアの選択です。そのため、JavaプログラマーとPHPプログラマーがいます。 PHPプログラマーはおそらくNASAで働くことはなく、JavaプログラマーはおそらくWebショップで働くことはないでしょう。

アメリカの企業で仕事をしたいのなら、Java/.Netに行くほうがよいでしょう。あなたの良い収入は入ることができますが、彼らにあなたの人生を寄付する準備ができています(時間的に)。

独立したフリーランサーになりたい、そしてWebテクノロジーを駆使して高速で生活したいのなら、PHPの方が良いでしょう。ここでは多くの作業が行われますが、給与は大きく異なり、独立しているということは、すべてのトム、ディック、ハリーと協力して、あなたをペニーのために雇おうとするアイデアです。

PHPとJavaは一部重複していますが、企業の仕事(Java REST PHPフロントエンドのサービス)でのみ見られますが、 Javaの近くのどこにもウェブショップや独立したフリーランスの仕事を見つけないでください。

いずれの場合も、特定の状況で役立つためには、多くの時間と献身が必要です。

有能でPHP開発者を求めているためには、スキルセットがいっぱい入ったバッグが必要です。 CSS、HTML4/5、そして最も間違いなくJavaScript DOM/Ajax/Jqueryに加えて、少なくともZend(アメリカのテイスターの選択)、Codeignitor、cakePHPなどの実行可能なフレームワークを知っていることが期待されるでしょう。 「ビッグスリー」CMS:Drupal、Wordpress、Magentoを知る必要があります。これらのスキルセットを身につければ、どこにでも仕事を着陸できるPHPスペシャリストになります。ご存知のように、これらすべてを取り入れることは言語への献身であり、Perlを学ぶことはあなたがエキスパートDrupalまたはZend開発者になるのに役立つわけではないためです。

Javaについても同じことが言えます。OOP、J2EE、REST/SOAP、Spring/Strutsなどです。マスターに何年もかかる他のツール群です。

ここで誰かがJavaを1年間コーディングしてからPHP(または任意のスクリプト言語)に戻ってきました。難しい。ぎこちない感じです。

私はフォーチュン500の会社で働いており、Java開発者はPHP開発者が行うことを実行できず、PHP開発者は何も実行できませんJava開発者が行います。しかし、どちらも経済的には優れています。なぜなら、彼らは自分の分野の専門家であり、選択した言語とそれに付随する多数のツールだからです。

1
coder3

言語とプラットフォームはそれほど重要ではありません。堅実な人々とcomp sciスキルを学びます。多くの人がこれを言っていますが、具体的なことはしていませんので、私にそれをさせてください。ここにいくつか学ぶべきことがあります

  • アルゴリズムとデータ構造。
  • 並行性
  • 機械学習
  • システムレベルのプログラミング
  • 情報検索および検索エンジン
0
jshen