27 điều tôi ước mình đã biết trước khi học lập trình

Điều mà bạn ước mình đã biết trước khi học lập trình là gì? Tôi - tác giả bài viết đã ước mình biết rất nhiều thứ nhưng có lẽ chỉ cần 27 điều kể dưới đây là quá đủ.

Hãy cùng Quản Trị Mạng đón xem 27 điều Ken Mazaika ước mình đã biết ngay từ lúc mới học lập trình - thông điệp dành cho những người muốn theo con đường lập trình cho công việc tương lai hoặc đơn giản chỉ là đam mê và sở thích.

27 điều tôi ước mình đã biết trước khi học lập trình

1. Học đi đôi với hành

Cách duy nhất để nâng cao kỹ năng lập trình là hãy thực sự lập trình. Đừng để chứng "tê liệt phân tích" (analysis paralysis - chứng phân tích, suy nghĩ quá nhiều khiến đầu óc bị chệch khỏi mục tiêu ban đầu thay vì cố gắng đạt được mục tiêu đó) ngăn cản bạn ngay từ khi mới bắt đầu.

2. Lập trình khác với học để làm bài thi

Trí nhớ tốt cũng không thật sự giúp ích quá nhiều.

3. Việc “gian lận” hoàn toàn được chấp nhận

Nếu gặp bất cứ vấn đề gì, đừng ngại hỏi Google hoặc người khác để rút kinh nghiệm. Bởi hầu hết các lập trình viên khác cũng vậy.

Lập trình khác với học để làm bài thi

4. Để lỗi chồng chất mà không kiểm tra là một chiến lược tồi

Tôi đã từng liên tục thay đổi code của mình với mong muốn nó sẽ chạy. Tuy nhiên, vấn đề là cách tiếp cận này sẽ khiến "lỗi chồng lên lỗi" và khiến tôi khó có thể tìm ra mình sai ở đâu khi có vấn đề xảy ra.

5. Tự học code thực sự rất khó

Nói về code, việc trao đổi với những lập trình viên (coder) đầy cảm hứng khác là cách học hiệu quả nhất.

6. Hãy bỏ qua cảm xúc cá nhân

Trong chuyến hành trình trở thành lập trình viên viết code, bạn sẽ có cả trăm ngàn lần thấy thông báo lỗi xuất hiện. Có thể bạn sẽ phát điên hoặc quá mệt mỏi với chúng, nhưng đừng buông bỏ. Thất bại là một phần trong thể thiếu, hãy dẹp bỏ mọi cảm xúc cá nhân qua một bên, nhẹ nhàng nhấn OK và cố gắng tìm ra lỗi.

Tự học code thực sự rất khó

7. Không cần đến 5 màn hình

Trái với những gì thường thấy trên phim Hollywood, bạn không cần các màn hình chứa đầy những đoạn code để trở thành lập trình viên. Chiếc máy tính bạn đang sở hữu hoàn toàn đủ tốt để bắt đầu học lập trình. Đừng lãng phí quá nhiều tiền khi mới bắt đầu theo đuổi con đường lập trình.

8. Có sự khác biệt rất lớn giữa ký tự viết hoa và viết thường

Phải mất một khoảng thời gian tôi mới nhận thấy sự khác biệt tinh tế giữa các biểu tượng giống nhau. Bạn có thể cảm thấy khá bực bội và nản lòng cho đến khi làm quen được với điều đó.

9. Đừng cố gắng hiểu mọi thứ

Thời gian đầu, tôi đã từng cố gắng trả lời các câu hỏi “tại sao” cho mỗi vấn đề gặp phải. Điều này thực sự không cần thiết. Máy tính rất phức tạp và có quá nhiều thứ để học, bạn sẽ không bao giờ hiểu hết được chúng. Không biết hết cũng không sao cả.

10. Cố gắng lập trình đôi (Pair program) càng nhiều càng tốt

Không có cách học code nào nhanh hơn lập trình đôi. Theo Wikipedia, lập trình đôi là kiểu lập trình đòi hỏi hai kỹ sư phần mềm cùng tham gia một nỗ lực lập trình chung trên một máy, nghĩa là chỉ có một màn hình và một bàn phím. Mỗi người thực hiện việc mà người kia hiện không làm. Ví dụ, người này gõ các bộ test đơn vị (unit test), người kia nghĩ về các lớp đầu vào (input) sẽ thỏa mãn bộ test đó; hoặc người này viết mã còn người kia quan sát để hướng dẫn hoặc kiểm lỗi. Người ta khuyên rằng hai người nên luân phiên đổi vai trò, khoảng nửa giờ một lần.

Cố gắng lập trình cặp càng nhiều càng tốt

11. Thay đổi mã chưa tốt (bad code) là một phần của quá trình

Tôi từng nghĩ rằng mỗi đoạn code mình viết đều cần hoàn hảo, nhưng việc cải tiến chúng là điều bình thường. Bạn không thể viết sách rồi xuất bản mà không chỉnh sửa lại nó phải không?

12. Biết cách hỏi người khác

Con người ta không phải cái gì cũng biết, đôi lúc bạn cần hỏi người khác về một vấn đề nào đó. Khi hỏi người khác, bạn cần nắm rõ 4 điều sau:

  • Diễn tả chính xác những gì bạn thấy.
  • Giải thích rõ những gì bạn cho rằng sẽ xảy ra.
  • Giải thích rõ những gì đang xảy ra.
  • Giải thích tại sao bạn nghĩ nó nên làm việc theo cách khác.

Khi tìm hiểu, có thể bạn sẽ thấy ngay giải pháp mà không cần nhờ đến sự giúp đỡ từ người khác. Điều đó cho phép bạn có cơ hội xem xét toàn diện vấn đề.

