Skip to content

Latest commit

 

History

History
204 lines (143 loc) · 15.6 KB

faq.md

File metadata and controls

204 lines (143 loc) · 15.6 KB

Những câu hỏi hay được hỏi

Các bạn vui lòng Ctrl + F để tìm kiếm câu hỏi hoặc dùng công cụ tìm kiếm của Github nhé.

Mục lục

Update later


Các câu hỏi hay gặp nhất

Làm sao để học lập trình?

Đây là một trong những câu hỏi phải nói là rất rất nhiều người hỏi khi bước vào con đường lập trình. [@Working in process]

Nên học ngôn ngữ nào đầu tiên?

Các câu hỏi liên quan với câu hỏi này là: "Học ngôn ngữ nào tốt nhất?", "Ngôn ngữ nào dễ học cho người mới?", ...

Bước chân vào lập trình giống như đứng giữa con đường trăm ngả vậy. Có quá nhiều con đường để chọn, có quá nhiều ngôn ngữ để khám phá và điều đó gây nên sự bối rối cho người mới học. Vậy nên, trả lời câu hỏi trên, không có ngôn ngữ nào đáng được ưu tiên hơn ngôn ngữ nào khi mới học lập trình cả; cái các bạn cần để bắt đầu học lập trình chính là sự am hiểu được lập trình là làm gì, cách tư duy, cách suy nghĩ theo hướng lập trình. Ngôn ngữ lập trình bây giờ không còn phức tạp và khó học như xưa nữa, thế nên việc học một ngôn ngữ không còn quá khó và mất nhiều thời gian. Khi ngôn ngữ đã trở nên dễ học hơn, thì tư duy bắt đầu được trọng dụng. Đó là lí do tại so các bạn cần hiểu được lập trình làm gì và học được cách tư duy theo hướng lập trình. Vì khi các bạn nắm được cốt lõi của lập trình, thì việc học các ngôn ngữ khác sẽ dễ dàng hơn không ít thì nhiều. Và thậm chí không chỉ 1-2 ngôn ngữ, mà bạn có thể học bao nhiêu cũng được!

Tuy nhiên, dù sao thì mình khuyên các bạn nên chọn những ngôn ngữ có xu hướng được nhiều người chọn để học. Đơn giản, nhiều người học thì sẽ dễ dàng được hỗ trợ và hỏi đáp sẽ dễ dàng hơn. Và đây là những ngôn ngữ các bạn nên học nếu chưa có định hướng sẽ làm gì (xếp theo mức độ dễ học):

  • Python
  • Javascript
  • Ruby
  • Java hoặc C#
  • C++

Còn nếu các bạn có định hướng muốn mình làm gì thì các bạn có thể tham khảo bảng này:

Hướng đi Ngôn ngữ
Lập trình Website - Front-end HTML5, CSS3, Javasript
Lập trình Website - Back-end Javascript, Python, Ruby, PHP, Java, ASP.NET
Và một chút Front-end
Lập trình Android Java, Javascript, Kotlin
Lập trình iOS Swift, Javascript, Objective-C
Viết ứng dụng PC C#, Java, C++ (Qt Framework), Delphi
Phát triển Game C++, C#, Javascript + HTML5 + CSS3
Big Data, Phân tích dữ liệu, ... Matlab, Python, R, Julia
Trí tuệ nhân tạo C++, Python, Java
Robot, Vi mạch, Adruino C, C++
Viết script tự động Mọi ngôn ngữ.
Nhưng ưu tiên: Python, AutoIT3, Bash, Ruby, Powershell, Javascript, ...
Hack Hacker knows everything ;)

Nếu vận chưa xác định được mình thích gì và ngôn ngữ nào. Các bạn có thể dùng những Website sau để làm một bài Quiz nhỏ nhé:

Làm sao để thành hacker?

