Go Back   Cựu Học Sinh Lê Quý Đôn - Long An > :: Góc Học Tập :: > Tin học > Học lập trình

Học lập trình Pascal , C+ , C++ , VB

20 bài học lập trình hay nhất mà tôi học trong suốt 20 năm

20 bài học lập trình hay nhất mà tôi học trong suốt 20 năm

this thread has 16 replies and has been viewed 18505 times

Gởi Ðề Tài Mới Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 15-03-2009, 02:07 PM   #1
Hồ sơ
myhanh
 
myhanh's Avatar
 
Tham gia ngày: Dec 2004
Cư ngụ: Love Planet
Tuổi: 44
Số bài viết: 7,404
Tiền: 0
Thanks: 2,122
Thanked 5,472 Times in 2,040 Posts
myhanh is on a distinguished road
Default 20 bài học lập trình hay nhất mà tôi học trong suốt 20 năm

Tác giả [Đăng nhập để xem liên kết. ]
1.Đưa ra thời gian mà bạn nghĩa rằng bạn sẽ giải quyết được vấn đề
Trước một vấn đề bạn nên đưa ra một thời gian ví dụ 2 tiếng, 1 tiếng hay 15 phút mà bạn cho rằng bạn có thể giải quyết được vấn đề này. Sau đó bạn hãy tập trung suy nghĩ để giải quyết vấn đề này trong khoảng thời gian đó. Khi khoảng thời gian này hết mà bạn vẫn chưa giản quyết vấn đề thì bạn nên tìm kiếm sự giúp đỡ từ bạn bè, cấp trên, Internet chứ đừng cố ngồi trước máy tính hết 8 giờ làm việc để mong mình tìm ra lời giải.
2.Một ngôn ngữ lập trình cũng chỉ là một ngôn ngữ
Qua thời gian bạn sẽ biết được một ngôn ngữ lập trình nó hoạt động ra sao rồi từ đó bạn thấy sự giống nhau giữa các ngôn ngữ lập trình. Điều này sẽ giúp bạn tự tin vào ngôn ngữ mình đã chọn, bạn sẽ cho ra đời nhữ đoạn code có chất lượng cao, phù hợp với dự án.
Do đó thay vì bạn cố gắng học thật nhiều ngôn ngữ thì hãy học thật kỹ, thật giỏi một ngôn ngữ.
3.Không lạm dụng các design pattern
Đôi khi chúng ta viết một giải thuật đơn giản thì dễ hơn rất nhiều so với việc cố ngồi ứng dụng singleton hay facade patern vào chương trình của chúng ta.
4.Luôn luôn sao lưu mã nguồn:
Tôi đã từng trải qua kinh nghiệm đau thương khi tôi còn trẻ là đĩa cứng tôi bị hư và mất sạch mã nguồn mà tôi đã lưu trên đó. Lúc đó tôi đã lặng người đi vì không biết mình phải làm gì với tình huống này. Một lần bạn quên sao lưu mã nguồn là một lần bạn có nguy cơ trễ hẹn với khách hàng của bạn do hỏng hóc hay nguyên nhân gì đó mà bạn bị mất mã nguồn. Do đó bạn nên áp dụng hệ thống sao lưu, đánh phiên bản cho mã nguồn như cvs, microsoft sourcesafe, subversion, starteam,..
5. Xin chấp nhận một sự thật rằng bạn không phải là một lập trình viên giỏi nhất
Tôi luôn luông nghĩ rằng tôi biết rất nhiều về lập trình và tôi không phải là người giỏi nhất mà luôn có người biết nhiều hơn tôi. Hãy học hỏi ở họ những điều mình chưa biết.
6.Học, học nữa, học mãi

