Lâu lâu, dạo quanh mấy forum và group, mình lại thấy vài câu hỏi ngộ ngộ dạng thế này:
Em không giỏi tiếng Anh thì có theo lập trình được không?
Em code không giỏi sau này có theo nghề được không?
Tư duy logic em không tốt chắc không vào FPT được huhu?
Người hỏi cũng nhiều, mà chắc anh em trong ngành đọc xong chỉ cười cho qua, hoặc chán méo thèm trả lời.
Vì thế, mình viết bài này để trả lời luôn 1 lượt những câu hỏi như thế. Nếu anh em thấy ai hỏi câu tương tự cứ share bài này ra là được nha :3.
Câu trả lời ngắn cho những câu hỏi dạng này là:Méo liên quan, bạn thích thì cứ làm thôi, đừng sợ đừng ngại mẹ gì hết.
Câu trả lời dài thì… dài lắm, các bạn đọc hết bài sẽ rõ nha.
Chuyện ông thầy chuyên Lý thời cấp 3
Thời cấp 3, mình may mắn đậu vào trường chuyên Nguyễn Du, vào lớp chuyên Lý. Giáo viên chủ nhiệm là một thầy đã hơi lớn tuổi, tóc cũng hơi bạc. Thầy đi đứng từ tốn, chậm rãi nên mấy đứa trong trường hay đặt biệt danh là thầy Asimo luôn.
Hồi đó, đa phần bọn lớp mình vừa sợ vừa không ưa thầy, vì thầy hay cho những bài cực khó, hoặc một đống bài tập để … thử thách học sinh.
Thường thường, cuối tuần nào bọn mình cũng phải ngồi giải hơn 20 bài Lý trong sách nâng cao (Tự luận chứ không phải trắc nghiệm nhé). Nhiều bài khó phèo râu, giải không nổi, phải lên lớp chờ có đứa nào giải được thì mượn tham khảo.
Kiểm tra cũng thế, có những đợt kiểm tra 15 phút, cả lớp (mang tiếng học sinh trường chuyên) đồng loạt ăn 3,4 điểm chỉ vì không giải nổi 1 bài thầy ra.
Hình “thầy Lý Asimo” của lớp mình – 10 năm trước
Tuy vậy, thầy có làm một điều khiến mình nhớ đến bây giờ. Mỗi lần kiểm tra bài tập, bắt lên bảng giải bài, hễ tụi mình nói là “khó quá, không làm được”; thầy đều nghiêm khắc nhắc lại chưa làm được, không phải không làm được!
Một phần nhờ câu nói chưa làm được, không phải không làm được đó, một phần nhờ sự “bạo hành” của thấy, bọn lớp mình thi Đại Học môn Lý toàn 7-9 điểm trở lên cả (Thời đó thi ĐH đề rất khó, điểm sàn ĐH tầm 13-14 điểm, học khá mới thi nổi trên 5đ mỗi môn).
Cách đây 10 năm, điểm sàn chỉ tầm 13-14 điểm. Vào Bách Khoa chỉ cần 18-20 điểm là đủ
Với nỗ lực, bạn có thể biến không thành có
Khi nói “không làm được“, ta thường mang ý định bỏ cuộc. Thay vì nói “không”, hãy nói “chưa”, bạn sẽ nhận ra mình có thể cố gắng nhiều hơn:
Thay vì không làm được, ta nói chưa làm được bài. Chỉ việc học thêm, cày thêm, xem sách giải sẽ làm được
Thay vì không biết bơi, ta nói chưa biết bơi. Chưa biết thì đi học bơi sẽ bơi được thôi
Thay vì code không giỏi, ta nói code chưa giỏi. Bạn sẽ thấy mình có thể tham khảo cách code giỏi, luyện tập code nhiều hơn.
Thay vì nói anh không có tiền, hãy nói anh chưa có tiền. Chờ anh ra trường đi làm lương nghìn đô sẽ biết tay nhai thôi!
Bạn thấy đấy, tất cả những thứ mà các bạn sợ như: Tiếng Anh không giỏi, logic không tốt… đều trở nên bớt đáng sợ hơn nếu các bạn thay chữ không bằng chữ chưa.
Thứ gì chưa giỏi, chưa tốt, chỉ cần bỏ thời gian cày cuốc thì nó sẽ tốt hơn.
Khả năng của bạn là không có giới hạn, chỉ có bạn là tự giới hạn khả năng của mình thôi.
Trừ những thứ bất khả kháng như: Em không nói được thì có đi làm rapper được không, hoặc em bị lùn 1m5 thì có làm phi công lái máy bay được không? Còn lại đa phần những thứ chưa tốt, chưa giỏi, các bạn đều có thể cải thiện được cả!
Đặt ra những câu hỏi như vậy, bạn sẽ có mục tiêu, có động lực để phấn đấu nha!
Tuy nhiên, cũng đừng mang tư tưởng: Đấy là tao không học/làm thôi, tao học thì cũng giỏi chứ có gì đâu!
Ai cũng có thể giỏi tiếng Anh, giỏi lập trình, … Nhưng chỉ những người thật sự nỗ lực, bỏ thời gian mới đạt được thành quả! Nếu cứ nghĩ là mình có thể, nhưng không chịu bỏ công sức ra thì bạn cũng sẽ … méo có cái gì đâu!
Lâu lâu mình cũng hay tự nhủ là mình tập thì cũng sẽ có 6 múi thôi, nhưng mà do không tập nên giờ vẫn không có! Các bạn đừng như mình!
Đấy, bài viết cũng dài rồi, hi vọng những lời khuyên trong bài có ích cho các bạn. Nếu thấy ai hay hỏi những câu như đầu bài thì nhớ quăng bài này cho họ đọc nha!
Cám ơn bạn Hoàng (và ông thầy chuyên Lý) về câu nói “Chưa chứ ko phải là Ko.” Giá như cô bồ cũ của mình học được câu này thì giờ đây mình đã cưới đc 1 ẻm đẹp như hoa hậu. Tuy nhiên, bây giờ ẻm cũng trên 5 bó như mình, thôi “con nạy mợ, mợ tha cho, đừng nhát ma con nhá.”
Tiếng Anh là chiếc xe hàng. Chiếc xe hàng chuyên chở yêu cầu của khách hàng về cho chúng ta sản xuất (coding). Trong khi sản xuất, chiếc xe hàng sẽ giúp ch/ta tìm kiếm tư liệu để làm ra thành quả. Sau khi xuất hàng, tiếng Anh giúp ch/ta mát xa lỗ tai khách hàng nếu như chẳng may bị bugs.
Nhưng nếu chỉ có tiếng Anh không thì người ta mướn quách người Nhật, người Sing, hay người Anh/Mỹ cho nó khoẻ, công đâu đi mướn anh Cà Ri hay nước mắm như mình? À, càng đào sâu vào mảnh đất CNTT, càng lòi ra đô la $$$. Và dĩ nhiên mảnh đất CNTT có nhiều anh đào thì khi gặp cái khó, mảnh đất khô cằn đầy sỏi đá, đấy là điểm thứ thách để loại ra mấy anh lười biếng hay bị dính chưởng tứ đổ tường. Những con đường bằng phẳng hay xuống dốc, có khối người dành nhau mà đi. Những cung đèo cong cua, leo dốc liên tục, và nếu như trên đình đèo có đô la $$$, cố lên anh em! Have a great weekend y’all!
---------------------
5 TRANG WEB CỰC HAY ĐỂ LUYỆN THUẬT TOÁN, HỌC LẬP TRÌNH
Hôm trước, mình đã có viết bài về 4 cách rèn luyện tư duy lập trình rồi! Do nhiều bạn muốn cụ thể, chi tiết những trang có thể học tập, luyện thuật toán nên hôm nay mình chia sẻ thêm cho các bạn 5 trang cực kì hay ho để luyện thuật toán/học lập trình nha!
Các bạn không cần phải dùng hết cả 2 làm gì, chỉ cần chọn 1-2 cái hay nhất là được rồi nhé!
Trang nay rất rất phổ biến trong giới lập trình, từ junior đến senior, từ developer đến mấy bác tuyển dụng.
Hackerrank có rất nhiều bài thuật toán, với độ khó từ thấp đến cao, đủ mọi thể loại thuật toán và cấu trúc dữ liệu (Thậm chí cả SQL cũng có luôn). Bạn sẽ viết code, chạy trực tiếp và xem kết quả, bí quá có thể qua mục discussion xem bà con giải ra sao nữa
Trong quá trình mình đi phỏng vấn, cũng có khoảng 3,4 công ty cho mình vào đây làm bài test (thuật toán + trắc nghiệm + tự luận). Do vậy, các bạn cứ lên đây làm bài tập nhiều cho quen dần cũng được nha.
Bên cạnh Hackeerank, Leetcode cũng là 1 trang rất hay để luyện thuật toán. Số lượng bài toán trên này không hề thua hackerrank, có 3 độ khó chính là Easy/Medium/Hard (Nhiều bài easy cũng khó vãi nồi ra).
Đợt mình đi phỏng vấn thuật toán thì cũng hay bị hỏi mấy bài tầm Easy để khởi động, Medium để đánh giá khả năng. Tầm Hard thì chắc cỡ phỏng vấn Facebook/Google họ mới hỏi.
Trang này còn có 1 cái khá hay ho là nó đo performance/runtime code của bạn, so sánh với người khác để xem code bạn chạy nhanh hay chậm, có thể optimize được hay không (cái này nhiều khi hơi lô, bấm Run lại tự dưng code nhanh hơn hẳn)
Nếu bạn đã từng bí khi làm bài thuật toán, từng Google tìm lời giải (giống mình ahihi), hẳn bạn sẽ thấy qua trang này một … vài lần.
Trang geekforgeeks này giao diện nhìn hơi lô (do dân Ấn Độ làm), bài tập cũng không phân loại rõ cho lắm. Tuy vậy, nó lại có … rất nhiều bài giải của những bài tập thuật toán thông dụng. Mỗi bài giải lại gồm nhiều cách giải khác nhau, đi kèm với độ phức tạp/memory của mỗi cách giải. Đọc rất là hay và bổ ích.
Do vậy, lâu lâu các bạn có thể trang này xem bài giải/code example của các thuật toán phổ biến nha!
Nếu như các trang trên để luyện thuật toán, thì Exercism lại là 1 trang khá hay để luyện thành thạo ngôn ngữ lập trình.
Trên Exercism cũng có nhiều bài tập, nhưng các bài tập này không quá nặng về thuật toán, mà nặng về cách dùng ngôn ngữ lập trình:
Sử dụng if/else, loop.
Xử lý ngày tháng, xử lý chuỗi
Cách phân tách method, tổ chức class
Cách xử lý lỗi, viết code bất đồng bộ…
Cá nhân mình từng dùng trang này để học thêm về Golang, Elixir. Vừa làm vừa xem thử bài giải của các bạn khác để … quay cóp, nhầm để học cách viết code!
Nếu các bạn đã lập trình 1 thời gian, muốn học ngôn ngữ mới, học cách tư duy mới thì cứ lên Exercism nhé!
Khác với những trang còn lại, trang này không có danh sách bài tập. Thay vào đó, bạn nhập email của bạn vào, mỗi ngày họ sẽ gửi cho bạn 1 bài thuật toán để làm thử.
Các bài này cũng mức Easy/Medium, được các công ty như Amazon/Google sử dụng để phỏng vấn ứng viên. Dùng gói Premium thì các bạn sẽ được gửi kèm lời giải luôn!
Bản thân mình dùng gói thường, sau đó nếu bí thì Google 1 hồi cũng ra đáp án bên Geekforgeeks. Nếu các bạn sắp đi phỏng vấn, ôn thuật toán thì đăng kí trang này, luyện trước 2-3 tháng là vừa nha!
Tạm kết
Trong bài này, mình đã chia sẻ cho các bạn 5 trang web cực hay ho để luyện thuật toán, học lập trình rồi nhé!
Cá nhân mình thấy không cần học quá nhiều, chỉ cần chọc Hackerrank/Leetcode nếu bạn muốn luyện trước khi phỏng vấn; hoặc chọn Exercism nếu cần học ngôn ngữ mới là được nhé.
Nếu bạn có kinh nghiệm nào hay ho ôn thuật toán. luyện phỏng vấn thì cứ chia sẻ trong comment nhé! Chúc các bạn ngày càng trâu, ngày càng giỏi, không sợ thuật toán nữa!
30s Quảng cáo: Anh Song bạn mình bên Cybersoft vừa cho ra mắt hệ thống học trực tuyến tại cyberlearn.vn với khá nhiều thứ hay ho:
Học qua dự án, hiểu tận rễ vấn đề
Lộ trình phù hợp cho cả bạn mới, trái ngành và nâng cao kỹ năng chuyên sâu
0 Comments