Bạn muốn làm Hacker? Hãy đọc bài viết này: How To Become Hacker (dịch bởi Admin HVA - Commale).
Mà khoan hãy đọc bài viết trên. Mình có một thử thách nhỏ cho các hacker tương lai đây! Hãy đọc bài gốc của bài viết trên: How To Become Hacker

;) Will you accept this challenge like a hacker? [Working in process]

Làm sao để học hiệu quả?

Các câu hỏi liên quan: Học thế nào là hiệu quả? Làm sao để tập trung học tập?
Các bạn có thể tham khảo:
Học thế nào cho đúng? - Lê Trần Đạt


Nghề nghiệp, định hướng

Lập trình gì thì kiếm nhiều tiến?

Lập trình nhúng thì nên học gì?

An toàn thông tin thì học gì?


Câu hỏi về trường lớp, bằng cấp

Nên học trường nào?

Các câu hỏi liên quan: Học trường nào tốt cho CNTT? Học trường nào dễ kiếm việc làm? Học trường nào đào tạo tốt?

Lập trình có quan trọng bằng cấp không?

Ngắn gọn: Không!

  • Bạn có thể học code bên ngoài và dễ dàng làm sản phẩm mà không phải học quá nhiều.
  • Nhiều start-up mới mở cần nhân lực nên có thể không cần thông qua bằng cấp mà chỉ cần năng lực
  • [Working on it]

Khuyên: Có!

  • Với một tấm bằng đẹp, kiến thức vững thì không lo mà thất nghiệp.
  • Bằng đẹp, phong trào tốt, Tiếng Anh tốt thì du học sẽ dễ dàng hơn.
  • Có bằng cấp sẽ dễ xin việc hoặc được ưu ái hơn ở một số công ty / trường hợp.
  • Bằng cấp sẽ giúp các nhà tuyển dụng nhìn tổng quan hơn quá trình học tập của bạn từ đó có thể dễ dàng đánh giá năng lực hơn.
  • @Working in process

Đại học nào dạy an toàn thông tin?

  • ĐH Công nghệ thông tin - Thuộc ĐH Quốc gia TP.HCM
  • Học viện Mật Mã - Hà nội
  • Học viện Công nghệ bưu chính viễn thông - Hà Nội
  • Học viện An ninh nhân dân - Hà nội
  • Đại học Công nghệ - Thuộc ĐH Quốc gia HN
  • Đại học Bách Khoa Hà nội
  • Đại học Bách Khoa Đà nẵng
  • Học viện Kỹ thuật Quân sự - Hà nội
  • Đại học FPT (Có tuyển sinh ở HN, HCM và Đà nẵng)

Làm sao để làm X, học Y

Làm sao để tạo phần mềm?

Làm sao để làm game?

Làm sao để làm website?


Câu hỏi về tài nguyên học

Sách nào tốt nhất để học lập trình?

Nơi nào tốt nhất để học lập trình?


Các điều lo lắng

Lập trình có cần phải giỏi toán không?

Các bạn không cần phải giỏi toán để học lập trình (tất nhiên ít ra cũng phải biết những điều cơ bản). Nhiều ngành nghề trong lập trình không còn đòi hỏi toán học quá phức tạp nữa. Các bạn có thể dễ dàng tạo ra những ứng dụng, website hay phần mềm máy tính hay mà không cần phải quá thành thạo toán học. Tuy nhiên, nếu giỏi toán thì sẽ luôn là một lợi thế cho bạn trong ngành lập trình. Bên cạnh đó, có một số lĩnh vực trong ngành lập trình sẽ đặc biệt đòi hỏi toán học như:

  • Data Science / Data Engineering (Xác xuất thống kê)
  • AI Nói chung (Machine Learning, Computer Vision, Natual Language Processing, ...)
  • Nghiên cứu về giải thuật / khoa học máy tính
  • Lập trình đồ họa - Graphics Programming (Đại số tuyến tính)
  • Lập trình game (Vector, ma trận, ...)
  • Mật mã học - Cryptography (Lý thuyết số, đại số trừu tượng)
  • Nhúng - Embedded System (Giải tích, Fourier, đại số Bool, ...)
  • Database (Đại số quan hệ, lý thuyết đồ thị, ...)

