Trang 2 trên tổng số 21 Đầu tiênĐầu tiên 123412... Cuối cùngCuối cùng
Từ 11 tới 20 trên tổng số 202 kết quả

Đề tài: Em muốn trở thành 1 lập trình viên. Hãy giúp em điểm bắt đầu ....

  1. #11
    Ngày gia nhập
    09 2006
    Bài viết
    711

    Mặc định Em muốn trở thành 1 lập trình viên. Hãy giúp em điểm bắt đầu ....

    Hì hì, nhc quên rằng *****me của rongchaua anh chỉ debug và view code ASM JIT ra mà serial fishing được password à.

  2. #12
    Ngày gia nhập
    11 2007
    Bài viết
    79

    Tôi muốn nói với các bạn muốn bước vào nghề coding một điều: Các bạn phải tự tin và chăm chỉ.

    Hãy quên đi những huyền thoại "cao thủ lập trình" quanh bạn, vì hầu hết đó chỉ là giả tạo. Ngay cả các thầy cô, rất nhiều trong số họ đã mắc một thứ bệnh nguy hiểm của thời đại, đó là bệnh sĩ. Họ cố gắng tạo ra một màn sương mù bí ẩn xung quanh họ khiến bạn cảm thấy họ tài giỏi kinh hồn, mặc dù kiến thức của họ chẳng đâu vào đâu cả, người thực sự hiểu biết sẽ phát hiện ra ngay. Nếu các bạn chỉ nghe những lời khoa trương của họ, rằng thứ này cao siêu, thứ kia bác học, các bạn sẽ trở nên tự ti, không biết bao giờ mình mới có được 1/10 kiến thức của họ. Các bạn đang tự dìm mình xuống bùn.

    Sự thực là, không có cái gì cao siêu và quá khó hiểu trong ngành khoa học máy tính, công nghệ thông tin nói chung cũng như lập trình, gia công phần mềm nói riêng. Mọi thứ đã được những người tốt bụng đi trước (nước ngoài có, Việt Nam có) nghiên cứu, tổng hợp, chia sẻ free đâu đó trên mạng. Hãy cảm ơn họ và kiên trì tìm kiếm, nghiên cứu. Đến lượt các bạn, nếu tìm ra được một hướng tiếp cận hiệu quả, hãy chia sẻ cho những người đi sau, không khoa trương, không giấu giếm.

    Tôi lấy ví dụ, có rất nhiều người đang hiểu sai về c_racking. Bẻ khóa phần mềm có thể bị coi là một tội ác, nhưng nó chỉ là một hạt cát trong sa mạc được gọi là Reverse Engineering, kỹ thuật dịch ngược nhằm chỉnh sửa mã thực thi ở cấp thấp (thập lục phân - Hex hay mã Assembly). Nhưng điều đáng nói là bất cứ ai với một nền tảng cơ bản nhưng vững chắc về lập trình (không phân biệt VB hay C/C++ "bác học"), về cách chuyển đổi giữa các hệ cơ số (nhị phân, thập phân, thập lục phân)... đều có thể tiếp cận Reverse Engineering chứ nó không có gì là bí hiểm cao siêu như người ta tô vẽ.

    Reverse Engeneering cũng phân ra hai phái hắc/bạch rõ rệt: Một bộ phận là những người nghiêm chỉnh nghiên cứu về bảo mật (chống virus, spyware), về tối ưu (các phương pháp nén file cho nhỏ hơn, đóng gói cho gọn hơn và an toàn hơn, cách phân hoạch tốt hơn cho các section của file thực thi giúp chúng có độ tương thích và độ tin cậy cao hơn).

    Bên cạnh đó là những người phá phách cho vui (bẻ khóa phần mềm, thêm mã độc hại, viết virus). Người ta chẳng cần hiểu biết quá sâu sắc về ngôn ngữ ASM cũng có thể bẻ khóa phần mềm như thường, chẳng hạn dùng kỹ thuật NOP - No operation chỉ cần click chuột phải sau đó nhấn lệnh vô hiệu hóa đoạn mã yêu cầu đăng ký license; kỹ thuật đảo ngược JMP 74-75, tức là nhập mã đăng ký sai vẫn được chấp nhận; hay kỹ thuật dò Real Serial Number cho những phần mềm cực nhỏ mà người viết ra chẳng thèm quan tâm nhiều đến license... Những kỹ thuật c_racking "bác học" này dễ hơn cả việc bạn dò giá trị trong ArtMoney hay Cheat Engine khi muốn cheat game.

    Vậy có cần phải thần thánh hóa vấn đề không? Có cần phải thần tượng hóa những thiên tài ảo tưởng không? Tất nhiên là không, vì ta đã hiểu ra vấn đề. Để rõ hơn, chẳng hạn ta có một đoạn mã chương trình kinh điển dùng để chuyển đổi chữ thường sang chữ hoa nằm trong file UpperCase.exe viết bằng Delphi như sau:

    10000011111011000010000001010011010101100101011111 11111100010101100000000000000001100111101101110100 011100110001000000101000000

    chuyển sang thập lục phân Hex thành:

    83EC20535657FF158C40400033DBA39881400053

    rồi chuyển sang ASM thành:

    sub esp, 20h
    push ebx
    push esi
    push edi
    call ds:GetProcessHeap
    xor ebx, ebx
    mov hHeap, eax
    push ebx ; lpModuleName

    Chương trình rất ngắn, rất đơn giản. Theo quá trình dịch ngược này, các bạn có thể thấy rằng thậm chí người ta chẳng cần biết ngôn ngữ ASM "bác học", chỉ cần một trình Hex Editor, một chiếc máy tính Calc sẵn có của Windows, một bản Appendix (phụ lục) ghi rõ quy ước chuyển đổi mã Hex, thế là có thể mò mẫm trở thành thành "chuyên gia" c_raking rồi. Tất nhiên phải rất kiên trì. Chuyển đổi trực tiếp mã nhị phân 0-1 (Binary) đòi hỏi kiên trì hơn chút nữa, và đó là công việc của các chuyên gia Intel, Asus, những người sản xuất chip, mainboard; hay các chuyên gia tạo dựng các trình biên dịch (Compiler) thế hệ sơ khai.

    Như vậy, huyền thoại về một thứ ngôn ngữ ASM "bác học" chỉ là huyền thoại mà thôi, không có gì cao siêu cả. C/C++ cũng vậy, vì chúng đơn thuần là những ngôn ngữ cao hơn ASM một chút, và hoàn toàn có thể dịch ngược toàn bộ đoạn mã trên thành mã C, chẳng có gì bí ẩn hết, cả thế giới đều biết. Những người đạt được khả năng dịch ngược từ ASM sang C và sẵn sàng chia sẻ kinh nghiệm với bạn, đó là những người đáng nể vì họ hiểu biết thực sự. Họ là những người có khả năng làm ra các file K_e_y_gen tạo mã license hợp lệ cho các phần mềm đắt đỏ, có ích cho những người nghèo không có tiền mua nhưng vẫn muốn sử dụng phần mềm để nâng cao dân trí. Đẳng cấp, trí tuệ và thường cả đạo đức của những Keymaker này cao hơn những nhà c_racker nửa mùa một bậc.

    Nhưng làm thế nào mà cái đoạn 1000001111101100001000000101001101... kia có thể chạy như một chương trình chuyển đổi từ chữ thường ra chữ hoa? Câu trả lời là tất cả đã được mã hóa sẵn trong các bộ vi xử lý. Một chương trình đặc biệt của hệ điều hành, với hệ điều hành Windows thì đó là Windows Loader, sẽ tải nó vào hệ thống bus trong máy tính. Có rất nhiều bộ vi xử lý nhận lấy tín hiệu này, sau đó chúng được họp lại tại bộ xử lý trung tâm, lưu một phần đệm vào RAM hoặc ra bộ nhớ ảo trên đĩa cứng (pagefile.sys) nếu cần để chờ xử lý (liên quan đến các khái niệm ngăn xếp, hàng đợi). Bộ xử lý trung tâm sẽ biết 10000011111... nghĩa là gì, 110000100... nghĩa là gì. Sau đó thông qua bus địa chỉ, bus điều khiển, bus dữ liệu, nó gửi tín hiệu tới card màn hình và bảo card màn hình cách phóng tia điện tử vẽ lên màn hình những gì mã chương trình muốn thể hiện.

    Trên đây là vài dòng sơ lược cùng các bạn, nhằm phần nào giúp các bạn newbie xua tan đi những mặc cảm tự ti và những huyễn hoặc về các khó khăn hay sự "cao siêu" này nọ của các ngôn ngữ. Hãy tự tin lựa chọn nghề coding, vì đó là một nghề tốt, đến lúc râu tóc bạc phơ vẫn làm việc được như thường (các bạn có thấy những ông thầy viết sách lập trình lừng danh thế giới đều râu tóc bạc phơ không, đâu phải 35 tuổi là sẽ bị đào thải). Xin khẳng định lại một lần nữa là các bạn đừng quá đặt nặng vấn đề ngôn ngữ. Cái nào tính thực tiễn cao, tư duy ngôn ngữ sáng sủa, hiệu quả tức thì, đó là sự lựa chọn lý tưởng cho các bạn.

  3. #13
    Ngày gia nhập
    09 2006
    Bài viết
    711

    Hì hì, cậu ccom gì này phang bậy nữa rồi, UpperCase của Delphi thì làm gì có đọa n code call GetProcessHeap với lpModuleName nào ở đây. Lấy ở đâu nhét đại vào à ?
    *****ing mà chỉ cần 1 calculator, 1 hexedit mà làm được theo kiểu dò như vậy thì tui mới thấy lần đầu. Theo cách này người ta vứt bỏ các decompiler, disassembler đi cho rồi.

  4. #14
    Ngày gia nhập
    06 2007
    Nơi ở
    Đà Nẵng
    Bài viết
    41

    lệch chủ đề rồi bớ làng ơi .

    trở về lại topic
    phamtiensinh là người có kinh nghiệm và mình cũng nghĩ "đón đầu công nghệ" vẫn tốt hơn . Mình thấy khi mọi người đã tiến xa hơn thì mắc gì mình phải đang ì ạch ở những ngôn ngữ lập trình cũ , nếu bạn muốn hiểu sâu nó thì học cũng ok , nhưng với từng đó tương lai chẳng sáng lạn gì . C# không khác C,C++ bao nhiều (ASM càng rắc rối nữa)mà C# dễ viết hơn nữa nên nó chẳng có gì là khó khăn cho sự khởi đầu , có khi hiệu quả còn tốt hơn.

  5. #15
    Ngày gia nhập
    01 2007
    Nơi ở
    Somewhere I belong
    Bài viết
    168

    Trích dẫn Nguyên bản được gửi bởi ThanhDN Xem bài viết
    lệch chủ đề rồi bớ làng ơi .

    trở về lại topic
    phamtiensinh là người có kinh nghiệm và mình cũng nghĩ "đón đầu công nghệ" vẫn tốt hơn . Mình thấy khi mọi người đã tiến xa hơn thì mắc gì mình phải đang ì ạch ở những ngôn ngữ lập trình cũ , nếu bạn muốn hiểu sâu nó thì học cũng ok , nhưng với từng đó tương lai chẳng sáng lạn gì . C# không khác C,C++ bao nhiều (ASM càng rắc rối nữa)mà C# dễ viết hơn nữa nên nó chẳng có gì là khó khăn cho sự khởi đầu , có khi hiệu quả còn tốt hơn.
    Một lần tớ nghe được anh huynguyen nói rằng ở nước ngoài họ đào tạo ngược với VN, đầu tiên sinh viên sẽ học những ngôn ngữ bậc cao trước như C# sau khi họ học cao lên rồi thì họ lại bắt đầu học những ngôn ngữ thấp hơn như C/C++ và cuối cùng sau thì mới đến những ngôn ngữ bập thấp như ASM. Vậy thì tự hỏi tại sao họ lại đào tạo như vậy nhỉ, và một điều là chắc chắn họ có kinh nghiệm và giỏi hơn chúng ta rất nhiều.

  6. #16
    Ngày gia nhập
    07 2006
    Nơi ở
    Hanoi, Vietnam
    Bài viết
    2,749

    Mặc định Em muốn trở thành 1 lập trình viên. Hãy giúp em điểm bắt đầu ....

    Chà! Mấy vụ học hành thế nào Dr không bàn nhưng Dr muốn hỏi người lập đề tài này rằng bạn đã bao giờ tìm câu trả lời cho 2 câu hỏi sau trước khi gửi đề tài này chưa?

    - Lập trình viên nó là cái gì?
    - Thành công nó là cái gì?

    Nếu 2 câu hỏi này mà bạn chưa có lời giải đáp thì việc bạn cố gắng là vô nghĩa. Bởi vì bạn đã biết nó là cái gì đâu mà cố gắng! Cố gắng để lấy cái gì?
    Dr dám khuyên bạn là: Bạn hãy tìm kiếm câu trả lời thực sự cho 2 câu hỏi này, tất cả boăn khoăn trên của bạn sẽ tự động được giải phóng.

    Lời khuyên là rất hữu ích, kinh nghiệm là một thứ rất có giá trị, nhưng nó chỉ có ích với bạn khi bạn thực sự biết bạn đang ở đâu và bạn sẽ đi đến đâu. Kinh nghiệm mà ngày hôm nay mang lại thành công thì có thể ngày hôm sau nó sẽ không còn tác dụng.
    Email: admin[@]congdongcviet.com | CC to: info[@]congdongcviet.com
    Phone: 0972 89 7667 (Office: 04 6329 2380)
    Yahoo & Skype: dreaminess_world (Vui lòng chỉ rõ mục đích ngay khi liên hệ, cảm ơn!)

    Một người nào đó coi thường ý thức kỷ luật cũng có nghĩa là người đó đã coi thường tương lai số phận của chính bản thân người đó. Những người coi thường ý thức kỷ luật sẽ không bao giờ có được sự thành công trong sự nghiệp!

  7. #17
    Ngày gia nhập
    11 2007
    Bài viết
    79

    Thế này nhé, người lập topic này đã nói rất rõ ràng:

    1. Bạn ấy muốn đi theo "nghiệp" lập trình
    2. Bạn ấy đang chọn một hướng tiếp cận
    3. Bạn ấy chưa có nhiều kỹ năng
    4. Bạn ấy chưa có nhiều kinh nghiệm
    5. Bạn ấy muốn được nghe lời tư vấn

    Như vậy cậu ta biết rõ mình đang ở đâu và sẽ đi đâu rồi đấy chứ.

    Còn tôi (và nhiều bạn khác) cũng đang bám rất sát chủ đề này. Chúng tôi muốn chỉ cho bạn ấy cách tiếp cận hợp lý nhất. Bên cạnh đó là xét lại thậm chí xóa bỏ một số định kiến không đúng từ trước đến nay về nghề coding, về vấn đề ngôn ngữ... Rất vui vì ngày càng có nhiều người có suy nghĩ thoáng đáng và đúng đắn.

    Còn về đoạn code minh họa trên kia, xin nói lại với các bạn thế này. Tôi muốn chứng minh điều gì qua ví dụ đó?

    Một là, các bạn có thừa nhận với tôi rằng dù dùng VB, Delphi hay C/C++ "bác học" thì cuối cùng kết quả vẫn là một chuỗi nhị phân tương tự nhau mà thôi. Cái này đơn giản quá, không ai phản đối được phải không ạ? Thế thì có nên tiếp tục tán dương quá mức huyền thoại C/C++ "bác học" này nọ hay không? Tất nhiên là không. Còn cái đoạn dịch ngược từ nhị phân lên cấp ASM dùng để minh họa ở trên là do trình decompiler giúp ta tạo ra, cả thế giới đều biết, có ai bảo không đâu nhỉ? Delphi gì ở đó nữa? Nếu không có trình decompiler thì hoàn toàn có thể làm bằng tay nhưng vất vả hơn, không đúng sao? Trình decompiler cũng có nhiều loại, có cái cao cấp thì chỉ ra được tận ngọn ngành chuỗi Hex đó là hàm nào, bộ SDK nào... có cái "thấp cấp" thì người dùng phải tự hiểu và ghi chú lấy... Đó chỉ là những điều sơ lược mang tính chất minh họa chứ không phải khoe khoang nên không có gì phải thắc mắc cả.

    Tôi cũng đã khẳng định đó là một ví dụ kinh điển mà hầu hết những người tìm hiểu về Reverse Engineering đều biết, tìm ở đâu cũng thấy, có giấu giếm gì đâu. Nó chỉ là một ví dụ để khẳng định chuyện debug ngược là chuyện hiển nhiên, không có gì bí ẩn cao siêu như một số người vẫn khoa trương tô vẽ.

    Hai là, huyền thoại ASM. Rất nhiều người cho rằng nó cao siêu và chỉ những thiên tài mới hiểu và sử dụng được. Nó tạo ra tâm lý lệch lạc và gây thiếu tự tin cho các bạn newbie. Sự thật thì ngược lại, nó đúng nghĩa là một thứ ngôn ngữ bậc thấp, không có gì cao sang cả. Cứ hình dung thế này. Chỉ cần nhấn một nút, bạn cày xong một thửa ruộng, trong khi có những ông nông dân cổ hủ cứ nhất định dùng con trâu và cái cày làm việc hùng hục đến vã mồ hôi và khăng khăng rằng cày bằng trâu mới là lao động thực sự, đáng được biểu dương. Cày bằng máy là cách làm của bọn Tư Bản thối nát, không thèm chấp. Rất vô lý và hài hước.

    Ba là, phải biết cày bằng trâu trên những thửa ruộng gai góc trước khi cày bằng máy, đó mới là nông dân đích thực. Người ta gọi cái này là lý luận của Bờm cũng đúng. Qua ví dụ trên kia, tôi muốn chỉ ra rằng những người có tư duy thoáng đãng không bao giờ nghĩ thế. Sau khi đã nắm rõ các nguyên lý lập trình với một ngôn ngữ bậc cao, việc tìm hiểu các ngôn ngữ bậc thấp, OS, cấu trúc PE file, mã nhị phân, Hex... sẽ dễ dàng và vững chắc hơn rất nhiều. Tất nhiên như đã nói, chỉ một số người yêu thích làm việc trong những lĩnh vực liên quan thì mới nghiên cứu sâu về những thứ đó. Đây là do yêu cầu công việc chứ bản thân họ cũng chẳng dám tự nhận là giỏi giang hay "lập trình viên đích thực" gì hết.

  8. #18
    Ngày gia nhập
    10 2007
    Bài viết
    11

    @ccom: bác đã nói ra được như trên thì em cũng công nhận bác đã học được rất nhiều ngôn ngữ và có nhiều kinh nghiệm.

    Em là 1newbie, em biết là tiếp cận với các ngôn ngữ thời đại sẽ hiệu quả hơn,thực tế hơn.

    Nhưng em vẫn đang cày C việc học C của em ko phải để sau này, khi có 1 vốn kiến thức về C em sẽ làm gì với nó, mà đơn giản, theo em biết C là một ngôn ngữ "cha ông", em nên hiểu về C đôi chút, và quan trong hơn, đó là các thuật toán, cách giải quyết các yêu cầu bài toán trên C - giúp em có một tư duy tốt hơn về lập trình.

    Nếu có thể làm việc với C tương đối (quan trọng hơn với em vẫn là giải thuật) em sẽ bay qua C++ và Java để hiểu thế nào là lập trình hướng đối tượng.

    Và đích đến (hy vọng ko phải là sau cùng) có lẽ là C#,VB.NET ....

    Các bác thấy có hợp lý ko ạ ?
    Đã được chỉnh sửa lần cuối bởi rocknet : 19-11-2007 lúc 12:54 AM.

  9. #19
    Ngày gia nhập
    11 2007
    Bài viết
    6

    tôi không biết nên khuyên bạn nên học ngôn ngữ nào. vì thứ nhất có quá nhiều ngôn ngữ như bạn thấy nhiều người đã nói ở trên. thứ 2 tôi nhận thấy tôi ko phải là một người tài giỏi, biết nhiều ngôn ngữ này ngôn ngữ nọ. Tôi chỉ khuyên bạn là bạn hãy nắm chắc tư duy lập trình, theo mình đó mới là vấn đề. còn ngôn ngữ chỉ là công cụ để anh giải quyết vấn đề trên máy tính (làm programmer chứ ko phải là user nhé). tất nhiên có nhiều trường phái lập trình (làm về phần mềm quản lý hay làm việc thiên về nghiên cứu như trí tuệ nhân tạo... theo mình thấy như vây) và yêu cầu công việc (cái này là quan trọng vì không ai làm không công, ko cần tiền để chi tiêu những việc nhỏ nhặt cả) mà bạn học ngôn ngữ nào đó đáp ứng tốt với việc bạn phải làm.

  10. #20
    Ngày gia nhập
    11 2007
    Bài viết
    79

    Trích dẫn Nguyên bản được gửi bởi rocknet Xem bài viết
    @ccom: bác đã nói ra được như trên thì em cũng công nhận bác đã học được rất nhiều ngôn ngữ và có nhiều kinh nghiệm.

    Em là 1newbie, em biết là tiếp cận với các ngôn ngữ thời đại sẽ hiệu quả hơn,thực tế hơn.

    Nhưng em vẫn đang cày C việc học C của em ko phải để sau này, khi có 1 vốn kiến thức về C em sẽ làm gì với nó, mà đơn giản, theo em biết C là một ngôn ngữ "cha ông", em nên hiểu về C đôi chút, và quan trong hơn, đó là các thuật toán, cách giải quyết các yêu cầu bài toán trên C - giúp em có một tư duy tốt hơn về lập trình.

    Nếu có thể làm việc với C tương đối (quan trọng hơn với em vẫn là giải thuật) em sẽ bay qua C++ và Java để hiểu thế nào là lập trình hướng đối tượng.

    Và đích đến (hy vọng ko phải là sau cùng) có lẽ là C#,VB.NET ....

    Các bác thấy có hợp lý ko ạ ?
    Học thuật toán thì lại càng không liên quan gì đến ngôn ngữ C.

    Thực ra hồi bằng tuổi bạn tôi cũng có suy nghĩ như bạn bây giờ. Tôi được dạy thế và tôi đinh ninh đó là chân lý. Hồi đó Pascal là nhất, Pascal là thuật toán, Pascal là máy tính, Pascal là lập trình, nói chung là mọi thứ...

    Nhưng rồi tôi đọc được ở đâu đó: Tư duy khoa học là phải biết hoài nghi. Đại loại như vậy. Cho nên cái gì cũng nên xem xét lại một chút. Thử đặt câu hỏi nhé: Chẳng lẽ thuật toán giải phương trình bậc hai của ngôn ngữ C khác Pascal, khác VB? Chẳng lẽ lập trình Visual Basic không cần thuật toán?

    Tôi khẳng định với bạn rằng bạn sẽ học được nhiều thuật toán hơn, kỹ hơn, nhớ lâu hơn nếu bạn dùng Visual Basic 6 thay vì Pascal hay C. Trong khi bạn đang loay hoay với những dòng readln, writeln... thì người bên cạnh bạn dùng VB đã viết xong toàn bộ chương trình và bắt đầu chuyển sang bài toán vẽ đồ thị... Khi bạn toát mồ hôi mới làm xong chương trình vẽ đồ thị thì anh ta đã gấp quyển sách thuật toán lại rồi, xong hết rồi. Và anh ta hiểu ra rằng, chẳng cần VB hay C, anh ta có thể dùng mã giả và "test khô" để giải quyết mọi bài toán. Thế là anh ta trở thành chuyên gia phân tích thiết kế hệ thống. Anh ta quẳng mớ mã giả và tài liệu phân tích thiết kế lại cho các coder, bắt họ dịch mã giả sang bất cứ ngôn ngữ nào khách hàng yêu cầu. Trong khi các coder (trong đó có bạn) hì hục dịch mã toét mắt, anh ta ngồi nhâm nhi cafe, viết tài liệu hướng dẫn bằng Microsoft Word một cách nhàn hạ. Nhưng đố ai ganh tị được nhé, vì thiếu tài liệu "lập trình trên Word" của anh ta thì bố bảo khách hàng cũng không dám bỏ tiền ra mua chương trình.

    Không chỉ vấn đề thuật toán, nhiều người còn cho rằng dùng C thì mã chương trình sẽ cô đọng hơn, chương trình chạy nhanh hơn. Mã càng cô đọng, càng ngắn, càng khó hiểu thì càng chứng tỏ sự thông minh vượt trội của mình. Sự thật không phải thế mà ngược lại, bạn càng viết rõ ràng, dài dòng một chút, cặn kẽ một chút thì máy tính càng hiểu bạn tốt hơn, chạy nhanh hơn. Vậy thì không có lý do gì để từ chối các ngôn ngữ bậc cao. Đó là chưa kể đến vấn đề bảo trì và tái sử dụng, một việc quan trọng hàng đầu trong nghề coding. Càng cô đọng và khó hiểu theo kiểu tư duy C/C++ "bác học" sẽ chỉ làm hại chính mình và người khác sau này khi phải bảo trì code mà thôi.

    Ngày trước, những thứ như "con trỏ cấp phát động" hay "đệ quy" là những thứ rất cao cấp (và cao siêu nữa). Bạn nào trong lớp muốn được khen là "giỏi" thì phải rất thạo những thứ này. Nhưng nó cao cấp và cao siêu không phải vì nó rèn luyện cho bạn một tư duy tốt, mà chủ yếu vì nó gây khó hiểu cho người khác và rất mạo hiểm, rất dễ gây lỗi. Hồi đó chúng tôi rất ích kỷ và xấu tính, rất khoái chí khi người khác đọc và không thể hiểu code của mình. Hậu quả là ra trường làm việc đơn lẻ thì được, nhưng làm việc nhóm thì cực kỳ tồi tệ vì chúng tôi không có thói quen chia sẻ, đúng hơn là không có khả năng chia sẻ.

    Bây giờ thì những thứ ấu trĩ này (con trỏ, đệ quy) không còn được mấy người ca tụng nữa, đơn giản vì có nhiều con đường khác tốt hơn. Nhiều con đường tốt hơn để đi đến cùng một đích, vậy tại sao cứ phải cắm đầu vào con đường nguy hiểm đầy gai góc, ngoài lý do thích chơi trội?

Các đề tài tương tự

  1. Bài tập C ai giúp e với bài quản lý học viên cái :(
    Gửi bởi danganhhao trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 3
    Bài viết cuối: 27-02-2012, 02:00 PM
  2. Trả lời: 4
    Bài viết cuối: 08-05-2011, 07:52 AM
  3. Gọi 1 sinh viên trong 1 dãy sinh viên nhập vào. giúp em với
    Gửi bởi th1406dnquan trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 08-03-2011, 12:16 PM
  4. Xây dựng lớp học viên cao học, xin chỉ giúp mình?
    Gửi bởi huongit1982 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 5
    Bài viết cuối: 12-09-2010, 11:31 AM
  5. em rất thích làm lập trình viên xin mấy anh giúp
    Gửi bởi lenhan555 trong diễn đàn Đào tạo CNTT
    Trả lời: 6
    Bài viết cuối: 17-07-2009, 07:18 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn