Hãy quan tâm đến lập trình, và làm một số bởi vì nó là niềm vui. Hãy chắc chắn rằng nó vẫn đủ vui để bạn sẵn sàng đặt trong mười năm / 10.000 giờ của mình.
Chương trình . Loại học tốt nhất là học bằng cách làm. Nói một cách kỹ thuật hơn, "mức hiệu suất tối đa cho các cá nhân trong một miền nhất định không được tự động đạt được như một chức năng của trải nghiệm mở rộng, nhưng mức độ hiệu suất có thể tăng lên ngay cả bởi những cá nhân có kinh nghiệm cao do nỗ lực cải thiện có chủ ý để cải thiện . " (p. 366) và "việc học hiệu quả nhất đòi hỏi một nhiệm vụ được xác định rõ ràng với mức độ khó thích hợp cho từng cá nhân cụ thể, phản hồi thông tin và cơ hội để lặp lại và sửa lỗi." (trang 20-21) Cuốn sách Nhận thức trong thực tiễn: Tâm trí, Toán học và Văn hóa trong cuộc sống hàng ngày là một tài liệu tham khảo thú vị cho quan điểm này.
Nói chuyện với các lập trình viên khác; đọc các chương trình khác . Điều này quan trọng hơn bất kỳ cuốn sách hoặc khóa đào tạo.
Nếu bạn muốn, đặt trong bốn năm tại một trường cao đẳng (hoặc nhiều hơn tại một trường đại học). Điều này sẽ cung cấp cho bạn quyền truy cập vào một số công việc yêu cầu thông tin xác thực và nó sẽ giúp bạn hiểu sâu hơn về lĩnh vực này, nhưng nếu bạn không thích đi học, bạn có thể (với một số cống hiến) có được kinh nghiệm tương tự với chính bạn hoặc trong công việc . Trong mọi trường hợp, học sách một mình sẽ không đủ. "Giáo dục khoa học máy tính không thể khiến bất cứ ai trở thành một lập trình viên chuyên gia, ngoài việc nghiên cứu bút vẽ và bột màu có thể khiến ai đó trở thành họa sĩ chuyên gia", Eric Raymond, tác giả của Từ điển mới của Hackman nói. Một trong những lập trình viên giỏi nhất tôi từng thuê chỉ có bằng Trung học; ông đã sản xuất rất nhiều phần mềm tuyệt vời, có nhóm tin tức của riêng mình và kiếm đủ các lựa chọn cổ phiếu để mua hộp đêm của riêng mình.
Làm việc trên các dự án với các lập trình viên khác . Hãy là lập trình viên tốt nhất trong một số dự án; là tồi tệ nhất trên một số người khác. Khi bạn là người giỏi nhất, bạn sẽ kiểm tra khả năng của mình để dẫn dắt một dự án và truyền cảm hứng cho những người khác bằng tầm nhìn của bạn. Khi bạn là người tồi tệ nhất, bạn học những gì các bậc thầy làm và bạn học những gì họ không muốn làm (vì họ bắt bạn làm điều đó cho họ).
Làm việc trên các dự án sau khi lập trình viên khác . Hiểu một chương trình được viết bởi người khác. Xem những gì nó cần để hiểu và sửa chữa nó khi các lập trình viên ban đầu không có mặt. Hãy suy nghĩ về cách thiết kế chương trình của bạn để giúp những người sẽ duy trì chúng sau bạn dễ dàng hơn.
Học ít nhất nửa tá ngôn ngữ lập trình. Bao gồm một ngôn ngữ hỗ trợ trừu tượng lớp (như Java hoặc C ++), một ngôn ngữ hỗ trợ trừu tượng hóa chức năng (như Lisp hoặc ML), một ngôn ngữ hỗ trợ trừu tượng cú pháp (như Lisp), một ngôn ngữ hỗ trợ các đặc tả khai báo (như các mẫu Prolog hoặc C ++), một ngôn ngữ có hỗ trợ coroutines (như Icon hoặc Scheme) và một hỗ trợ song song (như Salu).
Hãy nhớ rằng có một "máy tính" trong "khoa học máy tính". Biết máy tính của bạn mất bao lâu để thực hiện một lệnh, lấy một từ từ bộ nhớ (có và không có lỗi bộ nhớ cache), đọc các từ liên tiếp từ đĩa và tìm đến vị trí mới trên đĩa. (Câu trả lời ở đây.)
Tham gia vào một nỗ lực tiêu chuẩn hóa ngôn ngữ. Nó có thể là ủy ban ANSI C ++ hoặc có thể quyết định xem phong cách mã hóa cục bộ của bạn sẽ có 2 hoặc 4 cấp độ thụt lề không gian. Dù bằng cách nào, bạn tìm hiểu về những gì người khác thích trong một ngôn ngữ, họ cảm thấy sâu sắc như thế nào, và thậm chí có thể một chút về lý do tại sao họ cảm thấy như vậy.
Có ý thức tốt để thoát khỏi nỗ lực tiêu chuẩn hóa ngôn ngữ càng nhanh càng tốt.