2008-11-17 31 views
13

Mỗi lần tôi thường có ấn tượng rằng kiến ​​thức về toán học của tôi (vì nó liên quan đến lĩnh vực phát triển phần mềm) có một số khoảng trống. Tôi là một người có học thức. Tôi có bằng đại học. Tôi luôn thích học hỏi, đó là lý do tại sao tôi muốn cố gắng lấp đầy những khoảng trống này.Làm cách nào để tôi có thể lấp đầy những khoảng trống về kiến ​​thức toán học của mình?

Công việc của tôi là trong ngành tài chính và tôi cảm thấy nhiều công việc crunching số lượng lớn mà chúng tôi có thể thực hiện hiệu quả hơn, có thể, nếu tôi nắm bắt tốt hơn về toán/logic nó, hoặc các khái niệm có thể được tận dụng như một phím tắt.

Bạn có bất cứ đề xuất nào không? Những cuốn sách mà bạn đã tìm thấy đã giúp với điều này? Video bài giảng?

EDIT: Tôi nên lưu ý rằng bằng cấp của tôi là Khoa học Máy tính, vì vậy tôi quen thuộc với một số lĩnh vực toán học có liên quan. Tôi chỉ không chắc chắn cách tốt nhất để đánh lừa họ hoặc tinh chỉnh những gì tôi đã biết :)

Trả lời

8

Một lĩnh vực toán học rất hữu ích cho việc lập trình là Toán rời rạc. Một tài liệu tham khảo tốt cho rằng đó là khóa học Mở Khóa học MIT về "Toán học Khoa học Máy tính", là here.

1
  • Quay lại ghi chú toán học đại học của bạn. Xem những gì bạn nhớ và những gì bạn không nhớ. Hãy thử làm lại một số bài tập của bạn.
  • Khi bạn đã tìm ra những khu vực cần xem xét lại, hãy phân nhánh từ đó. Sử dụng OCW hoặc tài liệu khóa học trực tuyến miễn phí khác để mở rộng kiến ​​thức của bạn.
1

Tôi sẽ xem xét các yêu cầu của khóa học mà các trường đại học lớn cần cho bằng Khoa học máy tính của họ. Thường có sự kết hợp đúng đắn của Toán trong đó.

3

Nó có thể không liên quan trực tiếp, nhưng Project Euler là điều tuyệt vời để giúp bạn suy nghĩ theo các cách toán học.

4

Bạn nên biết probability and statistics. Tôi đã trải qua điều này trong chương trình vật lý đại học của tôi. Stanford cung cấp các bài giảng miễn phí về toán học và vật lý, tôi nghĩ bạn có thể truy cập vào chúng here (nhiều trường đại học hiện đang thực hiện ý tưởng công khai này video lectures). Và something rằng một trong những người sáng tạo của trang web này vừa được đề xuất.

2

Concrete Mathematics. Đây là sách giáo khoa đại học của Knuth nhấn mạnh giải quyết vấn đề thực tế trong các lĩnh vực liên quan đến lập trình viên.

0

Là một người làm toán lớn, tôi nghĩ toán học được học tốt nhất từ ​​một giáo viên giỏi, với một số áp lực để thành công (như học phí). Tôi thấy dễ dàng để tự mình học toán, nhưng toán học thì khó hơn nhiều. Tôi vẫn thích nó vô cùng.

+0

Tôi đồng ý. Tôi không muốn trở thành một nhà toán học chính thức. Tôi chỉ hy vọng sẽ hiểu rõ hơn về các công cụ toán học mà tôi sử dụng. –

6

Theo thứ tự tầm quan trọng, tôi muốn nói:

  • Đại số
  • tổ hợp
  • kê & Xác suất
  • Vector Math
  • Matrix Math
  • Calculus

