Học lập trình thế nào?

Chào các bạn, lại là mình là Kiên đây. Lần trước mình có chia sẻ với mọi người quá trình chuyển đổi nghề nghiệp của mình ở bài viết

https://www.facebook.com/groups/codegym.vn/posts/1226052554537704/

Hôm nay mình sẽ tiếp tục viết một bài chia sẻ những kinh nghiệm học lập trình của mình, hi vọng những điều mình chia sẻ giúp ích cho các bạn trong quá trình theo đuổi nghề này.

I. Phương pháp tìm tòi, nghiên cứu.

1. Điểm bắt đầu giải quyết vấn đề.

Đầu tiên, sau khi quyết định học lập trình, mình không biết bắt đầu từ đâu cả. Học ngôn ngữ nào, cài lên máy tính kiểu gì, bao giờ mới đi làm được,… là rất nhiều câu hỏi trong đầu mà mình không biết phải hỏi ai. Nhưng chỉ có chính bản thân mình mới giúp được mình thôi. Vậy là mình phải tự tìm tòi.Khi những câu hỏi trong mình dày đặc và đan xen vào nhau như vậy, mình phải chọn một điểm để bắt đầu. Mình chọn từ khoá tự học lập trình để google tìm hiểu. Sau một tuần lùng sục khắp các diễn đàn, mình bắt đầu tìm ra những câu trả lời, từ câu trả lời này, mình lại tìm được câu trả lời khác. Đó là việc tự học lập trình là hoàn toàn khả thi, chuyển sang ngành lập trình có thể đi làm mà không cần bằng cấp đại học, ngôn ngữ dễ tìm việc nhất là java và php, có vẻ php dễ học hơn,… Và những câu hỏi tưởng chừng khó khăn đã được giải quyết, mình quyết định tự học PHP. Đó là lúc mình nhận ra, giữa quá nhiều vấn đề chưa được giải quyết, hãy chọn một vấn đề bất kì làm điểm bắt đầu. Từ điểm bắt đầu này, chúng ta sẽ dần dần tìm được cách giải quyết các vấn đề còn lại. Tương tự, khi tự học React Native, mình bắt đầu với một bài hướng dẫn bất kì trên viblo. Và mình biết được để học tốt React Native cần học ReactJS, để học ReactJS cần học Javascript ES6, để học Javascript ES6 cần học lại giáo trình module Javascript của Codegym. Từ đó, mình có thể tự học dần từng chút một mà không bị hoang mang.

2. Cách tìm kiếm để hiểu một kiến thức mới.

Tự học PHP hay bất kì công nghệ, ngôn ngữ nào đều không hề đơn giản. Lúc bắt đầu học, mình tìm kiếm tất cả các nguồn có thể trên google, mà chủ yếu là tiếng việt. Do tìm kiếm bằng tiếng việt nên những tài liệu và phần mềm đểviết code đều khá cũ. Lúc đó, mình ngày đi làm kiếm tiền, tối mày mò tự học nên rất chán nản. Tuy vậy, mình vẫn cố gắng kiên trì mỗi ngày một chút. Sau 6 tháng tự học, mình thấy bế tắc và muốn được học một cách bài bản hơn, và đó là lúc mình tìm đến Codegym.Chương trình đào tạo bài bản tại Codegym giúp mình nhận ra rất nhiều vấn đề trong 6 tháng tự học. Đó là cách tự học của mình sai hoàn toàn, cách tìm kiếm tài liệu trên google của mình không hề hiệu quả. Từ đây, mình đã nghĩ ra một cách tìm kiếm tài liệu khi tự học một kiến thức mới hiệu quả hơn. Đó là đầu tiên phải tìm hiểu tất cả các bài viết bằng tiếng việt, sau đó tìm hiểu thêm bằng tiếng anh cho hiểu hơn, và cuối cùng là tìm hiểu tài liệu gốc để cập nhật kiến thức mới nhất.Ví dụ khi học module javascript, khi tìm hiểu về hàm for, mình sẽ bắt đầu tìmkiếm trên google bằng tiếng việt. Sau khi đọc hết các bài trên freetuts, codelearn, viblo,… mình sẽ tiếp tục đọc các bài tiếng anh trên medium, w3school,… và cuối cùng là developer.mozilla.org. Với phương pháp này, mình không chỉ hiểu vấn đề mà còn cập nhật kiến thức mới nhất mà nhiều khi giáo trình Codegym còn không cập nhật kịp. Khi mình áp dụng để tự học React Native, phương pháp tìm kiếm này thực sự hiệu quả.

II. Phương pháp ghi nhớ.

1. Ghi nhớ hình ảnh.

