Người mới nên học gì?

Người mới nên học gì?
3.7k một tháng trước

Bài viết hướng đến người mới. Các bạn đang chuẩn bị học IT nói chung và các bạn bắt đầu tìm hiểu về cốt đơ nói riêng…

Mình là Dương, sinh năm 2004. Hiện tại mình làm lập trình được khoảng 3 năm. Hơi ít nhưng mình vừa vượt qua mức người mới. Dấu mốc quan trọng để mình nói vậy là mình vừa được giải Employee of the year của công ty mình. Mình nghĩ nó vừa đủ để tiến tới một mức cao hơn hihi.

Âu kê. Bài viết này chia làm một số phần nhỏ mà các bạn thường thắc mắc như sau:

  • Học lập trình có cần giỏi toán, tiếng anh không?
  • Mới học thì nên học ngôn ngữ nào?
  • Nên tập trung học gì để dễ phát triển?
  • Nên học Fullstack hay học tập trung một hướng?
  • Kinh nghiệm học của mình như nào?

Mình sẽ trả lời các câu hỏi này theo trải nghiệm cá nhân của mình, theo những gì mình hiểu được. Nên mong các bạn đọc zui zẻ, lấy nó làm ý kiến khách quan thui nhaaa <3


Học lập trình có cần giỏi toán, tiếng anh không?

Hmm, lập trình thì thiên về logic, tư duy giải quyết bài toán. Okey nếu có toán thì tốt đấy.

Nhưng nó không phải tất cả. Chủ yếu thì các bạn nên rèn luyện tư duy. Có nhiều cách khác mà. Ví dụ như:

  • Luyện giải thuật.
  • Luyện tình huống thực tế.
  • Học tư duy giải quyết từ các dự án lớn khác.

Luyện giải thuật như nào, luyện ở đâu?

Có kha khá trang web luyện giải thuật mà các bạn không khó để tìm trên mạng:

  • Hacker rank
  • Leet code
  • Code wars

Chủ yếu sẽ giúp bạn học cách phân tích bài toán, giải các bài toán thuần lập trình như: Vòng lặp, thuật toán, quy tắc code,… Chúng sẽ là nền tảng vững chãi giúp bạn code không cần nhìn bàn phím hehe


Luyện tình huống thực tế như nào?

Trước khi đọc phần này, hãy làm một phép toán nho nhỏ. Nếu bạn chưa đủ tự tin thì nên lặp lại bước 1 đã hehe:

Giả xử bạn chưa gõ quen. Bạn mất 10s để suy nghĩ, 50s để gõ theo suy nghĩ đó. Và bạn mất tổng 1 phút để viết xong một phần của đoạn chương trình mà bạn còn chưa biết chạy được hay không. Nhưng nếu bạn luyện gõ tốt rồi. Bạn chỉ cần 20s để gõ xong. Vậy là bạn đã tiết kiệm được một nửa thời gian hoàn thành công việc.

Bởi vậy mới nói luyện gõ tốt lắm luôn ắ <3

Okey quay lại vấn đề chính. Tình huống thực tế ở đây là gì?

  • Nếu bạn đang học HTML, hãy thử tạo một giao diện HTML
  • Nếu bạn học CSS, hãy thử tạo một trang web tĩnh
  • Nếu bạn đang học JS, hãy thử làm một số phần cơ bản như click click, hover hover,…

Khi bạn cảm thấy tự tin, hãy thử làm một dự án hoàn chỉnh. Sau mỗi lần làm, bạn sẽ thấy nó nhiều vấn đề vãiiiii. Và mỗi lần bạn tập trung fix vấn đề đó. Kinh nghiệm của bạn được tăng lên.

Mình có ông anh tên Hoàng An, có kênh youtube là Hoàng An Unicode hay nói câu này: Kinh nghiệm 5 năm hay kinh nghiệm 1 năm lặp lại 5 lần.

Ý nghĩa ổng hay bảo mình là: Nếu cứ làm đi làm lại mãi một loại dự án, một kiểu làm, một cách làm. Thì mãi mãi chỉ làm một việc, không gọi là nhiều năm kinh nghiệm được.

bởi vậy mới nói luyện các tình huống thực tế tốt lắm luôn ắ <3


Học tư duy giải quyết từ các dự án lớn khác là saoooo?

