Saya telah memprogram (secara obsesif) sejak saya berusia 12 tahun. Saya cukup berpengetahuan luas dalam spektrum bahasa di luar sana, mulai dari perakitan, ke C ++, ke Javascript, ke Haskell, Lisp, dan Qi. Tapi semua proyek saya sendiri.
Saya mendapatkan gelar sarjana teknik kimia, bukan CS atau teknik komputer, tetapi untuk pertama kalinya pada musim gugur ini saya akan mengerjakan proyek pemrograman besar dengan orang lain, dan saya tidak tahu cara mempersiapkannya. Saya telah menggunakan Windows sepanjang hidup saya, tetapi proyek ini akan sangat tidak-jadi, jadi saya membeli Mac baru-baru ini dengan harapan membiasakan diri dengan lingkungan.
Saya beruntung berpartisipasi dalam hackathon dengan beberapa teman tahun lalu - keduanya jurusan CS - dan cukup menarik, kami menang. Tetapi saya menyadari ketika saya bekerja dengan mereka bahwa alur kerja mereka sangat berbeda dari saya. Mereka menggunakan Git untuk kontrol versi. Saya belum pernah menggunakannya pada saat itu, tetapi sejak itu saya sudah belajar semua yang saya bisa tentang itu. Mereka juga menggunakan banyak kerangka kerja dan perpustakaan. Saya harus belajar apa Rails cukup semalam untuk hackathon (di sisi lain, mereka tidak tahu apa pelingkupan atau penutupan leksikal). Semua kode kami bekerja dengan baik, tetapi mereka tidak mengerti kode saya, dan saya tidak mengerti kode mereka.
Saya mendengar referensi untuk hal-hal yang dilakukan programmer nyata setiap hari - pengujian unit, ulasan kode, tetapi saya hanya memiliki sedikit pengertian tentang apa ini. Saya biasanya tidak memiliki banyak bug di proyek kecil saya, jadi saya tidak pernah membutuhkan sistem pelacakan bug atau tes untuk mereka.
Dan yang terakhir adalah saya butuh waktu lama untuk memahami kode orang lain. Konvensi penamaan variabel (yang berbeda-beda untuk setiap bahasa baru) sulit (__mzkwpSomRidicAbbrev), dan saya merasa sulit untuk menggunakan kopling longgar. Itu bukan untuk mengatakan saya tidak secara longgar berpasangan - saya pikir saya cukup baik untuk pekerjaan saya sendiri, tetapi ketika saya mengunduh sesuatu seperti kernel Linux atau kode sumber Chromium untuk melihatnya, saya menghabiskan berjam-jam mencoba untuk mencari tahu bagaimana semua direktori dan file aneh ini terhubung. Ini adalah dosa pemrograman untuk menemukan kembali roda, tetapi saya sering menemukan itu lebih cepat untuk menulis fungsionalitas sendiri daripada menghabiskan berjam-jam membedah beberapa perpustakaan.
Jelas, orang-orang yang melakukan ini untuk mencari nafkah tidak memiliki masalah ini, dan saya harus sampai ke titik itu sendiri.
Pertanyaan: Apa saja langkah yang bisa saya ambil untuk mulai "mengintegrasikan" dengan orang lain?
Terima kasih!