Khoa học máy tính cho lập trình viên


8

Tôi là một lập trình viên tự học và đã viết mã được 8 năm. Do kinh nghiệm này, tôi đã rất quen thuộc với các nguyên tắc lập trình (chẳng hạn như câu lệnh if, lớp, đa hình, v.v.).

Tuy nhiên, tôi chưa bao giờ học "khoa học máy tính", chỉ lập trình. Một số tài nguyên tốt cho ai đó ở vị trí của tôi để tự học khoa học máy tính - nghĩa là, các tài nguyên di chuyển với tốc độ nhanh và có kiến ​​thức lập trình cơ bản?


thu thập std / phổ biến cs refs
vzn

Vậy bạn đã đến đúng chỗ.
SDsole

Vậy bạn đã đến đúng chỗ.
SDsole

Câu trả lời:


11

Khoa học máy tính là một ngành học nhiều mặt - và Thuật toán và cấu trúc dữ liệu là một phần quan trọng của nó. Bạn có thể thử các khóa học video miễn phí, như Thuật toán, Phần 1, từ Đại học Princeton - hiện đang chạy.

Một thuật toán khóa học video miễn phí đáng chú ý khác : Thiết kế và phân tích, Phần 1, từ Stanford đã hoàn thành gần đây - hy vọng nó sẽ được lặp lại trong tương lai. Phần 2 của khóa học này sẽ bắt đầu vào thứ Hai này.


ĐỒNG Ý. Tôi đã thực hiện một số tìm kiếm trên internet và có vẻ như một lớp thuật toán chung chính xác là thứ tôi đang tìm kiếm.
Shivam Sarodia

9

Vâng, đây là câu trả lời đầu tiên của tôi ở đây và, ngoài ra, tôi ít kinh nghiệm hơn bạn. Vì vậy, hãy coi đó là một câu trả lời của người mới, có thể không liên quan đến bạn hoặc người khác. Nhưng, tôi sẽ cố gắng duy trì giá trị của câu hỏi bằng câu trả lời của mình!

Chà, trước hết hãy thảo luận (chỉ phác thảo) lĩnh vực khoa học máy tính, hoặc vòng đời của một người liên quan đến việc học CS. Có lẽ, tôi có thể thiếu một số trong số họ. Ngoài ra, có thể có sự mơ hồ về vị trí của họ. Nhưng, nó đi như: -

  1. Nguyên tắc cơ bản về máy tính (Làm việc chung với máy tính) và giới thiệu về máy tính
  2. Ngôn ngữ lập trình và việc sử dụng nó để giải quyết các vấn đề thực tế trong cuộc sống bằng cách sử dụng sự trợ giúp của máy tính
  3. Biến thể của ngôn ngữ lập trình (chức năng, hướng đối tượng, thủ tục) và các nguyên tắc khác nhau của nó
  4. Cấu trúc dữ liệu và thuật toán // một trong những phần quan trọng nhất và là xương sống của CS
  5. Nền tảng của hệ thống máy tính --- Toán học rời rạc, một phần của Điện tử số
  6. Kỹ thuật phần mềm // lại là một trong những phần quan trọng nhất và là xương sống của CS
  7. Hệ điều hành --- môn học yêu thích của tôi trong nhánh CS, và cũng là nhánh cốt lõi quan trọng nhất của CS, toàn bộ CS chạy trên này, ít nhất. Bạn cần một cỗ máy để thực thi mọi thứ, ngay cả dựa trên mô hình
  8. Kiến trúc máy tính --- lại là một trong những môn học quan trọng để biết chức năng cơ bản làm việc của máy tính
  9. Cơ sở dữ liệu có giá trị mỗi xác nhận! Khám phá tuyệt vời.
  10. Mạng máy tính --- một phần rất đẹp của CS có liên quan đến mạng (kết nối thực tế)
  11. Lý thuyết tính toán, Automata, Trình biên dịch --- môn học yêu thích thứ 2 của tôi, tất cả trong một phần mô tả các thay đổi trạng thái và sự hình thành và vận hành ngôn ngữ.
  12. Khai thác dữ liệu & học máy --- Lĩnh vực tiến bộ nhất của Khoa học máy tính hiện nay và trên thực tế là một trong những thông tin hữu ích nhất
  13. Trí tuệ nhân tạo & Mạng nơ-ron & Logic mờ --- không nói gì, mô phỏng thực tế tốt nhất

