Thứ Tư, 31 tháng 1, 2018

Không biết lâp trình, bắt đầu học từ đâu?


Chào mọi người. Minh nhận thấy rất nhiều bạn có câu hỏi này khi bắt đầu học lập trình. Vậy nên mình đặt câu hỏi này để mọi người cùng vào góp ý kiến, thảo luận. Để sau này các newbie tham gia ngành của chúng ta sẽ có cái nhìn rõ ràng hơn, tổng quát hơn về ngành này. Để có thể lựa chọn hướng đi đúng, cũng như dừng lại đúng lúc trước khi quá muộn.
Mong rằng các câu trả lời xoay quanh các vấn đề:
Yếu tố cốt lõi của việc học lập trình suy cho cùng vẫn là luyện khả năng tư duy logic.
Mình thấy khi mới bắt đầu học lập trình, nhiều bạn hay tập trung vào học ngôn ngữ này, ngôn ngữ kia, chạy theo công nghệ mới mà quên mất yếu tố cốt lõi của việc lập trình.
Đầu tiên, mình nghĩ các bạn mới nên tập làm quen với những lưu đồthuật toán, từng bước phân tích, giải quyết từng bài toán từ đơn giản tới phức tạp hơn. Thể hiện nó dưới những ngôn ngữ nền tảng như CC++Python,... Khi đã nắm rõ được những căn cơ đó, biết cách phân tích và giải quyết bài toán, thì việc học các ngôn ngữ, công nghệ hiện đại như C#JavaSwiftPHPASP.NET, ... chỉ là vấn đề cú pháp :).
Tiếp theo, đến bước này, mình nghĩ các bạn cũng nên xác định hướng đi cho mình, để hiệu quả hơn và tránh học lan mang (tuy nhiên học nhiều cũng ko thừa cái nào đâu). Mình sẽ nói sơ 1 vài hướng khá hot hiện nay:
  • Web: có 3 hướng là front-end, back-end, full-stack. Nghe tên là hiểu rồi ha :)
    • Front-end: phải có mắt thẩm mỹ, phải biết các nguyên lý trong thiết kế UIUX. Thể hiện bằng HTMLCSSJavascript, các framework thông dụng như JQueryBoostraps...
    • Back-end: ko cần mắt thẩm mỹ, nhưng cần tư duy lập trình :). Thực hiện bằng ngôn ngữ phía server như PHP.NET(C#, VB, ASP.NET) , JavaPython, ... Biết thêm database như SQL ServerMysqlOracleNoSQL, ...
    • Full-stack: biết full 2 phần trên, thường nên chọn hướng này để dễ sống nha :)
  • Di độngiOS thì học Swift hoặc Objective-CAndroid thì học Java. Chắc z là hết rồi :)
  • IoT: Hướng khá rộng và hot, công việc của bạn là làm cho vạn vật đều liên kết với nhau thông qua internet. Vậy bạn cần có khả năng lập trình nhúng (C, C++)websocket, ...
  • Bigdata: Công việc của bạn là xử lý các dữ liệu lớn và phức tạp, phân tích, tìm ra thuật toán tối ưu. Hướng này cần tư duy phân tích rất lớn.
  • Game: Cả 3 ngôn ngữ C++, C#, Java đều làm game tốt, tùy sở thích của bạn thôi.
Một vài hướng đi cơ bản hiện nay như trên, ngoài ra rất nhiều hướng mà mình muốn chia sẻ cũng không hết được :).

Cuối cùng, không như những ngành khác, ngành lập trình đòi hỏi bạn phải phát triển không ngừngcập nhật kiến thức liên tục. Nếu không, bạn sẽ nhanh chóng bị lỗi thời. :)

Không có nhận xét nào:

Đăng nhận xét