Học công nghệ gì bây giờ?
Không phải nói quá nhưng có lẽ những ai học CNTT đều phải đặt câu hỏi này cho chính bản thân mình không những một lần mà rất nhiều lần.
Tại sao ư?
Vì ngành công nghệ thông tin là một trong những ngành có nhiều biến động nhất. Công nghệ đang hot ở hiện tại không biết có thể "sống sót" sau 5 năm nữa hay không? Chưa kể những đợt khai tử bất thường của các hãng công nghệ lớn hoặc công nghệ đó tự die cũng có. Ví dụ tiêu biểu nhất là web development, ở đây mình lấy ví dụ là full stack developer đi.
Riêng front-end thôi đã có AngularJS, Ember, Backbone. Phần back-end lại đa dạng hơn với PHP, Ruby, Python, ASP.NET, vv mà trong mỗi loại này là có các framework khác hỗ trợ Ruby có Rails, Sinatra, Volt, vv; Python thì có Django, Flask, Pyramid, còn PHP lại còn có nhiều framework hơn cơ: CodeIgniter, Laravel, Zend, Phalcon,vv. Đó là chưa kể đến phần cơ sở dữ liệu, testing, responsive design, mô hình MVC, và nhiều vấn đề khác.
Bạn có thể thấy chỉ riêng lĩnh vực web thôi đã có rất nhiều công nghệ để học. Chưa kể nếu bạn thích cả web, app, game nữa thì sao mà lựa chọn bây giờ?
Lập trình game thì có cả trăm cái game engine để làm game.
Mobile app cũng vậy, Android hay IOS hay Windowphone hay cross platform. Học native app hay cross platform. Nếu cross platform thì xài cái nào? Qt, Corona hay Xamarin?
Biết học cái nào đây? Cái nào cũng hay cũng "hot" cả.
Cách mọi người thường làm để trả lời câu hỏi này
1. Search Maze:
Để giải quyết vấn đề này, đa số sẽ tìm kiếm các nguồn tham khảo đặc biệt là trên Internet.
Những mẫu câu mà chúng ta hay dùng để search như "Nên học X hay Y", "X hay Y dễ học hơn",
"Có nên học X không" và đương nhiên mấy ông nước ngoài cũng gặp vấn đề này nên mình dịch mẫu câu này sang tiếng Anh luôn, để tiện cho mấy bạn search, không lại nói mình chém gió nữa.
"Should we learn X or Y?", "Should we learn X?" "Is learning X difficult?"
Ok, giờ bạn cứ thay X hoặc Y bằng tên các công nghệ, framework, platform, engine hoặc tên cả ngôn ngữ lập trình mà bạn thích hoặc muốn học. Mấy cái công nghệ mới quá thì nên search bằng mẫu tiếng Anh, tại tiếng Việt chưa có đâu. À mấy bạn nên thêm từ quora vào cuối nữa nha vì Quora là mạng hỏi đáp hàng đầu bây giờ, nhiều người hỏi trên đó lắm.
Có nên học rails không?
Thử tìm kiếm bằng tiếng Việt nha:
Có nên học python?
Vấn đề là khi bạn đọc những bài viết như vậy hay những bài thảo luận trên forum thì những người thích công nghệ A sẽ khuyên bạn học và theo công nghệ đó, ngược lại, ông khác thích cộng nghệ B
sẽ khuyên bạn theo B và nói A dở lắm. Cũng có nhưng "tư vấn viên" khuyên bạn chọn cái bạn thích, mà hiện tại bạn có biết thích cái nào đâu nên bạn tiếp tục search -> bạn đọc bài viết khác -> bạn lại search tiếp.
Bá đạo hơn sẽ có "tư vấn viên" khuyên bạn đừng học gì hết hoặc học hết. Và đương nhiên, trong số "tư vấn viên" này có những người chưa biết gì về cái công nghệ họ đang tư vấn cho bạn cả. Thật là ngang trái.
Chưa kể khi bạn tìm hiểu công nghệ A, nó sẽ lòi ra công nghệ B và công nghệ C từ đó bạn sẽ tốn thời gian search hơn mà vẫn chưa đi đến đâu.
2. Tự trải nghiệm
Không biết các bạn thế nào, nhưng lúc học năm nhất, mình thực sự không biết sau này sẽ học gì, làm gì hết. Trong đầu mình luôn suy nghĩ những câu hỏi như có nên học C++, có nên học Java, có nên học PHP, có nên học lập trình nhúng, có nên học lập trình game, nên học PHP hay ASP.NET, nên học Unity không,vv vố số câu hỏi thiếu định hướng về tương lai như vậy ? Mình cũng lên mạng search những từ khóa như thế, search từ tiếng Việt đến tiếng Anh, rồi đọc những câu trả lời rất hay trên Quora chẳng hạn. Mình cũng rơi vào Search Maze và muốn thoát ra càng nhanh càng tốt.
NHƯNG tất cả câu trả lời đều là chung chung hết, người ta nên ra điểm yếu, điểm mạnh của ngôn ngữ này, ngôn ngữ nọ rồi tương lai phát triển của nó và tất cả đều là ý kiến khách quan. Chỉ có chính bản thân mình mới biết được mình thích gì. Ngay cả bản thân mình còn không biết mình thích gì thì làm sao người khác biết được phải không nào? Thế là mình quyết định "dấn thân", tức là không đặt những câu hỏi không có lời giải như vậy nữa. Cách tốt nhất để biết mình thích học gì là tiếp xúc với nó trước. Sau khi học xong nhập môn lập trình trên trường, mình có đăng kí học thêm một lớp lập trình Hướng đối tượng bên ngoài vì mình thấy hướng đối tượng rất quan trọng, đa số ngôn ngữ cấp cao đều sử dụng hướng đối tượng. Tiếp theo mình học C# + SQL, ADO.NET Entity Framework rồi cách sử dụng DEVExpress để xây dựng ứng dụng Winform.
Với mục tiêu học để xem mình thích gì, tiếp theo mình chuyển qua học lập trình game với Unity. Do tiếng Anh cũng ổn nên mình rất thích học các khóa trên Udemy, Lynda, vì người ta dạy theo project vừa dạy vừa làm rất hay. Phần web thì cũng có mò từ năm cấp 3 rồi, nay tiếp tục mua host, domain về chạy Wordpress Cuối cùng mình cũng biết được thực sự mình thích gì sau quá trình học nhiều thứ khác nhau như vậy. Có câu nói rất hay là ‘Any action is often better than no action’.
3. Bỗng dưng hết thích
Người ta nói yêu một người đã khó, giữ được tình yêu đó lại càng khó hơn. CNNT cũng như vậy, khi học thứ này mới được mấy tháng, bỗng dưng hết thích hết yêu nữa là chuyện bình thường. Lúc trước một ngày học bao nhiêu cũng được, giờ thì nhìn thôi cũng đã chán. Và đúng lúc chán ấy lại xuất hiện một công nghệ mới, và thế là xuất hiện hiện tượng có mới nới cũ hoặc bắt cá 2, 3 tay :)
Còn nhớ hè năm nhất, khi học lớp Winform bên ngoài mình rất thích, lần đầu biết đến Devexpress rồi làm giao diện phần mềm nhìn đẹp lắm. Visual Studio thì hỗ trợ nhiều hàm, thư viện, code cũng bớt mệt.
Cũng từng nghĩ đời này mình sẽ gắn liền với C# với VS với Winform. C# là số một thế giới rồi. :)
Ài dè lúc đó có khóa học trên Udemy dạy về Unity3D, đó là khóa đầu tiên về game trên Udemy luôn, cũng đăng ký học thử tại bản thân cũng biết C# rồi. Thế là từ đó không bao giờ đụng vào winform nữa. Đương nhiên sau đó vòng luẩn quẩn này tiếp tục từ winform -> Unity3D -> Mobile app -> Web -> Unity3D -> ???
Bạn biết đó, cái cảm giảm "người mới" lúc nào cũng đem lại nhiều cảm xúc hơn "người cũ" rất nhiều. Và đương nhiên mình đã học lung tung, cái gì cũng biết, nhưng chỉ biết chút chút thôi.
Kết luận:
Bài viết cũng khá dài rồi, những vấn đề liên quan mình sẽ viết tiếp ở những bài viết sau. Tuy nhiên, nếu bạn là người lạc quan, bạn sẽ nghĩ "Chài ơi, có gì đâu mà xoắn, thích gì thì học đó, có gì đâu, suy nghĩ chi cho mệt. Học nhiều biết nhiều chứ có gì đâu"
\=> bạn sẽ giống mình hiện tại, cái gì cũng biết mà chỉ biết chút chút. Bạn có muốn vậy không?
Chúng ta cần phải tập trung vào một công nghệ nhất định để trở thành chuyên gia trong công nghệ đó. Tại sao ư, mời bạn đón đọc các bài viết tiếp theo?
Hiện tại mình cũng chưa tìm được cách chọn công nghệ nào học, tại vấn đề này cũng như hướng nghiệp vậy đó, phải có kinh nghiệm nhiều mới trở thành "tư vấn viên" chuyên nghiệp được. Bài viết chỉ dừng lại ở việc nêu ra thực trạng và các vấn đề liên quan đến câu hỏi "Nên học công nghệ gì" mà thôi.
Tuy nhiên, mình cũng đưa ra vài lời khuyên dựa theo kinh nghiệm của mình:
Do what you love
Take action
Don't take common advice
Hẹn gặp lại các bạn ở các bài viết khác nhé. Mọi người có bị rơi vào Search Maze hay bỗng dưng hết thích một công nghệ nào đó giống mình không? Mọi trao đổi hãy comment liền nhé!