Search…

Học Lập Trình Nên Bắt Đầu Từ Đâu?

04/07/202013 min read
Học lập trình nên bắt đầu từ đâu? Lựa chọn học từ nền tảng có phải luôn là lựa chọn tối ưu?

Bạn đang hướng đến lập trình nhưng vẫn còn đứng từ ngoài nhìn vào và nó như 1 chiếc hộp đen? Bạn cố gắng giải mã bằng cách tìm kiếm thông tin từ internet hoặc từ người thân quen hay lời khuyên từ các chuyên gia lập trình?

STDIO Training thông qua bài viết này chia sẻ cho bạn cách lựa chọn phương án tốt cho việc học để tối ưu về chi phí và thời gian, mang lại hiệu quả nhất định.

Để chọn được con đường, bước đầu bạn cần xác định nhu cầu thị trường, mục đích và hoàn cảnh của bạn, như vậy sẽ tìm được hướng tiếp cận phù hợp...

Nhu cầu công việc cụ thể của thị trường

Từ nhu cầu thị trường thực tế, bạn sẽ có thêm thông tin nên học những gì để đáp ứng thị trường. Nhu cầu về thị trường nhân lực ngành lập trình rất phong phú, thời điểm hiện tại bạn có thể đã tiếp nhận được 1 số thông tin về các mảng công việc như sau:

  • Lập trình Front-end (Front-end developer).
  • Lập trình Back-end (Back-end developer).
  • Full-stack developer (nắm cả 2 khía cạnh Front-end và Back-end).
  • Cần tuyển lập trình web.
  • Lập trình Mobile (iOS developer, Android developer, App developer).
  • Machine Learning, AI.
  • Các mẫu quảng cáo tuyển dụng lập trình viên Python.
  • Tuyển Game Developer.
  • Tuyển kỹ sư lập trình nhúng với C/C++ (embedded).
  • Tuyển Unity Game developer.
  • ...

Đòi hỏi của thị trường về ngôn ngữ lập trình

Ngôn ngữ lập trình là mã (các văn bản tuân theo cấu trúc, cú pháp được quy định sẵn) mà bạn cần sắp xếp theo 1 trật tự logic để đạt được phần mềm mong đợi. Có rất nhiều loại ngôn ngữ lập trình mà thị trường đang đòi hỏi.

Ngôn ngữ lập trình

  • C#, Java.
  • C/C++.
  • Python, R.
  • JavaScript.
  • Golang.
  • Swift, Kotlin…

Ngoài ra bạn còn có thể nghe đến các ngôn ngữ khác:

  • XML, JSON, SQL.
  • HTML, CSS…

Công nghệ phát triển ứng dụng

Hỗ trợ phát triển web, front-end, back-end, phát triển ứng dụng di động ngày càng nhiều, có thể kể đến:

  • Phát triển web front-end ta có React.js (Facebook), Angular (Google).
  • Phát triển ứng dụng di động: React Native (Facebook), Flutter (Google).
  • Phát triển game: Unity, Cocos2d-x.

Xác định mục đích và hoàn cảnh

Mục đích khi học lập trình

  • Bạn đã tiếp xúc từ lâu và cảm thấy gần gũi và tiếp tục theo đuổi.
  • Để có 1 nghề nghiệp.
  • Để thay đổi công việc hiện tại.
  • Để củng cố hoặc mở rộng (bạn đang là web developer, hiện tại bạn muốn mở rộng phát triển ứng dụng di động).
  • Bạn muốn thử thách ở 1 lĩnh mới, thăm dò độ phù hợp của bản thân.
  • Trong độ tuổi đi học nên việc chọn 1 nghề là điều hiển nhiên.
  • Tự phát triển 1 ứng dụng cụ thể.
  • Bạn đang phát triển doanh nghiệp truyền thống và mong muốn cải tiến tiến trình quản lý tự động, kết nối.

