01/10/2018, 16:36

Nên học ngôn ngữ lập trình gì khi muốn làm backend nhưng bị mất căn bản

E là SV vừa học xong năm 2 nhưng thú thật e bị mất căn bản hoàn toàn cả C++ Java HTML/Css nói thẳng e ko biết gì như trống rỗng nhưng bù lại e học Mysql lại được bây giờ e hoan man vì còn 1 năm ra trường nhưng vẫn chưa biết gì về Lập trình Web hết ạ… e muốn làm backend, mọi người chỉ e nên học ngôn ngữ gì cho ng trống rỗng để lấy lại căn bản với ạ để e còn cố gắn thực tập vào năm tới

Zhang Jike viết 18:50 ngày 01/10/2018

Em có thể chọn ruby/nodejs/golang. Khá là productive. Lúc học thì nhớ thực hành và tìm tòi nhiều là được

Thien Huynh viết 18:51 ngày 01/10/2018

E chọn js học lại từ đầu liệu có kịp ko a, sao lại ko là php ạ

Zhang Jike viết 18:37 ngày 01/10/2018

Em chọn JavaScript cũng được. Dễ học lúc đầu, nhiều tài liệu. Php thì khá cũ rồi. Bản thân ngôn ngữ cũng k tốt nữa. Giờ nên học những công nghệ mới mà phổ biến ấy. Ruby với ruby on Rails ra sản phẩm rất nhanh. JS cũng vậy. Như thế thì mình bao quát được cái tổng quan của một trang web. Từ đó học sâu dần dần sau.

Tâm Ninja viết 18:42 ngày 01/10/2018

Chia sẻ thật lòng nhé.

Bạn hỏi như thế này có thể phân tích về bạn như sau:

  • Bạn đang hoang mang và không có cái nhìn tổng quát về thứ mình muốn, về những thứ trước mặt.
  • Bạn phải lên đây hỏi nghĩa là bạn không có mentor, không có tiền bối, không biết làm thân với thầy giáo.
  • Bạn chưa có trải nghiệm, chưa có kinh nghiệm, chưa làm đủ để hiểu mình muốn gì.
  • Bạn chả có định hướng gì hết.
  • Bạn đã bỏ phí quá nhiều thời gian nên thời gian bạn còn lại khá ít. Chính vì thế mà bạn đang muốn ăn xổi.

Vậy mình sẽ trả lời bạn như sau:

Học một ngôn ngữ lập trình là việc đơn giản. Bạn hoàn toàn có thể bỏ ra ba, bốn hoặc nhiều lắm là năm tuần cần cù để học được một ngôn ngữ lập trình. Tuy nhiên, ngôn ngữ lập trình chỉ là một phần trong ngành phần mềm. Học về phần mềm có rất nhiều thứ khác hơn như cách sử dụng thư viện, cách sử dụng framework, các giao thức, chuẩn giao tiếp, các kĩ thuật lập trình, thiết kế vân vân và mây mây. Nhưng phần sau, bạn chỉ có thể học bằng cách đọc sách hoặc va vấp dự án thật. Khác với lập trình hay thuật toán cơ bản, bạn có thể tự học hoặc học cùng một nhóm bạn. Cái bạn cần và kiếm ra nhiều tiền là những cái phía sau. Ngôn ngữ lập trình giúp bạn kiếm tiền nhưng không nhiều.

Thực trạng ngành công nghệ thông tin.

Việt Nam là một trong ba quốc gia đi đầu trong việc OutSource. Vì vậy mà họ cần rất nhiều ong thợ, những vị trí cần bỏ sức lao động hơn là cần những mảng kiến thức phía sau mình nói. Vậy nên nếu có thể thành thục một ngôn ngữ lập trình, làm ra một sản phẩm, biết ăn nói hay thậm chí là chém gió, bạn hoàn toàn có thể kiếm một công việc làm.

Vậy chiến lược cho bạn là gì?

