How to become a better programmer/developer?
Mấy hôm trước tự nhiên nhớ đến một bài viết cũng khá lâu (tầm năm 2005), trong đó có đoạn nói về "phong cách của hacker" (nguyên văn là Points For Style). Hồi đó đọc nhưng cũng chẳng nghĩ ngợi, chẳng kiểm chứng làm gì. Tuy nhiên do công việc dạo này quá căng thẳng cộng với việc hay gặp phải tình trạng mọi người kêu ca lương lậu (cả chính đáng lẫn không chính đáng) nên hôm nay quyết định ngồi viết 1 bài lảm nhảm tý
Điểm qua những "cái" mà một hacker nên có (theo tác giả Eric Steven Raymond):
- Học cách diễn đạt trôi chảy mọi thứ bằng tiếng mẹ đẻ
- Đọc sách khoa học viễn tưởng
- Học võ (tham gia tập thể dục thể thao)
- Thiền định
- Nghe nhạc
- Làm thơ, chơi chữ
Theo mình, nên áp dụng thêm Ngũ Thường (Nhân, Nghĩa, Lễ, Trí, Tín), Cương thứ nhị trong Tam Cương (Quân, Sư, Phụ) và Tứ Tuyệt (Cầm, Kỳ, Thi, Họa) vào style của một lập trình viên
Ngũ Thường & Cương thứ nhị có lẽ sẽ trình bày ở 1 bài viết khác. Hôm nay chỉ xin viết nhảm về Tứ Tuyệt
- Cầm: ở đây hiểu rộng theo nghĩa âm nhạc nói chung đi. Ai cũng biết âm nhạc có tác dụng giúp con người thư giãn như thế nào. Vậy thì với 1 nghề cũng rất chi là căng thẳng áp lực như nghề lập trình này, tại sao ko áp dụng Cầm nhỉ? Ngêu ngao hát những lúc căng thẳng hay khi bị deadline thúc đít chẳng hạn
- Kỳ: chơi cờ thì liên quan gì đến lập trình nhỉ? Xem nào, để chơi cờ thì đòi hỏi người chơi phải có tư duy chiến thuật, chiến lược tốt, khả năng tập trung cao... Ô, mấy cái này áp dụng vào lập trình nói riêng và quy trình làm phần mềm nói chung thì quá tuyệt ấy chứ
- Thi: mục này có vẻ mình hơi "cưỡng bức hoàn cảnh" 1 tý. Tuy nhiên theo mình, để làm được thơ hay thì ít ra người làm thơ cũng phải có nền tảng về vốn từ, vốn sống... Từ đó kéo theo anh cũng phải diễn đạt được trôi trảy tiếng Mẹ đẻ => Kỹ năng giao tiếp. Cái này thì ngành nghề nào cũng quan trọng, không riêng gì với lập trình
Xem nào, trong 4 cái tuyệt ở trên thì mình có thể làm được 2 cái (mặc dù không chuyên nghiệp) là: Kỳ (biết chơi cờ Vua
Ngoài ra, việc áp dụng võ đạo nói riêng và thể thao nói chung vào lập trình cũng rất tốt. Không thể có 1 tinh thần minh mẫn trong 1 cơ thể rệu rã được. Võ thuật mang đến cho ta sức khỏe dẻo dai, bền bỉ, tính tập trung. Đạo mang đến cho ta còn nhiều hơn thế
Mà có lẽ cần thêm yếu tố này vào nữa thì mới thành người lập trình viên giỏi được: Don't Do It For The Money. Thoạt đầu nghe vô lý quá, không vì tiền sao sống được. Nhưng theo mình thì cái này cũng là tương đối thôi, nó chuẩn cho những bạn vừa mới "vào đời", chưa có tý kinh nghiệm gì cả thì đừng vội nên đòi hỏi này nọ quá, thành ra tự đánh mất đi cơ hội của mình. Originally posted by dq_ninh:
Đồng ý tiền lương là một vấn đế chủ yếu và quan trọng, vì có "thực mới vực được đạo". Nhưng đối với một SV, đặc biệt là ngành CNTT, thì sự đam mê về nghề nghiệp, sự ham muốn học hỏi, mới là điều quan trọng nhất. Và đây mới chính là chìa khóa đưa đến thành công, vì nếu đặt đam mê nghề nghiệp lên hàng đầu (để trở thành nỗi băn khoăn chính), thì sẽ có một ngày, trở thành một người có lương cao hơn những bạn đồng nghiệp.
Và thêm yếu tố "trí tưởng tượng" trong lập trình nữa (tưởng tượng chứ không phải tưởng bở đâu nhé
Vậy đấy, con đường hoàn thiện bản thân nhìn cũng ko thấy khó khăn lắm (toàn đường thẳng không à) nhưng vừa không có đèn đường, vừa dốc dựng đứng nên thành thử...