Cuộc chiến giữa các ngôn ngữ lập trình. Nên chọn ngôn ngữ nào để bắt đầu nghề “gõ bàn phím”

Sharing is caring!

Nhân dịp đầu năm mới Đinh Đậu 2017, tui sẽ khai bút bằng bài viết về các ngôn ngữ lập trình hy vọng sẽ giúp cho các thanh niên đang có ước mơ trở thành “developer” trong cái thế giới công nghệ tuy hào hoa mà cũng lắm gian truân này nhận biết được thế nào là ngôn ngữ lập trình.

1. Quá trình học lập trình của tui.

Đầu tiên, tui cũng xin mạn phép được kể lể tí về khoản thời gian tui học các ngôn ngữ lập trình. Đó là đầu những năm 2000, lúc đó mới là sinh viên năm nhất, năm hai khoa CNTT trường HUFLIT. Thời đó làm gì được chọn ngôn ngữ để tự học như các thanh niên ngay nay. Đầu tiên là tui làm quen với em Pascal, sau đó là tới em C rồi C++, nói thật là nó chán kinh hồn các bạn ạ, lập trình toàn là màn hình console đen thui thôi nhưng cũng phải học thôi tại vì đâu có sự lựa chọn nào khác, Happy-Grin . Sang những năm tiếp theo, mới quen được một “mỹ nhơn” là em Java, ta nói yêu cmn luôn em nó, viết application cũng Java, viết Website cũng Java, ta nói làm cái gì cũng Java, sướng lắm các bạn ạ.

Cho đến một ngày, thiên thần của lòng tui xuất hiện đó là C#, từ xử lý Form đến website đều ăn đứt em Java, thế là em “mỹ nhơn” Java tui cho vào “hậu cung” luôn các bạn ạ, nói thẳng ra là “phản bội” đó các bạn, thấy gái xinh, giỏi là tươm tướp à (bản chất đờn ông mà Happy-Grin ). Rồi những năm cuối đời sinh viên, tui cũng thử “tán” em PHP này nọ để làm web nhưng không mặn mà cho lắm, tại lúc đó người tình của lòng tui là em thiên thần C# mà. Thế là sau cái ngày “Trường cho ra đi, không cho học tiếp nữa – ý là tốt nghiệp roài đó”, tui mang cái tâm thế ngôn ngữ C# là vô địch xuyên vũ trụ, cho C# là nhất và vứt các ngôn ngữ kia.

Đó là trước kia, thời còn sửu nhi, thích gái đẹp, thấy gái ngon, đẹp hơn thì chạy theo (ý là các ngôn ngữ lập trình nha mấy thanh niên, chứ tui chung thủy lắm á Overjoy ), cho đến một ngày nhận một project làm web mà bị yêu cầu là dùng open source PHP chạy trên HĐH Linux, đành phải làm thôi chứ sao giờ, càng ngày làm nhiều dạng phần mềm, càng nhận ra một chân lý là ngôn ngữ không phải là thứ quyết định tất cả, mà là tư duy lập trình, ngôn ngữ chỉ giúp ta thể hiện tư duy lập trình thôi. Đó là quá trình nhận thức của tui về ngôn ngữ lập trình, cũng mất cả 5-6 năm đấy các bạn.

2. Ngôn ngữ lập trình nào tốt nhất?

Đây là câu hỏi cũng là cuộc chiến giữa các ngôn ngữ lập trình. Các bạn cứ thể search Google đi sẽ thấy rất nhiều thống kê nào là năm nay ngôn ngữ PHP sẽ lên ngôi, năm kia là Java, rồi năm kía kìa là C#…. và thêm vào những cái so sánh rất chi là “so sánh” giữa các ngôn ngữ với nhau mà toàn là đi lấy cái điểm mạnh của cái này đi so sánh với cái điểm yếu của cái kia, thế là các thanh niên đam mê, mong muốn trở thành “coder” trở nên rối rắm, chả biết chọn cái ngôn ngữ nào để học, để đầu tư, kiểu như:

  • Nên học PHP hay C# ta?
  • Nên học C# hay Java ta?

Theo tui, ngôn ngữ lập trình tốt nhất là khi nó đáp ừng được những yêu cầu của từng project, từng issue cụ thể, chứ không thể nào có ngôn ngữ nào là best cho tất cả các vấn đề phát sinh hằng ngày mà ta cần phải giải quyết, nếu không thì chỉ cần 1 ngôn ngữ là đủ, cần quái gì sinh ra lắm ngôn ngữ rồi lại tự hỏi là ngôn ngữ nào tốt nhất, tui nói có đúng không?  Disapproval

