Hướng dẫn phương pháp học lập trình cơ bản cho người mới bắt đầu

Học lập trình cơ bản cho người mới bắt đầu – rất nhiều người trong số họ vô cùng đam mê với lập trình. Đi lên từ con số 0, không có kiến thức nền tảng, không biết bắt đầu từ đâu. Có quá nhiều thông tin, tài liệu. Nhưng hầu hết đều được viết theo những ngôn ngữ rất “bác học”. Sợ khó, không có thời gian, tiền bạc để đầu tư, nhưng bạn đâu biết rằng con đường tưởng chừng là đầy chông gai này lại cho vô vàn “trái ngọt”. PlusPlus xin chia sẻ một vài tài liệu, tips, động lực để những người “mới bắt đầu” như bạn không bỏ cuộc.

Front-end Developer (Client-Side Developer)

Là một kiểu Dev chuyên về thiết kế giao diện trực quan của 1 trang web. Bao gồm 2 phần là thẩm mĩ và bố cục. Nó giống như khi bạn nhấn một đường link vào trang web. Và toàn bộ những thứ đập vào mắt bạn ngay vài giây sau đó chính là công việc của một Front-end Dev.

Đây là một công việc đòi hỏi rất nhiều công sức, hầu hết đều không liên quan đến phần cứng. Nó đòi hỏi rất nhiều các kiến thức về xã hội, về hành vi tương tác của người dùng. Về các nguyên tắc thiết kế nhiều hơn so với lý thuyết thuần túy về khoa học máy tính. Bài toán lớn nhất của một Front-End Dev đó là việc làm tương thích giữa các trình duyệt và các chi tiết tinh chỉnh của một bản trình bày trực quan trong UI (User interface).

Để có thể đảm nhiệm được vị trí Front-end. Người học cần trang bị các kiến thức về thiết kế giao diện người dùng(UI), trải nghiệm người dùng(UX), CSS, JavaScript, HTML và các bộ khung giao diện người dùng.

Backend Developer (Server-Side Developer).

Là một kiểu chuyên về triển khai, làm hoạt động tính logic cốt lõi, hiệu suất, khả năng mở rộng của một phần mềm hay một hệ thống chạy trên remote users.

Mô tả công việc của một Back-end có thể gói gọn trong một từ là “khó”. Đòi hỏi nhiều kiến thức thâm sâu và người dùng hầu như không thể thấy được. Ví dụ như thanh công cụ tìm kiếm Google. Phần Front-end của Google khá là đơn giản và đẹp mắt chỉ với title, textbox và một vài nút chức năng. Nhưng Back-end lại là một hệ thống khổng lồ vô cùng phức tạp. Để có thể thu thập được dữ liệu người dùng, chuyển hóa chúng thành các chỉ số . Và giúp tìm đến trang đích với một loạt các cơ chế phức tạp ngày càng tăng.

Để có thể trở thành một Back-end Dev, cần trang bị ngôn ngữ lập trình như JAVA, C, C++, Ruby, Perl, Python, Go,… . Họ thường phải tích hợp với một loạt các chức năng cơ sở dữ liệu, hệ thống lưu trữ dữ liệu, hệ thống lưu trữ, hệ thống ghi nhật ký, hệ thống email, … .

Full-stack Developer

Có thể đảm nhiệm được cả 2 phần Front-end và Back-end.

Web Developer (lập trình viên web)

Là một dạng lập trình viên chuyên về tạo dựng một website. Cụm “web developer” trở nên vô cùng phổ biến vào cuối những năm 90 đầu 2000. Trở thành một “website developer” không đòi hỏi quá nhiều kiến thức chỉ cần biết một chút về HTML, CSS ở mức căn bản. Sau một vài tháng kinh nghiệm, họ hoàn toàn có thể “producing code” chuyển đến hệ thống. Đây là một sự lựa chọn khá hấp dẫn dành cho những người không có kiến thức nền tảng về CS nhưng vẫn muốn bước chân vào thế giới lập trình

Mobile Developer (lập trình viên di động)

Công việc cơ bản của một Mobile Dev là viết Code cho các ứng dụng. Được chay nguyên bản trên các thiết bị di động của người dùng như điện thoại, máy tính bảng hoặc các thiết bị tương đương. Những năm 2000, đánh dấu sự bùng nổ trên thị trường điện thoại di động thông minh. Nhờ vào điều này mà thị trường nhân lực Mobile Dev trở nên vô cùng hứa hẹn cho đến tận bây giờ. Trái ngược với trước đó. nhiều người còn cho rằng MD là một phần nhỏ của lập trình nhúng (Embedded)

