MÌNH MỚI BẮT ĐẦU THÌ NÊN HỌC NGÔN NGỮ LẬP TRÌNH GÌ?

Mình mới bắt đầu thì nên học Ngôn ngữ lập trình gì? (1) Bây giờ học ngôn ngữ lập trình gì thì lương cao, dễ phát triển? (2)

Duy Lê
Duy Lê

Mình mới bắt đầu thì nên học Ngôn ngữ lập trình gì? (1)

Bây giờ học ngôn ngữ lập trình gì thì lương cao, dễ phát triển? (2)

Em lớp 12, kì thi ĐH sắp tới em muốn nộp nguyện vọng vào khoa CNTT trường ĐH xxx, nhưng trong khoa CNTT có rất nhiều chuyên ngành như Khoa học máy tính, Công nghệ phần mềm, Kĩ thuật máy tính, Hệ thống thông tin v.v. em nên chọn chuyên ngành nào? (3)

Dạo quanh các Group học lập trình với rất nhiều câu hỏi từ các bạn mới bắt đầu với ngành lập trình, xin chia sẻ với mọi người một số quan điểm và khuyến nghị sau nhé 😀

(1) , (2) và (3) là 3 câu hỏi tưởng chừng không mấy liên quan, nhưng tựu chung lại là câu hỏi của người mới, mình nên học ‘cái gì’ để theo ngành lập trình / CNTT?

Trước khi trả lời thẳng vào câu hỏi, từ kinh nghiệm cá nhân lướt các group, mình thấy được rất nhiều câu trả lời cho các câu hỏi trên. Người thì bảo nên học lập trình web cho dễ phát triển suy ra nên học html, css, javscript, PHP trước. Người lại nói học Java trước để theo Java Android hoặc Java Web. Người cho rằng tất cả phải bắt nguồn từ C, C++, phải học cái đó trước. Người nói rằng học Python trước đi cho dễ, từ kinh nghiệm cá nhân của tôi này, cũng sang ngang trái ngành, code từ Python đi lên bây giờ ‘ngon luôn’. Vân vân và mây mây. Kể ra thì dưới góc độ nào đó thì câu trả lời nào cũng ‘đúng’, vậy câu trả lời nào ‘sai’ và quan trọng là người hỏi học được gì từ những câu trả lời đó?

Cùng phân tích các câu trả lời thì tựu chung lại là các câu trả lời đều ‘đúng’ ở góc độ là người trả lời (hoặc bạn / người quen / người họ biết) học theo con đường đó thật và thành công thật. Có thể người trả lời là 1 ông Web Developer thì họ sẽ hướng bạn học các ngôn ngữ để theo đường lập trình web như html, css, javascript, PHP, C#, Java. Người trả lời là 1 bạn Mobile Developer thì khả năng cao sẽ hướng bạn học theo đường Java / Kotlin -> Android hoặc Swift -> iOS. Người trả lời là 1 anh lập trình viên chuyên làm mảng nhúng thì sẽ bảo nên học chắc và vững cơ bản C, C++ v.v. Vậy thì con đường học của họ từ mới bắt đầu đến ra nghề lập trình chuyên nghiệp là đúng và ok đúng không? Vậy cái nào là sai và sai ở đâu? Thì sai là đam mê của mỗi người mỗi khác, không phải ai cũng thích làm lập trình web hay không phải tất cả đều muốn lập trình game, hay 100% dân lập trình đều phải theo hướng nào đó thì điều đó là sai. Vậy nên, rõ ràng là không có 1 lộ trình chuẩn luôn cho người mới bắt đầu được. Vậy thì câu trả lời phải học ‘cái gì’ coi như chưa được trả lời, vậy phải làm thế nào?

