it-swarm-id.com

Nasihat karir: tetap dengan PHP atau memulai karier baru di bidang lain (.Net?)

Saya berencana pindah ke NY dalam puncak 6-12 bulan, jadi saya terpaksa mencari pekerjaan baru. Ketika saya berencana untuk memulai hidup saya di kota lain, mungkin juga saat yang tepat untuk memikirkan perubahan karier.

Saya telah menemukan banyak pendapat berbeda tentang PHP vs .Net vs Java dan ini bukan topik di sini. Saya tidak ingin memulai pertarungan baru tentang bahasa mana yang lebih baik. Mengetahui bahasa pemrograman bukanlah hal yang paling penting untuk menjadi pengembang perangkat lunak. Untuk menjadi pengembang yang benar-benar baik, Anda perlu mengetahui OOP, pola desain, pengujian ... dan bahasa hanyalah alat untuk mewujudkan sesuatu.

Jadi kembali ke pertanyaan saya. Saya memiliki pengalaman yang beragam dalam IT - 1 tahun sebagai orang dukungan TI (administrasi dan dukungan Windows), sekitar 2 tahun pengalaman dalam pemrograman tertanam (VB.Net 2005) dan selama 2 tahun terakhir saya bekerja dengan PHP/MySQL. Saya telah bekerja dengan toko web Magento, membantu dalam beberapa proyek di Symfony, memodifikasi beberapa situs Drupal.

Kekhawatiran utama saya adalah sebagai berikut:

  1. Apakah saya terus meningkatkan keterampilan saya dalam PHP mis. untuk mulai mempelajari beberapa kerangka kerja PHP utama seperti Zend, Symfony mungkin mendapatkan sertifikasi PHP.
  2. Atau apakah saya mulai belajar .NET atau Java. Saya lebih akrab dengan .NET jadi saya mungkin akan memilihnya jika ada pilihan .NET dan Java (atau Anda dapat meyakinkan saya untuk memilih Java :).

Dari segi karir, saya tidak tahu apa pilihan terbaik. Mempelajari kerangka kerja dan bahasa baru lebih memakan waktu daripada meningkatkan keterampilan saya yang ada dalam PHP. Tetapi dengan .NET Anda memiliki banyak kemungkinan (pengembangan Telepon Windows 7, Silverlight, WPF) dan kemungkinan peluang yang lebih besar untuk menemukan pekerjaan yang lebih baik.

Pekerjaan PHP dibayar kurang dari itu. NET, setidaknya, menurut penelitian saya (benar kalau saya salah). Tetapi jika saya mulai sekarang dengan .NET Saya hanya pemula dan gaji saya akan rendah. Saya membutuhkan setidaknya 2+ tahun pengalaman dalam beberapa bahasa untuk mencoba mencari pekerjaan yang membayar lebih dari $ 50-60k di NY. Tujuan utama saya dalam 2-3 tahun ke depan adalah mencoba mencari pekerjaan dalam kategori $ 60-80k. Jangan salah paham, saya tidak hanya mengejar uang, tetapi uang adalah faktor penting ketika Anda mencoba memulai sebuah keluarga.

Saya berusia 27 tahun dan saya merasa bahwa tidak ada banyak ruang untuk keputusan yang salah mengenai karier saya, jadi saran apa pun akan sangat diterima.

Perbarui

Terima kasih semua telah meluangkan waktu untuk membantu saya dengan masalah saya. Semua jawaban dan komentar sangat membantu. Saya telah memutuskan untuk tetap dengan PHP tetapi juga untuk belajar C # dan Silverlight 4. Kita akan melihat ke mana hidup akan membawa saya.

34
Christian P

Saya berusia 51 tahun dan telah menggunakan setidaknya 15 bahasa dan/atau kerangka kerja sejak saya mendapatkan pekerjaan pertama setelah lulus pada tahun 1987.

Diberkatilah Anda.

Saya tidak pernah masuk ke manajemen karena saya tidak mau, tetapi saya tahu cara memprogram dan saya tahu bagaimana membuat tim tetap termotivasi dan memberikan kode yang baik. Anda perlu bekerja pada keterampilan orang dan mencari pekerjaan menarik yang membentang Anda. Saya tidak pernah berhenti belajar atau bersenang-senang, tetapi ada saat-saat ketika saya berada di jalan yang bisa saya lakukan dengan berhenti - tetapi tidak coding, bepergian.

