Tôi đã lập trình (một cách ám ảnh) từ khi tôi 12 tuổi. Tôi khá am hiểu về các ngôn ngữ ngoài kia, từ lắp ráp, đến C ++, đến Javascript, đến Haskell, Lisp và Qi. Nhưng tất cả các dự án của tôi đã được một mình.
Tôi có bằng kỹ sư hóa học, không phải CS hay kỹ sư máy tính, nhưng lần đầu tiên vào mùa thu này, tôi sẽ thực hiện một dự án lập trình lớn với những người khác và tôi không biết phải chuẩn bị như thế nào. Tôi đã sử dụng Windows suốt đời, nhưng dự án này sẽ rất đơn giản, vì vậy tôi đã mua một chiếc máy Mac gần đây với hy vọng làm quen với môi trường.
Tôi đã may mắn được tham gia một cuộc thi hackathon với một số người bạn trong năm qua - cả hai chuyên ngành CS - và thật thú vị, chúng tôi đã giành chiến thắng. Nhưng tôi nhận ra khi tôi làm việc với họ rằng quy trình làm việc của họ rất khác với tôi. Họ đã sử dụng Git để kiểm soát phiên bản. Tôi chưa bao giờ sử dụng nó vào thời điểm đó, nhưng tôi đã học được tất cả những gì tôi có thể về nó. Họ cũng đã sử dụng rất nhiều khung và thư viện. Tôi đã phải học những gì Rails đã qua đêm khá nhiều cho cuộc thi hackathon (mặt khác, họ không biết phạm vi từ vựng hay đóng cửa là gì). Tất cả các mã của chúng tôi hoạt động tốt, nhưng họ không hiểu của tôi và tôi không hiểu mã của họ.
Tôi nghe các tài liệu tham khảo về những điều mà các lập trình viên thực sự làm hàng ngày - kiểm tra đơn vị, đánh giá mã, nhưng tôi chỉ có ý thức mơ hồ về những gì chúng là. Tôi thường không có nhiều lỗi trong các dự án nhỏ của mình, vì vậy tôi chưa bao giờ cần hệ thống theo dõi lỗi hoặc kiểm tra chúng.
Và điều cuối cùng là tôi phải mất một thời gian dài để hiểu mã của người khác. Các quy ước đặt tên biến (thay đổi theo từng ngôn ngữ mới) rất khó (__mzkwpSomRidicAboustv) và tôi thấy việc ghép lỏng khó khăn. Điều đó không có nghĩa là tôi không lỏng lẻo vài thứ - Tôi nghĩ rằng tôi khá giỏi về công việc của mình, nhưng khi tôi tải xuống một cái gì đó như nhân Linux hoặc mã nguồn Chromium để xem xét, tôi đã dành hàng giờ để thử để tìm hiểu làm thế nào tất cả các thư mục và tập tin có tên kỳ lạ này kết nối với nhau. Đó là một tội lỗi lập trình để phát minh lại bánh xe, nhưng tôi thường thấy việc tự mình viết ra các chức năng nhanh hơn là dành hàng giờ để mổ xẻ một số thư viện.
Rõ ràng, những người làm việc này để kiếm sống không gặp phải những vấn đề này và tôi sẽ cần phải tự mình đi đến điểm đó.
Câu hỏi: Một số bước mà tôi có thể thực hiện để bắt đầu "tích hợp" với mọi người khác là gì?
Cảm ơn!