Nếu bạn chuyển ngành sang lập trình, đặc biệt khi đã có tuổi như mình, thì khối lượng kiến thức tại Codegym khá gây chóang ngợp. Tại thời điểm hiện tại, thời gian học tại Codegym là 5 tháng còn khi mình học chỉ có 4 tháng thôi. Điều này cho thấy ban giám đốc đã phải điều chỉnh lại thời gian học phù hợp hơn với lượng kiến thức khổng lồ này. Và trên thực tế, những gì học tại Codegym chỉ là một phần nhỏ so với khi đi làm. Vậy làm sao vừa có thể hiểu vừa có thể nhớ được nhiều thứ như vậy.Áp dụng cách tìm kiếm đã trình bày ở trên, mình tìm hiểu thêm được về cách bộ não ghi nhớ và các phương pháp ghi nhớ hiệu quả, và tìm thấy vài kiến thức khá thú vị. Ví dụ, các bạn có nhớ người tư vấn chương trình học ở Codegym cho bạn là ai không? Mình nhớ rõ đó là 8 giờ tối, trời mưa tầm tã, mình đi làm về trên con xe wave alpha cũ nát, tạt qua TT01 để làm bài test và được bạn Thuỳ tư vấn rất nhiệt tình. Khi gõ những dòng chữ này, hình ảnh buổi tối hôm đó hiện ra rõ ràng trong đầu mình, còn các bạn thì sao? Đây là lúc mình nhận ra, bộ não chúng ta ghi nhớ một sự kiện gắn với hình ảnh. Vì vậy khi học, mình tưởng tượng và gắn những kiến thức đã học vào một hình ảnh nào đó. Khi học module javascript bài hướng đối tượng, mình nhớ đến ngay đối tượng là quả táo, là chiếc điện thoại, ô tô trong giáo trình Codegym. Những kiến thức của bài học này không hề phai đi sau 2 năm tốt nghiệp, chứng tỏ phương pháp này khá hiệu quả đấy chứ. Và tương tự như khi tự học React Native, hình ảnh video youtube những bài đầu tiên vẫn luôn hiện hữu trong trí óc mình.

2. Ghi nhớ nhắc lại.

Chúng ta đã hiểu cách mà não bộ ghi nhớ kiến thức qua hình ảnh, vậy tại saocó những bài học ở đầu module ta cảm thấy đã hiểu rõ, nhưng chỉ vài hôm sau là cảm thấy không chắc chắn nhớ đúng hay không và phải mở ra xem lại? Mình đã google tìm hiểu và phát hiện ra, khi học một kiến thức mới, tế bào não cũng đồng thời tạo ra một liên kết mới đến khu vực chứa kiến thức này để chúng ta có thể truy cập nhanh hơn. Tuy nhiên, theo thời gian, nhữngliên kết này sẽ mờ dần nếu chúng ta không dùng đến những kiến thức đó nữa. Vì vậy, thường xuyên ôn tập lại những gì đã học để có thể hiểu sâu và nhớ lâu hơn là điều bắt buộc phải làm. Mình thường tổng hợp kiến thức khi học tại Codegym mỗi tuần một lần và sau mỗi module. Hiện tại, dù lập trình mobile app không liên quan tới PHP nhưng thỉnh thoảng mình vẫn đọc lại các project cũ và document của Laravel cho đỡ quên 😀

3. Đóng gói và lưu trữ kiến thức.

Với khối lượng kiến thức ngày càng nhiều, mà thời gian thì có hạn, việc ghi nhớ và ôn tập lại kiến thức cũ ngày càng khó khăn hơn. Mình đâu có đủ thời gian để làm đi làm lại những bài tập từ lúc bắt đầu đi học được. Tưởng tượng trong đầu chúng ta như một căn phòng bừa bộn, kiến thức cũ lộn xộn khắp nơi. Để có thể học thêm kiến thức mới, mình đã tìm cách sắp xếp kiến thức cũ cho gọn gàng, khi nào cần mới lấy ra sử dụng.

Ví dụ khi học module Javascript, chúng ta sẽ học vẽ trên canvas. Khi học và ôn tập xong, mình đã tạo một dự án sử dụng canvas kèm tài liệu hướng dẫn sử dụng chi tiết trên github. Từ lúc tốt nghiệp Codegym đến giờ kiến thức này không dùng đến nên mình đã quên cách sử dụng, nhưng khi nào cần đếnmình chắc chắn sẽ nhớ lại ngay. Toàn bộ code từ lúc học Codegym đến hiện tại mình đều tổng hợp và lưu trữ đầy đủ trên github.

III. Phương pháp tự học.

Tự học không có phương pháp cụ thể, mỗi người sẽ tự tìm ra một phương pháp phù hợp với bản thân mình. Nên trong phần này, mình sẽ chia sẻ cách tự học của mình để các bạn tham khảo mà thôi.

1. Tối đa số lần học lại cùng một kiến thức dưới nhiều góc độ khác nhau.

