Tôi nên học ngôn ngữ lập trình nào?

Giả sử nhà bạn bị hư đường ống dẫn nước và bạn gọi thợ đến để sửa. Người thợ sửa ống nước đến nhà bạn và hỏi rằng: “Ông muốn tôi dùng dụng cụ nào để sửa?”

Bạn sẽ trả lời như thế nào? “Tôi không quan tâm! Hãy sửa cái chỗ rò rỉ chết tiệt này dùm tôi”.

Vâng, điều đó hoàn toàn đúng. Mọi người đều muốn hoàn thành công việc của họ, và các vấn đề của họ phải được giải quyết. Họ không quan tâm đến công cụ nào mà bạn sử dụng cả. Là một lập trình viên, công việc của bạn là giải quyết vấn đề của khách hàng theo một cách hiệu quả nhất có thể. Điều này có nghĩa là bạn không thể sử dụng một công cụ duy nhất để giải quyết mọi vấn đề. Bạn có thể sử dụng một cái khoan điện để sửa một lỗ rò rỉ trên ống nước không? Dĩ nhiên là không. Có thể bạn sẽ phải sử dụng một loại băng keo dán ống nước cho vấn đề đó.

Ngôn ngữ lập trình nào dễ học nhất.Ngôn ngữ lập trình nào là tốt nhất hiện nay?

Ngôn ngữ nào tôi nên học là một câu hỏi sai ngay từ đầu. Các ngôn ngữ lập trình là những công cụ trong túi của một lập trình viên phần mềm. Trước khi quyết định xem ngôn ngữ lập trình nào mà bạn muốn học, bạn nên quyết định xem dạng vấn đề nào mà bạn muốn làm việc cùng. Bạn muốn làm việc trên công nghệ Web? Bạn muốn làm việc trên hệ điều hành Linux? Hay bạn muốn làm việc trên nền tảng di động? Có hàng triệu nhánh khác nhau trong thế giới lập trình và bạn phải hỏi bản thân mình tất cả những câu hỏi đến trong đầu và sau đó quyết định xem liệu ngôn ngữ nào thì phù hợp với lựa chọn của bạn.

Điều này không có nghĩa những công cụ là kém quan trọng. Đúng hơn là; chúng không quan trọng bằng vấn đề mà bạn đang cần phải giải quyết.

Bao nhiêu ngôn ngữ lập trình bạn nên học?

Không có vấn đề gì trong việc cố gắng học được thật nhiều ngôn ngữ lập trình cả. Cái mà bạn nên làm đó là thử và học về nhiều ngôn ngữ lập trình nhất mà bạn có thể, và sau đó quyết định xem rằng ngôn ngữ nào bạn nên trở thành chuyên gia về nó.

Quay trở lại với vấn đề tương tự của chúng ta, công cụ nào bạn nghĩ rằng một người thợ sửa ống nước nên mang theo trong túi đồ nghề? Câu trả lời là: “Đủ công cụ để hoàn thành công việc.”

Đúng vậy. Nếu bạn chỉ biết sử dụng mỗi một công cụ, bạn có thể sẽ phải làm việc cùng những người có thể sử dụng những công cụ khác. Điều này xảy ra trong hầu hết mọi công ty phần mềm. Trong những công ty lớn bạn sẽ làm việc cùng những người khác là chuyên gia trong những ngôn ngữ lập trình và công cụ mà bạn không biết cách sử dụng. Điều này có một lợi điểm đó là những người này sẽ là “ngôi sao” trong những lĩnh vực hẹp của họ. Ngược lại nếu bạn muốn làm việc trong những công ty mới khởi nghiệp (hoặc bạn muốn làm việc như mộtfreelancer), bạn có thể muốn biết mỗi thứ một chút của mọi dạng công cụ ngoài kia.

Dĩ nhiên bạn không cần phải biết sử dụng tất cả các loại tuốc-vít. Bạn chỉ cần trở thành chuyên gia trong việc sử dụng một loại tuốc-vít tốt. Tương tự như vậy, bạn không cần phải trở thành chuyên gia trong mọi ngôn ngữ lập trình web. Chỉ cần học một ngôn ngữ cho thật tốt và bạn sẽ ổn.

