Saya telah memprogram C # secara profesional selama lebih dari 4 tahun sekarang. Selama 4 tahun terakhir saya telah bekerja untuk beberapa perusahaan kecil / menengah mulai dari "agen web / iklan", toko perangkat lunak khusus industri kecil hingga startup kecil. Saya terutama melakukan "aplikasi bisnis" yang melibatkan penggunaan bahasa pemrograman tingkat tinggi (pengumpulan sampah) dan pengalaman saya secara keseluruhan adalah bahwa semua pekerjaan yang saya lakukan bisa lebih profesional. Banyak hal yang dilakukan secara tidak benar (terburu-buru) terutama karena faktor biaya sehingga orang selalu menginginkan sesuatu "sekarang" dan dengan jumlah terkecil dari uang yang bisa dihabiskan. Saya terus berpikir mungkin jika saya bisa bekerja untuk perusahaan yang lebih besar atau perusahaan yang lebih cocok untuk programmer, atau di suatu tempat yang ' Saya punya uang dan waktu untuk benar-benar membangun sesuatu yang lebih jangka panjang dan lebih bisa dipertahankan. Saya tidak pernah memiliki "mentor" yang membimbing saya melalui karir 4 tahun saya. Saya cukup banyak programmer blog / google / otodidak selain gelar sarjana IT saya.
Saya juga mengamati masalah lain yang paling disebut "senior" programmer di "lingkungan kerja saya" benar-benar tidak bijaksana keterampilan senior. Mereka “senior” hanya karena mereka sudah lama menjadi programmer, tetapi kode yang mereka tulis atau keputusan yang mereka buat benar-benar sampah! Mereka tidak ingin belajar, mereka tidak ingin menjadi lebih baik, mereka hanya ingin dibayar dan melakukan apa yang mereka perintahkan agar masuk akal dan kebanyakan dari kita seperti itu. Mungkin itu sebabnya mereka ada di tempat mereka sekarang. Tetapi saya tidak ingin menjadi seperti mereka, saya ingin menjadi lebih baik. Saya mengalami kondisi mental yang tidak lagi ingin menjadi programmer untuk karier masa depan saya. Saya mulai berpikir mungkin ada hal-hal yang lebih baik di luar sana untuk dikerjakan. Semakin banyak blog yang saya baca, semakin banyak "praktik terbaik" yang saya coba, semakin saya merasa menjauh dari "kenyataan saya". Tapi saya bukan programmer yang hebat kalau tidak saya pikir saya tidak berada di tempat saya sekarang. Saya pikir 4-5 tahun adalah tahap yang bisa menjadi langkah maju karir yang bijaksana atau langkah keluar dari tempat Anda berada.
Saya hanya ingin mendengar apa yang dikatakan orang lain tentang apa yang saya sebutkan di atas dan apakah Anda pernah mengalami situasi yang serupa dalam karier pemrograman Anda di masa lalu dan bagaimana Anda menanganinya. Terima kasih.
sumber
Jawaban:
Anda membuka pertanyaan yang sangat menarik. Saya sepenuh hati setuju dengan Anda. Saya sudah melakukan pengamatan serupa.
Saya telah memprogram secara profesional selama beberapa tahun dan apa yang saya amati adalah bahwa jumlah programmer yang baik di luar sana, dari pengembang hebat yang menyukai pekerjaan mereka dan dapat melakukannya dengan kualitas dan gairah hampir mendekati nol. Saya mungkin hanya bertemu satu orang yang bisa mengajari saya sesuatu. Sebagian besar dari apa yang saya ketahui telah saya pelajari sendiri, membaca buku dan forum, bertanya di forum, dan mencari tahu apa yang ada di pikiran.
Setelah beberapa saat saya tidak menyesal sebanyak ini.
Pilihan untuk belajar di lingkungan kerja seringkali terbatas. Anda tidak memulai sesuatu. Anda tidak menyelesaikannya. Anda tidak mendesain, tidak meningkatkan, jangan refactor, jangan berpikir tentang arsitektur, Anda hanya membuat kode dan meretas semuanya. Begitulah cara sebagian besar toko bekerja. Tidak hanya Anda tidak belajar apa pun, kemungkinan besar Anda akan belajar banyak hal yang salah tentang TIDAK mengembangkan perangkat lunak. Saya terus-menerus melihat hal-hal menakutkan di sekitar saya, semua pola anti yang telah Anda dengar. Yang lebih buruk, saya terpaksa melakukannya sendiri.
Saya tidak tahu bagaimana itu terjadi, tetapi saya berhasil membangun penghalang input. Saya tetap terbuka, mendengarkan, dan jika saya melihat beberapa potensi untuk perbaikan diri saya meneliti dan mungkin mengadopsi beberapa teknik atau ide. Tapi tidak ada BS yang bisa dilewati. Saya telah bekerja di proyek yang dijalankan dengan buruk untuk waktu yang lama, tetapi saya belum mengadopsi salah satu dari teknik buruk itu untuk diri saya sendiri.
Saya segera mengerti bahwa jika Anda menginginkan kepuasan dengan pemrograman, lupakan pekerjaan dan miliki proyek pribadi Anda sendiri. Di sinilah Anda dapat menerapkan semua cinta, hasrat, dan pengetahuan Anda untuk melakukan hal-hal yang benar dengan tingkat kualitas tinggi. Anda akan belajar banyak hal, banyak hal yang Anda tidak akan pernah tahu dan ditantang ketika meretas staf perusahaan yang membosankan. Saya hanya melakukan pekerjaan saya untuk mendapatkan gaji dan mendapatkan kepuasan dengan proyek pribadi saya sendiri.
Satu hal yang saya benar-benar tidak mengerti adalah bagaimana situasi ini mungkin terjadi saat ini. Pengembangan perangkat lunak telah matang banyak. Ini memiliki pengalaman baik dan buruk. Banyak proyek yang sukses dan banyak yang gagal. Ada pengalaman dengan proyek jangka panjang dan memahami apa efek jangka panjang yang akan dibawa oleh satu atau organisasi lain pada proyek. Ada banyak studi yang tersedia dan buku-buku bagus ditulis. "Pragmatic Programmer", "Code Complete", "Mythical Man-Month", "Desain barang sehari-hari" dan lainnya. Mengapa tidak ada orang selain kita, para programmer yang pernah membacanya? Bagaimana mungkin bahkan setelah 20 tahun bekerja di TI, sebagian besar pengembang dan manajer tidak pernah menemukan waktu untuk membaca satu atau buku metodologi lainnya. Mereka ditulis untuk, tetapi hampir tidak dibaca oleh, mereka yang paling membutuhkan obat ini.
Mengenai perspektif karir. Apa yang saya perhatikan secara umum di pasar kerja untuk karyawan, adalah bahwa pengusaha di luar sana semakin kehilangan minat pada pekerjaan yang berkualitas (bayangkan mereka pernah memilikinya) semakin banyak berbelanja dan mencari kerajinan kerja termurah yang tersedia. Anda merasa sulit untuk menjual pengetahuan, pengalaman, dan pemahaman Anda tentang alam semesta kepada siapa pun. Itu tidak laris. Yang diminati adalah proyek Anda dirusak oleh junior yang tidak memiliki pengalaman dan keinginan untuk melakukan pekerjaan profesional. Orang-orang murah digunakan dan dilecehkan dan kemudian dibuang sehingga putaran berikutnya dimulai. Proyek juga dialihdayakan ke tujuan upah rendah di mana mereka dilakukan oleh orang-orang yang tampaknya mulai belajar pemrograman hanya dengan proyek Anda. Itu satu hal yang saya benar-benar tidak mengerti.
Saya semakin menghibur ide bahwa saya akan berhenti bekerja pemrograman pada suatu waktu di masa depan. Saya sangat ingin bekerja pada permulaan saya sendiri dengan proyek saya sendiri. Jika tidak, saya sedang mempertimbangkan untuk mencoba lepas atau mungkin mengubah sifat pekerjaan yang dibayar. Lagi pula, saya hampir tidak belajar apa-apa selama jam kerja dan saya tidak mendapatkan kepuasan sama sekali. Saya bisa melakukan apa saja 9-5 dan selalu puas dengan proyek pribadi saya. Saya belajar banyak dari komunitas online. Saya menerima perhatian di sini, dukungan untuk ide-ide saya dan bahkan pada kesempatan pengakuan saya tidak akan pernah bisa dengan pekerjaan saya dan rekan kerja saya. Akan melihat di mana saya akan berada di masa depan.
sumber
;)
Ada posting oleh Jeff Atwood di Coding Horror yang mengatakan bahwa ini seharusnya menyenangkan. Dan bagian dari deskripsi pekerjaan sebagai pengembang perangkat lunak adalah menikmati pekerjaan Anda. Kalau tidak, itu akan menjadi profesi yang sangat membosankan dan rumit untuk Anda.
Fakta bahwa Anda terus mencari cara untuk meningkatkan pekerjaan Anda, dan Anda terus mendapat informasi tentang hal-hal baru dan praktik terbaik menunjukkan bahwa Anda menikmati pekerjaan Anda di alam. Jadi saran saya kepada Anda adalah mulai mencari pekerjaan baru.
Namun saya tidak berpikir bahwa bekerja untuk perusahaan besar tentu akan memperbaiki kondisi kerja. Saya pikir lingkungan terbaik untuk pengembang perangkat lunak adalah perusahaan kecil hingga menengah, di mana orang-orang menyukai apa yang mereka lakukan. Hal terbaik yang harus dilakukan adalah mencari dan memeriksa perusahaan mana pun sebelum Anda mengambil keputusan. Coba dan pastikan bahwa perusahaan baru itu sepadan.
sumber
Hal pertama: peringatan besar: jika Anda telah berkembang selama 10 tahun (seperti yang saya miliki) tidak ada hal lain yang dapat Anda lakukan lebih baik daripada berkembang. Jadi jika Anda ingin melakukan sesuatu yang lain, sesuatu yang baru, lakukan dengan cepat kalau tidak mungkin sudah terlambat dan Anda tidak akan pandai melakukan sesuatu yang lain.
Hanya untuk berbagi sudut pandang saya sendiri: Saya adalah orang yang mandiri, belajar sendiri. Saya telah belajar sendiri C murni, C #, Amiga C berkembang, Windows, COM, Delphi, PHP, Cinema4D dan sekarang Blender dan Python. Saya hampir selalu bekerja sendiri . Inilah masalah terbesar yang saya temui sejauh ini: perusahaan kecil mencoba bertahan dan Anda adalah salah satu yang tetap hidup: ini sangat menegangkan tetapi juga bermanfaat: Anda bekerja lebih banyak, Anda belajar lebih cepat, dan banyak hal dengan cepat, Anda membuat produk lebih cepat (walaupun Anda seringkali tidak dapat melakukan pekerjaan dengan baik). Pokoknya: terlalu banyak stres. Sebaliknya, besarperusahaan akan selalu bertahan tetapi masalahnya adalah tentang orang: terlalu banyak orang. Ini hutan, tetapi jauh lebih buruk: tidak ada yang jelas: jika orang yang bekerja dengan Anda merasa Anda lebih baik dari mereka, mereka akan berusaha sebaik mungkin untuk tidak membantu Anda naik tetapi hanya untuk menembak Anda karena mereka takut akan karier mereka sendiri. Ini cara kerjanya di Perancis (saya tidak tahu untuk negara lain).
Untuk membuatnya singkat: cobalah untuk menemukan perusahaan menengah di mana Anda merasa itu adalah tempat Anda . Tidak peduli berapa lama Anda telah memprogram, tidak peduli berapa lama Anda telah bekerja, hari ketika Anda masuk ke mobil Anda untuk pergi ke pekerjaan Anda dan Anda berpikir "Saya senang pergi ke pekerjaan saya" akan menjadi hari Anda menemukan tempat Anda .
Ini bukan pertanyaan 4-5 tahun atau apa pun.
NB: ada perbedaan besar antara "Saya senang pergi ke pekerjaan saya" dan "Saya senang pergi ke pekerjaan saya karena saya akan melakukan ini dan itu" / atau / "Saya senang pergi ke pekerjaan saya bekerja karena saya akan belajar ini dan itu ". Jika Anda berpikir "karena saya akan melakukan ini dan itu" ini berarti "ini dan itu" akan berakhir suatu hari dan Anda mungkin tidak bahagia setelahnya. Ini adalah pengalaman pemrograman 12 tahun saya. Dan saya seorang senior, saya dibayar dengan baik, tetapi saya menyadari bahwa 20-25 orang berpikir lebih cepat daripada saya. Mereka hanya tidak memiliki pengalaman saya, jadi saya baru saja mengakui bahwa saya dapat membantu mereka melakukan sesuatu, mereka melakukannya lebih cepat, tetapi saya membantu mereka untuk membuatnya dengan benar (yang hampir tidak pernah terjadi ketika Anda mulai berkembang).
Maaf untuk bahasa Inggris saya yang tidak sempurna, jangan ragu untuk memperbaiki posting saya untuk menjadikannya bahasa Inggris yang benar.
sumber
Saya telah menjadi pengembang perangkat lunak selama dua puluh satu tahun - antara lain, itu berarti saya sudah cukup lama minum! ;-) Namun serius, saya tidak bisa membayangkan melakukan hal lain sebaik atau sebahagia pemrograman. Saya rupanya salah satu burung langka yang sangat menyukai pekerjaan ini.
Saya baru-baru ini menyegarkan resume saya, dan saya perhatikan bahwa saya memiliki banyak, banyak pekerjaan dalam dua dekade terakhir - kebanyakan kontrak. Tetapi apa yang saya sadari ketika melihat daftar panjang itu adalah bahwa pekerjaan yang paling saya sukai (dan yang paling lama saya tinggali) ada di perusahaan perangkat lunak, yaitu perusahaan yang model bisnisnya melibatkan penjualan perangkat lunak kepada pelanggan. Teori-teori berikut ini mungkin tidak berlaku secara universal, tetapi mereka jauh menjelaskan pengalaman saya.
Seperti yang saya lihat, perbedaan antara toko perangkat lunak dan toko TI khas Anda sangat jelas. Ini hanya pertanyaan tentang apa yang dipahami oleh manajemen puncak. Jika perusahaan mendapatkan sebagian besar pendapatannya dari perangkat lunak, maka petinggi akan benar-benar grok perangkat lunak dan bagaimana itu dibuat. Tetapi jika pendapatan berasal dari penjualan widget, mereka umumnya tidak memiliki firasat yang samar tentang apa yang diperlukan untuk menjaga infrastruktur TI mereka tetap berjalan, apalagi proses di balik pengembangan perangkat lunak. Lebih buruk lagi, meskipun mereka mendelegasikan tugas kepada staf TI, mereka mencoba memetakan proses TI untuk apa yang mereka ketahui, dengan hasil yang umumnya berkisar dari mengecewakan hingga bencana.
Salah satu alasannya adalah bahwa ada banyak bakat di luar sana, dari yang kompeten hingga ahli perangkat lunak. Ini benar-benar bertentangan dengan cookie-cutter, mentalitas satu ukuran untuk semua yang bekerja sangat baik untuk posisi tidak terampil dan semi-terampil. Harapan bahwa salah satu pengembang dapat diganti dengan yang lain dengan "keahlian" yang serupa mungkin tampak menggelikan bagi kami, tetapi seringkali tampak masuk akal untuk struktur manajemen yang berfokus pada angka mentah. Jika ini tampak luar biasa, lihat saja berapa toko yang masih berusaha membuat model Waterfall bekerja.
Anda tidak perlu semua virtuoso di tim Anda, tetapi Anda membutuhkan setidaknya satu atau dua. Dan bagian dari peran mereka harus menjadi mentor orang junior sehingga mereka dapat tumbuh menjadi peran (atau mencuci - itu terjadi). Jika tidak, kode junior buruk-ke-biasa-biasa saja akan menang, dengan salah urus yang terjadi dan mengasapi. Setelah kanker masuk, kode dengan cepat menjadi tidak dapat dipelihara, produktivitas di seluruh tim turun tajam, dan orang-orang mulai kehabisan tenaga.
Ini menciptakan pergantian, sampai akhirnya seseorang berkata, "Kita tidak bisa teruskan hal ini! Mari kita mulai dan mulai lagi!" Investasi dalam basis kode warisan keluar jendela, dan proses dimulai dari awal lagi. "Tapi kali ini akan berbeda," kamu berjanji pada diri sendiri. Dan untuk sementara ini. Kemudian seseorang menyewa bintang rock Anda, dan Anda pergi dengan orang-orang junior yang tidak diarahkan untuk menghancurkan basis kode baru Anda yang mengkilap lagi.
Busa. Kata-kata kasar. Bertobat.
Tapi saya ngelantur ... Jadi, untuk menjawab pertanyaan awal Anda: Tidak, setengah dekade bukanlah usia paruh baya dari karir perangkat lunak. Ini lebih merupakan Zaman Akal, mungkin - tempat dalam karir Anda di mana timbangan jatuh dari mata Anda dan Anda mulai melihat bisnis apa adanya. Realisasi datang dalam urutan yang berbeda untuk semua orang, dan yang mewarnai kesimpulan yang mungkin Anda buat sepanjang jalan. Tetapi bertahanlah - jika Anda keluar dari sisi yang lain waras, Anda akan memiliki perspektif yang jauh lebih sehat, dan pada akhirnya Anda akan menemukan bisnis gila ini yang kami hadapi lebih berharga daripada sebelumnya.
sumber
Saya pikir Anda perlu pengalaman lima tahun lagi. Maka Anda akan dapat menerima kompromi dan dengan senang hati memperbaiki apa yang Anda bisa.
Setidaknya itu pengalaman saya. Sekitar 5 tahun (sekitar waktu yang dibutuhkan untuk menjadi seorang ahli) saya pikir saya benar-benar "mengerti". Saya menyadari kode saya omong kosong. Saya menyadari hack saya yang mengkilap yang membuat aplikasi berfungsi hanya itu, hacks. Saya mulai mengerti bahwa saya telah membuat kode sub-par hanya untuk membuat bos saya senang dan membuat gaji tetap bergulir.
Pada saat yang sama saya menyadari bahwa keinginan bos tidak akan berubah. Mereka akan selalu menginginkannya kemarin tanpa menghabiskan uang untuk alat yang baik. Mereka tidak akan peduli jika saya menggunakan pola desain tertentu. Tidak akan pernah mereka kagum karena saya meningkatkan pemeliharaan dengan menerapkan Prinsip Tanggung Jawab Tunggal dengan bijaksana.
Saya juga menyadari bahwa saya akan melawan diri saya yang lebih muda yang diwujudkan oleh programmer yang tidak berpengalaman. Programmer yang meretas program agar bekerja cepat. Programmer muda yang menolak semua hal konyol yang membutuhkan waktu bertahun-tahun untuk kupahami. Programmer muda yang berpikir memiliki 5 kelas lebih membingungkan daripada memiliki satu kelas besar yang melakukan semuanya.
Tetapi sekarang saya berada di titik 10 tahun saya, saya datang untuk melihat bahwa frustrasi itu sama seperti frustrasi yang saya alami dalam lima tahun pertama saya. Ini adalah frustrasi yang terkait dengan belajar keterampilan baru. Tapi kali ini keterampilannya bersifat interpersonal. Keterampilannya membuat non-programmer untuk memahami keterbatasan dalam menjalani jalur koboi. Dan keterampilan ini mungkin lebih penting dalam skema besar hal daripada keterampilan pembuat kode yang saya peroleh selama lima tahun pertama.
Tetapi yang sangat menakjubkan tentang pekerjaan ini adalah saya dapat melanjutkan, dan benar-benar harus melanjutkan, untuk mengembangkan keterampilan teknis sambil juga bekerja dengan manajemen.
Jadi saya katakan kepada Anda terus melakukannya! Karena Anda merasa nyaman dengan teknologi ini, Anda dapat mulai mengerjakan keterampilan Anda dalam menangani hal-hal lembek yang disebut manusia.
sumber
Saya telah menemukan bahwa ada 2 rahasia kebahagiaan relatif:
jangan mencari untuk memiliki semua yang Anda inginkan tetapi mencari untuk menginginkan semua yang Anda miliki
hidup itu sulit - tidak masalah seberapa keras Anda dapat memukul (baik Anda, secara pribadi dan profesional); itu akan selalu memukul balik lebih keras. itu penting seberapa banyak Anda bisa terkena dan masih bisa melanjutkan.
Setelah semua itu berjalan-jalan di taman dan ada hal-hal yang lebih penting daripada bit dan byte, dan praktik dan hal-hal. Nikmati saja semua pengalaman apa adanya dan melawan sebanyak mungkin yang Anda bisa.
sumber
Mungkin lihat The Passionate Programmer oleh Chad Fowler ... mengutip dari halaman web:
sumber
IMO ketidakpuasan yang jelas Anda rasakan bukanlah krisis, melainkan pertanda bahwa Anda telah mencapai tingkat tertentu. Anda mengungguli slot "Saya hanyalah seorang programmer". Anda memiliki pemahaman yang cukup sekarang untuk melihat kekurangan dalam kondisi saat ini dan bagaimana cara memperbaikinya.
Langkah selanjutnya adalah menemukan hubungan antara apa yang Anda lihat sebagai peningkatan potensial dan apa yang akan dilihat oleh perusahaan tempat Anda bekerja. Maka Anda harus meyakinkan atasan Anda bahwa ini adalah jalan yang harus ditempuh.
Tidak cukup hanya memahami hal-hal dan tahu bagaimana melakukan sesuatu. Anda juga harus bisa meyakinkan orang bahwa Anda tahu apa yang Anda lakukan. Dan jika kedengarannya seperti penjualan itu karena itu. Tapi ini mutlak diperlukan untuk menjadi "hebat". Anda bekerja bukan dengan komputer, Anda bekerja untuk orang-orang dan dengan orang-orang, Anda harus dapat menjual ide-ide Anda.
Tentu saja beberapa perusahaan akan terlalu konservatif untuk menerima ide-ide Anda, dan atasan Anda dapat menolaknya karena warna dasi yang Anda kenakan. Hanya perlu diingat bahwa menjual ide tidak lebih mudah daripada menghasilkan ide, dan penjualan yang gagal tidak selalu merupakan hasil dari motif tersembunyi atasan Anda, itu bisa merupakan presentasi yang buruk di pihak Anda.
sumber
Saya setuju dengan Nikos sepenuhnya. Saya pikir yang mungkin Anda butuhkan adalah menemukan perusahaan yang berfokus pada teknologi dan produk. Ada perusahaan di mana pengembang perangkat lunak menganggap pengembangan hanya pekerjaan mereka, dan mereka tidak pernah memikirkan hal ini di waktu mereka sendiri. Lingkungan kerja biasanya lebih diarahkan untuk manajer melakukan pekerjaan meja daripada pengembang melakukan pekerjaan pikiran. Standar rata-rata pengembang umumnya rendah (meskipun Anda kadang-kadang mendapatkan satu "guru"). Mereka cenderung mengambil jalan pintas pada (atau bahkan menghindari) hal-hal seperti kontrol versi, pengujian, proses dll. Perusahaan umumnya mengirimkan perangkat lunak yang melakukan pekerjaan, tetapi seringkali jelek dan bermasalah, dan sepertinya tidak ada yang terlalu terganggu.
Di sisi lain ada perusahaan di mana para pengembang hanya melakukan apa yang seharusnya mereka lakukan di rumah; mereka pulang pada malam hari dan mengerjakan proyek pengembang rumah mereka sendiri, dan belajar bahasa / teknologi baru di waktu luang mereka. Lingkungan kerja biasanya cukup berpusat pada pengembang, dengan monitor yang baik, peralatan yang bagus, suasana yang kondusif untuk berpikir. Pengembang sering berstandar tinggi, dan Anda mendapati diri Anda belajar dari semua rekan kerja Anda setiap hari. Mereka umumnya menganggap hal-hal seperti kontrol versi, pengujian dan proses dengan serius. Perusahaan umumnya mengirimkan perangkat lunak berkualitas baik, karena pengembang menganggapnya pribadi jika ada bug atau ketidaksempurnaan.
Saya tidak berpikir menemukan perusahaan yang lebih besar tentu akan memperbaiki masalah; bahkan dalam banyak kasus, perusahaan besar lebih buruk, dan masalahnya hanya sudah tertanam lebih dalam dan lebih institusional.
Jelas saya sedikit mempolarisasi hal-hal .... tetapi jika Anda seorang insinyur perangkat lunak di hati (dan tidak hanya pada resume Anda), maka Anda perlu mencoba dan menemukan salah satu jenis perusahaan yang terakhir. Pikirkan beberapa pertanyaan wawancara yang baik yang dapat Anda tanyakan kepada mereka , untuk mengetahui apakah sebuah perusahaan adalah tempat semacam itu.
sumber
Sesuatu yang saya temukan banyak programmer tidak mengerti adalah bahwa tidak semua keputusan bersifat teknis. Sedih, melakukan sesuatu yang "benar" tidak selalu merupakan pilihan. Hal ini membuat banyak pengembang berpikir bos mereka bodoh, atau membuat keputusan yang buruk ... dan ya, seringkali memang demikian, tetapi sama seringnya faktanya adalah bahwa perusahaan tersebut mungkin gulung tikar, atau kehilangan pekerjaan sepenuhnya jika mereka mengizinkan para programmer untuk mengatur jadwal dan membuat semua keputusan teknis.
Sayangnya, kadang-kadang tugas kita untuk bekerja dalam batasan politik atau keuangan pekerjaan dan melakukan yang terbaik yang kita bisa.
Satu hal yang Anda pelajari dari pengalaman adalah bersikap konservatif. Teknik-teknik terbaru mungkin tidak terbukti dan Anda mungkin tidak memiliki pemahaman yang kuat tentang mereka bahkan jika itu. Manajer tidak suka menghabiskan waktu untuk memberi Anda kecepatan pada teknologi baru hanya karena Anda ingin mempelajari sesuatu yang baru.
Pemrogram lupa bahwa banyak perusahaan bukan perusahaan perangkat lunak. Mereka <memasukkan industri bisnis di sini> perusahaan yang juga melakukan perangkat lunak. Tugas Anda sebagai programmer adalah memfasilitasi proses kritis misi, bukan menulis perangkat lunak yang sempurna. Terkadang ternyata itu adalah hal yang sama, tetapi sebenarnya cukup langka.
sumber
Menurut pendapat saya itu bukan krisis paruh baya - saya akan mengatakan bulan madu sudah berakhir.
sumber
Saya dapat mengaitkan dalam hal kode yang ditulis bisa lebih baik tetapi harus ada garis di mana seseorang mungkin terlalu perfeksionis seolah-olah sesuatu bekerja 99,99999% dari waktu, bukankah itu cukup dekat hingga 100% untuk kebanyakan orang ? Bagian dari perjuangan saya pada waktu-waktu dengan pola pikiran negatif adalah perfeksionisme dan kritik diri serta penilaian yang intens sehingga mungkin saya bisa terlalu mengidentifikasikannya.
4-5 tahun adalah waktu yang cukup, IMO, untuk mencari tahu beberapa hal:
Ada pertanyaan lain seperti " Peta Jalan ke programmer yang lebih baik ," dan " Bagaimana menjadi programmer yang lebih cepat ," yang mungkin memiliki saran untuk Anda jika Anda ingin meningkatkan keterampilan Anda.
Saya juga pernah mengalami di mana gelar senior diberikan kepada seseorang hanya karena bertahan di lapangan begitu lama, daripada mencapai tingkat keterampilan. Anda dapat menerima ini sebagai bagian dari bagaimana dunia bekerja atau Anda dapat mencoba untuk menemukan tempat yang berjalan secara berbeda. Berapa banyak sebenarnya yang saya tidak tahu, tetapi saya dapat mengatakan bahwa kadang-kadang Anda dapat menemukan tempat yang baik dalam hal bagaimana Anda suka bekerja dan apa yang digunakan oleh perusahaan dan rekan kerja untuk menyelesaikan pekerjaan.
" Sumber Wawasan " adalah salah satu blog favorit saya dan saya senang membacanya hampir setiap saat. Materi ini sedikit berat dalam hal ada banyak elemen intelektual untuk apa yang ditulis tetapi ada nugget yang dapat diambil dan membuat hidup mereka sedikit lebih baik atau setidaknya itu adalah pengalaman saya.
Saya dapat mengingat di sekolah ketika saya masih kanak-kanak bahwa sering ada transisi setelah 4-5 tahun karena ketika sekolah pertama saya berada di selama 8 tahun (TK SMP ke kelas 6), maka itu adalah 2 tahun (kelas 7 dan 8) , 4 tahun (SMA yang nilai 9-13 di mana 11/12 dilakukan dalam satu tahun dalam kasus saya), dan 4 tahun (gelar sarjana universitas).
Saya dapat menerima gagasan krisis datang di berbagai titik dalam kehidupan, misalnya menyelesaikan universitas dapat membuat orang bertanya-tanya siapa mereka atau setelah bekerja sebentar sambil bertanya-tanya apakah semuanya layak.
Beberapa tempat dapat muncul sebagai tempat yang luar biasa untuk bekerja dan yang lain dapat menyebabkan kejenuhan karena itu telah menjadi pertanyaan di sini beberapa kali, " Apa yang menyebabkan kejenuhan pengembang ," dan " Cerita kejenuhan pengembang ," sementara pertanyaan lain adalah kebalikan dari itu, " Apa motivasi Anda ," dan " Memprogram motivasi (de) dan rencana selanjutnya ... "
Hanya demi latar belakang dalam jawaban saya di sini saya telah mengembangkan situs web / aplikasi selama hampir 12 tahun sekarang karena saya mendapatkan pekerjaan pertama saya keluar dari universitas pada Februari 1998 dan selain dari kekeringan 8 bulan di mana saya tidak bekerja saya telah melakukan ini sepanjang waktu di beberapa lingkungan yang berbeda: Beberapa dot-com, penyedia layanan aplikasi dan sekarang dalam tim pengembangan web departemen Sistem Informasi di perusahaan teknologi lokal. Saya menyadari ini adalah jawaban yang panjang, tetapi saya pikir pertanyaan yang diajukan tidak memiliki jawaban singkat di pikiran saya.
sumber
Saya telah menemukan hal serupa dalam 10 tahun pemrograman saya, dan saya menduga bahwa ini adalah kejadian yang agak umum. Dalam dunia bisnis (sebagai lawan dari akademisi), uang (atau kekurangan uang) dan waktu mengarahkan jadwal, fitur, dan kualitas pemrograman. Seringkali sumber daya tersebut kurang untuk melakukan hal-hal dengan benar sepenuhnya. Ini adalah motivator utama untuk menemukan metode yang paling efisien untuk menyelesaikan masalah. Situasi ini juga memandu saya untuk mengingat bahwa pemrograman saya harus menyelesaikan hanya masalah yang ada (dengan sejumlah pertimbangan di masa depan) alih-alih membangun sesuatu yang mengandung lebih banyak fitur daripada yang diperlukan. Menurut saya ini adalah pelajaran penting untuk dipelajari.
Komentar Anda tentang "programmer senior" juga, sayangnya, biasa dalam pengalaman saya. Saya pikir alasan untuk ini adalah dua kali lipat - pertama, banyak programmer berpengalaman malas, hanya menggunakan alat dan metode yang mereka gunakan dalam karir mereka. Namun, teknologi terus bergerak maju, dan ini membuat programmer yang berpengalaman ini menjadi "dinosaurus". Kedua, setelah pemrograman untuk sementara waktu, menjadi mangsa menjadi sedikit keangkuhan ("bakat saya telah membuat saya sejauh ini, jadi saya harus menjadi programmer yang cukup baik"). Saya mencoba untuk memerangi kedua masalah ini dengan terus mencoba mempelajari metode atau teknologi baru untuk menyelesaikan masalah saya. Kadang-kadang ini bertentangan dengan keadaan pelajaran "membangun hanya apa yang dibutuhkan" di atas, tetapi tujuannya adalah untuk mengusahakan keseimbangan yang sehat di antara keduanya.
Saya akan menyarankan menggunakan pengalaman yang Anda miliki sebagai motivator untuk terus meningkatkan diri Anda. Saya telah berhenti dari industri pemrograman sendiri setelah sekitar 5 tahun karena saya kehilangan gairah untuk kode insinyur. Tetapi saya tidak bisa menghilangkan rasa gatal untuk membangun program, dan saya kembali ke industri beberapa bulan kemudian. Saya mengetahui bahwa Anda harus melibatkan diri melakukan apa yang Anda sukai - jika Anda ingin mengelola proyek, cari posisi yang memungkinkan Anda mengelola proyek. Jika Anda ingin kode sepanjang hari, cari posisi untuk melakukan itu. Menemukan pekerjaan yang menantang Anda dan memenuhi keinginan Anda adalah bagian yang indah dan perlu dari kehidupan yang bahagia - Saya berharap Anda beruntung dalam menemukan itu.
sumber
Hai sobat, senang sekali membaca pertanyaan Anda. Saya senang Anda menulis demikian. Anda tahu, Anda tidak menyadari pengertian apa yang Anda miliki saat ini. Hal-hal yang Anda tulis membuat saya memahami pengalaman apa yang Anda miliki, dan percayalah bahwa pengalaman ini adalah sesuatu yang tidak semua programmer dapat miliki dalam hidup mereka. Anda adalah orang yang mandiri, belajar sendiri. Saat ini Anda berada dalam kondisi pikiran yang sangat matang, setelah bekerja 4 tahun untuk perusahaan kecil. Jika Anda akan menjadi perusahaan besar, Anda tidak akan dianggap sebagai pengalaman. Sekarang Anda memiliki pemahaman tentang bagaimana industri ini bekerja, bagaimana segala sesuatu dilakukan dan bagaimana mereka harus dilakukan. Tingkat apa yang disebut "senior" ini. Saya punya saran untuk Anda, jika Anda seorang pembelajar mandiri yang baik dan telah belajar mandiri selama lebih dari 4 tahun, mengapa tidak Anda mencoba lepas sebagai karier. Percayalah, Anda akan bekerja untuk diri sendiri dan menikmati lebih banyak.
Sebagai catatan akhir, jangan menyesali apa yang Anda lakukan dalam 4 tahun terakhir. Ini adalah pengalaman yang luar biasa dan hanya sedikit yang memilikinya dalam hidup mereka :)
sumber
Perbedaan antara programmer senior dan junior, ketika berbicara tentang orang yang berpengalaman sama sekali, umumnya hanya berdasarkan gaji. Ada banyak variasi dalam nilai organisasi untuk mengubah judul, dan sering kali ditentukan oleh apa yang Anda minta ketika Anda diterima.
Jika itu adalah penghiburan, saya mengalami krisis 10 tahun pertengahan pemrograman, meskipun saya memulai pemrograman di Apple] [+ jadi itu mungkin poin 24 tahun; Saya tidak tahu Saya hanya berharap orang tidak mengharapkan sihir dari programmer.
sumber
Saya menemukan benang merah yang saya lihat dalam karier saya adalah ketika saya merasa terjebak dalam situasi di mana saya tidak memiliki kendali atas lingkungan saya, saat itulah saya mulai merasa bosan. Hanya melakukan apa yang orang lain katakan padamu. Penting untuk memiliki area yang menjadi milik sendiri (IMHO) untuk memiliki tanggung jawab penuh - mungkin itu juga hilang dalam pekerjaan Anda?
Dalam hal ini Anda harus berbicara dengan manajer Anda, mungkin ada beberapa solusi dalam pekerjaan Anda saat ini? Meminta lebih banyak tanggung jawab selalu merupakan langkah yang baik.
sumber
Dalam pengalaman saya, beberapa minggu pertama (paling banyak berbulan-bulan) sangat penting untuk kualitas umum suatu proyek. Jika Anda mulai bekerja di tempat di mana programmer lain telah membuat kekacauan (standar pengkodean yang buruk, tidak ada kontrol versi, dll.) Sangat sulit bagi seorang manajer, dan sebagian besar tidak mungkin bagi rekan baru, untuk membuat perbaikan apa pun. Kemudian, tenggat waktu dan masalah yang digerakkan akan menyebabkan beberapa keburukan menjadi hampir setiap proyek, tetapi jika fondasi dilakukan dengan baik, kerusakan akan terbatas dan dapat dikelola.
Untuk alasan itu, jika Anda menemukan diri Anda dalam situasi di mana Anda harus bekerja dengan rekan-rekan yang buruk pada proyek yang buruk, cobalah untuk ditugaskan di proyek baru (jika ini memungkinkan di perusahaan Anda) atau cari pekerjaan baru. Jangan menunggu terlalu lama, karena kebiasaan buruk menular.
sumber
Saya memiliki pertanyaan yang sama dan mungkin melihat hal-hal yang sama yang Anda miliki (startup baru, nasihat inspirasional, orang-orang termotivasi menciptakan hal-hal luar biasa, proses, algoritma yang membuat hati Anda) hanya untuk menemukan tidak ada di rekan kerja saya, saat ini atau sebelumnya , atau pada orang yang saya kenal yang berkecimpung dalam bisnis ini. Jadi teka-teki dalam mencocokkan minat yang mendalam ini dengan pekerjaan yang dibayar berarti banyak tidur malam yang nyenyak dan mencari proyek yang sangat cerdik yang dapat diambil di samping dan kemudian tumbuh menjadi miliknya sendiri dengan cukup cepat untuk memberikan jalan keluar. Seperti banyak orang, saya memiliki keluarga yang harus didukung, dan saya pribadi berpikir energi yang diperlukan untuk membangun sesuatu dalam startup yang menargetkan pasar Brasil tidak dihabiskan dengan baik jika tidak sepenuhnya IT-ish dan membosankan. Dan serius? Saya melakukan hal-hal yang membosankan dan membosankan sepanjang hari.
Jadi bagi saya jawabannya adalah menjaga kemauan untuk belajar dan meningkatkan di satu tempat dan bekerja di tempat lain. Saya telah menggunakan processing.org dan terus mencoba menggambar, menulis, dan memasak lebih banyak. Jujur saja bagi saya, jujur: kadang-kadang Anda begitu terjebak dengan mencocokkan orang-orang yang Anda kagumi dan diangkat ke Pantheon orang-orang yang berprestasi sehingga Anda mengabaikan fakta-fakta serius tentang siapa Anda dan apa yang membuat Anda merasa hidup ini berharga hidup. Dan sementara pekerjaan adalah sesuatu yang menghabiskan banyak hari Anda, begitu Anda berhenti khawatir tentang apa artinya semua itu dan ke mana Anda pergi adalah saat Anda menyadari bahwa Anda tidak memerlukannya untuk sampai ke sana. Terus koding jika itu yang Anda sukai, tulis perangkat lunak di rumah, berkontribusi untuk proyek yang Anda sukai. Jenis kepuasan yang hampir tidak pernah datang dari gaji bagi kebanyakan orang,
sumber
Sebagai seorang programmer Anda harus selalu menyeimbangkan keinginan Anda untuk kesempurnaan dan keinginan majikan Anda untuk produk yang berfungsi. Di beberapa perusahaan, kedua keinginan ini akan lebih dekat satu sama lain, di sebagian besar perusahaan, kedua keinginan tersebut akan berjauhan.
Saran terbaik saya untuk berurusan dengan saluran pekerjaan harian Anda adalah untuk memulai proyek pribadi di samping, satu di mana tidak ada batas waktu, di mana Anda dapat bekerja di area yang biasanya tidak Anda kerjakan, di mana Anda membuat semua keputusan. Kode yang paling memuaskan yang saya tulis adalah ketika bekerja sebagai pengembang Wii, saya bisa menyarankan Anda menulis game. Anda dapat menyentuh setiap aspek pemrograman, 3D, jaringan, AI, dll ... dan karena Anda sudah bekerja dengan .Net, saya sarankan untuk mengambil XNA atau Unity
Sejauh Pemrogram Senior tidak tahu banyak, Anda mungkin benar. Sebagian besar programmer senior di perusahaan besar dipromosikan pada saat mereka tahu banyak, atau ketika mereka bisa menyelesaikan pekerjaan. Sekarang mereka sudah senior, mereka memiliki tanggung jawab yang berbeda, terutama sebagai manajer. Diharapkan keterampilan coding mereka akan sedikit tergelincir. Beberapa lebih baik daripada yang lain, dan beberapa mungkin memang dipromosikan karena siapa yang mereka kenal, tetapi sebagian besar programmer senior yang pernah bekerja dengan saya di masa lalu memiliki keahlian yang solid (walaupun terkadang ketinggalan jaman).
Jadi untuk menyelesaikannya, lakukan proyek pribadi untuk menghilangkan kebosanan dari hari ke hari, dan santai saja pada senior Anda, lakukan saja pekerjaan terbaik yang Anda bisa dalam waktu yang ditentukan dan Anda akan baik-baik saja.
sumber
Saya pikir ini saatnya untuk menjadi Sr, Pengembang untuk Anda, saya baru di pasar ini dan belajar dan meningkatkan tetapi pengusaha tidak mencari manusia, mereka mencari monster seperti pengembang Jr dengan pengalaman 6 + tahun dan itu benar-benar membuat frustrasi.
sumber
Pertanyaan bagus, Jeffrey. Apakah Anda masih menikmati pemrograman? Apakah Anda bersemangat tentang hal itu, apakah Anda melakukannya di waktu luang Anda? Atau apakah Anda muak dengan beberapa pekerjaan pemrograman mengerikan yang Anda miliki.
Jika Anda merasa pemrograman bukan untuk Anda, ada banyak disiplin ilmu lain yang dapat Anda lakukan dan rencanakan pada tahap ini dalam karier Anda - manajemen proyek, penjualan, pra-penjualan, analis. Peluang ini tidak akan ada ketika Anda masih SMP / Lulusan, jadi Anda mungkin tidak mulai berpikir melampaui pemotongan kode. Mungkin Anda bisa mendekati majikan Anda untuk mensponsori Anda untuk ujian sertifikasi, atau jika Anda ingin menjelajahi teknologi baru (Azure / Silverlight / WPF?)
Di sisi lain, jika Anda merasa tempat kerja Anda menyerupai komik Dilbert yang nyata, mungkin ini saatnya untuk melanjutkan. Jika Anda telah bekerja di perusahaan besar, bagaimana dengan mewawancarai beberapa startup, atau sebaliknya. Anda tidak perlu memberi tahu siapa pun bahwa Anda melamar pekerjaan, dan bahkan ketika Anda mendapatkan penawaran, Anda berada dalam posisi negosiasi yang baik karena sudah memiliki pekerjaan, Anda dapat memutuskan apakah tawaran yang didapat lebih baik daripada situasi Anda saat ini, dan jika tidak maka terus mencari. Perusahaan yang lebih besar sering dapat menawarkan Anda peluang pengembangan karir dan pelatihan yang lebih baik, sedangkan dengan perusahaan kecil Anda mendapatkan lebih banyak hal yang tidak berwujud, seperti tanggung jawab atas keberhasilan perusahaan, jam kerja yang fleksibel, opsi saham, dan senioritas / rasa hormat nantinya jika / ketika perusahaan sukses besar.
sumber
Jika ada penghiburan, saya merasakan hal yang sama tentang senior di tempat kerja saya. Minggu lalu saya mengajukan laporan berbasis bukti, dan minggu ini saya mengadakan pertemuan selama satu jam dengan personel untuk secara resmi mengajukan keluhan tentang para manajer (dengan mempertimbangkan saya seorang junior). Entah itu menumbuhkan bola atau tidak bahagia dalam pekerjaan saya. Itu bukan keluhan berbahaya, melainkan keluhan yang membangun. Ada perbedaan, dan itu pasti bisa berdampak besar pada kebahagiaan Anda dalam bekerja.
SUNTING
Saya juga mengatakan jangan hanya "menyerah" karena Anda memiliki masalah dengan orang-orang. Tampaknya banyak orang di sini hanya mengatakan "berhenti dari pekerjaan Anda", kenyataannya adalah Anda dapat membuat perbedaan di tempat kerja. Kedengarannya tidak sopan, tetapi saya pikir Anda akan membuat perubahan terjadi dan mendapatkan lebih banyak rasa hormat jika Anda proaktif untuk hal-hal yang berubah. Jangan takut untuk mengambil bos Anda ke samping dan mengajukan keluhan. Sudah, dan itu sudah membuat perbedaan besar. Kami mengadopsi teknologi baru, mengubah prosedur kerja kami dan lebih secara formal mendekati semua tugas karena apa yang saya katakan (dan saya adalah pengembang junior)
sumber
Nah, Anda harus belajar domain lain (matematika, AI, data mining, BI, integrasi apa pun). Kemudian setelah menguasai domain baru ini kemungkinan Anda memiliki ide-ide baru yang merespon kebutuhan bisnis nyata.
Pada tahap ini jika Anda seorang programmer yang hebat, Anda hanya perlu membuat startup. Yah itu berisiko, tapi jauh lebih menyenangkan.
Pelajari berbagai keterampilan dan kompetensi, tidak hanya dalam pemrograman, lalu gabungkan mereka untuk menciptakan hal baru yang tidak ada yang dipikirkan orang. Itu mudah, Anda sudah memiliki palu terbaik yang pernah ada: Pemrograman.
sumber
Pengalaman pribadi saya sama dengan yang Anda sebutkan. Sebagian besar semua proyek yang saya kerjakan akhir-akhir ini semuanya dibuat terburu-buru dan semua bisa lebih baik. Saya telah menjadi pengembang program selama sekitar 7 tahun sekarang dan berada di perusahaan berukuran sedang yang sama. Manajemen tidak memiliki petunjuk dan menjalankan semua proyek sebagai "non-proyek". Ada sedikit ketertiban dalam kekacauan.
Hal yang paling saya takuti adalah, bahwa saya jatuh ke dalam lubang yang Anda bicarakan dan mulai melakukan pemrograman "jelek" dan keputusan bodoh hanya untuk maju dalam karier saya. Saya berharap ada seseorang di sana untuk memukul kepala saya jika itu terjadi.
sumber
Wow! Saya suka betapa berharganya percakapan ini. Saya seorang pengembang web dengan pengalaman 5,5+ tahun dan saya menyukainya. Saya tidak bisa memilih tetapi saya akan mengutip kata-kata AZ. Saya setuju dengan itu!
Buku yang saya rekomendasikan adalah: http://www.amazon.com/Software-Measurement-Estimation-Quantitative-Engineering/dp/0471676225
sumber
Dua poin saya:
Saya memukul tambang setelah hanya 2 tahun di industri ini. Saya mengatasinya dengan memperbaiki diri dan belajar.
Sebagian besar waktu, itu akan datang karena Anda melakukan hal yang sama berulang kali. Dan jika Anda melakukan hal yang sama berulang-ulang ... yah ... Anda salah melakukannya.
Selalu tingkatkan. Selalu belajar. Dan sial, jika perusahaan Anda saat ini tidak memberi Anda suasana itu, pergi cari satu yang akan. Saya melakukannya dan 2 tahun terakhir adalah waktu terbaik dalam hidup saya (saya juga mungkin 100x lebih baik dalam pekerjaan saya daripada saya 2 tahun yang lalu juga)
sumber
Ada banyak programmer, tetapi hanya sebagian kecil dari mereka adalah insinyur perangkat lunak berkualitas. Saya kira itu benar dalam profesi apa pun.
sumber
Selamat datang di dunia nyata ... sayangnya, apa yang Anda gambarkan terjadi di sebagian besar karir dengan orang-orang yang tidak cukup bersemangat tentang apa yang mereka lakukan. Hanya ada satu pilihan (yaitu, jika Anda menyukai pekerjaan Anda): Anda harus mencari toko yang lebih baik untuk bekerja, meskipun itu tidak mudah di masa sekarang ....
sumber
... diikuti oleh ...
Maka saatnya untuk mulai mencari, dan untuk mengambil tindakan. Karena jika Anda tetap seorang programmer dengan sikap ini, Anda akan berakhir seperti orang-orang "senior" yang sangat Anda benci. Kata operasinya "terperangkap": Anda akan menghasilkan cukup uang sehingga Anda tidak bisa membenarkan untuk pindah ke hal lain, dan keterampilan Anda akan sangat sempit sehingga Anda tidak bisa bergerak dalam industri.
sumber
Mungkin mempertimbangkan untuk lulus sekolah? Itu mungkin membuka peluang untuk jenis pekerjaan yang berbeda dan lebih berorientasi jangka panjang.
sumber