Selama Anda dapat mencari nafkah dan memenuhi komitmen pribadi Anda tanpa mengorbankan prinsip-prinsip Anda, selama Anda menikmati apa yang Anda lakukan (sebuah kemewahan yang tidak dimiliki generasi orang tua saya), teruslah lanjutkan.

.Net dan Java pada umumnya bersifat korporat (karena mahal untuk melakukan hal-hal yang bermanfaat dengan, tetapi skala dengan sangat baik), PHP pada umumnya startup, saya lakukan Ruby (biasanya startup yang keluar dari studio desain untuk beberapa alasan) untuk banyak orang sebagai independen. Jika Anda tetap dengan PHP pelajari OO barang, karena saya pikir pada akhirnya akan mulai menjadi cara orang melakukan sesuatu, meskipun itu adalah implementasi ulang yang sedikit lebih baik dari apa yang Anda miliki dengan Java dan mereka dapat memiliki membuatnya lebih dinamis. Orang-orang yang melakukan Python dan ingin melakukan perjalanan dapat berakhir dengan melakukan segala macam hal ilmiah dan permainan yang menarik di seluruh dunia. Perl masih juga pelari dan memiliki kesamaan Profil.

Lupakan bahasa, pilih dan industri yang Anda suka, pilih perusahaan yang dikelola oleh manusia, dan bersenang-senanglah memberikan nilai kepada orang-orang yang menghargainya. Anda tidak akan menyesalinya.

64
Francis Fish

Apa hubungan pilihan bahasa pemrograman dengan karir Anda?

Pertanyaan ini seperti bertanya, "Saya punya dua pilihan tempat bekerja. Haruskah saya bekerja di tempat di mana bos memiliki aksen norwegia, atau di mana bos memiliki aksen Spanyol?"

Ada banyak pertimbangan karir yang lebih penting.

  1. Startup atau perusahaan mapan?
  2. Perusahaan produk atau perusahaan di mana IT adalah fungsi pendukung?
  3. Apakah Anda akan mempelajari hal-hal baru atau mengulangi yang lama?
  4. 9 hingga 5 atau "bekerja setiap 80 jam yang Anda inginkan?"
  5. Rekan kerja yang baik atau rekan kerja yang jahat?
  6. Rekan kerja cerdas atau rekan kerja bodoh?
  7. Jas dan dasi atau kaos?

Daftar ini bisa berlangsung berjam-jam. Pilihan bahasa pemrograman sama relevannya dengan karier seorang programmer seperti pilihan apakah menyisir rambut Anda ke kiri atau ke kanan. Ini semua pengembangan perangkat lunak apa pun dialek bahasa pemrograman yang Anda gunakan.

120
Joel Spolsky

Pelajari sebanyak mungkin bahasa, setidaknya satu dari setiap bidang utama pengembangan.

  • Bahasa pemrograman skrip (Anda sudah PHP sudah, coba Ruby, Python atau yang lainnya)
  • Dikompilasi ke bahasa mesin virtual dengan kerangka kerja yang kaya: .Net, Mono, Java
  • Dikompilasi dengan bare-metal: C/C++
  • Bahasa fungsional: LISP, F #, Haskell

Masing-masing akan mengajarkan Anda sesuatu tentang dasar-dasar pengembangan perangkat lunak. Tentu saja, di atas itu Anda perlu mengalami pendekatan desain yang berbeda (OO, fungsional, berbasis data), metode kerja tim yang berbeda (gesit, tdd, dibandingkan dengan jenis yang lebih kaku), platform yang berbeda, mekanisme penyebaran yang berbeda (asli , berbasis kerangka kerja, web). Daftarnya berlanjut. Kefasihan bahasa hanyalah satu bagian kecil dari keseluruhan.

Untuk semua hal ini, Anda harus membuat setidaknya satu produk nyata untuk menggunakannya agar mahir.