Mỗi lĩnh vực lập trình đều có một bộ các công cụ của riêng nó để giúp bạn phát triển các phần mềm. Nếu bạn đang phát triển một website doanh nghiệp (Enterprise), bạn có thể đang làm việc cùng những công nghệ như Core Java, Servlets, EJBs, XML, Unix Shell Scripts, Log Parsers, Databases và rất nhiều loại Web-server khác nhau… Điều này có nghĩa là ngoài các ngôn ngữ lập trình thì còn có rất nhiều các công nghệ liên quan tới lập trình mà bạn nên thành thạo để trở thành một lập trình viên giỏi.

Thêm một điều mà bạn nên biết là – tất cả các ngôn ngữ lập trình là kế thừa lẫn nhau. Một số ngôn ngữ thì rất dễ để lập trình (ví dụ: Python) trong khi một số ngôn ngữ khác thì rất khó (ví dụ: C/C++). Tôi không đề cập đến mức độ thành thạo cần thiết trong việc học các ngôn ngữ đó. Cái mà tôi đề cập là nỗ lực cần thiết trong việc viết chương trình sau khi bạn đã học xong ngôn ngữ đó. Nếu bạn làm việc như một lập trình viên trong một công ty phần mềm, bạn sẽ có thể phải học một ngôn ngữ lập trình mới (có thể là do yêu cầu của nghiệp vụ) trong một khoảng thời gian rất ngắn. Bạn sẽ bắt đầu viết những dòng mã tươm tất trong khoảng thời gian từ 1 tuần đến 3 tháng. Sau đó vấn đề duy nhất là ngôn ngữ lập trình nào bạn thật sự thích làm việc với nó hơn. Vì vậy đừng quá lo lắng về ngôn ngữ nào dễ học hơn; mà hãy lo lắng về ngôn ngữ nào thì dễ sử dụng hơn. (Có một sự tương quan ở đây. Bạn sẽ nhận ra rằng trong hầu hết các trường hợp những ngôn ngữ mà dễ học hơn thì chúng cũng dễ lập trình hơn.)

Bạn có thể học được rất nhiều về lập trình từ các diễn đàn nơi mà các lập trình viên tài năng luôn tụ họp (ví dụ: Proggit và Hacker News), đọc các bài viết nổi bật và đặt các câu hỏi của bạn tại đây; bạn sẽ sẽ nhận được các câu trả lời chất lượng.

Bí mật lớn nhất:

Cách duy nhất để bạn trở thành một lập trình viên giỏi — đó là lập trình thật nhiều. Nhiều sinh viên không luyện lập trình bên ngoài phòng thực hành và làm các bài tập lớn của họ, và họ sẽ chẳng bao giờ trở thành những lập trình viên giỏi cả. Hãy luyện tập lập trình trong thời gian rảnh rỗi của mình. Hãy thử giải bài toán Euler bằng ngôn ngữ lập trình ưa thích của bạn, hoặc tự xây dựng một trang web cho riêng mình.

Phải nói rằng tất cả những điều nêu ra ở đây chỉ là một số kinh nghiệm của tôi. Chúng có thể đúng hoặc cũng có thể không đúng trong trường hợp của bạn:

– Phát triển phần mềm doanh nghiệp (Enterprise): Học ngôn ngữ Java thì rất tốt. Java thường được sử dụng trong nhiều công ty phần mềm như là ngôn ngữ thứ nhất. Nó sẽ giúp bạn tiến xa hơn trong nhiều trường hợp. Tại cùng thời điểm, tôi gặp phải một số ý kiến phản đối trong việc sử dụng ngôn ngữ từ quan điểm của một lập trình viên mới vào nghề. Bạn cũng nên đọc thêm một số thảo luận ở đây.

– Phát triển Web: Hãy tránh xa ngôn ngữ PHP. Nó là một ngôn ngữ được thiết kế rất tồi. Thay vì đó, hãy học Django hoặc Ruby on Rails. Nếu bạn thích công nghệ của Microsoft thì hãy sử dụng ASP.NET MVC.

– Phát triển ứng dụng trên Windows: Hãy học C# (và có thể đừng học Visual Basic). Nếu muốn chạy các ứng dụng viết bằng C# trên môi trường Linux thì hãy sử dụng dự án Mono.

– Có rất nhiều công cụ lập trình tuyệt vời hoặc các IDE mà bạn nên cố gắng sử dụng thành thạo. Eclipse là một trình IDE nổi tiếng. Notepad++ cũng là một trình soạn thảo code khá phổ biến.

– Bạn nên học thêm về các kỹ thuật như Regular Expressions, Unicode, Information Security v.v… (rất tiếc là tôi không thể liệt kê ra tất cả tại đây.)