Sau khi giải quyết được nhiều bài toán thực tế, trong đầu các bạn sẽ hình thành một lối mòn tư duy về dạng bài toán đó. Hay gọi là kinh nghiệm giải quyết bài toán. Sau khi tập hợp được một kho tàng tri thức của mình, bạn nên học hỏi từ kho tàng tri thức của nhiều người khác. Và điển hình là các provjp thế giới.

Đó là lúc bạn tập trung vào đọc nhiều hơn là code(Ê nhưng phải code được rồi nha!!!). Tập trung vào đọc và học cách các provjp giải quyết bài toán này như nào, bài toán kia ra sao, cách giải này có lỗi gì, lỗ hổng như nào, blabla.

Hồi bữa mình còn làm trợ giảng ở F8 ấy, mình hay chỉ cho các anh, các chị học viên về cái này lắm luôn. Kiểu như đọc đoạn code của anh A, xong thấy đoạn này cấn cấn, thử xem cấn thật không, nôm na là mình review bài tập về nhà ấy. Hay lắm, mỗi lần như thế cả mình và các anh, các chị đều học được cái mới. Bản thân mình cũng học từ các diễn đàn như stackoverflow rồi reddit hay các blogger ở Việt Nam mình hay đọc của anh Nguyện ở laptrinhcuocsong hoặc xem diu túp của nhiều người khác nữaaaa.

Học của người giỏi hơn <3


Mới học thì nên học ngôn ngữ nào?

Thì biết là học của người giỏi hơn rồi. Nhưng học cái gì bây giờ mới được huhu :<

Nên cẩn thận vấn đề này. Nó vừa quan trọng, nó lại vừa dễ lựa chọn. Nên nó sẽ rất dễ bị loạn xí ngầu lên :333

À thì nó cũng không nghiêm trọng thế. Đầu tư cho bản thân không bao giờ lỗ! Đó là câu mình học được ở công ty mới này. Thế nên học ngôn ngữ nào cũng được, còn hơn là không học. Nhưng để tập trung vào người mới học. Mình suggest Javascript

  • Dễ học, dễ hiểu, dễ debug
  • Chạy được nhiều môi trường
  • Làm được ty tỷ thứ việc
  • Job tha hồ mà kiếm
  • Nhiều diễn đàn nói về nó
  • Nơi mà mọi người nói rằng: 1 mét vuông 100 ông React. Nhiều vô kể, phổ biến vải nho!

Ố kê. Mình suggest: Javascript nhé!!!

Nó dễ học, nên cũng nhiều người học lắm. Chúc các bạn chọi thành công =))) Nói thế thôi, chứ thực ra cũng không phải là khó chọi. Vì vậy chúng ta đến tới phần phát triển nàooooo!


Nên tập trung học gì để dễ phát triển?

Khác với lựa chọn ngôn ngữ, lựa chọn framework, tập trung học gì và những gì là một đề tài mỗi người một kiểu. Mỗi người có một đôi mắt riêng, đôi chân riêng, ờ thì cả đôi tay riêng. Nên chả ai học hộ hay đi hộ bạn được.

Không quá khó để tìm được một flow học lập trình từ a đến á, từ J đến 97 trên mạng. Tuy nhiên có một số phần thực sự cơ bản mà ai cũng cần phải học, nắm chắc. Nó là nền tảng cho tất cả các phần về sau.

Okey nên tập trung học gì? => Học kiến thức

Nên học từ đâu? => Học từ đầu!

Đầu tiên, nên học tiếng Anh! Thề, học tiếng Anh đi, hứa đấy không sai đâu! Nhưng không phải học theo kiểu máy móc quá. Nhìn hình đoán chữ dần là quen thôi. Trước mình cũng đứng top đáy của lớp môn Anh đấy. Nhưng cốt nhiều, xong đọc lỗi nhiều cái xong quen dần. Toàn copy cả câu lên GG Dịch, xong hiểu dần dần, chục lần chưa hiểu thì lần sau gặp lại tự nhớ mặt chữ. Cứ vậy là mình hiểu được một chút tiếng Anh hoy

Rồi, sau khi học tiếng Anh, là học cách xóa hết game trong laptop, PC của bạn đi. Nó rất có ích với mình, còn chả biết với các bạn thì sao nữa. Nhưng xác định tập trung mục tiêu thì cứ nhớ đến lap là nhớ đến học code là được gòi.