Bây giờ, trở lại câu hỏi. Tôi nghĩ bạn phải cho mỗi phần một cơ hội để đi sâu và cố gắng tìm lĩnh vực bạn quan tâm. Phải mất một vài năm để quyết định lĩnh vực nào là phù hợp nhất với anh ấy / cô ấy.

Bạn không nên trực tiếp nhảy vào bất kỳ lĩnh vực nào chỉ liên quan đến phần lập trình !!! Ngôn ngữ lập trình không phải là "cái đó" xứng đáng với những gì chúng được đóng khung, phần quan trọng nhất là mô hình hóa cơ bản, hoạt động và tạo ra các ý tưởng và lý thuyết mới giúp nâng cao lĩnh vực CS. Vì vậy, theo tôi, bạn nên thử từng lĩnh vực một lần, nói trong một tuần và xem bạn thực sự bị thu hút bởi họ nhất! Điều này trước tiên sẽ cung cấp cho bạn chủ đề để mang đi với!

Bây giờ, đến với các tài nguyên trực tuyến. Có rất nhiều thứ để xem. Bạn sẽ thấy ngày nay có rất nhiều hướng dẫn, video và bài giảng có sẵn trên internet. Nhưng, những thứ được tìm kiếm nhiều nhất với màn trình diễn tuyệt vời là: -

  1. www.coursera.org
  2. www.nptel.ac.in
  3. www.khanacademy.org

và như thế.

Cố gắng sử dụng những điều này thường xuyên hơn để học những điều cơ bản về CS. Một phần từ những điều này, bạn luôn có các công cụ tìm kiếm chỉ cần một cú nhấp chuột để giúp bạn cung cấp chủ đề mà bạn đang gặp khó khăn.


2

Là một lập trình viên, bạn phải biết những điều sau đây theo Khoa học máy tính cơ bản:

  1. Nguyên tắc lập trình cơ bản
  2. Cấu trúc dữ liệu
  3. Phương pháp kỹ thuật phần mềm
  4. Kỹ thuật lập trình khác nhau (phụ thuộc vào Thuật toán)
  5. Kiến thức cơ bản về kiểm tra mã

Bạn có thể nhận được các khóa học thông qua MOOC .

Coursera đang cung cấp các khóa học khác nhau với các chương trình tốt, nếu bạn muốn bạn có thể đăng ký tại đó.


Bạn dường như có câu hỏi ngược. Nó không hỏi những khía cạnh nào của khoa học máy tính có liên quan đến các lập trình viên; đó là hỏi nơi lập trình viên có thể tìm tài nguyên để tìm hiểu về khoa học máy tính.
David Richerby

-1

Các khóa học khác mà tôi đã học (và tôi nghĩ là quan trọng):

  1. Các mẫu thiết kế (như Singleton, Facade, Factory .etc)
  2. Cấu trúc rời rạc

Sự phức tạp tiệm cận là một chủ đề rất quan trọng trong CS. Tôi muốn giới thiệu "Giới thiệu về thuật toán" như một cuốn sách tham khảo tốt về cấu trúc dữ liệu và thuật toán. Sau đó, bạn có thể thực hành tại Project Euler . Ngoài ra, MIT có các khóa học MIT Open CourseWare tại YouTube. Tôi thấy các khóa học cấu trúc dữ liệu của họ rất hữu ích.

Một điều khác tôi có thể đề nghị là cũng trải qua bất kỳ giáo trình CS nào của Đại học để có được các chủ đề và xem cái nào là quan tâm, và nghiên cứu chúng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.