PHẢIMẤTBAOLÂU ĐỂ TRỞTHÀNH1 CHUYÊN GIATRONG
LĨNH VỰCLẬP TRÌNH ?
Trong lĩnhvựclập trình à ? À không, nói tổng quát hơn, câu hỏi được đặt ra phải là: “Làm
thế nào đểtrởthành1 chuyên giatrong1lĩnhvực bất kỳ ?”
+ Chuyêngia ?
+ Thành thạo ?
Đó là lẽ không phải là ước muốn của riêng tôi, & cũng không phải của riêng bạn, mà là của
tất cả mọi người ! Tại sao thế nhỉ ? Đơn giản thôi, vì khi được mọi người xung quanh công nhận là
1chuyên gia, được coi là thành thạo trong1lĩnhvực (nói theo chủ đề bài viết này là, thành thạo
trong lĩnhvựclập trình), bạn đương nhiên sẽ được mọi người ngưỡng mộ, thậm chí sẽ ganh tị với
bạn rất nhiều là đằng khác.
Nhưng bằng cách nào ?
Chắc cũng ít nhất 1 lần trong đời bạn đã vào nhà sách nhỉ ?! Trong quầy sách tin học, có lẽ sẽ
không khó khăn lắm để tìm những quyển sách có tựa như:
+ Học nhanh WindowsXP bằng hình ảnh
+ Thành thạo Pascal trong 24 giờ
+ Tự học Java trong 7 ngày
+ Làm chủ Excel trong 21 ngày
+ và còn rất rất nhiều những quyển sách khác có tiêu đề tương tự như vậy
Một ví dụ khác. Chắc bạn cũng đã vài lần truy cập Internet phải không ? Đã bao giờ bạn tìm
thông tin với từ khóa “Teach Yourself” chưa ? Cụ thể hơn 1 chút, bạn có thể ghé thăm trang
http://www.amazon.com để tìm các sách thuộc chủ đề Teach Yourself bạn sẽ phải choáng ngợp
trước 1 kho sách thuộc loại này với những tựa đề rất kêu, ví dụ như: Learn Bengali in 30
days. Vẫn chưa hết, nếu vẫn tiếp tục công việc tìm kiếm, & thay từ “days” bằng từ “hours”
bạn cũng sẽ phải choáng ngợp không kém phần, bạn nghĩ sao về 1 quyển sách có tựa là: Teach
Yourself Grammar and Style in 24 Hours ???
Nếu thật sự sau khi đọc xong những quyển sách trên theo đúng như thời gian hứa hẹn trong
sách, chắc có lẽ giờ đây, tôi & bạn, sẽ không còn là chuyêngia nữa, mà là những thiên tài, thần
đồng ( đồng nghĩa với việc mọi người sẽ không còn phải đến trường nữa, chỉ việc ngồi nhà &
đọc sách, & chờ đến ngày được mọi người công nhận mình là thiên tài, là chuyên gia. Đáng nói
hơn cả là, số lượng giáo viên bị thất nghiệp sẽ hơi bị nhiều).
Bạn thử cùng tôi nghiền xem quyển sách với tựa đề “Learn Pascal in Three Days”
có thực sự mang giá trị thực tiễn không nhé !
- Learn: học. Thế ta sẽ học được gì trong 3 ngày đó nhỉ ? Bạn sẽ chẳng làm được gì cả, ngoại trừ
làm 1 con rối theo những gì đã chỉ dẫn trong sách. Liệu ta có tiếp thu được cái tinh hoa, cái kinh
nghiệm của người đã viết sách không ? 100% là không !
+ Kinh nghiệm là gì ? Có phải1 sớm 1 chiều là có kinh nghiệm không ? Đó có lẽ là những câu hỏi
ngu ngốc nhất sau 3 ngày, bạn chỉ học được cách làm việc của 1 cái máy những cái mà bạn
học được từ quyển sách này sau 3 ngày chỉ là những thứ nông cạn, không rạch ròi, không đầy đủ.
+ Ở đời có 3 cái ngu:
1/ Biết những cái mình không nên biết
2/ Biết không rành những gì mình biết
3/ Không biết những gì mình nên biết
- Pascal: ừ, công nhận là NNLT Pascal cổ thật, thời của nó đã qua rồi. Giờ đây, có chăng là phải
học những cái như: Visual Basic, như Java, chứ ai lại học thứ đó bao giờ !!!. Bạn nói đúng nhưng
không đủ, thông nhưng chưa suốt. Thực tế, nó giúp bạn có 1 cái nhìn tổng quát về lập trình nó
như 1 cái nền nhà nền không chắc mà lầu cao thì sụp có ngày bạn ạ (dĩ nhiên, đứng ở khía cạnh
của bạn, có thể bạn sẽ có cái nhìn khác tôi, điều đó không thể miễn cưỡng).
+ Trong 3 ngày đó, liệu bạn có thể biết được Pascal hay hơn / dỡ hơn so với những NNLT khác chỗ
nào không ? Giá trị thực tiễn của Pascal ở chỗ nào ?
+ Thí dụ bạn đang viết 1 chương trình bằng VB “dĩ nhiên là chỉ quan tâm tới VB thôi, chứ quan
tâm đến những NNLT khác làm gì cho phí thời giờ !” trả lời rất hay.
+ Một ví dụ khác. Bạn đang giải 1 bài tập Lý liệu bạn có dám nói rằng, chỉ cần để tâm đến môn
Lý, chỉ cần biết cách giải bài tập này, chứ không cần quan tâm đến môn Toán hay không ?
+ Mở rộng ví dụ hơn 1 chút. Bạn đang tham giatrong kỳ thi học sinh giỏi Lý Quốc Tế liệu bạn
có dám nói rằng, chỉ cần quan tâm tới môn Lý thôi, chứ không cần phải biết Ngoại ngữ không ???
đó là 1 nhận định hoàn toàn, hoàn toàn sai lầm ! Để hoàn thành (tốt) 1 công việc, bạn phải kết
hợp rất nhiều kỹ năng khác nhau.
Nhưng liệu bạn sẽ áp dụng cái kỹ năng ấy như thế nào, trong khi chỉ với 3 ngày, 3 ngày thì
làm sao biết được cái hay, cái dỡ, cái giá trị thực tiễn của kỹ năng mà bạn đang luyện tập ? Đó là
chuyện không tưởng để trởthành1 chuyên giatrong 3 ngày lại càng khó tưởng hơn nhiều !.
- In 3 days:
với 2 phân tích trên, tôi hoàn toàn dám khẳng định, cụm từ này hoàn toàn rỗng tuếch.
Dựa vào đâu mà tôi dám khẳng định điều này ?
+ Các nhà khoa học đã nhận định rằng, để thực sự trở nên thành thạo trong1lĩnhvực bất kỳ,
khoảng thời gian tối thiểu mà 1 người phải kinh qua là 10 năm.
+ 10 năm ? Có lẽ ít hơn, nhưng cũng có lẽ sẽ nhiều hơn. Bạn biết không, Mozart - thần đồng âm
nhạc, 1 con người được cả thế giới công nhận & ca ngợi như vậy, bắt đầu chơi nhạc năm 4 tuổi,
nhưng mãi đến năm 17 tuổi thì mới thực sự được coi là thành tài. Võn vẹn cũng hết 13 năm đấy bạn
à.
khoảng thời gian này chính là khoảng thời gian để bạn tự trui rèn mình, tự mình tích lũy kinh
nghiệm, mà kinh nghiệm thì không giống như 1 món hàng bạn không thể trả giá như mua hàng
ngoài chợ.
Vấn đề 01: Làm thế nào để tích lũy kinh nghiệm ?
- Thực tế, hãy luôn thực tế bạn ạ ! Chỉ học & làm theo những gì trong sách vở đã có, chẳng mấy
chốc, con người ta sẽ trởthành1 cái máy. Thay vào đó, hãy tìm những ví dụ thực tế hơn, cụ thể hơn
mà làm. Thực tế luôn có giá trị hơn so với lý thuyết suông. Một điều mà bạn cũng không thể quên
là: luôn cẩn thận trong suốt quá trình làm việc.
Vấn đề 02: Nhưng tôi chưa biết gì cả !
- Có ai mới sinh ra mà đã biết tất cả đâu. Cứ từ từ rồi sẽ biết thôi, cái chính là bạn phải tìm cho
mình 1 động lực để học ( dần dần sau đó, có khi nó trởthành niềm đam mê, yêu thích không
chừng).
- Bắt chước là bản năng con người ! Hãy quan sát những bạn bè xung quanh, hãy bắt chước làm
theo họ, nhưng đừng máy móc.
- Bắt chước mà không máy móc ? Ừ, có nghĩa là, dựa trên ý tưởng của họ, bạn sẽ tạo ra cái mới
mang phong cách của mình. Hãy tham khảo bài tập của họ, tìm ra cái hay cái dỡ, rồi nghiên cứu,
sửa những lỗi mà họ phạm phải (hoặc bạn cho là không đúng, chưa hay) 1 cách âm thầm (không
cho họ thấy, đó cũng là 1 cách tôn trọng tác giả).
- Không có ai là toàn diện 1 người có thể rất giỏi ở mặt này, nhưng sẽ rất dỡ ở mặt khác. Điều đó
là lẽ đương nhiên. Nhưng bạn phải nhớ, trong1 công việc bất kỳ, nếu bạn cảm thấy mình:
+ Giỏi: hãy giữ vai trò lãnh đạo, hãy tạo cảm hứng công việc cho mọi người xung quanh.
+ Dỡ: đừng ngần ngại học tập bạn bè xung quanh, đừng dấu dốt, hãy gạt bỏ sĩ diện qua 1 bên.
Vấn đề 03: Nên học bao nhiêu NNLT là đủ ?
- Như thế nào mới gọi là đủ ? Cái đó còn tùy ở cách định nghĩa của mỗi người. Tuy nhiên, nếu bạn
thật sự yêu thích công việc lập trình, thật sự muốn đi sâu vào lĩnhvực này, & không muốn thua kém
bạn bè, bạn nên trang bị cho mình ít nhất 6 NNLT. Bao gồm:
+ 1 NN hỗ trợ lớp trừu tượng (Java, C++, VB)
+ 1 NN theo quan điểm hàm (Lisp, ML)
+ 1 NN khai báo (ProLog)
+ 1 NN xử lý tuần tự (Icon, Scheme)
+ 1 NN xử lý song song (Sisal)
+ 1 NN chính quy (ANSI C++, )
Khép lại vấn đề:
- Kinh nghiệm thực tế luôn là điều đáng quý. Bạn có quyền mua những quyển sách, những cẩm
nang về để tham khảo, nhưng xin bạn luôn nhớ cho rằng, những gì được nêu trong sách chỉ là suy
nghĩ, kinh nghiệm của 1 người/1 nhóm người. Bạn phải biết sàng lọc, đúc tỉa để biến nó thành kinh
nghiệm của riêng mình. Việc gì cũng cần có thời gian để giải quyết, để đạt được 1 mục đích, có khi
người ta phảimất1 năm, 10 năm, hay thậm chí 1 đời người, chứ không thể nào là 24 giờ, 21 ngày,
Đừng tin vào những gì không thực tế !!!.
zeroman_ltk@yahoo.com
Dựa theo bản dịch của Hữu Xuân
21h45-06/06/2005: bắt đầu viết
11h00-06/06/2005: hoàn tất bài
17h00-18/06/2005: chỉnh sửa lần 1
. PHẢI MẤT BAO LÂU ĐỂ TRỞ THÀNH 1 CHUYÊN GIA TRONG
LĨNH VỰC LẬP TRÌNH ?
Trong lĩnh vực lập trình à ? À không, nói tổng quát hơn, câu hỏi được đặt ra phải. để trở thành 1 chuyên gia trong 1 lĩnh vực bất kỳ ?”
+ Chuyên gia ?
+ Thành thạo ?
Đó là lẽ không phải là ước muốn của riêng tôi, & cũng không phải