Con đường đi đến lập trình của mình

Cũng vừa qua kì tuyển sinh đại học chưa lâu, mình thấy một số bạn còn hoang mang tự ti về khả năng lập trình của mình. Bài viết này sẽ kể lại toàn bộ câu chuyện từ lúc mình mới tiếp xúc lập trình cho tới khi thay đổi tư duy như bây giờ. Hi vọng sẽ giúp truyền cảm hứng, động lực cho bạn trong ngành, trái ngành muốn học IT.

Học C++ — Biết Cout nhưng lại không biết Cin

Bạn nào học C++ chắc cũng biết Cout và Cin luôn luôn là một cặp nhập xuất trong console. Biết Cout thì làm gì mà không biết Cin được? Nhưng điều đó là sự thật. Mình từng học C++ để thi một cuộc thi giải thuật lớp 12 ở TPHCM. Trong 3 tháng đó từ chưa biết lập trình chứ nói gì giải thuật mà đã phải học quy hoạch động, đệ quy, thuật toán, …

Nhiều bạn biết mình chắc đang nghĩ “Ông này có giải thì chắc cũng loại quái vật học đâu hiểu đó". Nhưng mình học thuộc thuật toán :(. Tới giờ trong đầu mình vẫn còn vọng lại câu “Chia nhập, xuất, xử lí, include fstream, iostream, …". Do kì thi đó là nhập dữ liệu từ file và xuất ra console bằng Cout. Vì vậy mình chỉ nhớ mỗi nhập file, Cout và công thức để xử lý. Khi tham gia cuộc thi sau ở Quận thì đề lại yêu cầu là nhập từ console (Cin đó các bạn) thì mình giải không được và 0 điểm tròn trĩnh.

Mình là điển hình của việc lậm quá vào cú pháp, học vẹt.Mình là điển hình của việc lậm quá vào cú pháp, học vẹt.

Bị tâm lý khi học ngôn ngữ mới, hướng lập trình mới

Câu chuyện cấp 3 của mình đã xong ở trên nhưng hậu quả liên tục tận 1 năm sau. Cũng may mắn là mình trước khi chọn ngành đã tìm hiểu kĩ càng, nên mình biết được đã theo ngành IT thì học trong trường thôi cũng chưa đủ đâu, phải học thêm bên ngoài ngay từ bây giờ (Đây là điều mà hiện tại mình vẫn luôn nhắc các bạn). Thế là mình đăng ký một khóa tư duy và Front End ở một trung tâm.

Định hướng và thực hiện sớm sẽ mang lại lợi ích cực lớn.Định hướng và thực hiện sớm sẽ mang lại lợi ích cực lớn.

Khi được tư vấn về khóa Front End, anh sale mới bảo là khóa này học Java em nhé. Mình ban đầu còn từ chối để giữa năm sau học vì C++ mình học thuộc chết lên chết xuống, quên cũng hơn 50% rồi mà giờ học ngôn ngữ mới sao được. Anh sale cũng bảo em cứ học đi, … (Nói chung khúc này là bao dụ dỗ và mình cũng bị dính).

Vào học Java thì mình lại theo thói cũ, học thuộc từng cú pháp, class mà mình còn tự gõ chứ không phải tạo tự động đâu. Việc học càng áp lực hơn vì khi đó Java là ngôn ngữ mới, muốn đi làm thì phải học thêm nhiều kĩ năng, kiến thức mới như OOP. Với mình khi đó thì việc học Java như địa ngục vì quá nhiều thứ cần nhớ, cần thuộc lòng.

Đổi mới tư duy khi học Front End

Mình kết thúc khóa Java một cách nặng nề. Hôm nào cũng phải ngồi ôn vì chỉ cần bỏ 1 tháng là quên hết kiến thức. Sau đó mình lại mang tâm trạng thất vọng đến với khóa Front End. Việc trong vòng 2 ngày học HTML, CSS đã làm mình suýt chuyển ngành một lần (Quá nhiều kiến thức). Nhưng lỡ đóng tiền rồi nên thôi mình cũng ráng xong hết cho đáng tiền ba má.

Bạn nào đang làm Front End chắc cũng biết. Đã là Front End thì không có đúng hoàn toàn. Chỉ cần ra đúng kết quả là đã đúng còn cách làm sao thì miễn clean là được. Việc này đối với mình khi đó mà nói thật sự là sốc văn hóa luôn :)). Vì tính mình đã học thuộc nên trong đầu mình chỉ có 1 đúng 2 sai chứ học thuộc thuật toán mà sai 1 tí là chương trình không chạy hoặc chạy sai rồi.

Trong quá trình học Front End, khi mà mình đã hỏi ngu rất nhiều câu như là “Padding phải 20px còn margin phải 30px mới chuẩn à anh", “Khúc này phải bao nhiêu div lận anh", … Thì ông mentor khi đó không biết là hơi cục hay sao nhưng phán một câu mình nhớ mãi “Em cứ làm miễn ra là được, cách nào thì kết quả cũng là nó". Nghe thì dễ nhưng để khi đó mình thật sự thay đổi tư duy cũng cần trải qua một thời gian dài 3–4 tháng luyện tập với việc code freestyle (Miễn ra kết quả là được nhưng code không clean tí nào). Về sau tất nhiên khi biết clean code mình đã code sao cho clean nên mấy bạn không nên học theo và lậm chuyện freestyle nhé.

Front End đã giúp mình tháo bỏ tư duy sai lầm cũ.Front End đã giúp mình tháo bỏ tư duy sai lầm cũ.

Kết luận

Đây là con đường cho tới khi mình đã bắt đầu thật sự “học" lập trình. Từ sau khi tháo bỏ tư duy sai lầm là một quãng đường rèn luyện kiên trì của mình để được nhiều kiến thức như hiện tại. Mục đích bài viết để muốn bạn hiểu rằng, không cần phải giỏi xuất sắc từ cấp 3 mới xứng đáng học lập trình. Vì đôi khi giỏi lập trình cấp 3 toàn học vẹt cả đấy hiểu méo gì đâu (Như mình). Bạn chỉ cần xem ngôn ngữ lập trình như một công cụ giúp bạn nói lên giải pháp trong đầu mình, cùng việc kiên trì luyện tập thì bạn cũng học lập trình được thôi.

Happy Coding!