Saya telah bekerja sebagai satu-satunya pengembang di perusahaan yang tahu teknologi tertentu, sebagai satu-satunya yang melakukan jenis pemrograman yang saya lakukan, dan sebagai kontraktor dalam situasi yang sama. (Saya juga pernah bekerja di lingkungan tim dengan pengembang lain yang tahu alat berbeda dan dengan pengembang lain yang melakukan persis apa yang saya lakukan.)
Kelebihan menjadi satu-satunya programmer
- Seperti yang Anda sebutkan, Anda sering memiliki kebebasan untuk menggunakan alat atau bahasa apa pun yang Anda rasa dapat Anda pelajari. Anda tidak selalu harus membuat kasus sebelum rekan-rekan Anda untuk mendapatkan izin untuk bekerja dengan Teknologi Baru X sementara orang lain menggunakan Teknologi Saat Ini Y.
- Anda memiliki lebih banyak tanggung jawab. Pada dasarnya, Anda berfungsi sebagai pemimpin proyek dan pengembang di setiap proyek Anda, dan dengan kemampuan Anda untuk mengidentifikasi dan mengimplementasikan hal-hal baru, Anda juga efektif sebagai kepala departemen. (Jangan katakan hal ini kepada tenaga penjualan. Mereka suka berbicara dengan pembuat keputusan, dan Anda tidak punya waktu untuk berbicara dengan mereka.)
- Tidak ada pertanyaan tentang kredit untuk pekerjaan yang dilakukan: itu jelas Anda dan Anda sendiri yang membuat sesuatu terjadi.
- Anda dapat menghabiskan lebih banyak waktu untuk benar-benar mengerjakan proyek Anda sendiri dan lebih sedikit waktu dalam rapat tentang proyek yang pada dasarnya milik orang lain (tetapi Anda berada di sana sebagai orang yang mendukung, cadangan yang mungkin, atau apa pun.)
Cons
- Seperti yang ditunjukkan David dalam komentar, Anda adalah satu-satunya pengembang, jadi tidak ada pengembangan yang dilakukan tanpa Anda. Saya pernah membual kepada saudara lelaki saya bahwa saya adalah "lelaki" di proyek tertentu di tempat kerja. Dia dengan tepat menggambarkan situasi saya untuk saya: saya terjebak. Saya tidak bisa melanjutkan perusahaan itu karena saya tidak akan pernah bisa menyingkirkan proyek itu. (Dia benar juga. Butuh beberapa bulan pelatihan dalam jangka waktu yang lama sebelum saya bisa memberikannya kepada seseorang yang bahkan agak mampu mendukungnya.) Anda mungkin merasa sulit untuk mengambil liburan yang sebenarnya ketika tidak ada yang bisa dilakukan tanpa kamu.
- Seperti yang ditunjukkan Pierre, tidak ada seorang pun di situs untuk melakukan tinjauan kode atau berbagi praktik terbaik dengan Anda. Anda dapat menjangkau teman sebaya dengan berbagai cara, tetapi tidak ada yang seefektif mengetuk rekan kerja dan memintanya untuk melihat kode Anda selama 5-10 menit.
- Dalam nada yang sama, Anda mungkin mengalami kesulitan mendapatkan pengalaman dengan alat baru. Pelatihan di luar kantor mungkin sama jarangnya dengan waktu liburan: seseorang akan mengeluh bahwa perusahaan tidak mampu membiarkan Anda tidak melihat Bahasa 3.0 selama seminggu ketika tidak ada seorang pun yang membuat aplikasi Language 2.0 berfungsi.
- Kemajuan karir bisa sangat sulit untuk dikelola. Anda mungkin tidak memiliki posisi yang dapat Anda perjuangkan, bahkan perubahan dalam judul mungkin sulit diperoleh, dan ulasan akhir tahun tidak memiliki kerangka referensi, sehingga pekerjaan yang sangat baik mungkin tidak diperhatikan jika tidak ada yang lain alasan dari itu tidak ada yang benar-benar mengerti apa yang Anda lakukan.
Jika Anda memutuskan untuk pindah ke perusahaan tempat Anda akan bekerja sebagai bagian dari tim programmer, saya tidak berpikir bahwa pengalaman solo Anda mungkin akan sangat merugikan Anda. Kurangnya pengalaman Anda dengan pola desain tidak harus sama pentingnya dengan kemauan Anda untuk mempelajarinya. (Mungkin ada situasi di mana Anda mewawancarai seorang kandidat dengan latar belakang yang sama dan juga pengalaman dalam metode apa pun yang digunakan perusahaan, tetapi itu berlaku pada dasarnya semua orang.)
Sejalan dengan itu, kurangnya pengalaman Anda dalam tim diimbangi dengan kemampuan Anda untuk memakai banyak topi. Ada beberapa pengembang yang merupakan pemain tim yang baik tetapi tidak pernah mengembangkan kemampuan untuk mengelola proyek; Anda telah menunjukkan bahwa Anda dapat melakukannya.
Saya akan merekomendasikan bahwa ketika Anda adalah pengembang solo, Anda harus meluangkan waktu membaca tentang alat dan teknik yang digunakan pengembang serupa, jadi bahkan jika Anda tidak menggunakannya sendiri, Anda sadar bahwa itu ada dan Anda dapat merujuk ke mereka selama wawancara, bahkan jika hanya untuk mengatakan "Ya, saya sudah membaca sedikit tentang kerangka kerja MVC, tapi saya belum menggunakannya sendiri." Lakukan apa yang dapat Anda lakukan untuk tetap berhubungan dengan pengembang lain: pergi ke pertemuan grup pengguna lokal, baca dan komentari blog (atau simpan sendiri), cobalah untuk mengunjungi bengkel dari waktu ke waktu, menonton webinar, dan semacamnya. (Anda mungkin juga mempertimbangkan situs-situs seperti lynda.com untuk pelatihan in-house: tidak sebaik konferensi selama seminggu di tempat lain, tetapi Anda dapat menonton video pada waktu Anda sendiri dan tidak mengirim semua orang ke mode panik karena Anda keluar dari kantor.)