Giải thuật và Cấu trúc dữ liệu có quan trọng không?

Năm nay X tuổi, có quá trễ để học lập trình?

Người ta bảo, học tập là học cả đời. Thế nên cho dùng có 30t hay 90t thì không bao giờ là trễ để học lập trình.
Ngoài ra bạn có thể đọc bình luận rất hứng thú của "Lập Trình Sư" về vấn đề này nhé.

Lập trình có khó không?


Cái gì tốt nhất?


Các câu hỏi hay hỏi khi học lập trình

Làm thế nào để master một ngôn ngữ?

Nắm vững ngôn ngữ là như thế nào?

Có nên dùng IDE khi mới học lập trình?

Câu trả lời là không nên. Tuy nhiên bạn vẫn có thể xài IDE như thường và không ai bắt các bạn phải dùng Compiler cả. Nhưng lời khuyên là các bạn nên tập compile bằng compiler càng sớm càng tốt. Vì IDE giấu đi khá nhiều bước trong quá trình compile chỉ bằng một nút duy nhất. Trong khi hiểu được quá trình compile hay các tham số của compiler sẽ giúp bạn rất rất nhiều trong quá trình compile. Ngoài ra, ở một số môi trường không hề có GUI, thì việc compile bằng tay sẽ là bắt buộc. Còn nếu bạn muốn học về Reverse Engineering, thì việc học cách compile bằng tay, hiểu các tham số của Compiler có lẽ là điều bắt buộc.

Có nên học nhiều ngôn ngữ cùng lúc?

Không nên học nhiều ngôn ngữ cùng lúc dù bạn đã có học qua ngôn ngữ lập trình trước rồi. Vì học cả 2 cùng lúc rất dễ bị rối, nếu 2 ngôn ngữ cú pháp tựa tựa nhau có thể giúp dễ nhớ nhưng lại gây rối rắm trong quá trình học. Với 2 ngôn ngữ có cú pháp khác nhau thì việc ghi nhớ cú pháp cả 2 sẽ phải mất không ít thời gian và dễ gây nhầm lẫn. Thế nên, tốt nhất là học một và chỉ một ngôn ngữ lập trình một lúc. Nếu có bạn nào muốn học nhiều ngôn ngữ cùng lúc để trải nghiệm và xem mình thích ngôn ngữ nào thì cũng nên đừng làm vậy. Các ngôn ngữ bây giờ rất dễ học nên thời gian học sẽ mất không quá lâu nếu có biết trước một ngôn ngữ nền tảng. Từ đó, việc trải nghiệm một ngôn ngữ sẽ nhanh hơn trước nhiều. Cuối cùng, bằng việc tập trung một ngôn ngữ một lúc vậy sẽ cho các bạn trải nghiệm tốt hơn về ngôn ngữ đó hơn là một lúc hai ngôn ngữ, giúp bạn có đánh giá khách quan hơn về các ngôn ngữ khác nhau và có lựa chọn đúng đắn hơn.

Tìm cảm hứng học tập

Có nên học những ngôn ngữ đang hot?

Những ngôn ngữ đang hot hoặc đang lên bao giờ cũng dễ kiếm việc cũng như kiếm tiền. Tuy nhiên cái gì cũng có thời của nó; Dễ thấy vài năm trước PHP đang rất thịnh hành, thì nay đang bị lung lay bởi Javascript, Ruby on Rail. Vậy nên tốt nhất là học chắc một ngôn ngữ mà bạn yêu thích để làm nền tảng thật vững. Sau đó bạn có thể học sâu thêm về ngôn ngữ yêu thích của mình. Đảm bảo cơ hội việc làm về ngôn ngữ đó sẽ càng cao và lương bổng cũng không phải nhỏ. Tất nhiên nếu bạn có nền tảng chắc rồi nhưng không thích đào sâu, thì việc học các ngôn ngữ theo xu hướng cũng không phải là một lựa chọn tồi. Nhờ có nền tẩng chắc, bạn sẽ tiếp thu những ngôn ngữ này cũng sẽ rất là nhanh chóng.