Beberapa orang akan memberi tahu Anda bahwa Anda harus berspesialisasi dalam satu teknologi (PHP, .Net, Java) dan membangun karier yang sebagian besar di sekitar itu untuk membuat kemajuan. Saya tidak setuju dengan ini sama sekali. Saya akan mengajak seorang pengembang yang telah beberapa kali berada di sekitar blok dengan platform dan teknologi berbeda dari yang telah menghabiskan 10 tahun melakukan satu hal setiap hari dalam seminggu. Alasannya adalah bahwa teknologi berubah setiap tahun, dan pengembang yang mampu mengambil teknologi baru, membaca API dan menerapkan pengalaman mereka dengan cara yang lebih umum daripada sekadar mengetahui fungsi perpustakaan dengan hati, akan jauh lebih produktif di jangka panjang. Oke, jadi veteran .Net 10 tahun itu akan lebih cepat keluar dari blok awal. Net, tetapi keunggulan awal itu hilang dalam waktu sekitar satu bulan. Ini tidak relevan dibandingkan dengan gambaran yang lebih luas tentang pengalaman dalam berbagai pendekatan dan teknologi.

23
Steve Streeting

Saya akan menyarankan mencari pekerjaan PHP karena itulah yang Anda lakukan terbaik.

Saya juga menyarankan Anda mulai mendidik diri sendiri dalam teknologi baru yang ingin Anda pelajari sehingga Anda akhirnya dapat mulai mencari pekerjaan menggunakan itu, tetapi jangan lakukan itu pada tenggat waktu yang sangat singkat karena Anda akan menemukan bahwa hal-hal ini sangat besar dan pengusaha berharap Anda cukup tahu raksasa ini menjadi produktif. Itu membutuhkan waktu dan latihan . Jangan meremehkan jumlah waktu dan jumlah latihan yang harus Anda lakukan.

