Những điều mình ước mình biết được khi mới bắt đầu học lập trình (Phần 1)

Số là tình cờ lướt facebook, diễn đàn React Việt Nam, mình tình cờ thấy post này của một bạn mới học React

Nỗi trăn trở của newbie web - ảnh minh họa

Những lời trăn trở của bạn này chính là mình của thời điểm lúc mới bắt đầu học web. Nó khiến mình muốn viết lên đây ngay lập tức, chia sẻ những kinh nghiệm ít ỏi mình đúc kết ra được, để mong một phần nào đó giúp được các bạn.

Đối với những người tự học thì những ngày đầu tiên học lập trình quả thật là ác mộng, mọi thứ quá đỗi khó khăn.

Chúng ta sẽ rất dễ mắc sai lầm, đi chệch hướng, khiến cho con đường học trở nên lòng vòng, tốn rất nhiều thời gian quý báu và cả công sức của người học.

Mình cũng đã trải qua giai đoạn này nên rất hiểu cảm giác đó là như thế nào.

Và dưới đây là danh sánh những điều mình ước mình biết được khi còn là một Fresher developer.

1. Trước khi học một thứ mới, hãy cố gắng vạch ra cái nhìn tổng quan.

Đâu là điều khó khăn nhất mà một web developer đối mặt, nhất là một người tự học code?

Phần lớn đó sẽ là: bạn bị choáng ngợp trước lượng kiến thức cần phải học.

Chúng ta không biết thứ chúng ta không biết.

Chỉ cần google một phát về React là sẽ có hàng tá thứ xuất hiện trên màn hình, với cả trăm thuật ngữ mới lạ, khó hiểu. “(Thú thật với các bạn là ngay cả từ “DOM” thôi mà mình cũng đã phải phát khiếp, google lòi mắt những ngày mới học web chỉ để hiểu DOM là gì :)) ).

Vậy điều đầu tiền bạn cần làm ngay lúc cảm xúc choáng ngợp và bối rối kia ập đến là gì?

Là bình tĩnh, hít thở sâu, nở một nụ cười, thư giãn và sống chậm lại một chút xíu ^^.

Mình nói thật đấy, không đùa đâu. Đừng để những ấn tượng kinh hoàng hay cảm giác mệt mỏi xâm chiếm bạn trong những ngày đầu học - thứ mà mình không may đã mắc phải.

Hãy cố gắng giành những ngày đầu tiên trong quá trình tự học một ngôn ngữ lập trình hay một framework bất kỳ để tìm hiểu, có một cái nhìn tổng quan nhất về thứ mình sắp học.

Học React? Hãy tìm hiểu React Road Map

Lộ trình học React - Ảnh: hackernoon.com

Đi theo đúng lộ trình mà Road Map đã vẽ ra. Nhìn nó nhiều đấy, nhưng đi theo đúng lộ trình mình đảm bảo với bạn sẽ là con đường nhanh nhất. Ngược lại đi không đúng thì sẽ có khả năng bạn sẽ phải đi đường vòng và sẽ mãi loay hoay.

Tóm lại: Hãy dành 1, 2 ngày tìm ra road-map cho ngôn ngữ, framework sắp học.

2.Và bám sát theo nó

Không phải mình tách lộn section hay lỗi ngữ pháp đâu. Vì ý này rất rất quan trọng đấy.

Sau khi có lược đồ những thứ phải học, bạn cần xắn tay áo vào học và đặc biệt bám sát theo đúng lộ trình đã được vạch ra.

Mình đã nghiệm ra điều này chỉ sau khi trải qua những sai lầm đau đớn, ngốn của mình rất nhiều thời gian và gây hoang mang cho chính bản thân mình.

Đề ra học React? Vì sao ư? Vì job nhiều, sau lưng là đội ngũ dev của Facebook quá chi là hùng mạnh. Cơ hội bạn học xong và có việc làm là rất cao.

Tới đây là đủ, không cần thêm lý do React chạy nhanh, DOM ảo, bla, bla. Những thứ này bạn sẽ học và tìm hiểu xuyên suốt quá trình năm tháng tiếp theo đây.

Bạn có tin mình đã từng bỏ ra 4, 5 ngày chỉ để ngồi google tìm hiểu hàng tá các bài viết “so sánh React, Angular, Vue”, “lý do bạn không nên học jQuery”, “React khó học như thế nào”, vân vân và mây mây,… Chưa thỏa mãn lại tiếp tục mò mẫm xem các video youtube giải đáp những vấn đề trên.

Khỏang thời gian đó, đầu tư vào học HTML, CSS box-model là mình đã có được những bước tiến đầu tiên trên con đường học lập trình web rồi đúng không nào!?