– Cố gắng cập nhật những công nghệ mới nhất. Bạn không phải học tất cả những ngôn ngữ mới nhất, nhưng hãy cố gắng có một sự hiểu biết về những xu hướng mới nhất trong lập trình. Ví dụ như lập trình Web, lập trình di động v.v… là những lĩnh vực có rất nhiều sáng tạo đang diễn ra. Bạn không nên bỏ lỡ bất kỳ lĩnh vực nào nếu bạn cảm thấy thích thú chúng. Ngoài ra, những diễn đàn mà tôi có đề cập ở trên sẽ vô cùng hữu ích.

– Học chỉ một ngôn ngữ lập trình thì không phải là một ý kiến hay. Học thật nhiều ngôn ngữ lập trình cũng không phải là ý kiến hay. Hãy cố gắng cân bằng giữa hai thái cực này và cố gắng thật giỏi ít nhất 2 đến 3 ngôn ngữ lập trình trong các lĩnh vực khác nhau. (Như tôi đã giải thích lúc trước, những ngôn ngữ lập trình khác nhau thì được dùng để giải quyết các dạng vấn đề khác nhau.)

Chúc bạn may mắn và chọn được ngôn ngữ lập trình phù hợp cho mình!

Sau đây là một bình luận có chất lượng:

Xin chào mọi người,

Trước tiên, bạn phải quyết định xem lĩnh vực nào trong IT mà bạn muốn theo đuổi. Có rất nhiều lĩnh vực như công nghệ Web, công nghệ di động, phát triển phần mềm, phát triển ứng dụng trên desktop v.v… Nếu bạn muốn đi theo lĩnh vực lập trình Web thì bạn có hai sự lựa chọn:

1. PHP
2. Công nghệ .NET

Hiện tại việc học PHP thì dễ hơn là học C#, nghiên cứu công nghệ .NET thường đòi hỏi nhiều công sức hơn. Vì vậy tôi thích PHP hơn, nhưng bù lại những lập trình viên .NET lại được trả lương cao hơn các đồng nghiệp làm PHP. Tôi muốn nói thêm một điều là, nếu bạn muốn trở thành một freelancer sau 2 đến 3 năm làm việc tại một công ty thì đi theo hướng PHP sẽ có nhiều cơ hội hơn, còn ngược lại thì bạn hãy đi theo công nghệ .NET.

Bạn nên nhớ rằng, công nghệ .NET thì rất lớn và các dự án của nó cũng đồ sộ. Bạn không thể thực hiện toàn bộ dự án một mình được, bạn sẽ luôn luôn cần sự giúp đỡ và Internet thì không giúp được gì nhiều ở đây. Nhưng ở PHP bạn có thể nhận được nhiều dự án nhỏ mà tự mình có thể hoàn thành được, thêm một điểm nữa là ngày càng có nhiều công việc dành cho lĩnh vực PHP hơn. Khách hàng họ chỉ cần một nền tảng độc lập, và PHP đáp ứng rất tốt nhu cầu đó. Một số người nói rằng PHP đang chết dần, điều đó thì hoàn toàn không đúng bởi vì có rất nhiều thứ đang hoạt động rất tốt:

– Các Core PHP, CMS như (WordPress,Joomla,Drupal)
– Giỏ hàng (Interspire, Os Commerce, Zen-Cart, X-cart, Virtuemart v.v…)
– Các Framework như (Symphony, Codeignitor, Cakephp, Zend)

Ai nói rằng PHP đang chết dần! Điều đó là hoàn toàn sai lầm!

Nếu bạn muốn đi theo hướng công nghệ di động, tôi khuyên bạn nên đi theo hướng Android. Nếu là lập trình phần mềm thì nên gắn với .NET hoặc Java. Nếu chuyên viết các ứng dụng desktop thì Java và .NET vẫn là hai sự lựa chọn hàng đầu.

Nhưng tôi phải nói thêm với bạn một điều rằng, hiện tại công nghệ Web và công nghệ di động đang phát triển bùng nổ. Vì vậy tôi thích làm việc với chúng hơn. Khoảng 80% thị trường IT dựa trên công nghệ Web và công nghệ di động, và điều này cũng sẽ đúng trong tương lai. Vì vậy bạn nên gắn chặt với hai công nghệ này.

Thêm một điều nữa mà tôi muốn nói là HTML5/CSS3, Javascript và JQuery. Kiến thức của những công nghệ này thì rất có ích nếu bạn lựa chọn lĩnh vực phát triển Web.

Tags: , ,

Leave a Reply

Your email address will not be published. Required fields are marked *

*
*