Xác định hoàn cảnh

  • Mức độ học tập hoặc công việc hiện tại có cho phép bạn có thời gian theo đuổi?
  • Tiền tiết kiệm của bạn có đủ để bạn theo đuổi?
  • Bạn cần lựa chọn 1 ngành học sau khi kết thúc việc học phổ thông.
  • Bạn đang được đào tạo ngành công nghệ thông tin và muốn nâng cao hoặc hỗ trợ thêm cho ngành học.
  • Bạn đang tìm kiếm 1 ngành nghề.
  • Bạn đang làm việc trong các ngành nghề khác như ngân hàng, quản lý công nghiệp, kế toán, ngân hàng, giáo viên anh văn, … và muốn thử nghiệm với nghề lập trình.
    • Thu nhập, thời gian, sức khỏe, di chuyển.

Mục đích và hoàn cảnh đều ảnh hưởng đến việc lựa chọn chiến lược tiếp cận. Không thể sử dụng chung 1 cách đào tạo với tất cả hoàn cảnh và mục đích.

Có 2 luồng thông tin, tư tưởng hiện tại mà bạn dễ dàng gặp phải đó là: học NỀN TẢNG hay học ỨNG DỤNG THỰC TẾ, đôi khi nó rất cực đoan. Bởi vì cách lựa chọn NỀN TẢNG hay ỨNG DỤNG THỰC TẾ đều phải dựa vào mục đích và hoàn cảnh của mỗi người, dĩ nhiên nó sẽ mang đến những thuận lợi và bất lợi song hành.

Nền tảng hay ứng dụng

Nền tảng

Tiếp cận nền tảng sẽ không chỉ rõ ra bạn cần học và làm điều gì? Bạn có thể sẽ học về cách thức mà máy tính hoạt động, đôi khi là toán học, thông thường bạn sẽ được giới thiệu học lập trình C/C++ trước, những điều bạn rèn luyện thông thường sẽ là nguyên lý và logic.

Và những điều bạn thường thấy là:

Nền tảng - logic

Hiện tại cũng có rất nhiều nỗ lực trong việc trực quan hóa việc đào tạo nền tảng, nhưng nó cũng không hẵng sẽ xây dựng ra được các ứng dụng thương mại thật sự.

Thuận lợi: với cách tiếp cận nền tảng bạn có thể có tư duy sâu hơn, cách mà các công nghệ được khai sinh, khả năng tự học, đáp ứng các thay đổi của công nghệ của bạn sẽ tốt hơn. Thông thường các trường đào tạo chính quy, hoặc các trường đào tạo có thời lượng đào tạo đủ dài – 3 năm hoặc 4 năm sẽ lựa chọn phương pháp này. Nếu có sự biến động trong công nghệ, khả năng thích nghi của bạn sẽ cao hơn.

Bất lợi: cách tiếp cận này sẽ tốn kém thời gian và chi phí hơn, bạn cũng không thể ngay lập tức nhìn thấy được thành quả. Nếu thời gian và ngân sách của bạn không cho phép, bạn sẽ học trong 1 áp lực và hoang mang.

Lựa chọn: trên con đường này bạn phải dành rất nhiều thời gian và tập trung, bạn có thể tìm hiểu và lựa chọn các ứng dụng để tự trau dồi thêm để phong phú hơn cho kiến thức và sớm nhận thức được tầm quan trọng cũng như biết những kiến thức bạn học ứng dụng vào đâu.

Ứng dụng thực tế

Tiếp cận cụ thể vào 1 nhu cầu của thị trường lao động, giả sử bạn chọn 1 trong các ứng dụng sau:

  • Web front-end với công nghệ React.js và ngôn ngữ lập trình JavaScript.
  • Lập trình back-end với Node.js và ngôn ngữ lập trình JavaScript.

Thông thường những gì bạn thấy là:

Ứng dụng - web, apps

Thuận lợi: với cách tiếp cận cụ thể này, thời gian học tập có thể kéo dài 5 tháng, nếu bạn thật sự phù hợp và cố gắng thực hành từ 6 tháng đến 12 tháng thì khả năng có 1 công việc tốt là điều hoàn toàn tự nhiên.

Bất lợi: khi bạn làm việc được với 1 công việc cụ thể như web front-end, bạn có làm việc được với back-end không? Thường thì không do nó đòi hỏi bạn có nền tảng sâu hơn để đáp ứng được sự thay đổi các nhánh bên trên. Khả năng thích nghi sẽ thấp.

