Bức ảnh này sẽ thay đổi hoàn toàn cách học code của bạn!

Ngày nay, các loạibiểu đồ lớndùng để liệt kê chi tiết nhiều loại công nghệ khác nhau thường được sử dụng bởi các web developer trên các Interweb. Bức hình phía trên chính là một trong số các loại biểu đồ đó (chủ yếu dành cho các backend developer).

Tôi dám cá rằng nó sẽ là nguồn tư liệu tuyệt vời cho cả dân nghiệp dư và dân chuyên nghiệp. Tác giả của biểu đồ trên đã chỉ ra rõ ràng những công nghệ mà ta cần phải biết nếu muốn trở thành một frontend web developer, hay backend web developer, hoặc một system administrator.

Nhưng mà dù sao đi nữa thì tôi chắc chắn nó rất có ích đối với những ai mới bắt đầu học viết những đoạn code đầu tiên.
Vì sao tôi nói như vậy?

Bởi vì tôi đã làm một developer suốt hơn 15 năm (bắt dầu với việc tập tành về QBASIC game vào năm 8 tuổi). Tôi xem mình như một full stack developer cho nên tất cả những kiến thức được thể hiện ở biểu đồ trên ít nhiều đều rơi vào lĩnh vực của tôi.


Nào bây giờ hãy cùng nhìn kỹ vào nó. Trông thật là đáng sợ đúng không? Nhưng khoan đã, nó không phải là một biểu đồ về tất cả những điều bạn cần phải biết để trở thành một developer. Hoàn toàn không phải! Chẳng lẽ bạn thật sự nghĩ rằng tôi – hay bất cứ một developer nào khác – đều biết cách ứng dụng tất cả những kiến thức trên?

Không có chuyện đó đâu.

Khi mới bắt đầu với việc lập trình máy tính, bạn sẽ cảm thấy mọi thứ quá tải. Rồi bạn cũng sẽ nghe về những sinh viên có thể viết code với 10 ngôn ngữ lập trình, hay gặp gỡ những dân chuyên về Linux, hoặc cố gắng đuổi kịp hàng ngàn khái niệm khoa học máy tính mà giao sư đã giảng dạy trước đó. Và cuối cùng thì bạn cũng mắc sai lầm tương tự như hàng ngàn người khác: bạn nghĩ rằng bạn bắt buộc phải biết hết mọi kiến thức về lập trình.

Thật ra thì không cần phải học quá nhiều như thế đâu. Và cũng không ai mong đợi vào chuyện đó.

Mặc dù đã trở thành một developer được nhiều năm, là dân chuyên nghiệp, nhưng kỳ thật tôi biết rất ít các kiến thức đã được vẽ trên bức hình đó. Thậm chí có một số kiến thức mà tôi còn chẳng thể nhận ra! Hoặc cũng có thể tôi đã sử dụng chúng tại một thời điểm nào đó, nhưng 75% của việc sử dụng chúng chỉ chiếm khoảng dưới 1 tiếng đồng hồ trong cuộc đời tôi.

Nhưng nói thật, nếu tôi dành ra 1 tiếng để nghiên cứu thì chắc chắn tôi sẽ áp dụng được một vài trong số đó. Đơn giản bởi vì tôi biết học và nghiên cứu như một lập trình viên.

Bởi vì có rất nhiều công nghệ mới được phát minh mỗi ngày, và chúng luôn thay đổi cho kịp với xu hướng của thời đại, cho nên với cương vị là một developer, nếu bạn cứ cố gắng theo đuổi những công nghệ mới nhất, thì chắc chắn là bạn sẽ luôn thua cuộc. Tốt hơn hết, chúng ta nên chọn những công nghệ phù hợp với bản thân và thường xuyên cập nhật chúng cho kịp với xu thế.

Chính vì vậy, thay vì dành hết thời gian để mà học hết tất cả các ngôn ngữ lập trình và công nghệ, ta nên học cách học như một lập trình viên .

Học cách đọc tư liệu

Đâylà một ví dụ về file input và output của Python. Cònđâylà một ví dụ tương tự khác của Golang.

Bạn có phát hiện ra điểm tương tự giữa 2 ví dụ trên? Những ví dụ về các đoạn mã code, những dòng tóm tắt ngắn gọn, hay các loại interface (nếu bạn may mắn) sẽ là những người bạn dồng hành khi bạn đang cố gắng tìm câu trả lời cho những câu hỏi sau đây

  • Liệu đoạn code này có thực hiện được như những gì tôi mong muốn?
  • Làm thế nào để làm được điều mà tôi muốn?
  • Liệu có cách nào tốt hơn để đạt được mục đích mà tôi đã đặt ra hay không?

Học cách đọc mã nguồn

Đâylà một ví dụ về việc triển khai bộ mã hóa JSON của Python. Nếu như một phần trong bộ thư viện của Python không hoàn hảo như bạn mong đợi, hay vẫn còn vài chỗ thiếu sót trong các file tư liệu, thì việc ta cần làm nhất ngay lúc này chính là kiểm tra các đoạn code, mặc dù lúc mới nhìn vào chúng sẽ làm bạn hoa cả mắt.