Mua máy tính cấu hình nào để học lập trình?

Phần lớn các lĩnh vực trong lập trình sẽ không đòi hỏi cấu hình quá cao. Nên với một con chip Pentium, RAM 2GB, ổ cứng 200GB là bạn đã có thể học tập được rồi. Để thoải mái hơn các bạn có thể xài các chip i-series (i3, i5, i7), RAM 4GB và HDD 500GB. Tuy nhiên nếu các bạn có xài cái IDE nặng như Visual Studio, Jetbrain thì khuyến khích nâng cấp ổ cứng lên 500GB, Chip i3 trở lên, RAM 8GB dùng sẽ mượt hơn và không bị lag hay đứng máy. Còn nếu các bạn nào học về Android hoặc có nhu cầu chạy máy ảo nhiều (như Pen-tester) thì nên nâng cấp thêm RAM, và tối thiểu 8GB để chạy vì máy ảo yêu cầu rất nhiều RAM. Với các bạn làm Game sẽ có tác vụ đồ họa, nên mua thêm một Card đồ họa rời và nâng cấp RAM sẽ hỗ trợ bạn làm game tốt hơn.

Phần trên chỉ là cấu hình, lời tư vấn cơ bản, để thêm chi tiết các bạn có thể lên DNH tạo một Topic mới với số tiền hiện có cũng như ngành nghề để được tư vấn kỹ hơn.


Câu hỏi về DNH

Chia category trong DNH như thế nào?

  • Programming - Danh cho tất cả các câu hỏi liên quan tới lập trình
  • Dev chat - Tán gẫu, chát chít vói các dev. Bạn muốn tán gẫu, tư vấn, trao đổi, hỏi han linh tinh mà có kèm một chút trò chuyện, hãy chọn category này
  • Randomq - Câu hỏi không liên quan tới lập trình, như làm sao để cài phần mềm abc, máy bị hư, sữa lỗi IDE,...
  • Fun - Share linh tinh mọi thứ giúp DNH giải trí. Bạn cũng có thể khoe Project của bạn ở category này, hay thử thách, đố vui mọi người
  • Hacker News - Mục này dùng để share tin tức mà các bạn cho là thú vị chú không phải là mục để mấy anh hacker tán gẫu đâu nhé :D
  • English - Hỏi đáp, chia sẽ về Tiếng Anh là vô đây hết.
  • Jobs - Đăng tuyển nhân sự hoặc cho các bạn nào muốn tìm việc. Các bài viết ở category này sẽ tự động đóng sau 7 ngày.
  • Meta - Muốn góp ý cho DNH? Muốn cống hiến cho DNH? Có ý tưởng hay giúp DNH phát triển thì hãy bỏ vào category này!
  • Share - Category Share để share mọi thứ bạn thấy hay và giúp ích cho quá trình học lập trình, như: Tài liệu, blog hay,... Ngoài ra Share gồm 2 sub category là Videos và Writes.
    • Share-Video thường dùng để chia sẽ các Video học tập, hướng dẫn về lập trình. Nếu video vui thì các bạn hãy cho vô Category Fun thay vì Share-Videos nhé.
    • Share-Writes dùng để chia sẽ các bài viết các bạn đọc được, hoặc có thể là do bạn tự viết và chia sẽ.
  • Secret - Category này được ẩn và tất nhiên nó ko phải tên Secret ;) Chỉ dành cho thành viên Level 3 trở lên mới vào được. Deepweb đấy! ;)

DNH được viết trên mã nguồn nào?

  • Discourse - Open Source
  • Ngôn ngữ: Ruby, Javascript

Các cấp bậc trong DNH như thế nào?