Ví dụ cụ thể với phương pháp này, trong module javascript bài hướng đối tượng, mình đã tự mò mẫm nghiên cứu làm trước ở nhà, code có lúc chạy đúng có lúc không. Đây là việc học dưới góc độ chưa biết gì. Sau đó mình sẽ hỏi về những vấn đề còn vướng mắc trong buổi học trên Codegym. Đây là việc học dưới góc độ của giảng viên. Và khi đã hiểu rõ, mình làm lại bài tập một lần nữa dưới góc độ của học viên đã tiếp thu được kiến thức. Vậy là với một bài tập, mình đã tiếp cận ba lần dưới ba góc nhìn kiến thức khác nhau, giúp mình ghi nhớ được lâu hơn.

2. Tự học từ nhiều nguồn khác nhau đã được chọn lọc.

Sau thời gian tự học, mình đã tìm được cách tìm kiếm thông tin về một vấn đề nhanh chóng và hữu ích nhất đối với mình. Ví dụ khi cần học thêm một kiến thức mới về Laravel (là một framework của PHP có trong chương trình học Codegym), mình sẽ tìm hiểu kiến thức đó bằng tiếng việt trên Viblo, sau đó tìm hiểu bằng tiếng anh trên Medium, và cuối cùng là tìm hiểu trên document của Laravel. Sau đó, những khi cần sử dụng đến, mình chỉ cần tìm kiếm trên trang web document là sẽ có đầy đủ thông tin.

3. Hỏi ngược một vấn đề ít nhất 5 lần.Khi học bất cứ kiến thức gì mới, mình đều tự hỏi “Tại sao?” ít nhất 5 lần để hiểu rõ vấn đề. Ví dụ khi học về khai báo biến trong Javascript, mình sẽ tự hỏi“Tại sao phải khai báo biến?”, “Tại sao lại có nhiều cách khai báo khác nhau?”, “Tại sao lại khai báo biến là var?”,… cho tới khi cùng đường mới thôi.Câu nào mình tự trả lời được thì tốt, còn nếu không hiểu thì phải hỏi giảng viên ngay. Phương pháp này không chỉ giúp mình học lập trình tốt hơn mà còn giúp mình hiểu thêm nhiều vấn đề trong cuộc sống hàng ngày.

IV. Đặt mục tiêu.

Tất cả các phương pháp ghi nhớ, phương pháp học tập ở trên đều không có ý nghĩa gì nếu chúng ta không có một mục tiêu rõ ràng. Vì vậy, mình đưa phần đặt mục tiêu xuống cuối bài viết để nhấn mạnh về tầm quan trọng. Chúng ta phải đặt mục tiêu lớn, rồi chia nhỏ thành các mục tiêu bé, rồi cụ thể hoá bằng các công việc phải làm hàng ngày, hàng tuần, hàng tháng và hàng năm.Mỗi giai đoạn học tập của mình đều có mục tiêu cụ thể và rõ ràng. Trước khi học Codegym, mục tiêu của mình là tự học PHP ít nhất 6 tháng. Và mình cụ thể hoá mục tiêu này bằng cách học mỗi ngày một chút, thậm chí một tuần chỉ học một tiếng, nhưng vẫn hoàn thành mục tiêuKhi học tại Codegym, mình đặt mục tiêu hoàn thành chương trình trong 2 tháng. Để cụ thể hoá mục tiêu này, mỗi ngày mình cần học 2 đến 3 bài, tức là ít nhất phải gấp đôi các học viên khác. Mình bỏ qua nhiều chương trình bổ trợ của Codegym, chỉ tập trung vào chương trình chính. Và sau 2 tháng thường xuyên ngủ sau 2 giờ sáng, thậm chí nhiều đêm không ngủ, mình đã hoàn thành mục tiêu này.Sau khi tốt nghiệp, mình đặt mục tiêu tìm kiếm công ty làm về Laravel và những kiến thức được học ở Codegym để có thể học hỏi được nhiều hơn và sâu hơn. Mình đã đỗ cả 7 công ty mình nộp hồ sơ, và chọn công ty có mức lương thấp nhất nhưng đúng với mục tiêu đặt ra.Vì vậy, cách đặt mục tiêu và chia nhỏ để hoàn thành tuy được đặt dưới cùng bài viết nhưng lại là yếu tố quan trọng nhất khi trở thành một lập trình viên, đặc biệt là những bạn chuyển ngành chuyển nghề với quỹ thời gian và tiền bạc có hạn. Hãy cố gắng hết sức mình tại Codegym với một mục tiêu thật cụ thể và khả thi nhé. Ở bài viết tiếp theo, mình sẽ chia sẻ các mẹo phỏng vấn và deal lương để vào công ty mình mong muốn chắc chắn 100% nhé.

1 comments On Học lập trình thế nào?

Leave a Reply to Van Toan Cancel Reply

Your email address will not be published.

Site Footer

Sliding Sidebar

Facebook