Lựa chọn: bạn có thể đi vào 1 mảng cụ thể để nhanh chóng gia nhập vào lĩnh vực này và có thêm ngân sách từ công việc để tiếp tục đầu tư, chuyên sâu vào nền tảng hoặc mở rộng thêm sự hiểu; khi làm việc trong ngành lập trình bạn sẽ có thêm trải nghiệm, hiểu biết và có được những mối quan hệ có thể giúp bạn hiểu rõ hơn về ngành này.

Các phân tích trên phù hợp với những đối tượng mới bắt đầu và dùng để tham khảo, việc bạn lựa chọn chiến thuật học tập ngắn hạn (ứng dụng thực tế) hay dài hạn (nền tảng) không hẵng phải phụ thuộc vào mục đích và hoàn cảnh do có những yếu tố khác có thể ảnh hưởng đến năng lực và lựa chọn. Giả sử công việc hiện tại của bạn là sắp xếp lịch hoặc điều hành bay, bạn phải đối mặt với rất nhiều phát sinh hằng giờ, bạn phải sử dụng rất nhiều giải pháp tình thế lẫn logic, vẽ lượt đồ, thảo luận, …, tâm lý và khả năng của bạn đã luôn chuẩn bị sẵn để giải quyết vấn đề và 1 cách tự nhiên điều này lại rất phù hợp với nền tảng lập trình.

Trong trường hợp bạn không thể tự xác định các yếu tố và con đường, bạn nên tìm kiếm sự giúp đỡ từ người có kinh nghiệm xung quanh mình.

Học lập trình nên bắt đầu từ đâu?

Lập trình có rất nhiều hướng, nhiều công nghệ để học hỏi. Dựa vào nhu cầu của thị trường nhân lực, chi phí, thời gian, độ dễ khi tiếp cận, bạn có thể ưu tiên cho những ngôn ngữ và công nghệ như sau:

  1. Ngôn ngữ lập trình JavaScript: sẽ giúp bạn tiết kiệm rất nhiều về thời gian.
    1. Cú pháp đơn giản, dễ học.
    2. Có thể dùng để lập trình web front-end, mobile app lẫn back-end – như vậy khi bạn học phát triển 1 trong 3 thứ như front-end, mobile app hoặc back-end, khi bạn tiếp cận với mỗi thứ còn lại, bạn có thể rèn luyện thêm và củng cố thêm cho ngôn ngữ JavaScript, hạn chế phải học lại quá nhiều.
    3. Trong lập trình Game, bạn vẫn có thể sử dụng JavaScript.
    4. Cộng đồng JavaScript rất lớn.
  2. Đáp ứng nhu cầu việc làm thông dụng, ở mỗi chặng đường bạn có thể dừng chân tại đó hoặc tiếp tục bước tới.
    1. Bạn có thể bắt đầu với lập trình web front-end hoặc Mobile app front-end: nhu cầu dựng và xử lý giao diện ứng dụng hiện tại rất lớn, bên cạnh đó bạn nhìn thấy kết quả học tập nhanh hơn để có cảm hứng. Song song với việc học bạn có thể tập trung từ 3 đến 6 tháng dựng các trang web như giao diện Facebook hoặc 1 tờ báo mà bạn thích, điều này sẽ trui rèn được kinh nghiệm cho bạn, không có nhà tuyển dụng nào có thể từ chối được kinh nghiệm thật sự của bạn à 3 tháng học kiến thức, 3 tháng chập chững thực hành và 6 tháng để tiếp tục thực hành chuyên sâu.
    2. Back-end và cơ sở dữ liệu: để phát triển 1 dự án hoàn chỉnh, không chỉ phần Front-end mà còn cả Back-end, mặc dù không hẵng là bắt buộc nhưng giả sử bạn đã có công việc ổn định với Front-end, bạn cần đào sâu hoặc mở rộng cơ hội nghề nghiệp của bản thân thì Back-end có thể là bến đỗ thứ 2 cho bạn. Tuy nhiên, Back-end cần nhiều hiểu biết hơn về logic và kiến trúc hệ thống, do đó đây cũng là cơ hội tốt để bạn bắt đầu vững vàng hơn về nền tảng lập trình à 3 tháng học kiến thức, 3 tháng chập chững thực hành và 6 tháng để tiếp tục thực hành chuyên sâu.
    3. Nền tảng lập trình: Nền tảng lập trình là điều không thể thiếu đối với việc theo đuổi ngành này, bạn có thể rèn luyện nền tảng lập trình ở bất kỳ thời điểm nào. Bạn nên lựa chọn các ngôn ngữ đang gần với công việc hiện tại để việc rèn luyện có tính ứng dụng ngay như JavaScript. Việc học hỏi thêm các kiến thức lập trình khác cũng quan trọng, ở giai đoạn này, bạn có thể rèn luyện thêm Python, ngôn ngữ này cũng rất có ích lợi cho tương lai khi phát triển thêm các công cụ hỗ trợ cho dự án. 1 ngôn ngữ lập trình cũng xứng đáng để rèn luyện thêm về nền tảng đó là C++ và 1 nhóm ngôn ngữ lập trình khác cũng có giá trị bạn có thể tham khảo thêm như C#, Java à 3 tháng và không có điểm dừng.
  3. Mở rộng và tương lai xa: Nếu đã chinh phục được các công việc mà đôi chân bạn chưa mỏi mệt, bạn có thể bước đi xa hơn.
    1. Mạng, bảo mật, đồ họa, thiết bị: 1 kiến thức khác bạn có thể bổ sung đó là mạng máy tính, việc truyền nhận dữ liệu giữa 2 hoặc nhiều máy tính trong 1 mạng. Điều khiển các thiết bị như máy in, hoặc các thiết bị điện tử khác như máy POS.
    2. Tương lai: máy học, khoa học dữ liệu, trí tuệ nhân tạo, xử lý ảnh không chỉ đơn thuần là lập trình mà cần hỗ trợ của các kiến thức về toán học cao cấp, xác suất thống kê. Ngôn ngữ lập trình lúc chỉ là công cụ để hỗ trợ, ngôn ngữ để xử lý các bài toán của ngành học này.