3. Nên học ngôn ngữ nào và học như thế nào?

Theo tui, mỗi ngôn ngữ khi được tạo ra và tồn tại cho đến năm 2017, ngay tại thời điểm tui đang viết bài này đều có một ví trí nhất định trong một mảng công nghệ nào đó, chứ nếu không nó bị cho “ra đảo” rồi. Mỗi ngôn ngữ đều có thế mạnh riêng, và chính nhờ thế mạnh này mà nó tồn tại và phát triển. Ví dụ như để làm website phía server nha thì các bạn có thể chọn PHP, Python, Java, Scala và C# đều làm được hết ( chẵng lẽ ông này biết hết các ngôn ngữ kia luôn ta Approve ), nhưng không thể nói cái nào trong các ngôn ngữ này là tốt hơn các ngôn ngữ còn lại, nếu các bạn chọn công nghệ M$ mà theo đuổi thì chọn C# mà học tập hoặc chọn Linux thì PHP, Python, Java, Scala mà học, cái này là tui thí vụ thôi hen.

Cụ thể là với tui, khi viết winform, nhất định là chọn C#, không ai qua được em nó. Nếu viết web dùng HĐH Linux, thì phải xem xét, nếu là site nhỏ, trung bình thi dùng PHP cho lành, nhưng nếu hệ thống lớn, cần xử lý dữ liệu nhiều, thì có thể kết hợp với Java, Scala cho việc xử lý Business Logic tất nhiên C# vẫn có thể viết trên nền tảng None – Microsoft (M$) nhưng nó lại không tốt bằng Java hay Scala khi chạy trên Linux, đấy tui vừa chứng minh cho các bạn thấy mỗi loại ngôn ngữ nó có thế mạnh riêng.

Vậy thì đối với các thanh niên chân ướt chân ráo thì chọn học cái gì cho phù hợp, thì theo kinh nghiệm của tui các bạn làm như sau:

  • Nếu xác định ngay từ đầu là theo M$, thì cứ chọn C# mà học từ làm windows form đến làm web (với web thì phải học HTML, CSS, Javascript nữa), C# cũng rất tốt để làm quen với lập trình hướng đối tượng – OOP.

Sẳn đây nói luôn là thanh niên nào là kỹ sư xây dựng, đang làm việc trên Revit, có mong muốn học lập trình thì nên chọn C# nha, sẽ giúp ít rất nhiều khi bạn muốn viết Add-in cho Revit.

  • Nếu chọn nền tảng None-M$ thì nếu làm muốn làm web, để cho dễ tiếp cận thì các bạn nên chọn PHP (tất nhiên là gồm cả HTML, CSS, Javascript), do lượng framework web viết bằng PHP cũng khá đa dạng, cộng đồng cũng lớn. Sau đó, khi đã vững rồi thì hãy tìm hiểu tiếp về Java, cũng như Scala để làm web, cũng như để làm các module xử lý dữ liệu lớn cũng khá thú vị.
  • Nếu vẫn không xác định được, thì tui khuyên các bạn nên học Java cơ bản để nắm vững kiến thức cơ bản về lập trình hướng đối tượng – OOP.
  • À quên, còn một  mảng nữa là lập trình mobile. Nếu là làm trên HĐH iOS thì các bạn nên chọn Objective-C hay là cái ngôn ngữ mới giờ là Swift. Nếu là Android thì học Java là con đường duy nhất dễ dàng tiếp cận, nhưng trước tiên phải học Java cơ bản để nắm kiến thức về OOP..

Để kết bài này, tui mượn cái slogan của trang codingpearls.com này là “Make Programming More Interesting”, đừng đặt nặng vấn đề ngôn ngữ mà mình thích là tốt nhất và “dìm hàng” các ngôn ngữ khác (tất nhiên ngôn ngữ nào là thế mạnh thì mình phải phát huy thôi), nhưng bên cạnh đó phải biết lực chọn và kết hợp nhiều ngôn ngữ khác bên cạnh ngôn ngữ chính của mình thì các bạn sẽ thấy được cái nghệ thuật trong lập trình, khi đó lập trình sẽ rất là thú vị đấy các thanh niên ạ.

Sharing is caring!

Nâng cao nhân tố giới hạn để phát triển bản thân

Vincent Le

Tui là Lê Minh Đạt, tên tiếng anh là Vincent(do thích nhân vật Vincent Valentine, ai từng là fan của trò Final Fantasy VII thì sẽ biết nhân vật này, hehe). Đang tập tành làm một blogger viết về mảng lập trình, mong muốn được chia sẻ những gì đã học được, tích góp được trong 10 năm đi làm thợ code.

shares