Graphics Developer (lập trình viên đồ họa)

Phát triển đồ họa là một ngành đang rầm rộ từ sau những năm 2010. GD chuyên viết phần mềm để dựng hình, che bóng, đánh bóng, tiêu huỷ và quản lý cảnh. Nhà phát triển thường phải tích hợp công nghệ vào trong sản xuất game và phim.

Để có thể trở thành một Graphics Developer đòi hỏi kiến thức về toán học nâng cao. Tuy nhiên, nó đang trở nên dễ tiếp cận hơn với việc có nhiều framework thương mại hóa và mã nguồn mở.

Có rất nhiều các Frameworks bao gồm DirectX, OpenGL, Unity 3D, WebGL cho các nhà phát triển đồ họa cao cấp. Ở mức cơ bản, yêu cầu kiến thức về  C, C++ và Assembly.

Game Developer (nhà phát hành game)

Đây là một thuật ngữ chung để nhận điện một nhà phát triển trò chơi. Họ thường phải có kiến thức trong các lĩnh vực thiết kế, trải nghiệm, thu hút tương tác khi chơi game.

Framework được sử dụng bởi các nhà phát triển game gồm DirectX, OpenGL, Unity 3D, WebG. Và ngôn ngữ như C, C++. Java. Adobe Flash thường được coi là nền tảng tiêu chuẩn cho webgame. Kế từ khi Flash bị lãng quên. Javascript và HTML5 trở thành những tiêu chuẩn mới. Ở các thiết bị di động, Java và Swift là công nghệ dành cho các trò chơi trên hệ điều IOS và Android

Embedded Developer (iOT,..) – lập trình nhúng

