Tôi đã lập trình chuyên nghiệp được 8 năm, và từ năm 12 tuổi tôi đã trở thành một sở thích.
Toán học là không cần thiết, logic là. Tuy nhiên, toán học rất hữu ích, nói rằng nó không cần thiết cũng giống như nói rằng để giết một người đàn ông, súng không cần thiết, bạn có thể dùng dao. Đúng là như vậy, nhưng khẩu súng đó làm cho nó dễ dàng hơn rất nhiều.
Có một vài mức tối thiểu trần mà bạn nên đáp ứng. Bạn cần biết các biểu thức và ký hiệu đại số cơ bản, và các phép tính tương đương thông thường. Ví dụ, bạn cần biết cấp số nhân là gì (3 đến 3 là 27) và biểu thức máy tính phổ biến là 3 ^ 3. Các ký hiệu chung cho đại số không thay đổi giữa các ngôn ngữ, nhưng nhiều trong số chúng sử dụng một phương pháp luận hơi thống nhất. Những người khác (nhìn bạn LISP) thì không. Bạn cũng cần biết thứ tự của các hoạt động.
Bạn cần hiểu tư duy thuật toán. Đầu tiên cái này, sau đó cái này, tạo ra cái này được sử dụng trong phép tính này. Rất có thể bạn hiểu điều này hoặc bạn không hiểu, và đó là một rào cản khá khó để nhảy nếu bạn không hiểu nó; Tôi thấy rằng đây là thứ bạn 'nhận được' chứ không thực sự là thứ bạn có thể học. Ngược lại, một số người không 'nhận được' nghệ thuật. Họ không nên trở thành họa sĩ. Ngoài ra, đã có những học sinh trong chương trình CS không thể tìm ra lý do tại sao điều này không hoạt động: x = z + w; z = 3; y = 5; Không phải là họ không hiểu sự bổ sung, mà là họ không nắm bắt được yêu cầu của việc diễn đạt rõ ràng. Nếu họ hiểu nó, máy tính cũng nên, phải không? Nếu bạn không thể thấy có gì sai trong ba dòng trên, thì đừng trở thành một lập trình viên.
Cuối cùng, bạn cần biết bất kỳ phép toán nào thuộc lĩnh vực lập trình của bạn. Phần mềm kế toán có thể dừng lại ở đại số cơ bản. Nếu bạn đang lập trình vật lý, bạn sẽ cần biết vật lý (lỏng lẻo) và toán học trong hình học 3 chiều (Euclide). Nếu bạn đang lập trình phần mềm kiến trúc, bạn sẽ cần biết lượng giác.
Tuy nhiên, điều này đi xa hơn so với toán học; bất kể miền nào bạn đang lập trình, bạn cần hiểu rõ những điều cơ bản. Nếu bạn đang lập trình phần mềm phân tích ngôn ngữ, bạn sẽ cần biết xác suất, thống kê, lý thuyết ngữ pháp (nhiều ngôn ngữ), v.v.
Thông thường, các miền nhất định cần hoặc có thể được hưởng lợi từ kiến thức mà bạn nghĩ là không liên quan. Ví dụ, nếu bạn đang lập trình phần mềm âm thanh, bạn thực sự cần biết lượng giác để xử lý các dạng sóng.
Tầm quan trọng cũng thay đổi mọi thứ. Nếu bạn đang sắp xếp một tập dữ liệu tài chính gồm 1000 mục, đó không phải là điều lớn. Tuy nhiên, nếu đó là 10 triệu bản ghi, bạn sẽ được lợi rất nhiều từ việc thực sự biết toán học vectơ và hiểu sâu sắc về cách sắp xếp ở cấp nhị phân (làm thế nào để một hệ thống sắp xếp theo thứ tự bảng chữ cái? Làm thế nào nó biết 'a' nhỏ hơn 'b '?)
Bạn sẽ thấy rằng với tư cách là một lập trình viên, nền tảng kiến thức chung của bạn sẽ bùng nổ, bởi vì mỗi dự án sẽ đòi hỏi phải học nhiều hơn bên ngoài phạm vi trực tiếp của lập trình. Nếu bạn quá khó khăn hoặc lười biếng trong việc tự học và không thích ý tưởng dành hơn 10 giờ mỗi tuần để làm 'bài tập về nhà', đừng trở thành một lập trình viên.
Nếu bạn thích các bài tập tư duy, nếu bạn thích học, nếu bạn có thể nghĩ về những thứ trừu tượng như toán học mà không cần máy tính hoặc thiết kế mà không cần sketchpad, nếu bạn có thị hiếu rộng rãi trong cuộc sống và sở thích, nếu bạn tự phê bình và có thể vứt bỏ ' yêu thích 'ý tưởng, nếu bạn thích hoàn thiện mọi thứ, sau đó trở thành một lập trình viên. Không dựa trên quyết định này về toán học, mà là khả năng tư duy logic và học hỏi. Đó là những gì là quan trọng; toán học chỉ là sản phẩm phụ.