Virya Technologies
Top 5 sai lầm thường gặp về lập trình và học công nghệ
Top 5 sai lầm thường gặp về lập trình và học công nghệ
Top 5 sai lầm thường gặp về lập trình và học công nghệ là chuyện đội ngũ chúng tôi gặp lại mỗi mùa tuyển thực tập. Có bạn mở bốn khóa học cùng lúc rồi bỏ dở cả bốn. Có bạn xem video cả tháng mà chưa tự tay viết nổi một hàm. Cũng có bạn vừa thấy dòng chữ đỏ là copy nguyên đoạn code đi hỏi khắp nơi. Những lỗi này không liên quan tới trí thông minh. Chúng chỉ là thói quen sai, và thói quen thì sửa được.
Bài này chúng tôi viết cho những ai đang tự học lập trình, dù trái ngành hay đang là sinh viên công nghệ. Bạn đọc để soi lại cách mình đang học, chứ không phải để nghe giảng lý thuyết. Mỗi sai lầm dưới đây đều có dấu hiệu nhận biết rõ ràng và hướng sửa cụ thể. Làm được ngay trong tuần này, không cần chờ đến khóa học tiếp theo.
Vì sao ba tháng đầu quyết định bạn đi tiếp hay dừng lại
Ba tháng đầu là giai đoạn dễ mất đà nhất, không hẳn vì kiến thức quá khó. Lý do thật nằm ở chỗ bạn không nhìn thấy tiến bộ của chính mình. Chúng tôi từng theo dõi một bạn học rất chăm, mỗi tối hai tiếng, mở song song ba khóa. Sau ba tháng, bạn ấy vẫn không dựng nổi một trang web đơn giản. Điều đáng nói là bạn ấy hoàn toàn không lười. Bạn ấy chỉ học sai cách.
Kiểu người thứ hai thì ngược lại. Họ chọn đúng một ngôn ngữ, học chậm hơn, nhưng sau hai tháng đã có một công cụ nhỏ chạy được trên máy. Khác biệt giữa hai kiểu người này không nằm ở năng lực trời cho. Nó nằm ở việc họ có tạo ra được một điểm thành công nhìn thấy được hay không. Khi không có gì để bám vào, động lực tụt rất nhanh.
Chúng tôi nói trước cho rõ, không có con đường duy nhất để học lập trình. Người học qua khóa có lộ trình, người học bằng cách sửa website của chính mình, người mò mẫm qua dự án thật của công ty. Cách nào cũng đi được, miễn là bạn nhận ra mình đang kẹt ở đâu. Nếu bạn là chủ hộ kinh doanh tự dựng website bán hàng, những lỗi dưới đây cũng áp dụng y hệt. Chỉ khác là hậu quả rơi vào đơn hàng thay vì điểm số.
Sai lầm #1: Học quá nhiều ngôn ngữ cùng lúc
Đây là sai lầm phổ biến và nặng nhất với người mới. Ngôn ngữ lập trình hiểu đơn giản là bộ chữ và luật để bạn ra lệnh cho máy tính làm việc, ví dụ JavaScript, Python hay Java. Nhiều bạn nghĩ biết nhiều ngôn ngữ là lợi thế. Trong giai đoạn đầu, điều đó lại phản tác dụng. Mỗi ngôn ngữ có cú pháp, cách tổ chức dữ liệu và cộng đồng riêng. Học song song nhiều thứ khi chưa có nền tảng khiến não quá tải, dẫn tới nhớ lẫn lộn và cuối cùng không tự làm được gì.
Dấu hiệu rất dễ nhận ra. Bạn mở ba bốn khóa học trên ba bốn nền tảng khác nhau. Mỗi khóa học vài buổi, thấy khó thì chuyển sang khóa khác vì nghĩ ngôn ngữ kia dễ hơn. Sau một tháng, bạn có bốn trang ghi chú dở dang và không cái nào xong. Cách sửa cụ thể là chọn một ngôn ngữ duy nhất, học đến khi tự làm được một project nhỏ. Project nhỏ nghĩa là thứ chạy được trên máy bạn, dù chỉ là công cụ tính tiền hay trang hiển thị danh sách. Xong một project nhỏ, bạn sẽ biết mình đang đứng ở đâu. Lúc đó việc chuyển hướng mới có ý nghĩa.
Chúng tôi thường khuyên chọn ngôn ngữ theo đích đến thay vì theo độ hot. Muốn làm web thì bắt đầu với HTML, CSS và JavaScript. Muốn xử lý dữ liệu hoặc làm backend, tức phần xử lý phía sau, thì Python là lựa chọn thân thiện. Nếu bạn cần hình dung một lộ trình đi từ con số 0 trước khi cam kết, bài hướng dẫn lập trình Android cơ bản cho thấy các bước nối tiếp nhau, thay vì một danh sách ngôn ngữ dài dòng.
Khi nào một ngôn ngữ là đủ để đi xin việc
Nhiều bạn hỏi chúng tôi rằng biết một ngôn ngữ có xin được việc không. Câu trả lời phụ thuộc vào vị trí bạn nhắm tới. Với web front-end, tức phần giao diện người dùng nhìn thấy, HTML, CSS và JavaScript là điểm khởi đầu hợp lý. Framework là bộ khung có sẵn giúp viết nhanh hơn, nhưng nên đợi sau khi bạn nắm chắc ba thứ nền tảng. Học framework khi chưa hiểu JavaScript giống như học chạy khi chưa biết đi.
Với mảng dữ liệu hoặc backend, Python hoặc Java đủ để bạn xin thực tập. Nhà tuyển dụng cho vị trí thực tập thường không đòi hỏi bạn biết nhiều ngôn ngữ. Họ muốn thấy bạn tư duy được vấn đề và tự học được công cụ mới. Trong nhiều buổi phỏng vấn mà đồng nghiệp chúng tôi tham gia, ứng viên kèm một hai project thật luôn gây ấn tượng hơn ứng viên liệt kê sáu ngôn ngữ trong CV.
Chúng tôi nhớ một ứng viên từng khiến cả nhóm bất ngờ. Bạn ấy làm một trang web nhỏ để cả nhà ghi chú lịch uống thuốc. Công cụ chỉ gồm HTML, CSS và một chút JavaScript. Nhưng bạn ấy giải thích được từng dòng code, biết chỗ nào mình còn yếu, và nói rõ sẽ học gì tiếp theo. Đó là tín hiệu của người đi làm được, không phải của người học thuộc lòng. Muốn biết thêm các kỹ năng nền mà thị trường Việt Nam đang chờ đợi, bạn có thể đọc bài học lập trình mobile cần biết những gì để đối chiếu với thực tế tuyển dụng.
Sai lầm #2: Chỉ đọc và xem, không gõ code
Đây là lỗi mà chính đội ngũ chúng tôi từng mắc thời mới học. Bạn xem video, thấy giảng viên gõ từng dòng, hiểu hết, gật gù. Đến lúc mở editor, tay bạn đứng hình. Dấu hiệu này không phải dấu hiệu của người kém thông minh. Nó là dấu hiệu của việc bạn đang trộn lẫn hai kỹ năng khác nhau.
Đọc và xem là kỹ năng nhận biết. Bạn thấy quen mặt, hiểu ý, nghĩ rằng mình làm được. Viết code là kỹ năng sản xuất, đòi hỏi nhớ cú pháp, xếp logic theo thứ tự và chịu được việc sai rồi sửa. Não người nhận biết nhanh hơn sản xuất rất nhiều. Vì vậy bạn có cảm giác đã hiểu, trong khi thực tế chỉ đang nhận diện. Đến buổi học sau, kiến thức đã trôi mất.
Cách sửa mà chúng tôi thấy hiệu quả là gõ tay lại từng ví dụ, tuyệt đối không copy. Gõ xong thì cố tình sửa vài chỗ để tạo lỗi, rồi đọc xem máy báo gì. Ví dụ, bạn đổi dấu ngoặc, xóa một dấu chấm phẩy, hoặc đổi tên biến. Việc tự tạo lỗi dạy bạn đọc thông báo lỗi nhanh hơn bất kỳ bài giảng nào. Kinh nghiệm này áp dụng cho mọi công cụ kỹ thuật, kể cả khi bạn chỉ muốn dựng một website bán hàng nhỏ chứ không nhắm thành lập trình viên chuyên nghiệp.
Trong các buổi kèm người mới, chúng tôi đặt một luật đơn giản. Sau mỗi video, bạn phải viết lại ví dụ mà không nhìn. Nếu không viết được, xem lại đoạn liên quan thay vì xem tiếp. Cách này chậm hơn lúc đầu nhưng tổng thời gian tiết kiệm hơn hẳn. Một người học đúng cách sau bốn tuần có thể tự làm một trang nhỏ. Người chỉ xem video sau bốn tuần vẫn phải mở lại bài cũ.
Nếu bạn đang tự học để dựng website cho cửa hàng, hãy nhớ rằng kỹ năng gõ tay còn quyết định tốc độ sửa lỗi sau này. Chúng tôi từng chứng kiến một chủ shop mất cả buổi tối chỉ vì dán nhầm một đoạn mã vào sai vị trí. Bạn ấy không thiếu kiến thức, chỉ thiếu thói quen gõ và kiểm tra từng bước.
Sai lầm #3: Không đọc lỗi, chỉ đi hỏi ngay
Thông báo lỗi là dòng chữ đỏ hiện ra khi code của bạn không chạy được. Người mới thường hoảng và copy nguyên đoạn lên nhóm để hỏi. Cách này tiện, nhưng lấy đi cơ hội học quan trọng nhất. Đọc lỗi là kỹ năng làm việc thật. Nó tách người đi làm được với người mãi dừng ở mức học viên.
Lý do nằm ở chỗ lỗi luôn chỉ đúng vị trí và loại vấn đề. Dòng đầu tiên thường cho biết loại lỗi, ví dụ thiếu dấu ngoặc hay gọi sai tên biến. Dòng tiếp theo cho biết file và số dòng. Chỉ với hai thông tin đó, bạn đã đủ tự tìm hướng giải quyết trong đa số trường hợp. Điều đáng lo là nếu bạn quen đưa lỗi cho người khác, đến khi làm một mình bạn sẽ chững lại.
Cách sửa chúng tôi vẫn hướng dẫn gồm ba bước. Bước một, đọc hai dòng lỗi đầu tiên, đừng đọc hết đống dài ngoằng. Bước hai, tách ra từ khóa chính và tìm kiếm. Bước ba, tự thử sửa ít nhất một lần trước khi hỏi. Khi hỏi, hãy kèm thông tin bạn đã thử gì. Cách hỏi này nhận được câu trả lời tốt hơn hẳn, vì người giúp biết bạn đang ở đâu. Nhiều bạn trẻ Việt Nam tiến bộ rất nhanh nhờ thói quen này, chỉ vài tháng là tự gỡ được các lỗi phổ biến.
Sai lầm #4: Học xong khóa nhưng không có project thật
Học xong một khóa dài mà portfolio trống là dấu hiệu rõ nhất của sai lầm này. Portfolio nói dễ hiểu là bộ sản phẩm bạn để nhà tuyển dụng xem. Người mới thường nghĩ mình chưa đủ giỏi nên chưa làm project. Thực tế ngược lại. Project là cách để biết mình còn thiếu gì. Không có project, bạn học mãi mà không biết điểm yếu thật của mình nằm ở đâu.
Chọn project theo đúng việc mình muốn làm, đừng chọn theo trend. Nếu muốn làm web, hãy làm một trang giới thiệu cá nhân. Nếu thích mobile, hãy làm một ứng dụng ghi chú nhỏ. Chúng tôi từng thấy một bạn làm công cụ chia tiền ăn cho gia đình. Công cụ chỉ có vài màn hình, nhưng bạn ấy nói được vì sao chọn cấu trúc dữ liệu đó. Đó mới là điều nhà tuyển dụng muốn nghe, chứ không phải số lượng công nghệ ghi trên CV.
Điều cần tránh là biến việc học thành chuỗi khóa học không điểm dừng. Mỗi project xong, hãy viết vài dòng về cái mình học được. Mấy dòng đó sẽ giúp bạn tự tin hơn nhiều khi phỏng vấn. Nếu bạn đang làm hộ kinh doanh nhỏ và tự dựng website, hãy tham khảo thêm danh sách công cụ thiết kế website và SEO miễn phí để chọn đúng thứ cần học, thay vì ôm đồm mọi công cụ có trên mạng.
Sai lầm #5: Không hiểu công cụ mình đang dùng
Có một khoảng cách lớn giữa người viết được code và người làm việc được. Công cụ là phần tạo ra khoảng cách đó. Git là hệ thống giúp lưu lại các phiên bản code, để khi làm hỏng còn quay lại được. Nhiều bạn mới chỉ biết hai lệnh add và commit, tức lưu thay đổi. Hỏi đến branch, tức nhánh làm việc song song, là im lặng. Đây là dấu hiệu bạn chưa hiểu công cụ, và nó sẽ cản trở bạn ngay khi làm nhóm.
Dấu hiệu thứ hai là không phân biệt được môi trường local và môi trường thật. Local là máy của bạn, nơi bạn thử nghiệm thoải mái. Môi trường thật là nơi người dùng truy cập. Rất nhiều sự cố xảy ra vì người mới sửa trực tiếp trên môi trường thật. Nếu bạn từng vô tình đẩy code lỗi lên trang đang chạy, bạn hiểu cảm giác đó. Với người đang quản lý một website nhỏ, việc phân biệt hai môi trường này còn quan trọng hơn, nhất là khi website gắn với đơn hàng và khách hàng.
Cách sửa khá gọn. Dành một buổi cho mỗi công cụ lõi. Terminal là cửa sổ dòng lệnh, nơi bạn gõ lệnh thay vì bấm chuột. Git là công cụ quản lý phiên bản. Editor là phần mềm bạn viết code, như VS Code. Học đủ để dùng, không cần thuộc hết. Chúng tôi thường ví ba công cụ này như dao, thớt và bếp trong nấu ăn. Không thành thạo thì vẫn làm được, nhưng rất chậm và dễ bỏ cuộc khi món khó.
Nếu công việc của bạn gắn với website nhiều, kiến thức hạ tầng cũng nên biết ở mức cơ bản. Bài VPS là gì và khi nào cần nâng cấp từ hosting giải thích hai khái niệm này bằng ngôn ngữ dễ hiểu. Hiểu được chúng giúp bạn tránh nhiều sự cố đáng tiếc, ví dụ sửa nhầm file trên máy chủ thật rồi không biết cách quay lại.
Lộ trình 8 tuần cho người mới bắt đầu
Lộ trình dưới đây là gợi ý của đội ngũ chúng tôi, không phải công thức duy nhất. Nó phù hợp với người có khoảng một tiếng mỗi ngày. Tuần một và hai, học cú pháp, kiểu dữ liệu và vòng lặp. Cú pháp là luật viết câu lệnh. Vòng lặp là cách bảo máy làm lại một việc nhiều lần. Bạn không cần hiểu sâu mọi thứ, chỉ cần viết được và chạy được.
Tuần ba và bốn, làm project nhỏ lặp lại. Nghĩa là bạn làm ba bốn bài tập nhỏ cùng dạng, không học thêm cú pháp mới. Giai đoạn này quan trọng hơn bạn tưởng. Nhiều người nhảy sang chủ đề mới vì thấy chán, rồi sau đó không nhớ nổi cái cũ.
Tuần năm và sáu, làm quen với git, tập đọc lỗi và viết README. README là file mô tả project, cho người khác biết cách chạy và mục đích của nó. Đây là kỹ năng bị xem nhẹ nhưng luôn xuất hiện ở nơi làm việc. Tuần bảy và tám, làm một project tự chọn và nhờ người đi trước review. Review nghĩa là nhờ người khác đọc code và góp ý. Bạn không cần làm đúng ngay, chỉ cần làm xong.
Muốn nâng độ khó lên mức thực tế hơn, bạn có thể tìm hiểu tiêu chuẩn cơ bản của một site nhỏ chạy tốt. Ngay cả người mới, việc biết sơ qua cách một website vận hành sẽ giúp bạn tự tin hơn khi làm việc với nhóm marketing hoặc thiết kế. Phần này không bắt buộc, nhưng là lợi thế nhỏ đáng có. Nếu bạn muốn nhìn rộng hơn về xu hướng công nghệ đang ảnh hưởng tới công việc lập trình, chuyên mục tin công nghệ của chúng tôi cập nhật khá đều và dễ theo dõi.
Vài lời nhắn cuối
Chúng tôi không định thuyết phục bạn rằng học lập trình là chuyện dễ. Nó không dễ, nhưng cũng không khó đến mức phải là thiên tài. Phần lớn người bỏ cuộc rời đi không phải vì kiến thức quá cao siêu, mà vì họ tích lũy quá nhiều lỗi nhỏ không ai chỉ kịp. Nếu bạn xử lý được năm lỗi trong bài này, bạn đã hơn phần lớn người mới cùng xuất phát điểm.
Tuần này hãy chọn đúng một ngôn ngữ. Gõ tay một ví dụ mà không nhìn. Và đọc hai dòng lỗi đầu tiên khi máy báo. Ba hành động nhỏ đó có giá trị hơn mười buổi xem video cộng lại. Học lập trình giống tập thể thao hơn là đọc sách. Bạn phải làm, sai, sửa, rồi làm lại. Càng sớm nhận ra điều đó, hành trình học công nghệ của bạn càng bớt mệt mỏi.