Như ở điều số 5 tôi nói ở trên, tôi luôn luôn có quyển tạp chí hay quyển sách về lập trình ở bàn làm việc (bạn không tin thì hỏi bạn đồng nghiệp tôi xem, họ sẽ giúp tôi khẳng định điều này với bạn). Sự thật là có rất nhiều việc cho một lập trình viên làm việc toàn thời gian như tôi nhưng nếu bạn có cách thông minh để tiếp cận với thông tin thì bạn có thể cập nhật các công nghệ mới hàng ngày một cách dễ dàng.
7.Thay đổi liên tục
Kiến thức của bạn về công nghệ hay về lập trình cũng giống như bạn chơi chứng khoán vậy: Đa dạng hoá chúng. Không nên quá thoải mái với một công nghệ mình biết. Bạn lên kế hoạch đào tạo cho mình những công nghệ mới. Một quy luật chung là phải giữ cho bạn luôn vận động. Biết ít nhất 2 hoặc 3 ngôn ngữ lập trình để khi một ngôn ngữ đi vào thoái trào thì bạn có ngay một ngôn ngữ khác lấp vào khoảng trống trong khi bạn học một công nghệ mới.
8.Hỗ trợ ma mới
Rất nhiều người ngại chia sẻ kiến thức của mình vì sợ người ta hơn mình. Tuy nhiên kiến thức là thứ đặc biệt khi cho đi có nghĩa là bạn nhận về bạn sẽ hiểu biết nhiều hơn lớn hơn. Vì sao vậy? Khi giúp đỡ những người mới vào nghề những kỹ thuật lập trình hiệu quả, những kinh nghiệm của bạn giúp bạn tự tin hơn, giúp bạn nhận ra những điếu mình chưa thật sự thấu đáo qua các câu hỏi của người được giúp đỡ, giúp bạn ôn luyện lại một lần nữa những bí kiếp của mình. Do đó hãy cho đi thì bạn sẽ nhận thật nhiều.
9. Đơn giản giải thuật
Lập trình viên chúng ta có thói quen là lập trình cho nó chạy. Nhưng như thế là chưa đủ! Sau khi chương trình chạy rùi hãy đọc lại chương trình và tìm kiếm cách tối ưu mã nguồn sao cho chương trình chạy nhanh hơn. Đôi khi chỉ một sự tối ưu nhỏ đâu đó trong mã nguồn có thể giúp chương trình bạn chạy ổn định trong thời gian dài hơn.
10.Lập tài liệu cho mã nguồn
Lập tài liệu cho bất kể thứ gì mà bạn cần từ những class đơn giản đến Web service API phức tạp. Tôi đã từng bị than phiền rằng mã nguồn của tôi có quá nhiều dòng chú thích tuy nhiên đó lại là sự tự hào của tôi đấy các bạn à.Không tốn nhiều thời gian như bạn nghĩ đâu chỉ mất chừng vài giây để chú thích cho 3 dòng mã của bạn mà bạn nghĩ rằng nếu không chú thích sau này bạn không nhớ ra rằng một ý tưởng tuyệt vời của đã được thể hiện chỗ này. Còn như nếu đây là một kỹ thuật khó mà bạn mới tìm hiểu đâu đó trên internet, bạn mình, sếp mình thì hãy chú thích càng nhiều càng tốt nhá.
Bạn sẽ không thấy hết công dụng của việc chú thích mã nguồn của bạn nếu bạn với vai trò là lập trình viên nhưng bạn sẽ cảm thấy giá trị tuyệt vời của việc này khi bạn trong vai trò là kiến trúc sư phần mềm, người sao lưu mã nguồn, người duy tu mã nguồn và nhân viên hỗ trợ.
11.Kiểm thử, kiểm thử và kiểm thử
Tôi rất ưu thích phương pháp kiểm thử hộp đen (Black box testing). Bất kể khi nào bạn hoàn thành một hàm, thủ tục thì bạn nên kiểm thử nó. Nếu như công ty bạn có bộ phận bảo đảm chất lượng (QA) thì bạn tốt hơn nên làm việc với họ về những lỗi của chương trình hơn là nói điều này với người quản trị dự án (PM)
. Nếu bạn không kiểm thử mã nguồn bạn đầy đủ thì có lẽ thời gian sửa lỗi của bạn sẽ nhiều hơn thời gian viết mã nguồn. Điều này sẽ ảnh hưởng xấu đến ưu tính của bạn đấy.
12.Ăn mừng mỗi thành công của bạn
Tôi đã gặp rất nhiều lập trình viên sau khi họ chinh phục thành công một vấn đề khó khăn bằng kỹ thuật lập trình tuyệt vời nào đó ví dụ như sử dụng bí kíp của sư phụ chẳng hạn thì họ sẽ được các đồng nghiệp chúc mừng bằng cách bắt tay, đưa bàn tay lên hay có thể nhảy điệu nhạc sôi động, hạnh phúc nào đó. Mỗi người đều có những khoảnh khắc chói sáng của mình trong cuộc đời, trong giây phút này nếu anh ta muốn mời mình xem đoạn mã mà theo anh ta là trên cả tuyệt vời mà anh ta vừa viết được bạn hãy vui vẻ chúc mừng anh ta lần 101 cho dù bạn đã nhìn thấy đoạn mã tương tự như vậy 100 lần đâu đó rồi.
13. Xem xét lại mã nguồn thường xuyên
Hãy xem xét lại mã nguồn một cách thường xuyên cho dù bạn đang thực hiện dự án hay đang làm cho riêng bạn. Trong một công ty thì người ta luôn luôn xem xét mã nguồn của bạn để đánh giá khả năng viết mã của bạn. Đừng bao giờ nhìn người xem xét mã nguồn của bạn với ánh mắt thù ghét khi anh ta nhận xét về cách viết mã của mình mà hãy xem nó như những lời đóng góp xây dựng. Cá nhân bạn thì bạn nên tự xem xét và đánh giá lại mã nguồn của mình và luôn luôn cố gắng tự trả lời câu hỏi "có cách nào viết tốt hơn hay không?". Thái độ này sẽ tăng tốc khả năng học hỏi của bản thân bạn và làm bạn ngày càng giỏi hơn.