Tập trung, tập trung - ảnh minh họa

Rồi đến khi nghe tới Redux, lại tiếp tục search google để xem Redux là gì. Thế là một loạt bài viết tiếp tục xuất hiện. Và thay vì xắn tay vào học và dùng Redux, mình lại lạc lối lan man sang các bài viết khác như: “Có nên sử dụng Redux”, “Context thay thế Redux”, “Redux hay Mobx”,…

Nghĩ lại thật bậy bạ hết sức ^^

Túm lại: Bám sát theo lộ trình đã vạch ra, tạm thời bỏ ngoài tai các ý kiến trái chiều hay các bài viết so sánh này nọ. Những bài viết đó hay, mình đồng ý, nhưng nó không giúp gì cho bạn ở level này đâu. Bạn hoàn toàn có thể cải thiện, tìm hiểu thêm trong suốt quá trình học và làm

3.Học theo structure của khóa học

Vạch ra con đường tổng quan và bám sát theo nó, nghe thì có vẻ đơn giản, nhưng thật ra cực kỳ khó đối với các bạn mới bắt đầu.

Nếu may mắn, bạn có người mentor, chỉ dẫn đường đi thì đó là một lợi thế lớn. Nhưng không phải ai cũng có được may mắn đó.

Nếu có một người chịu vui vẻ giải thích hay ngồi chỉ dẫn bạn cách học, đường đi nước bước, nên tập trung cái nào, tạm thời bỏ qua cái nào, thì bạn nên cảm ơn trời đất và tỏ lòng biết ơn khôn xiết vì gặp được một người quá tốt.

Nhưng thường thì sẽ không như vậy. Ai cũng có công việc riêng, không thể suốt ngày đi chỉ dẫn cho một thằng em út suốt ngày theo hỏi những câu hỏi ngớ ngẩn được.

Nên có một phương án tối ưu hơn mà bản thân mình rất thích. Đó chính là: học theo structure của khóa học

Trình độ tiếng Anh khá, bạn có thể nghe hiểu tiếng Anh tốt? Hãy mua ngay 1 khóa học trên udemy hoặc trên các platform khác. Chỉ 10 - 15$, một con số rất đáng để đầu tư.

Chưa đủ trình độ để nghe tiếng Anh hoặc nghe chậm, quá tốn thời gian? Hãy chọn các khóa học của các anh chị dev Việt Nam, hoặc thậm chí có điều kiện hơn hãy đăng ký luôn một lớp offline càng tốt.

Vì sao ư? Vì toàn bộ structure của khóa học là kinh nghiệm xương máu của các anh chị dev đó. Thường thì cách bố trí các section sẽ có nét tương đồng với cái Road map mà mình đã đề cập đến phía trên kia.

Lấy ví dụ về React, đi theo structure của khóa học trên udemy, bạn sẽ đi từ local state của một component, đến lúc dùng đủ nhiều và cảm thấy rắc rối trong việc quản lý state, lession tiếp theo sẽ bắt đầu đưa Redux vào, rồi kèm theo giải thích tại sao, điểm mạnh, điểm yếu, … Đây chính là cách bạn học.

Nếu không đi theo structure trên, bạn sẽ dễ rơi vào vòng lặp, loay hoay mãi tìm không thấy lối ra.

Túm lại: Nên học theo sturcture của các khóa học có sẵn, vốn đã đầy đủ và được sắp xếp hợp lý. Với internet ngày nay thì chỉ cần vài giây search là sẽ ra ngay một structure đầy đủ. Bạn có thể tận dụng các platform học tập nổi tiếng như udemy, kinh nghiệm là cứ top rating và nhiều người đăng ký thì chọn. Nếu có điều kiện hơn một xíu nữa, hãy đầu tư luôn một khoản tiền để học những khóa học như vậy. Đây sẽ là bước tiến đầu tiên vô cùng quan trọng trong suốt quãng đường học và làm của bạn.

4.Học cũng như luyện võ trong phim kiếm hiệp. Người phàm thì sẽ khó hiểu lời của cao nhân.

Đã bao giờ bạn đọc trên mạng hay nhận những lời khuyên từ các anh dev senior mà bản thân bạn nghe cứ ù ù cạc cạc rất khó hiểu, thậm chí còn thấy nó có vẻ vô lý không?

Em phải nắm rõ design pattern.

Công nghệ không quan trọng, nó cũng chỉ là công cụ, em học cái nào cũng được.

Redux saga, redux thunk hay gì cũng được, tựu chung nó cũng chỉ là middle ware để handle các action bất đồng bộ thôi hà.

Và rất nhiều những lời khuyên khác nhau.

