Một sinh viên viết cho tôi: “Em đã làm việc rất chăm chỉ trong lớp lập trình nhưng vẫn không làm tốt. Phần lớn các bạn em có thể dễ dàng viết chương trình trong vài ngày nhưng em phải mất cả tuần để kết thúc nhiệm vụ được phân ở lớp. Em nghĩ rằng phần mềm có thể không là nghề tốt cho em. Xin thầy lời khuyên.”

Đáp: Bạn ăn voi bằng cách nào? Bạn có thể nuốt toàn bộ nó trong một miếng không? Câu trả lời đúng là, “Mỗi lần một miếng.” Biểu dụ này áp dụng để đạt tới mục đích lập trình của bạn nữa. Bạn học lập trình thế nào? Bạn hoàn thành nó từng bước, từng nhiệm vụ, một chương trình mỗi lúc. Từ câu lệnh đơn giản tới thuật toán phức tạp hơn. Bạn càng viết mã, bạn càng khá hơn. Điều đáng ngạc nhiên là bạn có thể học được nhiều thế nào nếu bạn chia việc lập trình thành các nhiệm vụ nhỏ hơn, và rồi làm từng nhiệm vụ mỗi lúc, mọi ngày.

Nếu bạn muốn tăng kĩ năng của bạn, bạn nên làm nó lặp đi lặp lại cho tới khi nó trở thành một phần của bạn. Bạn nên tìm cách làm tốt hơn các nhiệm vụ bạn vẫn làm, mọi ngày một. Đọc một giờ một ngày vào chủ đề bạn quan tâm. Học môn phụ bất kì khi nào bạn có thể. Các hoạt động này sẽ giúp cải tiến toàn bộ nghề nghiệp của bạn. Khi bạn đầu tư một hay hai giờ mỗi ngày vào việc tự cải tiến, hiệu quả tích luỹ lên khả năng của bạn có thể là phi thường.

Nếu bạn đọc ba mươi phút mỗi ngày, thay vì xem ti vi, bạn sẽ hoàn thành được mười lăm cuốn sách mỗi năm. Nếu bạn viết năm mươi dòng mã mỗi ngày thì trong bốn năm bạn sẽ viết được trên 70 nghìn dòng mã. Bạn sẽ là một trong những người lập trình giỏi nhất trong đại học của bạn. Và bạn có thể đạt tới điều này bằng việc viết năm mươi dòng mã mỗi ngày. Bạn phải học kiên nhẫn bởi vì mọi người đều có nhịp riêng của mình. Điều bạn của bạn đã làm có thể không hệt như bạn làm cho nên đừng so sánh bản thân bạn với họ.

Trong từng phần của cuộc đời bạn, phân tích hoạt động của bạn và lựa chọn điều đặc biệt xác định mức độ thành công của bạn trong khu vực đó. Thế rồi hội tụ mọi chú ý của bạn, cả ngày, vào điều đặc biệt đó. Hành động chú ý tập trung sẽ làm cho bạn thực hiện tốt hơn trong khu vực đó, cả có ý thức và không ý thức.

—-English version—-

Learning to write code

A student wrote to me: “I have worked very hard in my programming class but still not doing well. Most of my friends can easily write a program in few days but it took me the whole week to finish the class assignment. I think that software may not be a good career for me. Please advice.”

Answer: How do you eat an elephant? Can you swallow the whole thing in once bite? The correct answer is, “One bite at a time.” This metaphor applies to achieving your programming goal, as well. How do you learn programming? You accomplish it one step, one task, one program at a time. From simple statement to more complex algorithm. The more you write code, the better you get. It is amazing how much you can learn if you break your programming into smaller tasks, and then do one task at a time, every day.

If you want to increase your skills, you should do it over and over until it becomes part of you. You should look for ways to get better at the tasks you do, every single day. Read one hour per day in the subject that you are interested in. Take additional courses whenever you can. These activities will help improve your entire career. When you invest an extra one or two hours per day in self-improvement, the cumulative effect on your ability can be extraordinary.

If you read thirty minutes each day, rather than watching television, you will complete about fifteen books per year. If you write fifty lines of code a day then in four years you will have written over 70 thousands line of code. You will be one of the best programmers in your university. And you can achieve this just by writing fifty lines of code each day. You should learn patient since everybody has its own pace. What your friends did may not be the same with you so do not compare yourself with them.

In each part of your life, analyze your activities and select a specific thing that determines your level of success in that area. Then focus all of your attention, all day long, on that specific thing. The act of focused attention will cause you to perform better in that area, both consciously and unconsciously.