14.Nhớ lại mã nguồn bạn đã viết:
Có hai thái độ khi bạn nhìn lại các đoạn mã nguồn cũ mà bạn đã viết:
-Tôi không thể tin là tôi đã viết như vậy.
-Tôi không thể tin là tôi đã viết như vậy.
Câu phát biểu đầu tiên biểu lộ sự kinh ngạc và bạn sẽ tự hỏi cách nào để cải thiện nó. Bạn bị ngạc nhiên bởi vì trong đầu bạn đã nảy sinh ra ý tưởng mới về đọan mã nguồn tốt hơn thay thế cho đoạn mã nguồn cũ này hoặc bạn có thể xây dựng lại toàn bộ sản phẩm trên nền ý tưởng mới nảy sinh tốt hơn này.
Câu phát biểu thứ hai thể hiện sự ngạc nhiên và thán phục. Người phát triển phầm mềm nào cũng có một hoặc vài dự án thành công mà anh ta khiến cho người khác phải chú ý. Dựa vào phần mã nguồn thành công này bạn có thể sử dụng nó trong các dự án khác làm cho các dự án này, sản phẩm này tốt hơn.
15.Cần hài hước một tí
Trong 20 năm làm nghề phát triển phần mềm của tôi, tôi chưa gặp một lập trình viên nào mải mai có một tí óc khôi hài. Tuy nhiên trong công việc này tính hài hước là rất hữu ích.