Thật ra, những lời khuyên trên là hoàn toàn đúng.

Nhưng đó là dưới góc nhìn, cách suy nghĩ của một dev lâu năm, một người đã có bản lĩnh, kinh nghiệm và lượng kiến thức to lớn.

Mình thích lấy ví dụ về các bộ phim kiếm hiệp.

Các vị cao nhân đắc đạo, võ công cao cường cũng như senior dev vậy.

Họ sống rất nhẹ nhàng, rất ít khi thấy vò đầu bứt tai, những lời giáo huấn của họ nghe cứ đơn giản, dễ dàng đến lạ thường, nhưng mỗi lần nghe xong đọng lại trong lòng của biết bao kẻ phàm nhân (là fresher, junior dev) biết bao suy nghĩ và thắc mắc.

Đôi khi, senior dev sẽ quên đi cái cảm giác của một fresher còn bỡ ngỡ là sẽ như thế nào.

Cơ bản họ đã trải qua khoảng thời gian đó khá lâu, và mọi thứ giờ đây đã trở nên dễ dàng rồi, nên phần nhiều những vấn đề tưởng chừng đơn giản với các anh ấy lại là khó khăn rất lớn với người mới bắt đầu.

Cái sai lớn nhất của dev mới đó là vì quá bỡ ngỡ, chưa có cái nhìn tổng quan, nên cứ hễ nghe một lời khuyên vô thưởng vô phạt là sẽ lao vào tìm kiếm say sưa, học không có mục đích.

Ví dụ đang tìm hiểu và làm redux-thunk, chưa thuần thục thì lại vô tình đọc được một bài nào đó nói redux-saga “ngon” hơn, “test-driven” hơn. Thế là lại nhảy phốc qua tìm hiểu ngay redux-saga, hay thậm chí ngồi dành 1, 2 ngày liên chỉ để tìm đọc các bài viết so sánh redux-saga hay redux-thunk, bạn nên chọn cái nào, bla, bla.

Ở giai đoạn này mình xin khẳng định là Công nghệ có quan trọng. Nếu bạn muốn có nhiều cơ hội việc làm, hãy học và làm những thứ mà thị trường, ngành công nghiệp đang cần. Hay nói thẳng ra là học React.

Thay vì lăn tăn chuyển qua chuyển lại, học React được 1, 2 tháng rồi quay qua Angular, xong rồi tới Vue. Hãy tập trung học tốt, tìm hiểu chuyên sâu về một thứ.

Công nghệ không quan trọng, nó cũng chỉ là công cụ, ... là những lời khuyên đúng... cho tương lai. Bạn của sau này sẽ cần nó, còn hiện tại thì không, hãy tập trung.

Chỉ cần bạn hỏi ý kiến, cách học và làm của một người có thiên hướng học rộng, học để làm freelancer các thứ, hay giữa một người thích học, tìm hiểu sâu, đọc source code các library là một ví dụ. Thì ngay lập tức bạn sẽ nhận về những lời khuyên, ý kiến khác nhau.

Không cần quá sâu đâu em. Quan trọng là biết làm để kiếm job, kiếm được tiền

Học sâu vô em. Biết làm thôi thì ai cũng làm được, phải hiểu tại sao!?

Đọc source code React? Nó có làm em kiếm được cơm hay không? Trong khi còn có hàng tá thứ phải học.

Túm lại: Tập thói quen tư duy phản biện. Lời khuyên rất dễ cho, ai cũng có thể nói được. Nhưng bản thân chúng ta mỗi khi nghe phải biết chắt lọc, cố gắng có cái nhìn tổng quan, suy nghĩ xem liệu lý lẽ đó có thích hợp với mình ở thời điểm hiện tại hay không. Cố gắng bám sát lộ trình, không lan man.

Học cũng như luyện võ, phải đi qua từng cấp độ. Người thường mà đùng một cái luyện mật tịch, thì không sớm thì muộn, cũng sẽ bị tẩu hỏa nhập ma.

Cứ bình tĩnh chăm chỉ và cố gắng mỗi ngày, bạn sẽ sớm nâng cao trình độ.


Tạm kết: Trên đây là những chia sẻ mang tính cá nhân mà bản thân mình tự đúc kết ra trên con đường web development. Đây mới chỉ là phần một, các bạn đón đọc phần 2 nhé.

Nơi mình sẽ chia sẻ về:

  • Học thôi chưa đủ, bạn phải thực sự làm
  • Tìm mentor
  • Tư duy tích cực
  • Bạn sẽ tiến rất nhanh khi tinh thần thoải mái
  • Đầu tiên đừng đọc document, sau đó hãy đọc document.

Hẹn gặp lại các bạn!