Nhà phát triển lập trình nhúng  thường làm việc với các phần cứng (vi điều khiển, hệ thống thời gian thực, giao diện điện tử, thiết bị điện tử, iOT, trình điều khiển phần cứng và truyền dữ liệu nối tiếp thuộc loại này.

Các nhà phát triển thuộc loại này thường phải sử dụng các ngôn ngữ như C, C++, Asembly, Java. Hoặc các công nghệ độc quyền, các khung công tác và các bộ công cụ.

Data Scientist (chuyên gia phân tích dữ liệu)

Là kiểu chuyên về viết các phần mềm phân tích data. Họ thường chịu trách nhiệm về mảng phân tích các số liệu, machine learning, hiển thị dữ liệu và áp dụng các mô hình dự báo.

Ngôn ngữ thông thường được sử dụng là SQL, R và Python.

Big Data Developer

Cái tên “big data” đang rầm rộ suốt những năm gần đây. Bởi đây là một công nghệ còn khá mới với vô vàn các hữu năng. Khi mà chúng ta bước vào kỉ nguyên số. Việc số hóa toàn bộ dữ liệu, lưu trữ, truy xuất chúng và dự báo kết quả là một công việc vô cùng quan trọng giúp con người tiến xa hơn. Với một mô hình dư báo việc có một mẫu data lớn (big) làm cho việc dự báo càng trở nên chính xác.

Một “big data developer” thường phải thuần thục với các framework và hệ thống. Với mục đích để lưu trữ, truy xuất dư liệu và xử lý phân tán một lượng khổng lồ như MapReduce, Hadoop và Spark. Ngôn ngữ được sử dụng bao gồm SQL, Java, Python và R.

Security Developer (chuyên gia bảo mật thông tin)

Họ chuyên về khởi tạo hệ thống, phương pháp, cách thức để kiểm tra tính bảo mật của hệ thống phần mề.Cố gắng thâm nhập và hệ thống, tìm ra lỗi bảo mật và cảnh báo nâng cấp hệ thống. Là công việc của một security developer hay còn gọi là một “hacker mũ trắng”

Các nhà phát triển bảo mật thường sử dung  ngôn ngữ script như Python và Ruby. Để hiểu chi tiết các cách được sử dụng để tấn công các hệ thống phần mềm. Các nhà phát triển bảo mật nâng cao hơn cần đọc và hiểu mã nguồn của hệ điều hành được viết bằng C và C ++. Họ cũng có thể đảo ngược các thư viện, các hệ thống phần mềm thương mại để tìm và khai thác lỗ hổng bảo mật.

Ngôn ngữ lập trình nào người học lập trình nên bắt đầu?

Về ngôn ngữ lập trình, với sự phát triển của công nghệ ngày nay. Có vô kể các loại ngôn ngữ để bạn có thể bắt đầu. Tất cả đều có những thế mạnh, lợi thế cấu hình phù hợp riêng. Nhưng chúng tôi xin được đưa đến cho bạn “những ngôn ngữ lập trình cho người mới bắt đầu“. Mà một “học lập trình cơ bản cho người mới bắt đầu” nên chọn lựa. Nhưng đây cũng chỉ là ý kiến chủ quan. Bạn có thể bắt đầu với mọi ngôn ngữ nếu bạn chăm chỉ và không ngừng code.

Người mới bắt đầu học lập trình – kĩ năng nào là cần thiết?

Học lập trình – phải từng bước từng bước một

Nếu bạn là đối tượng “học lập trình cơ bản cho người mới bắt đầu”. Yếu tố cốt lõi không ở việc bạn lựa chọn ngôn ngữ nào hay các nguồn tham khảo nào. Bạn nên tự bắt đầu ở mức cơ bản nhất và phải kiến nhẫn với chính bản thân. Ví dụ như khi bạn học về python. Bạn nên dành ra một ngày cuối tuần để nắm kiến thức giới thiệu về Python. Và một ngày để hiểu sơ bộ về framework Django – thực hành theo tutorial. Sau đó tự tay xóa tất cả các code mẫu của tutorial và tự nhớ để làm lại. Nếu phương pháp này không hiệu quả cho bạn thì cũng đừng nản. Hãy tự tìm những phương pháp khác phù hợp với bạn nhất.

Học lập trình- thực hành là yếu tố then chốt

Là một người yêu âm nhac, không ai có thể thuần thục bấm các nốt trên guitar, piano chỉ trong lần đầu. Tất cả đều cần có thời gian và sự khổ luyện. Học code cũng như vậy. Có thể bạn đã nắm chắc, vững về kiến thức nhưng cũng phải thường xuyên viết lại và ứng dụng để hiểu được tác dụng của những dòng code ấy.

Lúc này có thể bạn sẽ va phải hàng đống lỗi như: cú pháp sai, ứng dụng không chạy, kết quả không đúng hoặc cũng có thể là chương trình chạy không ổn định,… . Mỗi lần như vậy ta lại nhận ra những cú pháp của mình sai ở đâu. Nó đã đủ ngắn gọn chưa? Qua đó tìm ra lỗi và khắc phục. Điều đó càng khiến bạn một người đang “học lập trình cơ bản cho người mới bắt đầu” lại càng hiểu sâu rõ hơn về từng dòng code. Càng thực hành nhiều thì trình của bạn càng lên.

Học lập trình – cập nhập kiến thức mới

Cuốn sách của ngày hôm qua đã là kiến thức cũ. Việc sử dụng một nguyên lý của thời kì này áp dụng cho thời kì sau đã là đồ “cổ”. Công nghệ thay đổi được tính theo giờ đồng hồ. Các phần mềm thường xuyên được cập nhật phiên bản mới. Càng nhiều ngôn ngữ lập trình mới được ra đời. Việc tự update kiến thức giống như việc đi theo guồng quay của thời đại. Bạn có thể học được qua tạp chí, các website, diễn đàn thế giới, các khóa học uy tín. Và quan trọng nhất vẫn là việc áp dụng các kiến thức đó vào công việc.

Tài liệu học lập trình là vô vàn trên mạng

Tham gia vào các trang web dạy lập trình trực tuyến

Hiện nay có vô vàn các nguồn dữ liệu mà một coder dễ dàng có thể tìm thấy. Bạn hoàn toàn có thể học lập trình chỉ yêu cầu có laptop và wifi. Những trang web dạy lập trình trực tuyến mà một “người học lập trình cơ bản cho người mới bắt đầu” nên biết.

Tìm thầy hoặc làm thầy

Cộng đồng lập trình tính đến nay vô cùng đông đảo. Sẽ không thiếu để bạn có thể tự kiếm cho mình một người (thậm chí là không cùng ngôn ngữ). Để có thể dạy mình nếu bạn là một người “học lập trình cơ bản cho người mới bắt đầu”. Hoặc có thể truyền đạt lại kiến thức đó cho một người khác. Cũng là cách để bạn tự củng cố kiến thức của bản thân.

Đây chỉ là một số chia sẻ của bản thân, chúc bạn luôn học tập vui vẻ, tìm thấy niềm vui khi code!