paint-brush
Thử thách mã không gian lận - Tôi đã sống sót như thế nào trong dự án Odintừ tác giả@codebyblazej
248 lượt đọc

Thử thách mã không gian lận - Tôi đã sống sót như thế nào trong dự án Odin

từ tác giả CodeByBlazej5m2024/06/08
Read on Terminal Reader

dài quá đọc không nổi

Trong bài đăng đầu tiên của mình, tôi sẽ đi sâu vào những điểm cao và thấp của việc học viết mã, bao gồm cả dãy Fibonacci phức tạp và tầm quan trọng của sự kiên trì. Tôi mong muốn truyền cảm hứng và giải trí cho các lập trình viên đồng nghiệp, đặc biệt là những người mới bắt đầu, bằng cách chia sẻ kinh nghiệm, mẹo và thỉnh thoảng cười về những khó khăn của chính tôi. Hãy tham gia cùng tôi khi tôi điều hướng thế giới thú vị của mã hóa và ghi lại từng bước trên đường đi.
featured image - Thử thách mã không gian lận - Tôi đã sống sót như thế nào trong dự án Odin
CodeByBlazej HackerNoon profile picture

Xin chào, tôi là Blazej. Khi bắt đầu hành trình học viết mã, tôi đã tự hứa với mình rằng mình sẽ không gian lận.

Ý tôi là gì khi nói gian lận?

Khi giải bất kỳ bài tập nào, tôi đã tự hứa với mình rằng tôi sẽ không tra cứu lời giải cho đến khi mã của tôi hoạt động.

Chọn dự án Odin

Tôi quyết định tham gia The Odin Project vì tôi cảm thấy mệt mỏi với các khóa học và video trên YouTube của Udemy, những khóa học này không tệ chút nào, nhưng tôi cảm thấy như chúng chẳng đưa tôi đến đâu cả.


Tôi cảm thấy khó tập trung chỉ sau ba phút xem mỗi video và suy nghĩ của tôi bắt đầu trôi đi. Nhưng đây là chủ đề của một bài viết blog khác.

Đi sâu vào dự án Odin

Chương trình giảng dạy của Dự án Odin dựa trên việc đọc tài liệu và giải bài tập, lập dự án, đọc thêm tài liệu, giải nhiều bài tập hơn nữa và xây dựng nhiều dự án hơn nữa, như bạn đoán, sẽ trở nên khó khăn hơn khi bạn tiến bộ.


Mọi thứ đều ổn cho đến khi tôi đạt đến điểm này:


Bài tập HÀNG ĐẦU



Thử thách của Palindromes và Fibonacci

Tôi nhớ đó là một ngày cuối tuần dài và tôi đã dành cả 4 ngày để cố gắng giải quyết mọi việc. Một số bài tập đầu tiên diễn ra suôn sẻ, nhưng tôi bị mắc kẹt ở Palindromes (cuối cùng tôi đã giải được) và Fibonacci.


Ồ vâng… Đó là một kẻ giết người. Nhưng bạn có thể hỏi, không có bài tập nào được liệt kê trong hình trên phải không? Có, nhưng khi bạn đi tới kho lưu trữ được đề cập, bạn sẽ tìm thấy chúng ở vị trí thứ 8 và thứ 9.


Tôi mất quá nhiều thời gian để giải các bài tập trước đó đến nỗi tôi quên mất nơi mình phải dừng lại và cứ thế tiếp tục.


Kẻ giết người



Cuộc đấu tranh với Fibonacci

Tôi đang suy nghĩ rất nhiều, uống hết trà này đến trà khác. Thời gian trôi qua, suy nghĩ của tôi bắt đầu thay đổi mạnh mẽ từ “tất cả đều đơn giản, tôi sẽ làm được” thành “chắc có gì đó không ổn, quá trình suy nghĩ của tôi có vẻ đúng, chắc chắn trong bài tập phải có sai sót nào đó. Có lẽ tôi nên tìm kiếm giải pháp?”


Một số nỗ lực của tôi


Khi học, tôi sử dụng kỹ thuật Pomodoro : tập trung 25 phút sau đó nghỉ 5 phút.


Pomodoros đi ngang qua và tôi đã cố gắng đạt được điểm mà tôi có thể nhận được một số loại chuỗi Fibonacci… nhưng có vẻ như nó vẫn không đúng.


Fibonacci bị phá vỡ



Khoảnh khắc cám dỗ

Vào lúc này, tôi nghĩ, “Được rồi, mình đã đến điểm này rồi, có lẽ sau này tôi sẽ học được điều gì đó, vì vậy tôi có thể xem giải pháp và tiếp tục”.


Tôi đã làm như tôi nghĩ… Tất nhiên, tôi nói, “Ồ đúng rồi, việc đó thật dễ dàng và hợp lý. Được rồi, chúng ta tiếp tục nhé!”

Nhận ra sai lầm

Sau Fibonacci, có một bài tập về đối tượng cần giải và tôi rất bối rối vì chúng tôi vẫn chưa tiếp cận được các đối tượng tại điểm đó trong TOP.