16.Nhận ra người cái gì cũng biết, người cố hữu và người thiếu kinh nghiệm
Bạn cần phải khiêm tốn một chút khi bạn gặp phải những lập trình viên thuộc các tuýp người trên
. Lập trình viên thuộc tuýp người cái gì cũng biết thì anh ta cố lên mặt bạn thay vì làm việc với bạn như những người cùng cộng tác trong một đội. Lập trình viên thuộc tuýp người cố hữu thì anh ta không muốn chia sẻ mã nguồn mà anh ta viết với ai cả.
Còn một lập trình viên thiếu kinh nghiệm thì anh ta lại yêu cầu bạn giúp đỡ liên tục 10 phút một lần và kết quả bạn mới là người viết mã chứ không phải là anh ta.
17.Không có dự án nào là dễ dàng
Bạn bè, gia đình và bạn đồng nghiệp của tôi từng yêu cầu tôi giúp tăng tốc website cho họ. Họ cứ nghĩ rằng đây là việc làm đơn giản nhưng không. Để tăng tốc một website hay một chương trình bạn cần phải lên kế hoạch làm việc với hai bên, khách hàng và nhà cung cấp, và đề nghị những thao tác trên đó mà cả hai đều chấp nhận. Nếu khách hàng nào đó nói rằng anh ta chỉ cần website có 3 trang với Microsoft Access làm cơ sở dữ liệu thì bạn phải đề phòng nó có thể phình ra thành một website có 15 trang sử dụng Microsoft SQL Server và có thể có cả tinh chỉnh CMS (hệ thống quản trị nội dung) nữa đó.
18.Đừng bao giờ coi một thứ gì đó là của trời cho
Nếu bạn tham gia một dự án đơn giản thì bạn sẽ cho rằng phần này hay phần kia của dự án là quá dễ dàng để thực hiện chúng. Đừng bao giờ có suy nghĩ này dù cho rằng nó chỉ thoáng qua mà thôi. Bạn chỉ được nghĩ điều này khi bạn đã hoàn thành class, component hay đoạn mã nào đó mà bạn đã kiểm thử nó rất kỹ lưỡng rồi và chúng đã đưa vào sản phẩm một cách thành công. Nghĩa là bạn chỉ được phép đánh giá dự án là dễ khi bạn đã hoàn thành nó rồi.
19. Quá trình phát triển một phần mềm là không có điểm dừng
Một lập trình viên đồng nghiệp có lần nói với tôi rằng quá trình phát triển phần mềm là không có điểm dừng mà một phần mềm chỉ tạm thời hoàn thành mà thôi. Một lời khuyên chính xác đấy chứ. Khi một khách hàng vẫn đang sử dụng một phần mềm bạn đang viết, thời gian sẽ kiểm thử phần mềm, bạn phải cập nhật nó và đó là cơ hội để bạn làm việc.
20.Kiên nhẫn là đức tính tốt

Khi khách hàng, bạn bè, thành viên trong gia đình sử dụng máy tính, họ thường bực mình và trong lúc đó họ muốn đập cho cái máy 1 cái. Tôi thường nói với mọi người rằng:"Anh(chị) đang điều khiển chiếc máy tính và không cách nào khác". Bạn cần có tính kiên nhẫn khi lập trình. Ngay khi lập trình viên làm sai một điều gì đó họ thường phải điều chỉnh quan điểm của mình và nhìn lại chương trình ở quan điểm của máy tính và nhận ra sự sai sót của mình để rồi thốt lên "Ồ tôi đã biết tại sao tôi sai".
Tôi hi vọng những kinh nghiệm nhỏ của mình có thể hữu ích cho bạn.
(Còn tiếp)
__________________
Necessity is the mother of in(ter)vention.
Speak softly & carry a big stick.
My Technical Blog

thay đổi nội dung bởi: myhanh, 16-04-2010 lúc 05:00 PM.
myhanh is offline   Trả Lời Với Trích Dẫn
Đã có 5 thành viên gửi lời cám ơn đến myhanh vì bạn đã đăng bài:
92A01 (12-04-2010), nhk (13-04-2010), quangminhtasu (24-10-2009), tananboy (15-04-2010), xXPlanXx (20-08-2010)
Old 11-04-2010, 08:51 PM   #2
Hồ sơ
fully9x
Junior Member
 
Tham gia ngày: Apr 2010
Số bài viết: 1
Tiền: 25
Thanks: 0
Thanked 0 Times in 0 Posts
fully9x is on a distinguished road
Default Ðề: 20 bài học lập trình hay nhất mà tôi học trong suốt 20 năm

tiếp đâu bạn
fully9x is offline   Trả Lời Với Trích Dẫn
Old 11-04-2010, 09:28 PM   #3
Hồ sơ
myhanh
 
myhanh's Avatar
 
Tham gia ngày: Dec 2004
Cư ngụ: Love Planet
Tuổi: 44
Số bài viết: 7,404
Tiền: 0
Thanks: 2,122
Thanked 5,472 Times in 2,040 Posts
myhanh is on a distinguished road
Default Ðề: 20 bài học lập trình hay nhất mà tôi học trong suốt 20 năm