Sau đây là một vài mẹo mà tôi đã từng sử dụng:

  • Tính năng search code của Github
  • Sử dụng REPLs để đọc mã nguồn (ví dụ như dùngPrycho Ruby)
  • Cloning để mở source project và insert các câu lệnh debug để xem nguyên tắc hoạt động của chúng.

Học cách Debug Code

Debuggers. Break statements. Print statements! Hãy học cách sử dụng chúng để giải quyết các vấn đề về code, bởi vì đây sẽ là những gì mà bạn dành phần lớn thời gian của mình để nghiên cứu. Sau đây là một số lưu ý cần ghi nhớ:

  • Khi bắt đầu với một lỗi bug nào đó, hãy cố gắng nhìn bao quát vấn đề hết mức có thể. Lỡ như nếu rắc rối không nằm ở các mã code, mà ở cái server mà ta đang sử dụng thì sao? Hoặc có thể là do data? Nếu bạn không thể tìm ra được chúng ngay lập tức, thì có nghĩa là bạn đã tìm sai chỗ rồi đấy.
  • Hãy thư giãn đi. Bởi vì khi debug, ta thường hay lạc lối về vị trí của bug, mà không thể tìm ra được nguyên nhân nằm ở đâu. Hãy nghĩ theo hướng tích cực, nên nhớ rằng bộ não của chúng ta về bản chất thì cũng chỉ là một chuỗi các dây thần kinh được liên kết với nhau, cho nên nếu như bạn chỉ nhìn vấn đề theo 1 hướng, bạn sẽ không bao giờ nhìn ra được bản chất của vấn đề. Cho nên là hãy thư giãn đi, nghĩ về những chuyện khác, để cho não bộ của bạn hoàn toàn được thả lỏng. Khi bạn trở lại, chắc chắn là bạn sẽ thấy bug ở ngay trước mắt mình thôi. Tôi đảm bảo.
  • Các đoạn code thì (hầu như) lúc nào cũng chính xác. Dù tốt hay xấu, ít nhất thì nó cũng đang thực hiện đúng với những gì mà ta đã thiết lập cho nó. Công việc lúc này của bạn đơn giản chỉ là tìm ra chỗ mà bạn đã thiết lập sai.

Học cách tìm kiếm sự giúp đỡ:

Nghe thì có vẻ dựa dẫm quá nhưng mà không đâu. Có rất nhiều công cụ có thể giúp bạn khi mà bạn đang “bí”. Tôi thường sử dụng:

  • Google
  • StackOverflow(thường tìm thấy trên Google)
  • Mục các issue Github của thư viện

Tiếp theo đây là một số điều cần lưu ý nếu bạn muốn ai đó giúp mình:

  • Những người nhận lời giúp bạn chắc chắn không thể nào biết rõ chính xác vấn đề của bạn. Việc cần làm là bạn hãy cung cấp cho họ những thông tin cần thiết, nhưng đừng quá lan man. Thỉnh thoảng bạn có thể cung cấp cho họ những đoạn code, application logs, program configurations, hoặc những vấn đề nổi bật trong trường hợp của bạn.
  • Hãy trình bày cho thật rõ ràng và chính xác. Sẽ rất khó khăn cho người khác để đọc một bài report về bug mà có quá nhiều lỗi chính tả, code chưa format, và cả những đoạn giải thích dài dòng “không lối thoát” về vấn đề mà bạn đang gặp phải.
  • Đừng post những data nhạy cảm. Kiểm tra kỹ lưỡng password, access token, và user data trong bài post của bạn. Và nếu bạn mắc phải sai lầm nào đó, hãy chịu trách nhiệm và giải quyết nó càng nhanh càng tốt.

Kết luận

Là một developer, có quá nhiều kiến thức để ta có thể thành thạo hết tất cả. Đừng quá ép buộc bản thân mình. Thay vào đó, hãy học cách làm việc chuyên nghiệp với vai trò là một developer, xây dựng toolset phù hợp với bản thân, và đừng cố gắng tìm kiếm lời giải cho mọi câu hỏi. Nên tập trung vào việc làm sao tìm ra cách giải quyết vấn đề một cách nhanh nhất.

Dù cho mới bắt đầu học viết code hay bạn đã là một tay chuyên nghiệp trong việc viết code, tôi hy vọng rằng bài viết này sẽ giúp ích cho bạn.

Hãy nhớ rằng: Không có ai yêu cầu bạn phải biết hết tất cả mọi thứ. Have fun, và không ngừng học hỏi.

Nếu muốn cùng tôi bàn luận về coding, bạn có thể liên lạc với tôi quatwitterhoặc truy cập vàoCodevolve.com

Happy coding!

Nguồn: blog.topdev.vn via Medium