저는 8 년 동안 전문적으로 프로그래밍을 해왔고 12 살 때부터 취미 생활을했습니다.
수학은 필요하지 않고 논리는 필요합니다. 수학은 끔찍하게 도움이됩니다. 필요하지 않다고 말하는 것은 사람을 죽이기 위해 총은 필요하지 않으며 칼을 사용할 수 있다고 말하는 것과 같습니다. 글쎄, 사실이지만 그 총은 훨씬 쉽게 만듭니다.
이미 충족해야 할 최소한의 몇 가지가 있습니다. 기본적인 대수식과 표기법, 일반적인 컴퓨터 등가물을 알아야합니다. 예를 들어 지수가 무엇인지 (3에서 3의 3은 27), 일반적인 컴퓨터 표현은 3 ^ 3입니다. 대수에 대한 일반적인 표기법은 언어마다 다르지만 대부분은 다소 통일 된 방법론을 사용합니다. 다른 사람들 (당신을 쳐다 보는 LISP)은 그렇지 않습니다. 작업 순서도 알아야합니다.
알고리즘 적 사고를 이해해야합니다. 먼저 이것은이 계산에 사용되는 이것을 생성합니다. 당신이 이것을 이해하거나 이해하지 못할 가능성이 있으며, 당신이 그것을 이해하지 못한다면 점프하는 것은 상당히 어려운 장애물입니다. 나는 이것이 당신이 '얻는'것이고 실제로 배울 수있는 것이 아니라는 것을 발견했습니다. 반대로 어떤 사람들은 예술을 '얻지'않습니다. 그들은 화가가되어서는 안됩니다. 또한 CS 커리큘럼에서 이것이 작동하지 않는 이유를 알 수없는 학생들이있었습니다. x = z + w; z = 3; y = 5; 덧셈을 이해하지 못하는 것이 아니라 명확한 표현의 요구 사항을 파악하지 못하고 있다는 것입니다. 그들이 이해한다면 컴퓨터도 그래야 하지요? 위의 세 줄에서 무엇이 잘못되었는지 알 수 없다면 프로그래머가되지 마십시오.
마지막으로, 프로그래밍 영역에서 수학이 무엇인지 알아야합니다. 회계 소프트웨어는 기본 대수에서 멈출 수 있습니다. 물리학을 프로그래밍하는 경우 3 차원 기하학 (Euclidean)의 물리학 (느슨하게)과 수학을 알아야합니다. 아키텍처 소프트웨어를 프로그래밍하는 경우 삼각법을 알아야합니다.
하지만 이것은 수학보다 더 멀어집니다. 프로그래밍하는 도메인이 무엇이든 기본 사항을 제대로 이해해야합니다. 언어 분석 소프트웨어를 프로그래밍하는 경우 확률, 통계, 문법 이론 (다국어) 등을 알아야합니다.
종종 특정 도메인은 관련이 없다고 생각하는 지식이 필요하거나 그로부터 이익을 얻을 수 있습니다. 예를 들어, 오디오 소프트웨어를 프로그래밍하는 경우 파형을 처리하려면 실제로 삼각법을 알아야합니다.
크기도 변화합니다. 1000 개 항목의 재무 데이터 세트를 정렬하는 경우 큰 문제가 아닙니다. 그러나 레코드가 천만 개라면 실제로 벡터 수학을 알고 이진 수준에서 정렬하는 방법을 깊이 이해하면 큰 이점을 얻을 수 있습니다 (시스템이 알파벳순으로 정렬하는 방법은 무엇입니까? 'a'가 'b보다 작은 지 어떻게 알 수 있습니까? '?)
프로그래머로서 일반적인 지식 기반이 폭발 할 것임을 알게 될 것입니다. 각 프로젝트는 프로그래밍의 직접적인 영역 밖에서 더 많은 학습을 필요로하기 때문입니다. 자기 학습에 대해 비꼬거나 게으르고 기본적으로 '숙제'를하는 데 일주일에 10 시간 이상을 보내는 것을 좋아하지 않는다면 프로그래머가되지 마십시오.
사고 연습을 좋아한다면 배우기를 좋아한다면 계산기없이 수학 같은 추상적 인 것을 생각할 수 있고 스케치 패드없이 디자인 할 수 있다면 삶과 취미에 대한 폭 넓은 취향을 가지고 있다면 자기 비판적이고 버릴 수 있다면 ' 마음에 드는 아이디어를 완성하고 싶다면 프로그래머가 되십시오. 이 결정은 수학이 아니라 논리적으로 생각하고 배우는 능력에 근거합니다. 이것이 중요한 것입니다. 수학은 부산물 일뿐입니다.