Trích:
Nguyên văn bởi fully9x View Post
tiếp đâu bạn
Không ai quan tâm nên buồn quá hok viết tiếp hehe
__________________
Necessity is the mother of in(ter)vention.
Speak softly & carry a big stick.
My Technical Blog
myhanh is offline   Trả Lời Với Trích Dẫn
Old 11-04-2010, 11:01 PM   #4
Hồ sơ
TheDeath
CEO CLBCK
 
Tham gia ngày: Oct 2007
Số bài viết: 5,744
Tiền: 8283
Thanks: 456
Thanked 3,066 Times in 1,371 Posts
TheDeath is an unknown quantity at this point
Default Ðề: 20 bài học lập trình hay nhất mà tôi học trong suốt 20 năm

Tiếp đi chứ! Vấn đề lập trình hay ở chổ phương pháp giải quyết vấn đề! Tiếp đi! Tiếp đi! Tiếp đi!
__________________
Không thể thay đổi ngày hôm qua!
TheDeath is offline   Trả Lời Với Trích Dẫn
Old 12-04-2010, 01:12 PM   #5
Hồ sơ
92A01
Administrators
 
92A01's Avatar
 
Tham gia ngày: Nov 2004
Tuổi: 47
Số bài viết: 2,717
Tiền: 8539
Thanks: 390
Thanked 1,256 Times in 644 Posts
92A01 is an unknown quantity at this point
Default Ðề: 20 bài học lập trình hay nhất mà tôi học trong suốt 20 năm

Cái topic này hay đó MyHanh. Đang đợi em post tiếp nè.
__________________
...Từ độ mang gươm đi mở cõi.
Trời Nam thương nhớ đất Thăng Long...
92A01 is offline   Trả Lời Với Trích Dẫn
Old 12-04-2010, 03:14 PM   #6
Hồ sơ
TheDeath
CEO CLBCK
 
Tham gia ngày: Oct 2007
Số bài viết: 5,744
Tiền: 8283
Thanks: 456
Thanked 3,066 Times in 1,371 Posts
TheDeath is an unknown quantity at this point
Default Ðề: 20 bài học lập trình hay nhất mà tôi học trong suốt 20 năm

Sao lâu thế? Post đi, đang chờ nè!
__________________
Không thể thay đổi ngày hôm qua!
TheDeath is offline   Trả Lời Với Trích Dẫn
Old 12-04-2010, 08:34 PM   #7
Hồ sơ
tananboy
Member
 
Tham gia ngày: Apr 2010
Số bài viết: 75
Tiền: 25
Thanks: 31
Thanked 19 Times in 13 Posts
tananboy is on a distinguished road
Default Ðề: 20 bài học lập trình hay nhất mà tôi học trong suốt 20 năm

Trích:
2.Một ngôn ngữ lập trình cũng chỉ là một ngôn ngữ
Qua thời gian bạn sẽ biết được một ngôn ngữ lập trình nó hoạt động ra sao rồi từ đó bạn thấy sự giống nhau giữa các ngôn ngữ lập trình. Điều này sẽ giúp bạn tự tin vào ngôn ngữ mình đã chọn, bạn sẽ cho ra đời nhữ đoạn code có chất lượng cao, phù hợp với dự án.
Do đó thay vì bạn cố gắng học thật nhiều ngôn ngữ thì hãy học thật kỹ, thật giỏi một ngôn ngữ.
Cái này có thể suy rộng, ví dụ như âm nhạc.
Nhạc cụ là một phương tiện để tạo ra âm nhạc.
__________________
Không có gì quý hơn kim cương!
tananboy is offline   Trả Lời Với Trích Dẫn
Đã có thành viên gửi lời cám ơn đến tananboy vì bạn đã đăng bài:
myhanh (12-04-2010)
Old 12-04-2010, 11:16 PM   #8
Hồ sơ
myhanh
 
myhanh's Avatar
 