Theo quan điểm của tôi, Đại số là điều cần thiết cho bất kỳ lập trình viên nào, vì nó hình thành nền tảng của việc biểu diễn biến đổi và đánh giá biểu thức (chức năng, tính giao hoán và sự chuyển đổi của hoạt động, v.v.).

Kết hợp là điều cần thiết cho tất cả các loại thuật toán đồ thị (duyệt qua tất cả các nút trong biểu đồ, tìm đường đi ngắn nhất, v.v.). Biết cách của bạn xung quanh các kết hợp và hoán vị là rất quan trọng trong hầu hết mọi bối cảnh lập trình.

Tiếp theo trong dòng là thống kê, đặc biệt nếu bạn muốn tham gia vào AI hoặc học máy. Số liệu thống kê có lẽ là khu vực kiến ​​thức toán học lớn nhất cho các lập trình viên. Trong hầu hết các trường hợp, bạn không cần phải thâm nhập vào những thứ nặng nề, như hồi quy đa biến. Chỉ cần biết làm thế nào (và trong hoàn cảnh nào) để tính toán nhanh chóng, trung bình, chế độ, độ lệch chuẩn, lề lỗi, khoảng tin cậy và xác suất có điều kiện là hữu ích cho rất nhiều ứng dụng học máy.

Toán Vector rất quan trọng trong nhiều ứng dụng mô hình hóa thông tin (mô hình không gian vectơ n-chiều là một cách rất tiện dụng về lý luận ngữ nghĩa tài liệu), cũng như cho tất cả các loại ứng dụng đồ họa 3D.

Toán ma trận rất giống với toán học vector, về các ứng dụng của nó (AI, mô hình thông tin, 3D, v.v.) nhưng nó phức tạp hơn một chút, vì nó thêm một thứ nguyên khác. (Ma trận toán học là gót chân achilles của riêng tôi; tôi chắc chắn có thể sử dụng một bàn chải lên.)

Và tính toán là điều cần thiết cho bất cứ ai làm tính toán khoa học và mô phỏng.

Hãy vui vẻ!


ON EDIT:

Tôi nghĩ rằng cách tốt nhất để chải lên trên kiến ​​thức toán học của bạn là làm việc trên một dự án có sử dụng kiến ​​thức đó. Ví dụ: nếu bạn muốn tìm hiểu một số thống kê (như REALLY tìm hiểu nó, để bạn có thể rattle tất cả các công thức mà không cần tìm kiếm chúng), thì bạn có thể quan tâm đến việc phân tích tập dữ liệu từ cuộc thi Netflix Prize.

Tập dữ liệu bao gồm hơn 100 triệu bản ghi từ cơ sở dữ liệu người dùng Netflix và cung cấp một cơ hội to lớn để cố gắng triển khai một số thuật toán nặng.

Đối với tài liệu tham khảo thực tế, tôi đã tìm thấy wikipedia là quá đầy đủ. Ví dụ, trên một dự án gần đây của tôi, tôi đã nhiều lần nhắc đến một số bài viết của nó trên Kernel Density EstimationVector Fields.

Điều đáng sợ (đối với tôi) về toán học hardcore (vì tôi gần như hoàn toàn tự học) là ký hiệu. Tất cả những chữ cái Hy Lạp đó đặt đầu tôi vào một chút.Nhưng nếu bạn đọc các bài báo nhiều lần hơn (và google cho các cụm từ như "ký hiệu sigma toán học"), sau đó nó không quá khó khăn để mảnh lại với nhau những gì họ đang nói về.

1

Tại sao không tham gia một vài lớp học tại trường đại học địa phương? Có lẽ một số người nghiền nát những người đam mê công việc của bạn có thể biết bạn nên tham dự lớp học nào?

0

Tìm hiểu một cuốn sách, chẳng hạn như sách giáo khoa Toán rời rạc tốt và bắt đầu quay các bài tập hàng ngày. Làm tất cả chúng.

Lặp lại với một cuốn sách khác.

Các vấn đề liên quan