Tuesday, 14 December 2010

Đã đến lúc đi xa hơn?

Nếu như những bước đi đầu tiên của bạn trên con đường lập trình là những dòng HelloWorld thì đến giờ nãy, hẳn cũng 2 năm đã trôi qua. Và nếu bạn xuất phát lại từ đầu bằng môn CTDL & GT thì đến giờ cũng đã hơn 3 tháng. Không phải là quá nhiều nhưng là đủ để bạn nắm vững được phần cơ bản của C (phần nào là cơ bản: giở 5 quyển ebook viết về C ra(những quyển dưới 5-700 trang), xem mục lục những phần nào mà quyển nào cũng có thì chính là phần cơ bản)

Đã đến lúc để bạn đi xa hơn... để biết rằng thế giới này còn rất rộng lớn, còn nhiều điều thú vị tuyệt vời đang ẩn ở đâu đó.



Và sau đây là 1 vài hướng để các bạn có thể lựa chọn để đi xa hơn nữa...
- C++
- Java
Vậy 2 cái này chọn cái nào?
Không ai quyết định thay bạn được, hãy chọn lấy 1 cái theo ý thích của mình. Một nghề thì sống đống nghề thì chết. Chả ai cấm bạn học cả 2 nhưng ở thời điểm hiện tại thì nên chọn lấy 1 (3 năm code nữa có thể bạn sẽ cần cả 2, thậm chí là phải biết ở mức tương đối hàng chục ngôn ngữ khác nhau) Mỗi ngôn ngữ có 1 thế mạnh riêng và phù hợp với những mục đích khác nhau.

Bài why-you-probably-should-not-learn-java bên dưới có những lý do rất thú vị không nên học Java: (không phải lý do về kỹ thuật mà về công việc)
“there will be 190,872,452 requirements for Java professionals in 5 years” and they decide that once you learn Java, your life will be changed forever, for good. WRONG! vì:
- Càng có nhu cầu lớn nghĩa là bạn càng phải cạnh tranh nhiều. (nếu bạn là 1 trong những người giỏi nhất thì không vấn đề gì :-j )
- Công ty thuê bạn có thể sẽ trả lương thấp, vì nguồn nhân lực là dồi dào, họ sẽ thuê người khác với mức lương thấp hơn. (nếu bạn là cao thủ thì lại lầ chuyện khác )
- Java mạnh về viết phần mềm cho doanh nghiệp. Nếu bạn muốn viết các ứng dụng thú vị cho mọi người sử dụng thì nên học 1 ngôn ngữ khác.(các hướng khác của Java lại có vẻ rất thú vị nhưng nói chung mỗi hướng khác nhau rất nhiều và các hướng này đòi hỏi trình độ khá cao)
=> vậy như nếu GS Hiệp mà học ASM đến 1 trình độ nào đó thì việc đi làm rất dễ được lương cao mà có việc ngay. >:)

Nếu bạn muốn trở thành 1 lập trình viên đẳng cấp hơn, hãy code vì niềm vui. Không quan trọng ngôn ngữ hay trình độ nào. Mở rộng tầm nhìn, học những điều mới hàng ngày. Mỗi kỹ thuật hay ngôn ngữ mới sẽ giúp thay đổi các nhìn của bạn về việc code và viết phần mềm. Học 1 cái để kiếm tiền, học những cái khác để mang về niềm vui!


Tham khảo các ý kiến : Hãy đọc các phản hồi ở phần comment, nhiều khi nó giá trị hơn cả bài viết!
http://c2.com/cgi/wiki?JavaVsCpp
http://www.oreillynet.com/pub/a/oreilly/java/news/whyjava_0600.html
http://stackoverflow.com/questions/499731/should-i-learn-c-and-java-simultaneously
http://www.diovo.com/2009/04/why-you-probably-should-not-learn-java/
...và cả đống kết quả nưẫ bạn có thể tự Gooogle

- SDL - Simple DirectMedia Layer is a cross-platform multimedia library designed to provide low level access to audio, keyboard, mouse, joystick, 3D hardware via OpenGL, and 2D video framebuffer. It is used by MPEG playback software, emulators, and many popular games, including the award winning Linux port of "Civilization: Call To Power."
Vậy học C,C++ và SDL bạn có thể viết game 2D (nói thì đơn giản thôi chứ để viết được 1 game tetris (xếp gạch) bạn cũng mất cả đống thời gian đấy)


- openGL - OpenGL is the premier environment for developing portable, interactive 2D and 3D graphics applications. Since its introduction in 1992, OpenGL has become the industry's most widely used and supported 2D and 3D graphics application programming interface (API), bringing thousands of applications to a wide variety of computer platforms.
C,C++,openGL -> Game 3D,2D (về 2D thì SDL tỏ ra là ưu việt hơn còn về 3D thì openGL là công nghệ 3D của tương lai)

... to be continued

Và cuối cùng hãy nhớ, nếu đã chơi, đừng để mình là kẻ tầm thường!