Và tôi đã đúng, tôi đã nhầm lẫn khi học trước một vài bài học…


Nó chỉ đảm bảo với tôi rằng gian lận là điều đúng đắn và tôi sẽ sớm học được điều gì đó mới giúp tôi giải quyết nó sau này hoặc dễ dàng hơn. Haha!

Trở lại Palindromes và Fibonacci

Một vài bài học trôi qua, khiến tôi mất khoảng một tuần để học hết và tôi đã quay lại Palindromes và Fibonacci. Tuy nhiên lần này có hơi căng thẳng một chút…


Palindromes diễn ra suôn sẻ và tôi ngồi xuống thực hiện Fibonacci. Tôi phải nói ở đây là khi tôi mở file bài tập thì tất nhiên là nó đã được giải nên tôi cố gắng không nhìn vào mã nhiều.


Tôi vừa đánh dấu mọi thứ và xóa nó. Tuy nhiên, tôi nhớ rằng dòng đầu tiên là:


 let fib = [];

Cuộc đấu tranh cuối cùng

Tôi bắt đầu giải quyết nó. Không có gì hiệu quả. Tôi quyết định làm bữa tối và đi dạo. Mỗi lần tôi rời xa máy tính, não tôi lại quay về Fibonacci.


Tôi cảm thấy như có VSCode chạy trong đầu. Tôi thề, thay vì nhìn thấy khoai tây chiên đang nấu trong nồi chiên không khí của mình, tôi chỉ có thể nhìn thấy các dòng mã Fibonacci (đặc biệt là vòng lặp đẫm máu và câu lệnh 'if').


Tất nhiên, cảm giác buồn cười là tưởng tượng ra một giải pháp nào đó chỉ để nhận ra 5 giây sau rằng tôi đã thử điều này hoặc đơn giản là nhận ra rằng JavaScript hoàn toàn không hoạt động như vậy!!!

Khoảnh khắc đột phá

Tôi ăn rồi đi dạo. 1 giờ đi bộ = 1 giờ suy nghĩ sâu sắc. Tôi đã viết 3 giải pháp mới trong ghi chú của mình và chắc chắn 100% rằng chúng sẽ hiệu quả.


Ghi chú trên điện thoại của tôi



Đoán xem cái nào trong số đó đã thành công. Vâng, bạn nói đúng, KHÔNG! Tôi vẫn nhận được kết quả tương tự. Vào lúc đó, tôi nghĩ đến việc thêm thứ gì đó vào mảng.


Tôi biết tôi cần một cái gì đó ở đó. Nhưng sâu trong tâm trí tôi, tôi nhận được câu trả lời: “Khi bạn xóa bài tập đã giải trước đó, mảng đó trống rỗng.” Tôi chỉ lừa dối chính mình thôi.

Bám sát các nguyên tắc của tôi

Tôi quay lại đọc tài liệu và một số bài báo, nhưng tôi biết lần này mình không thể gian lận được. Tôi đã học được rằng gian lận không giúp ích gì về lâu dài và tôi sẽ phải đối mặt với vấn đề tương tự sau này nếu bây giờ tôi gian lận.


Ba giờ trôi qua. Tôi không còn nản lòng nữa. Tôi muốn vấn đề này được giải quyết và tôi muốn hiểu mình đã làm gì sai. Tôi cũng cảm thấy như thể tôi biết vòng lặp này hoạt động như thế nào và có vẻ như tôi đã thử mọi cấu hình với các câu lệnh có điều kiện.

Yêu cầu giúp đỡ

Giải pháp duy nhất tôi nghĩ đến trong đầu là tìm kiếm sự trợ giúp trên kênh Discord.


Cầu xin sự giúp đỡ


Vui lòng…



Não tôi đã bỏ cuộc



Đúng!



Cảm ơn!!!



Giải pháp và bài học kinh nghiệm

Tôi đã giải quyết nó!!!! Hãy nhìn xem, tôi phải đặt các giá trị vào mảng đó và kéo điều kiện ra trước vòng lặp. Đó là những gì bộ não của tôi thực sự đã nói với tôi khoảng 10 giờ trước đó.


Nhưng vì đã nhìn ra được một chút giải pháp nên tôi cứ tự dối lòng mình là không làm, tin rằng mọi chuyện sẽ khác. Ơ.


Giải pháp!



Phần kết luận

Tất nhiên, bài học thứ hai tôi học được trong ngày hôm nay là yêu cầu sự giúp đỡ. Nhưng tôi thực sự khuyến khích mọi người trải qua quá trình đọc tài liệu và cố gắng tự mình giải quyết mọi thứ, đặc biệt là khi họ vẫn đang học.


Tôi đã học được rất nhiều điều trong quá trình này và tin rằng mình sẽ không mắc lại sai lầm này nữa.


Bây giờ, tôi đã sẵn sàng hơn nhiều để vượt qua một bức tường khác bằng một số bài tập khác. Bây giờ tôi đã quen với quá trình này!