Tuỳ vào mong muốn trong tương lai mà bạn có thể chọn vài ngôn ngữ mình thích. Cày nhanh trong vài ba tuần rồi chọn một cái project gì đó mà làm. Hãy chọn một cái bạn thấy đủ lớn nhưng đừng lớn quá. Ước chừng tầm 6 tháng làm xong thì là được. Sau đó kiếm công ty nào đó tuyển thợ code, khoe sản phẩm và bắt đầu OT. Tận dụng thời gian đó làm việc 1 năm học thêm gì đó rồi chọn con đường đi cho bạn. Hãy dùng 1 năm đó để học, nhìn và cố hiểu xem mình muốn làm gì. Chỉ có bạn mới hiểu bạn vậy nên khi bạn chưa hiểu thì mình độ, khi bạn đã ngộ thì tự bạn độ bạn thôi.

Nếu bạn muốn làm back-end thì có vài ngôn ngữ mình từng làm qua như sau (vì đây là kinh nghiệm chia sẻ, nên những người lịch sự thì sẽ không bình luận đoạn được viết bên dưới, nếu muốn đưa ra quan điểm thì tôn trọng chia sẻ của người khác bằng cách đưa quan điểm cá nhân độc lập. Hãy nhớ, trải nghiệm của bạn khác trải nghiệm của tôi):
PHP: Có vẻ có nhiều người cần, sau này nếu chăm chỉ có thể đi theo hướng full-stack. Cái gọi là full-stack ở đây là việc bạn làm được cả Back-end và Front-end với những dự án nhàng nhàng be bé. Bạn sẽ lấy công làm lãi là nhiều. Nếu có ai muốn tranh luận với mình về hai quan điểm bên trên thì mình cũng nói luôn như sau. PHP được Facebook sử dụng nhưng chỉ là một phần vì nó làm rất nhanh, có thể định hướng grow hacking chứ còn sau khi đã định hình chức năng họ vẫn phải cải tiến lại và đứng đằng sau nó là rất nhiều ngôn ngữ lập trình khác nhau. Mình không chê PHP nhưng cảm quan và nhận định của người đi trước mình chia sẻ là mình chưa thấy nhiều nếu không muốn nói là chưa thấy dự án lớn nào mà chức năng quan trọng lại sử dụng PHP. Về ý full-stack thì như bạn thấy, PHP dùng trong dự án nhỏ, một người có thể cân team thì mới cần full-stack chứ còn dự án to nhiều người mà ai cũng full-stack thì ai là người đào sâu thật sâu? PHP với mình thì nó giống như gậy gỗ và khiên. Trong những trận đánh nhỏ cung cấp đủ vũ khí để sử dụng nhưng đôi khi lại quá rườm rà, tiềm ẩn nhiều những góc cạnh.
Java: Nhiều dự án cần, công việc chủ yếu là maintain. Vì bạn hỏi back-end nên mình không đi lan man qua Android hay IoT các kiểu. Java là ngôn ngữ mình làm nhiều nhất và cũng cảm thấy là thích nó nhất. Nó có tính mạch lạc, nhiều quy tắc và ràng buộc. Từ đó có thể dễ dàng học được thêm nhiều thứ về kĩ thuật phần mềm nói chung. Nếu thích hướng thiết kế hệ thống thì nên học vì sau này nếu chăm chỉ đọc code thì có thể học được nhiều điều. Sách thuật toán hoặc các mô hình thiết kế chủ yếu vẫn dùng C hoặc Java để làm ví dụ. Chính nhờ tính nguyên tắc của nó. Java với mình giống như một cây trường thương. Nếu dùng đúng cách thì công thủ tiện lợi tuy nhiên có những quy tắc vận động mà nếu nắm không đúng thì sẽ cản trở bạn nhiều.
Python: Rất mạnh ở back-end về mảng micro service. Mình chưa code đủ nhiều nhưng mình thích Python ở tính linh hoạt và cách tổ chức dữ liệu của nó. Đôi khi thì nó quá khó để hiểu do linh hoạt quá mà nhiều đoạn code mình không tìm được lí do tại sao họ lại phải làm như thế. Ngoài ra thì nắm chắc Python sau này có thể học thêm về Data Science hoặc một số ngành khác rất thú vị. Python với mình nhưng một thanh Tú Xuân Đao. Để sử dụng tốt thì người dùng phải biết di chuyển và nắm chắc về khoảng cách. Nếu đã có thân pháp tốt rồi thì một thanh đao nhỏ như vậy rất lợi hại.
Ruby, .NET: Mình chỉ học tầm vài tháng, chưa từng làm dự án thật nên no comment.
Như Javascript mà bạn hỏi thì mình không làm. Mình cảm thấy việc học Javascript ở mức làm front-end thì ok chứ nếu mà làm back-end thì cần rất nhiều thời gian để rèn luyện. Mình không thích viết ra một đoạn code nào đó mà không biết chắc chắn nó chạy như thế nào (nếu bị deadline dí thì xin lỗi sếp đã quá tham lam) Người làm Javascript giỏi thì mình rất phục nhưng mà nhìn quanh thì một đống thư viện JS nhàng nhàng. Mình không cảm thấy mình học được gì từ việc đọc code của thư viện. Không chỉ vậy mà mình còn phải học những thứ mà nếu đem nó qua ngôn ngữ khác thì mình sẽ tự hỏi là vì cái gì mà mình lại phải học những cái thứ kinh khủng đó nhỉ. Nói chung là quan điểm cá nhân là nếu mà dự án cần thì học để làm. Còn nếu học để làm ngôn ngữ chính mà kiếm cơm thì mình còn cần thời gian để học những thứ khác nữa. Mình sẽ không chọn JS.