Từ quan điểm và kinh nghiệm cá nhân của người viết, mình cho rằng câu trả lời tốt nhất cho câu hỏi học ‘cái gì’ thì người hỏi phải tự trả lời, phải dựa trên chính nguyện vọng và đam mê, khao khát, thế mạnh của bạn thì bạn mới tự trả lời được cho mình câu hỏi đó. Rõ ràng, đây là một câu hỏi khó nhưng rất may, bạn không phải trả lời ngay mà đến khi tương đối vững nền tảng lập trình cơ bản thì bạn tự lựa chọn ra hướng bạn muốn theo là mobile hay web hay game hay nhúng hay AI / Big Data v.v. Và để vững nền tảng lập trình cơ bản thì lời khuyên của mình là các bạn chọn đại 1 thứ bạn yêu thích và học vững cơ bản nó đi, C / C++, Java, C#, Python v.v. gì cũng được, cái gì bạn thấy thích hoặc thấy ‘dễ’ thì bạn bỏ ra vài tháng học vững cơ bản nó đi, thì lúc đấy bạn sẽ có cái nhìn tốt hơn về cấu trúc lập trình, tin rằng lúc đó bạn sẽ tự định hướng mình dễ hơn là nên theo cái gì tiếp theo. Vậy lại có câu hỏi, lỡ mình bỏ ra vài tháng học Java rồi sau đi làm lại không dùng Java mà dùng ngôn ngữ khác như C++, Python thì có ‘phí’ không? Câu trả lời là không hề phí. Thứ nhất, bạn nắm vững cơ bản 1 NNLT rồi thì bạn học sang cái khác dễ hơn, tốn ít thời gian hơn. Thứ 2, công nghệ phát triển hàng ngày, hàng năm lại có những ngôn ngữ mới ra đời và phổ biến dần, update dần bạn phải sử dụng ngôn ngữ mới chứ ít được dùng ngôn ngữ cũ khi làm việc thực tế (như Swfit thay Objective-C trong lập trình iOS, Kotlin thay Java trong lập trình Android v.v.), vậy thì càng có nhiều kinh nghiệm với nhiều loại ngôn ngữ thì càng học và sử dụng ngôn ngữ mới dễ hơn (ngôn ngữ mới luôn được xây dựng giống 60 70% ngôn ngữ cũ nào đó), thì có gì mà phí?

Một ý nhỏ xin trả lời cho câu (3) về lựa ngành học. Cái này cũng vậy, từ kinh nghiệm thực tế của mình các bạn cứ chọn ‘bừa’ 1 ngành vừa sức, không quá quan trọng đó là ngành gì, miễn là trong khối ngành CNTT là được. Quan trọng là ngành đó vừa với sức (điểm) của bạn. Vì trong các trường ĐH thì 3 4 năm đầu chuyên ngành CNTT học các môn nền tảng như nhau, 1 2 năm cuối mới học các môn khác theo chuyên ngành thôi. Và thực tế, phần lớn nhà tuyển dụng cũng chỉ quan tâm bạn học trường nào, có phải ngành CNTT hoặc ngành liên quan không, khả năng thực tế bạn đã làm được việc chưa thôi. Ví dụ bạn học Khoa học máy tính ra làm lập trình Web ngta vẫn tuyển và bạn vẫn làm, phát triển bình thường. Ngược lại, bạn học Công nghệ phần mềm nhưng bạn xin vào vị trí AI Engineer thì nhà tuyển dụng vẫn ok và không một chút đắn đo nào, quan trọng là tố chất bạn thể hiện có ok và phù hợp với công việc hay không thôi.

Vậy tóm tắt lại, câu trả lời học ‘cái gì’, học ‘thế nào’ để theo và phát triển trong ngành lập trình, thì bạn hãy tự học vững nền tảng lập trình cơ bản bằng cách thực hành một hoặc một vài ngôn ngữ lập trình bất kỳ trong vài tháng và tự trả lời cho mình về lộ trình phù hợp với mình nhất nhé. Ngoài ra, bạn cũng có thể đầu tư hơn 2tr và 2 tháng để học khóa nền tảng lập trình cơ bản cho người mới bắt đầu tại đây: https://codefresher.vn/khoa-nen-tang-lap-trinh-co-ban/ . Đầu tư khoảng 2 tháng với sự trợ giúp của trung tâm để học vững nền tảng lập trình cơ bản trước khi định hướng tiếp cũng là một lựa chọn tốt đúng không? 😀

Kết luận

Đến đây thì bài viết đã dài, xin tạm kết ở đây. Về nội dung bài viết thì rất welcome các bạn để lại ý kiến đóng góp vào phần bình luận để mọi người cùng trao đổi và tham khảo nhé. Quan điểm của bất cứ ai, dù là đã có kinh nghiệm về mảng gì đó hay chưa tiếp xúc nhiều với lập trình đều đáng quý, quan trọng là chúng ta có thể chia sẻ và học hỏi lẫn nhau.

Duy Lê

Duy Le - Cáo lập trình Giải đáp nhanh nhất những thắc mắc trong ngành CNTT