Untuk memberi Anda perkiraan kemampuan apa yang harus dimiliki "Saya dapat memprogram di Jawa", Anda dapat melihat Sun Java Tutorial . [~ # ~] i [~ # ~] akan mengharapkan Anda terbiasa dengan setidaknya setengah dari konsep yang terdaftar, di mana yang familier berarti dapat menggunakannya dalam sebuah program yang ditulis oleh Anda, dan menggunakannya dengan benar . Saya berharap itu akan memakan waktu lebih dari 6 bulan waktu luang belajar untuk mencapai tingkat itu.

7
user1249

Saya benci terlihat seperti troll, tetapi bahasa yang harus Anda pelajari adalah bahasa Inggris. Ada banyak kesalahan dalam posting Anda dan itu hanya terlihat ceroboh. Jika saya merekrut dan itu adalah resume Anda, saya tidak akan peduli bahasa pemrograman apa yang Anda tahu Anda ketahui, saya akan berasumsi bahwa kecerobohan Anda dengan bahasa Inggris akan terbawa ke pekerjaan pemrograman Anda.

Tampaknya Anda tidak menggunakan bahasa Inggris sebagai bahasa kedua (tentu saja saya bisa salah), tetapi ada cukup banyak kesalahan tata bahasa dan ejaan untuk membuat sebagian besar manajer perekrutan berhenti. Karena mereka hanya akan melihat kata-kata tertulis Anda pada awalnya, Anda perlu memperbaikinya.

Jawaban jangka panjang untuk pertanyaan ini pada dasarnya adalah apa yang dikatakan oleh Tuan Rumah kita yang terhormat (Joel Spolsky) dan Steve Streeting. Pemrograman pada intinya bukan tentang bahasa, melainkan tentang menggunakan komputer untuk menyelesaikan masalah, dan merupakan keahlian yang harus dipelajari dan dikerjakan serta dipikirkan seiring waktu. Mengetahui bagaimana kode tidak menjadikannya seorang programmer.

Tapi Anda bertanya pada topik yang pragmatis dan sensitif terhadap waktu .. apa yang harus Anda lakukan SEKARANG?

Saya sarankan Anda Menggali PHP sampai pindah. Gali ke dalamnya, keras, sangat sulit, 20 jam seminggu di luar kerja keras. Dengan PHP it cukup mudah .. dapatkan akun hosting dan domain dan mulai membangun aplikasi. Dengan upaya yang terfokus, 6 bulan adalah selamanya. Selama waktu itu, menjadi sangat baik dalam hal ini. Ini akan membantu Anda menemukan pekerjaan yang baik sekali di New York, dan kemungkinan besar akan membuat Anda seorang programmer yang lebih baik untuk boot.

BTW .. jika Anda belum tahu, ada situs kerja IT di keluarga StackExchange.

LALU, ketika transisi kehidupan telah sedikit tenang, mulailah mengikuti buku pedoman Mr Streeting dan mendidik diri sendiri tentang keahlian pemrograman daripada perdagangan coding. Gunakan waktu di luar pekerjaan untuk membaca dan melakukan hal-hal di platform lain dan dengan alat lain.

5
tomjedrz

Jangka pendek; Saya tidak tahu apa praktik perekrutan di AS, tetapi mengingat Anda pindah dalam 6 ~ 12 bulan saya akan, untuk saat ini, mempertimbangkan tetap dengan PHP karena Anda memiliki dua tahun pengalaman dengan itu.

Pengalaman saya di sini (di Belanda) adalah bahwa perusahaan cenderung memiliki fokus jangka pendek pada teknologi dan pengalaman kerangka kerja. Bahasa ini benar-benar tidak -it-, bahkan jika mereka bertanya "tahun pengalaman C #" mereka bermaksud mengatakan "tahun pengalaman dengan framework/class perpustakaan dan alat yang Anda gunakan" d akan digunakan dengan C # ".

(Kalau tidak, mengapa mereka ingin mempekerjakan orang yang membutuhkan 3 tahun untuk mempelajari sintaks C # dan fitur bahasa di luar saya. Kedengarannya seperti seseorang yang saya tidak ingin mempekerjakan.)

Belajar bahasa baru; statis, dinamis, fungsional, sangat berharga dalam hal memperluas perspektif Anda. Namun mempelajari perpustakaan kelas yang relevan dan cara melakukan sesuatu dalam bahasa itu akan membutuhkan pengalaman.

Saya akan merekomendasikan mengambil keputusan untuk memilih satu tumpukan teknologi dan mempelajarinya secara mendalam. Gunakan lingkungan lain untuk inspirasi.

Tentu saja preferensi pribadi juga ikut berperan. Sebagai contoh, sementara ada banyak pasar untuk itu, saya tidak akan pernah menerima pekerjaan PHP :-P Saya memilih tumpukan dan saya mencari pekerjaan berdasarkan itu.

Sedangkan untuk berkarir, jangka panjang, saya pikir Anda harus melihat lebih dari coding (pada akhirnya itu semua tentang belajar dan mampu membaca dan/atau membaca skim) dan teknologi saat ini dan melihat lebih ke soft skill dan semacamnya. Teknologi datang dan pergi dengan agak cepat. Tentu saja ada banyak yang harus dipelajari dalam praktik yang baik dan pengetahuan yang lebih umum, sayangnya mereka jarang dicari di pasar kerja menurut pengalaman saya.

1
Joppe

Saya berpikir bahwa sering orang mencampur bahasa pemrograman dan kerangka kerja/tumpukan teknologi. Ini relatif mudah untuk belajar bahasa baru, tetapi jauh lebih sulit dengan teknologi besar. Saya setuju dengan beberapa jawaban bahwa yang paling penting adalah pengalaman pemrograman/pemecahan masalah Anda secara keseluruhan, tetapi saya tidak percaya bahwa siapa pun dapat MEMAHAMI teknologi yang sepenuhnya baru dalam 1 minggu.

Tentu saja, sebagian besar pengembang tidak pernah membaca satu buku teknis pun dan tidak memahami blok-blok pembangun teknologi yang mereka gunakan. Mereka hanya meretas jalan keluar dari masalah dan sangat "sukses". Saya sendiri memulai karir di PHP bahkan tanpa memahami bagaimana HTTP bekerja pada awalnya. Tetapi beberapa majikan, yang paling saya hormati, mengharapkan pemahaman yang mendalam tentang "bagaimana hal-hal bekerja", hanya karena ini cenderung untuk meningkatkan peluang keberhasilan proyek mereka.

Paling tidak yang perlu Anda lakukan untuk mendapatkan pemahaman ini adalah membaca beberapa buku BAIK dengan cukup waktu untuk membuat prototipe solusi untuk masalah umum di lingkungan pengembangan baru yang tidak dikenal. Apakah mungkin dilakukan dalam seminggu? Saya ingin bekerja dengan orang-orang yang mampu melakukan ini, tetapi saya tidak berharap untuk melihat orang-orang seperti itu dalam waktu dekat.

Beberapa pengusaha sebenarnya siap memberi Anda cukup waktu untuk memperoleh pemahaman ini, menghargai pengalaman teknis mendalam Anda secara keseluruhan dalam tumpukan teknologi lainnya (jika Anda memilikinya), tetapi sayangnya sebagian besar tidak.

Juga, ketika Anda mengubah teknologi, yang paling penting adalah kepribadian Anda - betapa rendah hati dan penasarannya orang yang Anda habiskan cukup waktu untuk memahami cara kerja dan cara kerja di area baru Anda.

Singkatnya, jawaban saya adalah sebagai berikut. Pilih teknologi, yang memiliki potensi cukup dan yang (paling penting) akan membuat Anda bahagia dalam pekerjaan Anda. Mengkhususkan diri dalam teknologi ini, pasar kerja akan menghargai ini dan beberapa tahun yang dibutuhkan untuk mendapatkan target gaji Anda akan sia-sia. Tapi jangan terlalu bersemangat, menghabiskan waktu dengan teknologi lain, itu akan membuat Anda secara keseluruhan jauh lebih baik secara PROFESIONAL.

1
Konstantin

Saya pikir intinya adalah, pada akhirnya seorang insinyur perangkat lunak harus sampai ke keadaan di mana bahasa sebagian besar tidak penting untuk tugas yang sedang dihadapi, kecuali dalam keterbatasannya.

Apakah Anda tahu bahasa atau tidak seharusnya tidak membuat perbedaan, asalkan Anda memiliki manual, hanya untuk mempercepat untuk hari pertama atau lebih saat Anda menemukan bantalan Anda.

Karena itu, bahasa yang dipatenkan cenderung memiliki lebih sedikit dokumentasi dan contoh yang tersebar di seluruh web, dan karenanya lebih sulit untuk menjadi terbiasa dan menimbulkan masalah jika Anda ingin membawa pulang pekerjaan Anda.

1
Orbling

Saran saya adalah mencari pekerjaan dengan melakukan apa yang Anda minati, dan senang melakukannya. Jika Anda menikmati PHP, mengapa tidak terus mengembangkan keterampilan Anda PHP. Jauh lebih mudah untuk belajar dan mengembangkan keterampilan melakukan sesuatu yang Anda minati.

Pernahkah Anda melihat .NET atau Java sebelumnya? Jika tidak, itu mungkin menunjukkan bahwa Anda tidak tertarik dengan bahasa-bahasa itu, tetapi mungkin Anda bisa menghabiskan waktu seminggu atau lebih melihat masing-masing dan melihat untuk diri Anda sendiri apakah Anda tertarik.

1
cspolton

Saya harus setuju dengan Joel. Tetapi jawabannya melampaui keterampilan teknis dan preferensi.

Dalam pengalaman saya, biasanya persyaratan pekerjaan Anda yang mengarahkan Anda ke teknologi atau bahasa pemrograman tertentu, bukan apa yang ingin Anda gunakan; kecuali startup yang belum menentukan apa yang akan mereka gunakan. Dan tidak ada yang bisa menjamin bahwa Anda akan menemukan pekerjaan/perusahaan memanfaatkan apa yang Anda cari.

Jadi pertanyaan sebenarnya adalah: apakah Anda baik dalam mempelajari hal-hal baru? dapatkah Anda mengatasi masalah dan menyelesaikannya tepat waktu tanpa memandang bahasa pemrograman?

Seorang programmer yang baik harus menyadari konstruksi perangkat lunak dan konsep rekayasa perangkat lunak. Pertanyaan Anda membuat saya percaya bahwa Anda belum menginvestasikan cukup waktu untuk mempelajari hal itu, yang mungkin membuat Anda tidak yakin dengan keterampilan Anda dan apa potensi aktual Anda. Dan jujur, jika Anda belum melakukan hal itu, sudah saatnya Anda melakukannya, karena tanpa itu Anda mungkin tidak akan pergi jauh.

Ada hal lain yang sebagian besar dari kita programmer cenderung tidak memberi perhatian sebelum kita berusia lebih dari 30: Keterampilan pemrograman hanya setengah dari keterampilan yang membuat programmer yang baik. Apakah Anda pemain tim yang baik? Apakah Anda bersedia memberikan pengetahuan kepada rekan kerja seperti halnya Anda (atau seharusnya) menerima pengetahuan dari orang lain? Keterampilan orang banyak diremehkan oleh banyak dari kita, sementara mereka sebenarnya sangat penting.

1
mspir

Saya tidak setuju dengan sebagian besar komentar yang terdaftar di forum ini.

Terlepas dari mempelajari prinsip dan teori rekayasa perangkat lunak, bahasa yang Anda pilih untuk dikuasai adalah pilihan karier. Itu sebabnya ada Java programmer dan PHP programmer. PHP programmer mungkin tidak akan bekerja untuk NASA dan Java programmer mungkin tidak akan bekerja untuk toko web.

Jika Anda menginginkan pekerjaan di perusahaan Amerika, lebih baik Anda menggunakan Java/.Net. Penghasilan yang baik dari Anda bisa masuk tetapi bersiaplah untuk menyumbangkan hidup Anda kepada mereka (waktu bijaksana).

Jika Anda ingin menjadi pekerja lepas independen, dan hidup di jalur cepat dengan teknologi web, Anda lebih baik menggunakan PHP. Banyak pekerjaan di sini tetapi bayarannya sangat bervariasi dan menjadi mandiri adalah bekerja dengan setiap Tom, Dick dan Harry dengan ide mencoba mempekerjakan Anda untuk uang.

Ada beberapa tumpang tindih dengan PHP dan Java tetapi hanya terlihat di pekerjaan Korporat (Java REST Layanan dengan front-end PHP namun Anda tidak akan menemukan toko web atau pekerjaan lepas yang independen mendekati Jawa.

Keduanya membutuhkan banyak waktu dan dedikasi jika Anda ingin berguna dalam situasi apa pun.

Untuk menjadi pengembang yang kompeten dan dicari PHP Anda membutuhkan tas yang penuh dengan keahlian. Kemungkinannya adalah Anda akan diharapkan untuk mengetahui CSS, HTML4/5, dan yang paling pasti Javascript DOM/Ajax/Jquery plus setidaknya kerangka kerja yang layak seperti Zend (pilihan pencicip perusahaan Amerika), Codeignitor, cakePHP, dll. Dan kemudian Anda Anda harus mengetahui "tiga besar" CMS: Drupal, Wordpress dan Magento. Dapatkan keahlian ini di bawah ikat pinggang Anda dan Anda akan menjadi spesialis PHP dengan kemampuan untuk mendarat di mana pun Anda pergi. Seperti yang Anda tahu, mengambil semua ini adalah pengabdian pada bahasa dan itu alat karena belajar Perl tidak akan membantu Anda menjadi ahli Drupal atau pengembang Zend.

Hal yang sama berlaku untuk Java: OOP, J2EE, REST/SOAP, Spring/Struts, dll. Dan itu armada alat lain yang membutuhkan waktu bertahun-tahun untuk master.

Adakah orang di sini yang mencoba pengkodean Java selama setahun dan kemudian kembali ke PHP (atau bahasa skrip apa pun). Itu sulit. Rasanya canggung.

Saya bekerja untuk 500 perusahaan yang beruntung dan pengembang Java tidak akan dapat melakukan apa yang pengembang PHP lakukan dan pengembang PHP tidak akan dapat melakukan apa yang pengembang Java lakukan. Tetapi mereka berdua melakukan keuangan dengan baik karena mereka adalah spesialis di bidangnya, bahasa pilihan mereka dan banyaknya alat yang menyertainya.

1
coder3

Bahasa dan platform tidak begitu penting. Pelajari orang-orang yang solid dan keterampilan sci. Banyak orang mengatakan ini tetapi belum memberikan spesifik jadi izinkan saya melakukan itu. Inilah beberapa hal yang perlu dipelajari

  • algoritma dan struktur data.
  • konkurensi
  • pembelajaran mesin
  • pemrograman tingkat sistem
  • pencarian informasi dan mesin pencari
0
jshen