Nếu bạn muốn học lập trình, bước những bước đầu tiên với nguồn kiến thức khổng lồ có vẻ là một điều thật không dễ dàng gì. Trên kho tài liệu Internet, có vô vàn tài nguyên miễn phí mà bạn có thể sử dụng để tham khảo và tự học lập trình. Những tài nguyên ấy có thể cung cấp cho bạn tất cả thông tin cần thiết. Và điều này làm cho quá trình học sẽ trở nên thú vị hơn. Cho dù bạn là sinh viên hay người đã đi làm; thì việc học một ngôn ngữ mới – ngôn ngữ lập trình thì tất cả những gì bạn cần là máy tính và Internet. Đây là hai thứ cực kỳ quan trọng.
Bài viết dưới đây sẽ cung cấp cho các bạn cách để tự học lập trình hiệu quả.
Hãy tự hỏi: Tại sao bạn muốn học lập trình?
Hãy dành vài phút (hoặc một ngày) để suy nghĩ về lý do — lý do thực sự — tại sao bạn muốn học một ngôn ngữ lập trình. Hãy thành thật với chính mình. Bạn đang cố gắng tìm kiếm một sự thay đổi lớn trong sự nghiệp? Hay bạn muốn lập trình các thiết bị thông minh khác nhau để làm một điều gì đó tuyệt vời?
Câu trả lời của bạn có thể giúp xác định ngôn ngữ lập trình bạn nên thành thạo; cũng như loại cam kết nào (về thời gian và tiền bạc) mà mục tiêu của bạn có thể yêu cầu. Ví dụ: nếu ước mơ của bạn là tạo ra một hệ điều hành tuyệt vời tiếp theo; hoặc một giải pháp thay thế tuyệt vời cho PhotoShop; bạn sẽ được hưởng lợi từ một chương trình giáo dục khoa học máy tính chính thức dạy bạn C ++; cũng như các chủ đề phức tạp hơn như cấu trúc dữ liệu, thuật toán và phân bổ bộ nhớ.
Mặt khác, nếu bạn là một chuyên gia tầm trung đang tìm cách chuyển đổi sang sự nghiệp công nghệ; thì một chương trình đào tạo mã hóa ngắn hạn có thể có ý nghĩa hơn so với việc bạn phải tốn nhiều thời gian vào việc học đại học hay cao đẳng chuyên ngành IT.
Nếu tất cả những gì bạn muốn làm là xây dựng trang web; hoặc đẩy Raspberry Pi của bạn đến giới hạn của nó; sự kết hợp của các live-tutoring và các khóa học trực tuyến miễn phí có thể đủ để giúp bạn đạt được mục tiêu.
Chọn ngôn ngữ lập trình phù hợp
Một khi bạn đã tìm ra lý do tại sao bạn muốn tự học lập trình; bạn có thể dễ dàng xác định ngôn ngữ lập trình mà bạn nên sử dụng. Mặc dù không có ngôn ngữ lập trình “tốt nhất” và “duy nhất” để học; nhưng sẽ có một số ngôn ngữ thân thiện với người dùng hơn những ngôn ngữ khác. HTML và CSS được coi là sự khởi đầu dễ dàng nhất nếu bạn mới bắt đầu bước chân vào thế giới mã hóa; nhưng chúng chỉ thực sự hữu ích để phát triển các trang web cơ bản.
Để có nhiều trang web tương tác hơn liên quan đến hệ thống thanh toán hoặc cơ sở dữ liệu; bạn sẽ cần biết Javascript, PHP, SQL và Python để làm cho tất cả các thành phần hoạt động. Các nhà sản xuất ứng dụng di động sử dụng Swift hoặc C để tạo ứng dụng iOS; và Java hoặc Kotlin cho ứng dụng Android. Các nhà phát triển trò chơi điện tử sẽ chuyển sang Unity; hoặc thậm chí là C # để biến những ý tưởng trò chơi của họ thành hiện thực.
Bạn vẫn không thể quyết định về ngôn ngữ lập trình bắt đầu của mình? Hầu hết các chuyên gia khuyên bạn nên học Python, C # hoặc JavaScript; vì chúng cung cấp tiện ích rộng nhất và tính linh hoạt trong nghề nghiệp. Để giúp bạn quyết định; hãy xem infographic này so sánh một số ngôn ngữ lập trình phổ biến.
Trên hết, chỉ cần bắt đầu học một cái gì đó. Khi bạn đã quen với một ngôn ngữ lập trình; bạn sẽ có thể chọn ngôn ngữ tiếp theo nhanh hơn nhiều.
1. Thử một số khóa học trực tuyến
Nếu bạn muốn kiểm soát nhiều hơn lịch trình học tập của mình; một khóa học lập trình trực tuyến có thể là một lựa chọn tốt hơn so với một khóa đào tạo trực tiếp. Tuy nhiên, có rất nhiều lớp học trực tuyến khác nhau dạy cùng một ngôn ngữ lập trình; và thật khó để tìm ra lớp học nào thực sự xứng đáng với thời gian và tiền bạc của bạn.
Nếu bạn không ngại luyện tập một mình; hãy xem The Odin Project, một tùy chọn miễn phí tập hợp một số nội dung mã nguồn mở tốt nhất để biến một người mới viết code thành một lập trình viên.
Muốn có nhiều huấn luyện one-on-one; và chuẩn bị nghề nghiệp mà không cần thực hiện chương trình đào tạo toàn thời gian? Hãy thử đăng ký các khóa học chứng nhận mô hình đăng ký từ Udacity hoặc Treehouse; nơi bạn có cơ hội nhờ gia sư trợ giúp; thay vì phải một mình tự tìm và sửa lỗi mà không một ai giúp bạn giải đáp các thắc mắc về lập trình. Ngay cả sinh viên học bootcamp và khoa học máy tính toàn thời gian cũng đăng ký các lớp học này để bổ sung cho việc học của họ.
Bất kể bạn hoàn thành bao nhiêu khóa học; nhiều người mới bắt đầu vẫn khó áp dụng kiến thức tương đối cơ bản của họ. Vì vậy, nhiều người giới thiệu khóa học JavaScript thực tế miễn phí từ Watch and Code.
2. Tập trung vào việc học tư duy tính toán
Thay vì quá tập trung vào việc học một ngôn ngữ lập trình cụ thể; bạn cũng có thể học cách giải quyết vấn đề theo cách mà máy tính sẽ hiểu. Nói cách khác, cải thiện kỹ năng của bạn về các khái niệm; như nhận dạng mẫu, thuật toán và trừu tượng. Bạn càng hiểu rõ những nguyên tắc này; thì việc học ngôn ngữ tiếp theo càng dễ dàng (và kết quả là thiết kế các sản phẩm hoặc dự án tốt hơn).
Tôi có thể giới thiệu Harvard CS50x Giới thiệu về Khoa học Máy tính của Harvard. Bạn có thể kiểm tra khóa học miễn phí qua edX; và kiếm chứng chỉ bằng cách hoàn thành tất cả các bài tập; hoặc bạn có thể đi theo tốc độ của riêng mình; và xem tất cả các bài giảng được đăng trên Youtube.
3. Học từ sách
Cách tốt nhất để học lập trình — một cuốn sách thực sự mà bạn có thể theo dõi từ đầu đến cuối. Trong một thế giới hoàn hảo; điều này sẽ cung cấp cho bạn một giới thiệu toàn diện hơn về mã hóa Coding; hơn là nhảy xung quanh chủ đề này sang chủ đề khác trên một trang web.
Bạn có thể tìm thấy một cuốn sách điện tử cho bất kỳ ngôn ngữ; hoặc khuôn khổ nào mà bạn đang cố gắng học trên GitHub.
Với việc tự học lập trình, bạn cũng có thể hưởng lợi từ những cuốn sách cung cấp lời khuyên rộng hơn về nghề. Bạn sẽ cải thiện tư duy và thói quen của mình; những đặc điểm bạn có thể áp dụng cho bất kỳ ngôn ngữ nào bạn quyết định học. Cuốn Code Complete: A Practice Handbook of Software Construction (Phiên bản thứ 2) gồm 900 trang của Steve McConnell được coi là hướng dẫn cuối cùng về các phương pháp hay nhất; với lời khuyên được hỗ trợ dữ liệu về mọi thứ từ thiết kế dự án đến mã gỡ lỗi.
Hệ quả của sự thành công đó là Clean Code: A Handbook of Agile Software Craftsmanship của “Uncle Bob” Robert Martin. Martin tin rằng code phải được viết một cách hiệu quả; để dễ dàng kiểm tra và khả năng mở rộng; điều này khiến cho nhiều nhóm lập trình viên hiện đại phải đọc.
Vì lập trình thực sự là để giải quyết vấn đề; bạn sẽ đánh giá cao quá trình suy nghĩ; và các giải pháp “đằng sau phong bì” mà Jon Bentley chia sẻ trong Programming Pearls (Phiên bản thứ 2). Mỗi chương đều kết thúc với một số thử thách thường được sử dụng trong các cuộc phỏng vấn việc làm kỹ thuật. Vì vậy hãy biến cuốn sách này thành một phần trong quá trình chuẩn bị của bạn.
4. Kiểm tra một số hướng dẫn tương tác hoặc Coding game
Việc đọc các dòng mã trên màn hình; hoặc trong một cuốn sách có thể trông giống như vô nghĩa. Khi bạn nhìn thấy một ví dụ đang hoạt động; khái niệm trừu tượng đó đột nhiên có ý nghĩa hoàn hảo hơn. Đó là vẻ đẹp của các hướng dẫn viết mã tương tác mà bạn có thể tìm thấy trên web.
Ví dụ: FreeCodeCamp không chỉ chia nhỏ các khái niệm mã hóa thành các phần nhỏ trong trình duyệt web của bạn; nó còn ghép từng khái niệm với một bài tập có liên quan mà bạn phải giải; trước khi chuyển sang chủ đề tiếp theo. Bằng cách này, bạn không thể bỏ qua những nội dung thú vị; trang web thực sự buộc bạn phải gỡ lỗi code của mình khi bạn tìm hiểu.
Coding game cũng là một cách thú vị để bạn bắt đầu bước chân vào lập trình. Nếu bạn có một giờ rãnh rỗi; bạn có thể thử trò chơi Hour of Code đơn giản. Ngoài ra, nhiều trường học đã sử dụng Minecraft: Phiên bản giáo dục để dạy trẻ em lập trình cơ bản với các khối mã hóa; và thậm chí cả JavaScript. (Bạn có thể tải xuống phiên bản Minecraft này miễn phí; nếu bạn có tài khoản Office 365 Education.)
Muốn có một hướng dẫn phát triển trò chơi phức tạp hơn mà bạn có thể đưa vào CV của mình? Coding Game có thể là một sự lựa chọn phù hợp.
5. Hãy thử một món đồ chơi trẻ con
Ai nói rằng người lớn không thể học code từ loại đồ chơi STEAM / STEM và trò chơi điện tử khiến trẻ em say mê ? Rốt cuộc, những sản phẩm này được thiết kế để dạy logic và cú pháp viết mã mà không gây nhàm chán cho những đứa trẻ dễ bị phân tâm. Vì vậy ngay cả những lập trình viên trưởng thành cũng có thể thấy chúng thú vị và mang tính giáo dục.
Nếu bạn muốn hiểu rõ hơn về mối quan hệ giữa phần cứng và phần mềm; thì bạn sẽ thích Piper Computer Kit 2; giúp bạn xây dựng một máy tính hỗ trợ Raspberry Pi. Sử dụng máy tính xách tay DIY này; bạn có thể học cách viết mã thông qua các thử thách Minecraft Story Mode tùy chỉnh của nó. Sử dụng ngôn ngữ Blockly kéo và thả để học tính toán vật lý; hoặc chỉ cần học một số Python cơ bản từ các bài học được cài đặt sẵn.
Mặc dù có thể bạn sẽ không thể tạo droid BB-8 của riêng mình từ Star Wars; nhưng bạn có thể học cách viết mã một droid với Sphero’s BOLT. Sử dụng ứng dụng đồng hành; bạn có thể điều khiển quả bóng droid của mình bằng cách sử dụng các khối mã hóa kéo và thả được gọi là Scratch hoặc nâng cấp lên JavaScript; để lập trình các bước di chuyển nâng cao hơn.
6. Tạo các chương trình nhỏ tùy chỉnh
Bạn có thiết bị smarthome như Amazon Echo không? Bạn có thể thử nghiệm kỹ năng viết mã của mình; bằng cách tạo các chương trình nhỏ tùy chỉnh; để tận dụng nhiều chức năng hơn từ trợ lý kỹ thuật số trên thiết bị của bạn. Alexa của Amazon có thể đã biết nhiều “kỹ năng” ra lệnh bằng giọng nói cơ bản; như đọc các tiêu đề tin tức mới nhất; nhưng bạn có thể dạy những nhiệm vụ phức tạp hơn bằng cách viết mã bằng Node.js, Java, Python, C # hoặc Go. (Hoặc, nếu bạn muốn bắt đầu với thứ gì đó dễ dàng hơn; hãy thử trang web thiết kế kỹ năng Alexa đơn giản hơn.)
Có thể sở thích viết mã của bạn bị hạn chế hơn — ví dụ: bạn có thể chỉ muốn học đủ Python để làm cho Raspberry Pi của bạn thực hiện các dự án thú vị. Nếu vậy, bạn có thể áp dụng cách tiếp cận DIY để học bằng cách xem nhiều dự án mà những người khác chia sẻ trên trang web của họ.
Bằng cách tạo lại các dự án hiện có; bạn sẽ tìm hiểu thêm về hoạt động bên trong của thiết bị có thể tùy chỉnh cao của mình. Bạn thậm chí có thể thấy mình được truyền cảm hứng để tạo ra những cách mới để sử dụng máy tính mini của mình; và nghiên cứu sâu hơn về thế giới code.
7. Xem video tự học lập trình
Đôi khi, việc xem ai đó chỉ cho bạn cách thực hiện sẽ dễ dàng hơn. Bạn có thể tìm thấy tất cả các loại video giáo dục về gần như bất kỳ chủ đề nào liên quan đến mã hóa hiện nay: những nhân viên cũ của Google chia sẻ các giải pháp về các cuộc phỏng vấn lập trình; YouTubers phát trực tiếp các cuộc thi mã hóa của họ; và thậm chí là những người kỳ cựu về lập trình hướng dẫn bạn cách khắc phục một lỗi cụ thể bằng bất kỳ ngôn ngữ nào bạn muốn.
Tôi khuyên bạn nên xem CS Dojo; TheNetNinja và kênh YouTube CS50 của Harvard. Nếu bạn không có thời gian để tìm kiếm một kênh hoặc video viết mã hoàn hảo; bạn cũng có thể xem thư viện video rộng lớn của LinkedIn Learning để biết các hướng dẫn chuyên nghiệp và đã được kiểm duyệt. Mặc dù phí đăng ký 30 đô la / tháng; nhưng bạn có thể xem một cách say sưa với số lượng nội dung và chủ đề không giới hạn — khiến LinkedIn Learning trở thành ưu đãi tốt hơn so với các lớp học trực tuyến theo yêu cầu khác đi kèm với những hạn chế khó chịu.
8. Thực hành với các dự án cá nhân
Bất kể bạn hoàn thành bao nhiêu chứng chỉ và hội thảo lập trình; hay bạn học bao nhiêu ngôn ngữ lập trình; bằng chứng về kỹ năng viết code của bạn sẽ có trong dự án lập trình của bạn. Mặc dù dự án cá nhân của bạn không cần phải tham vọng như việc tạo ra Google Maps; nhưng đó phải là thứ bạn muốn làm việc 24/7 để không ngừng cải thiện và mở rộng phạm vi của nó.
Bắt đầu từ nhỏ, nhưng nghĩ lớn. Dự án của bạn nên liên quan đến các kỹ năng bạn hiện có trong hộp công cụ của mình; nhưng bạn cũng nên có kế hoạch cho các tính năng và kỹ năng trong tương lai mà bạn cần để biến tầm nhìn đó thành hiện thực. Nếu không áp dụng các kỹ năng viết code của bạn trong một vài dự án; bạn thậm chí sẽ không được xem xét cho các hợp đồng viết code chuyên nghiệp. Vì vậy hãy bắt đầu lập kế hoạch và thực hành.
9. Google thông báo lỗi của bạn
Đây là lời khuyên tốt nhất về mã hóa của chúng tôi: Nếu bạn không thể tìm ra lý do tại sao mã của mình bị hỏng; bạn luôn có thể tìm kiếm các giải pháp trực tuyến. Rốt cuộc, có lẽ bạn không phải là người đầu tiên mắc lỗi và ai đó trên internet chắc chắn đã tìm ra giải pháp cho vấn đề của bạn. Chỉ cần “sao chép và dán” thông báo lỗi của bạn vào Google (hoặc công cụ tìm kiếm ưa thích của bạn); thêm một cặp dấu ngoặc kép xung quanh toàn bộ cụm từ để bạn không chỉ tìm kiếm từ khóa; sau đó nhấn “Enter”. Hy vọng rằng thủ thuật nhỏ này sẽ dẫn bạn đến câu trả lời chính xác.
Nếu vẫn gặp sự cố, bạn luôn có thể đăng câu hỏi của mình trên các diễn đàn của nhà phát triển như Stack Overflow, subreddit lập trình của Reddit hoặc GitHub.
10. Hack code người khác
Khi bạn nhận được source code của người khác; kiểm tra từng dòng để xem nó hoạt động như thế nào; bạn sẽ hiểu rõ hơn về bức tranh toàn cảnh. Nhờ có hàng tấn mã nguồn mở có sẵn; bạn có thể tìm hiểu về bất cứ điều gì bằng cách kiểm tra tác phẩm (hoàn mỹ) của người khác. Chỉ cần nhớ chia sẻ lại mã của bạn với cộng đồng nếu cảm hứng xuất hiện; và bạn cải thiện một phần của chương trình mà bạn đang tìm hiểu.
11. Tìm một người cố vấn (hoặc dạy cho người khác)
Cộng đồng lập trình đầy rẫy những người sẵn sàng giúp đỡ thế hệ lập trình viên tiếp theo. GitHub, hangout trực tuyến dành cho các nhà phát triển sử dụng Git để quản lý các dự án mã hóa của họ, được thiết kế để cộng tác trực tuyến. Các nhà phát triển không chỉ lưu trữ và chia sẻ dự án của họ với các đồng nghiệp của họ; họ còn cung cấp phản hồi về code và lời khuyên chung cho cộng đồng.
Bạn có thể tìm thấy một số cố vấn trực tuyến hữu ích thông qua GitHub; hoặc gặp gỡ các nhà phát triển kỳ cựu khác tại sự kiện Gặp gỡ mã hóa địa phương hoặc hackathon. Sau khi có được một số kinh nghiệm về lập trình; bạn có thể trả lời câu hỏi của những người khác; hoặc thậm chí dạy những gì bạn đã học cho người mới — một bài kiểm tra tuyệt vời để xem liệu bạn có thực sự biết nội dung của mình hay không.
12. Tham dự khóa coding bootcamp
Các chương trình đào tạo mã hóa có thể gây tranh cãi: Chúng sẽ cung cấp cho bạn phần giới thiệu nhanh và kinh nghiệm về nhiều kỹ năng; nhưng chúng có thể không phải là tấm vé vàng để bạn có được một công việc tốt ở các công ty công nghệ hàng đầu.
Nếu bạn muốn trở thành nhà phát triển chuyên nghiệp và trở thành một nhà phát triển toàn thời gian; một chương trình đào tạo mã hóa chuyên sâu và trực tiếp có thể giúp ích cho bạn; đặc biệt nếu bạn học tốt nhất trong một môi trường có người hướng dẫn để thúc đẩy bạn. Tuy nhiên, những loại bootcamps này thường đắt nhất và tốn nhiều thời gian để tham gia: Bạn đang tìm kiếm tới 15.000 đô la chỉ cho học phí, cộng với chi phí sinh hoạt trong vài tháng cho đến khi bạn tốt nghiệp.
Xem thêm:
HTML là gì? Mối quan hệ giữa HTML, CSS và JavaScript
SQL là gì? Tại sao SQL lại quan trọng?
Java và JavaScript: Sự khác nhau giữa chúng