13. Bạn không cần phải là thiên tài toán học

Không giỏi toán không có nghĩa là bạn không thể trở thành một lập trình viên.

Bạn không cần phải là thiên tài toán học

14. Luôn ăn mừng chiến thắng nho nhỏ

Biến code thành sản phẩm hoạt động được là một quá trình rất thú vị. Tôi sẽ không thể có thành công như ngày hôm nay nếu không nhìn lại và trân trọng những gì mình đã làm ra.

15. Hãy gặp gỡ những coder khác

Mới đầu, hiển nhiên ai cũng có cảm giác tự ti và ngại ngùng. Nhưng khi đã "lỡ" tham gia các buổi hội thảo, bạn sẽ nhận ra có không ít coder mới vào nghề cũng giống như bạn. Hãy gặp gỡ những coder khác để tìm thêm bạn mới, chia sẻ và học hỏi thêm kinh nghiệm cho bản thân.

16. Tránh xung đột (conflict) khi hợp nhất (merge) sẽ giúp bạn hạnh phúc hơn

Merge conflict thật khó chịu. Vì vậy, khi nhận ra tôi có thể “tuồn” một tính năng nào trước đồng nghiệp để anh/cô ta phải đối phó với chúng thay cho mình, tôi đã vô cùng thích thú.

17. Thừa nhận những gì chưa biết

Khi tìm kiếm công việc lập trình đầu tiên, đừng nhận vơ bạn biết những ngôn ngữ lập trình mà thậm chí chưa bao giờ học qua. Đừng làm vậy. Không ai mong đợi bạn biết mọi thứ ngay cả.

Thừa nhận những gì chưa biết

18. Không cần học code suốt 10.000 giờ đồng hồ để tìm việc

Thực tế, bạn chỉ cần đủ giỏi để biết tự hoàn thiện mình và lấy lại phong độ khi vấn đề xuất hiện mà thôi. Yêu cầu này chắc chắn không thể lấy mất 10.000 tiếng đồng hồ của bạn được.

19. Sẽ có thời điểm bạn thức dậy và nghĩ ngay đến code

Và thật thú vị khi chuyện đó xảy ra.

20. Có thể gây ra những sai lầm lớn

Tôi từng mắc phải một sai lầm khiến công ty thất thoát 10.000 USD. Nhưng nhờ sai lầm này, tôi học được bài học quan trọng nhất trong cuộc đời lập trình: Đừng ngại đặt mình vào vị trí là người có thể bất chấp mọi rủi ro gây ra sai lầm. Bạn sẽ trưởng thành hơn, dày dặn kinh nghiệm hơn khi trải qua chúng.

21. Thuật toán cũng giống như tìm tên trong danh bạ vậy

Thuật toán là cách tiếp cận từng bước, trong đó có các hành động khác nhau được thực hiện một cách chính xác, rõ ràng. Hãy nghĩ đơn giản như cách bạn tìm một tên cụ thể trong danh bạ vậy.

Thuật toán cũng giống như tìm tên trong danh bạ vậy

22. Bạn sẽ không bao giờ có cảm giác mình đã sẵn sàng dành hết thời gian để lập trình

Hội chứng kẻ mạo danh (Imposter syndrome) là có thật. Hãy thử tưởng tượng rằng mình chẳng biết gì cả và đó là điều hoàn toàn bình thường. Quan trọng nhất, hiểu được rằng bạn có thể tìm ra những thứ mình chưa biết.

23. Lập trình viên không bao giờ ngưng học hỏi

Công nghệ luôn phát triển không ngừng, vậy nên lập trình viên thành công là những người không ngừng học tập và phát triển kỹ năng của mình mỗi ngày.

24. Bắt máy tính suy nghĩ như con người

Nhiều người khuyên bạn nên "suy nghĩ giống máy tính", nhưng hãy thử tưởng tượng ngược lại xem.

Xem thêm: Hình thành cách tư duy như một lập trình viên

Bắt máy tính suy nghĩ như con người

25. Lập trình là việc sử dụng chính xác công cụ cần thiết cho công việc

Hiện có rất nhiều thư viện mã nguồn mở khác nhau, công cụ và framework phù hợp với bạn. Vì vậy, bạn cần phát triển bộ công cụ của riêng mình, hiểu rằng công cụ nào phù hợp với vấn đề bạn gặp phải.

26. Đừng bỏ cuộc trước khi thành quả đến

Học code bao gồm rất nhiều công việc. Phải mất nhiều thời gian, công sức nhưng không phải là không thể. Quá nhiều người mắc sai lầm, bỏ cuộc ngay cả khi chỉ còn vài bước đơn giản là hoàn tất mọi thứ.

27. Học lập trình không hề dễ dàng

Nhưng đó cũng là lý do vì sao nó đáng giá và bạn sẽ không phải hối tiếc vì công sức đã bỏ ra.

Nói tóm lại, tôi cảm thấy thực sự hạnh phúc vì lúc mới lập trình mình đã quá “ngây thơ”. Hồi đấy bản thân biết quá ít nên tôi đã có động lực để luôn tư duy toàn diện về mọi thứ mình học được sau này.

Nếu các bạn còn có những lời khuyên nào hữu ích dành cho những người mới bắt đầu học lập trình máy tính, đừng ngần ngại để lại bình luận bên dưới nhé!

Tác giả: Ken Mazaika

Tham khảo thêm một số bài viết:

Chúc các bạn vui vẻ!

Thứ Năm, 10/05/2018 06:35
4,69 👨 8.082
0 Bình luận
Sắp xếp theo
    ❖ Kỹ năng Công việc