Từ "ghét cay đắng" đến đam mê giải thuật


Ha ha, nói đam mê nghe ghét nhỉ, cơ mà mục đích chỉ để giật title thôi :)))
Đôi lời về Algorithm.
Ngay từ đại học, tôi đã không thích gì môn giải thuật rồi, hay là môn “Cấu trúc dữ liệu và giải thuật” (DSA) đó.
Ừ, thì hồi đi học, việc giải toán với tôi rất là bình thường, có thể nói tôi cũng thích giải toán.
Tuy nhiên giải thuật thì khác, nó đòi hỏi bạn cần biết cách đưa suy nghĩ của mình chuyển sang suy nghĩ của máy tính, làm sao để máy tính có thể hiểu và thực hiện bài toán đó - và đây là điểm yếu của tôi.
Một phần tôi nhận ra là mỗi khi tôi không nghĩ được phương pháp để giải 1 bài thuật toán nào, thì tôi thật thất bại, không thông minh tẹo nào → “Oke, mình không hợp với ngành này rồi” → “trốn tránh nó thôi :(”.
Chắc có nhiều người giống tôi lắm, ha ha. Không dám đối diện với nó và đi tìm sự gì đó dễ dàng hơn ha.
Chặng đường chiến thắng bản thân.
Hmm, chiến thắng ở đây là mình dám đối diện với DSA rồi, thậm chí còn tự tin đứng trước nó nữa.
Bắt đầu từ đâu nhỉ, chắc là tầm khoảng 1 năm về trước, hồi tưởng lại chút nhé:
Yeb, không thuật toán, vẫn làm tốt công việc - đó là suy nghĩ của nhiều người, và nó đúng, tôi cũng thế.
Tôi đi làm cũng đã lâu, có kinh nghiệm của 1 Software Engineer rồi, và cũng không cần thuật toán gì, chỉ cần update các kiến thức về System, Network, Cloud … và nghĩ rằng chỉ cần thế là đủ.
“Nhàm chán”
Một ngày đẹp trời tôi cảm thấy vậy. Mọi việc nó cứ quanh quẩn, không phải không thấy mình phát triển, mà có phát triển, rất nhiều, nhưng có vẻ như thấy mình vẫn nhỏ bé thế nào vậy.
Khác với đa số người, đi làm để aim lương cao, tôi thấy hình như tôi không như vậy, lương cao tôi cũng muốn ,tất nhiên rồi :)), nhưng trên hết tôi muốn có tầm.
“Làm ở Google thì sao nhở? :)) Ảo game rồi”, không, tôi đang nghĩ mình có thể → Và hành trình ôn luyện Big tech bắt đầu.
“Bắt đầu từ đâu?”
Cộng đồng bảo là LeetCode nha!
Cho những ai chưa biết thì LeetCode là 1 site chuyên để luyện giải thuật, cũng là nơi mà đa số các công ty sẽ lấy câu hỏi ở đây để phỏng vấn ứng viên. Nó chưa hàng nghìn bài toán từ các dạng khác nhau.
Và ngay sau khi muốn bắt đầu tôi đã lên mạng để học lại kiến thức DSA từ con số 0, cách mà máy tính cấp phát bộ nhớ, cách array quản lý bộ nhớ, array động thì sao? Linked List là gì, rồi queue, stack, heap, … Và cuối cùng là tree, graph - những cái tôi đã muốn quên mất luôn khi tôi nghe đến trong trường.
Tuy nhiên lần này khác, tôi đã có thể đứng vững trước nó để học, vì tôn chỉ của tôi là: Người khác làm được, mình cũng làm được.
Tình yêu chớm nở
Recommend cho các bạn ở Việt Nam 1 kênh youtube mà tôi đã bắt đầu từ đó để học DSA: Ông dev - 1 người anh làm video về DSA khá hay mà đơn giản lắm, code bằng java và rất dễ hiểu để bắt đầu.
Sau khi học về DSA cơ bản, tôi bắt đầu hiểu dần về lộ trình, kiểu dạng: Array sinh ra rồi, nhưng có điểm yếu, nên mới sinh ra Linked List, rồi thì HashMap, HashTable sinh ra để làm gì..
“Càng ngày càng cuốn”
Oke, khi bạn hiểu về thứ bạn cho rằng nó rất kinh khủng, nhưng thực ra không, thì bạn càng thấy nó hấp dẫn ha. Tôi đã chiến thắng kể từ lúc này.
Tình yêu lụi tàn
T-T, nhưng nó chỉ dừng trên lý thuyết thôi, còn vào thực hành làm giải thuật nó là cơn ác mộng đối với mình. Mình lại tiếp tục 1 vòng luẩn quẩn: Bài làm được → rất vui, bài không làm được → buồn → “Mày không giỏi chút nào”.
Nó có nhiều bài oái oăm lắm các bạn, và con quái vật đó là “Dynamic Programing” - phát oẹ :)).
Vâng, đúng, trong 1 năm ôn luyện tôi chỉ luyện được 22 bài và bỏ đó.
Đường cùng
Một ngày đẹp trời, CV của tôi pass vòng HR screening của 1 BigTech. “Em ơi, em phỏng vấn được lúc nào?”
Câu hỏi đấy nó “=” với: “Chọn hôm nào để ôn kịp đây” là cái chắc :)).
Kết quả trong vong 4 ngày, tôi đã làm số bài leetcode bằng gấp đôi tôi làm được 1 năm vừa rồi, ha ha.
Nhưng đó là lúc tôi nhận ra tôi có thể làm được gần như mọi bài tôi đọc, tức là tôi đọc bài đó xong là có hương giải rồi. Và tôi nhận ra tôi đã quen với các dạng bài
Recommend nếu luyện DSA - hãy tham khảo site: NeetCode nhé các bạn. Ấn vào Link là ra Blind 75 bài của NeetCode khá rõ ràng để ôn các dạng bài.
Kết luận
Đến bây giờ tôi khá tự tin vào giải thuật, không phải tôi rất giỏi, mà vì tôi đã quen được các dạng bài khác nhau.
Không hứa chắc rằng tôi sẽ thành công với mục tiêu của mình, nhưng tôi nghĩ mình sẽ làm được thôi, chỉ là bao giờ sau khi bài viết này hoàn thành
Còn bạn? Keep doing well. Mong rằng bài viết này sẽ cho bạn động lực, vì tôi cũng xuất phát giống các bạn thôi. Hãy cùng chinh phục ước mơ nhé :D.
Subscribe to my newsletter
Read articles from Jasper TXV directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