Trần Hoàn viết 18:41 ngày 01/10/2018

Đã mất căn bản thì học cái gì nó chắc chắn ít lỗi, mình nghĩ là Java hoặc C# là ok nhất, 2 cái giống nhau 90%, học cái nào cũng được.

Hưng Lê viết 18:40 ngày 01/10/2018

Bạn đã biết mình mất căn bản thì sao không học lại căn bản, còn làm web mà không biết html thì code kiểu gì??? Học chắc kiến thức căn bản và 1 nền tảng nào đó, sau đó xin đi thực tập.

anon52681320 viết 18:50 ngày 01/10/2018

Có câu hỏi không biết có bạn nào đang ở bậc Fresher hay Junior mà thấy làm việc ổn với NodeJS ko? Ví dụ như làm các đầu hứng traffic ổn, ko crash, control được resource tốt, không bị leak-resource?

Thien Huynh viết 18:46 ngày 01/10/2018

Cảm ơn bạn, mình hiểu rồi,học lại c++ lấy lại căn bản. Câu tl của bạn ngắn nhưng đủ để t có động lực

kiencon viết 18:42 ngày 01/10/2018

C/C++ là con đường tuy ko ngắn nhưng vững chắc cho bạn, mất nữa năm để lấy lại căn bản tư duy lập trình (nhập môn) nữa năm còn lại bạn học về oop với C++ và kỹ thuật lập trình. Nữa năm thứ 2 bạn bắt đầu với cấu trúc dữ liệu và giải thuật // là bạn tìm hiểu về html/css/javascript(jquery) thêm nữa là cơ sỡ dữ liệu. Lúc này bạn đã có được cơ bản khá vững chắc, đi theo một công nghệ web mà bạn chọn C#, Java hay NodeJs đều được. Nữa năm cuối của năm thứ 2 bạn cần tìm hiểu kỹ ngôn ngữ cũng như công nghệ bạn đang theo, các khái niệm như SOLID đặc biệt trong đó là Dependency Injection để viết code, các unit test. Mình đang nói hướng đi về web, mobile cũng gần tương tự, cả Frontend cũng vậy. Điều quan trọng là thái độ và khả năng tự học của bạn đến đâu. Bạn mới năm 2, theo mình tính có thể bạn sẽ trễ 1 năm nhưng ko vấn đề gì. Chúc bạn may mắn.

Bài liên quan
0