Okey. Học các kiến thức cơ bản như sau ở mỗi ngôn ngữ lập trình mà bạn cần học. Thường thì nó chả khác quái gì nhau, chủ yếu khác cú pháp. Tuy nhiên vẫn phải học và viết cho quen tay. Để thời gian cho đầu suy nghĩ còn hơn.

Đặc biệt các bạn mới rất cần học mặc dù nó rất khó lần đầu:

  • Kiểu dữ liệu
  • Biến
  • Vòng lặp
  • Câu lệnh rẽ nhánh If/Else, Switch case
  • Hàm

Đó, loanh quanh chỉ thế thôi ấy mà. Sau khi học chắc thì muốn phát triển theo hướng nào cũng được tất.

Câu trả lời tốt nhất cho câu: Nên tập trung học gì để dễ phát triển? là học từ gốc, học gốc, đừng chạy đua ngôn ngữ hay framework nào cả. Học từ gốc, đi chậm mà chắc!

À để mình kể cái này, mình có ông anh nọ code Laravel, đúng như câu đó, ổng chỉ code được Laravel, về Php là chịu. Code được React nhưng giờ qua Next là thua luôn, không động được gì cả. Rồi giờ ổng nghỉ rồi, lý do nghỉ là không theo được lớp trẻ.

Nào có trẻ, nếu như chắc kiến thức nền thì giờ ông anh lên làm đầu tàu luôn rồi :((


Nên học Fullstack hay học tập trung một hướng?

Đầu tiên, cần phải làm rõ điều này:

  • Học Fullstack, chưa chưa chắc đã được làm Fullstack
  • Làm Fullstack, chưa chắc lương đã gấp đôi

Okey, làm rõ từng ý một. Học fullstack sau này làm gì? Làm gì là theo ý bạn, nhưng tuyển bạn không là ý của chúng tôi! Bạn sẽ học sau đó đi thực tập và với kiến thức từ cả 2 phía. Bạn dễ dàng tiếp thu mọi kiến thức, văn hóa, cách làm của một công ty. Và sẽ dễ dàng lên chính thức hơn. Và có vẻ cũng chả ai cho bạn làm một mình Full một dự án kể cả trong một công ty Outsrc, công ty Prod thì chắc là càng không… Vì vậy bạn sẽ được trải nghiệm một chút ở FE, một chút ở BE. Sau đó mỗi khi làm một mảng nào, bạn đều làm được, rươu nào cũng uống mà nhạc nào cũng nhảy. Thế thì chả là tốt hơn sao?

Vậy học Fullstack để làm gì?

  • Để đỡ bị thằng còn lại nó lừa - Trích lời anh Hoàng An Unicode
  • Để nhạc nào cũng nhảy, món gì cũng làm được. (Tất nhiên là dễ làm hơn và dễ control dự án hơn nữa)

Làm Fullstack, tôi phải làm gấp đôi, tại sao lương thì hongg?

Bạn làm một ngày mấy tiếng? Cứ cho 10 tiếng 1 ngày cho nhiều, vậy giờ bạn phải chia đôi công việc, 5 giờ làm FE, 5 giờ làm BE. Làm sao lương bạn lại phải gấp đôi trong khi rõ ràng bạn đang chia đôi :))

Không hề giúp bạn gấp đôi lương, nhưng gần như Fullstack là điều bắt buộc hiện nay rồi. Nếu chỉ FE hoặc BE thì khá là khó nhai đấy… Hoặc bạn phải cực kỳ cực kỳ cực kỳ là giỏi thì mới ở lại được…


Kinh nghiệm học của mình như nào?

Mình chả học như nào cả. Mình thích tìm hiểu, mình thích những dự án khó, mình thích nhiều người. Vì vậy mình sẽ dành kha khá thời gian rảnh để đi cafe và học code. Hoặc đọc những kiến thức mới, thử nghiệm những thứ mới.

Mình cũng tự đánh giá là khá chăm chỉ, từng có 1-2 năm hồi dịch Covid-19, mình ở lỳ trong nhà và học code, ngồi trên ghế da và học code JS. Eo ơi hồi đó ngồi ghế bí nhiều quá bị nhọt ở đíc =)))))


Lời cuối

Xin phép 1 phút quảng cáo: Các bạn đang tìm một con laptop để học lập trình? Xin giới thiệu con máy gắn bó từ khi mình intern đến giờ vẫn dùng, IB để biết thêm chi tiết tại: Facebook

Gòi, hết lời cuối gòi. Cảm ơn các bạn đã đọc =)))))