Trường hợp bạn đang được đào tạo bài bản tại các trường chính quy, môi trường và giáo trình hướng đến việc đào tạo 1 nền tảng vững chắc cho bạn, và cũng đủ để bạn có được 1 công việc, do đó bạn có thể xem các lời khuyên phía trên là để tham khảo.

Không ai có thể biết hết hoặc làm tốt tất cả các khía cạnh trên nhưng đây là tổng quan ngành và lộ trình mà bạn có thể theo để tiết kiệm thời gian hơn vì việc học không chỉ đơn thuần là sự nỗ lực mà còn liên quan đến chi phí và thời gian.

Tóm tắt

Dựa trên tiêu chí về chi phí và thời gian.

  • Bạn có thể lựa chọn JavaScript để học lập trình đầu tiên vì cơ hội ứng dụng nó rất rộng.
  • Hãy dành ra 3 tháng học kiến thức căn bản để phát triển web front-end hoặc mobile apps, dành ra 3 tháng để thực hành và 6 tháng để tiếp tục rèn luyện, vì nó gần gũi và trực quan với nhu cầu sử dụng nhân lực lớn. Bạn có thể nuôi dưỡng các mối quan hệ, thực tập và tìm kiếm 1 công việc để có cơ hội tham gia vào các dự án thực tế hơn.
  • Bạn có thể tiếp tục dành thời gian để học hỏi về Back-end, nếu có cơ hội bạn cũng nên tiếp tục với JavaScript để tiết kiệm thời gian. Hãy rèn luyện nó như đã từng rèn luyện với Front-end.
  • Mở rộng kiến thức của bản thân để giảm rủi ro mà sự đào thải và cải tiến có thể mang lại bằng cách học thêm các kiến thức khác như Python, C++, C#, Java. Kiến thức về mạng máy tính, kỹ thuật lập trình hay cấu trúc dữ liệu.
  • Cuối cùng có thể theo đuổi và học bất kỳ điều gì phù hợp với bạn, với nhu cầu xã hội.
IO Stream

IO Stream Co., Ltd

30 Trinh Dinh Thao, Hoa Thanh ward, Tan Phu district, Ho Chi Minh city, Vietnam
+84 28 22 00 11 12
developer@iostream.co

383/1 Quang Trung, ward 10, Go Vap district, Ho Chi Minh city
Business license number: 0311563559 issued by the Department of Planning and Investment of Ho Chi Minh City on February 23, 2012

©IO Stream, 2013 - 2024