Tham gia ngày: Dec 2004
Cư ngụ: Love Planet
Tuổi: 44
Số bài viết: 7,404
Tiền: 0
Thanks: 2,122
Thanked 5,472 Times in 2,040 Posts
myhanh is on a distinguished road
Default Ðề: 20 bài học lập trình hay nhất mà tôi học trong suốt 20 năm

Đã cập nhật tiếp nhưng chưa hết, khi nào rãnh thì tiếp.
__________________
Necessity is the mother of in(ter)vention.
Speak softly & carry a big stick.
My Technical Blog
myhanh is offline   Trả Lời Với Trích Dẫn
Old 13-04-2010, 12:29 PM   #9
Hồ sơ
92A01
Administrators
 
92A01's Avatar
 
Tham gia ngày: Nov 2004
Tuổi: 47
Số bài viết: 2,717
Tiền: 8539
Thanks: 390
Thanked 1,256 Times in 644 Posts
92A01 is an unknown quantity at this point
Default Ðề: 20 bài học lập trình hay nhất mà tôi học trong suốt 20 năm

Chỉ biết nói là rất hữu ích đối với dân lập trình kê cả người mới đi làm lẫn người đã đi làm rồi. Ví dụ: mục 4, hồi đầu làm công việc này mình làm biếng và thấy nó không cần thiết nhưng lúc bị rồi mới thấy cẩn tắc vô áy náy.
__________________
...Từ độ mang gươm đi mở cõi.
Trời Nam thương nhớ đất Thăng Long...
92A01 is offline   Trả Lời Với Trích Dẫn
Old 13-04-2010, 12:38 PM   #10
Hồ sơ
92A01
Administrators
 
92A01's Avatar
 
Tham gia ngày: Nov 2004
Tuổi: 47
Số bài viết: 2,717
Tiền: 8539
Thanks: 390
Thanked 1,256 Times in 644 Posts
92A01 is an unknown quantity at this point
Default Ðề: 20 bài học lập trình hay nhất mà tôi học trong suốt 20 năm

Mục 7: khi làm nghề này thì việc cập nhật công nghệ là công việc thường xuyên của dân lập trình. Thực ra các công nghệ mới không có gì to tát, các công nghệ do các hãng đưa ra thường mang tính cạnh tranh nên nếu biết công nghệ của hãng này thì có thể học rất nhanh công nghệ tương tự của hãng khác. Ví dụ: mô hình MVC (Model -View-Controller) đầu tiên là của Struts, nhưng sau đó Microsoft cũng phát triển framework này trên .NET hay PHP cũng có framework (PHP.MVC chẳng hạn) này luôn.
__________________
...Từ độ mang gươm đi mở cõi.
Trời Nam thương nhớ đất Thăng Long...
92A01 is offline   Trả Lời Với Trích Dẫn
Trả lời



Quyền Sử Dụng Ở Diễn Ðàn
Bạn không được quyền gởi bài
Bạn không được quyền gởi trả lời
Bạn không được quyền gởi kèm file
Bạn không được quyền sửa bài

vB code đang Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt
Chuyển đến

Chủ đề tương tự
Ðề tài Người Gởi Chuyên mục Trả lời Bài mới gởi
Bạn có thích hợp với nghề Lập trình? myhanh Tư vấn - Hướng nghiệp 13 14-07-2008 09:59 AM
Rối loạn giấc ngủ peanux Chia sẻ kinh nghiệm 0 11-03-2008 08:45 AM
Ufo VÀ SỰ SỐng NgoÀi TrÁi ĐẤt LeGiang Thiên văn học 0 25-05-2007 11:13 AM
Help me again! kami21 Tư vấn - Hướng nghiệp 13 09-03-2007 03:19 PM


Website sử dụng phần mềm vBulletin phiên bản 3.6.8
do Công ty TNHH Jelsoft giữ bản quyền từ 2000 - 2024.
Múi giờ GMT +7. Hiện tại là 02:37 AM.

Hội CHS Lê Quý Đôn-Long An giữ bản quyền nội dung của website này

Tự động[F9]TELEX VNI VIQR VIQR* TắtKiểm chính tảDấu cũ
phan mem quan ly ban hang | thuê vps