2010-01-13 3 views
13

저는 Java로 프로그래밍을 시작했으며, 가치있는 일을하려면 수학 기술을 향상시켜야 할 필요가 있음을 알았습니다. 수학 프로그램을 실행하는 수학 공식이있는 것처럼 수학에 대한 확실한 이해가있는 사람에게는 운동의 일부가 쉬워야한다는 사실을 알게되었습니다. 나는 2 년 전에 고등학교를 졸업했고 그 곳에서 최고 수준의 수학을 할 수있는 기회를 얻지 못했습니다. 저는이 점에 대해 깊이 걱정하고 있습니다. 따라서 심층수에 탐닉하기 전에 수학에 대한 기본적인 이해를 얻기 위해 공부해야하는 분야에 대해보다 경험 있고 지식이 풍부한 사람들의 조언을 구하고 있습니다.프로그래밍을위한 수학 기술 향상을 원합니다

나는 수학에서 날카로운 학생이었고 나는 진짜 빠른 마음을 가지고있다. 저의 목표는 올해 말까지 인증되고 경험이 풍부한 Java 프로그래머가되는 것입니다. 나는 사람들이 경험이 시간과 노력이 필요하다고 말 할 것이지만 나는이 목표를 성취하기 위해 내가 가진 것을 희생하고자한다. 필자는 PHP와 MySQL로 프로그래밍을 해봤지만 일반적인 이해를 얻었지만 자바는 내가 읽었을 때 진정으로 차기를했다. 이 작업에서 나를 도울 수있는 다른 것들을 알고 있다면 알려주십시오.

감사합니다.

+0

중복 : http://stackoverflow.com/questions/862804/how-to-improve-my-math-skills-to-become-a-better-programmer – gnovice

답변

18

스티브 예지의 Math for Programmers을 읽어 보시기 바랍니다.

도서를 찾고 있다면 Concrete MathematicsThe Art of Computer Programming을 사용하는 것이 좋습니다.

연습 문제가있는 경우 Project Euler을 확인하십시오.

어려운 문제로 인해 낙담하지 마십시오. 성장할 과제를 극복하는 것만으로 성공할 수 있습니다. 여기 지역 사회는 당신이 장애물에 도달했을 때 도움과 단짝을 제공하고자합니다. 내 훨씬 큰 .--- 알버트 아인슈타인 (Albert Einstein)

내 목표는 인증이되는 것입니다 수학에 어려움이, 내가 말씀 드릴 수 있습니다 무엇이든

:

하는의도 유명한 견적을 잊지 맙시다 잘 짜여진 자바 프로그래머가 연말에 말이다.

마지막으로, 잘 경험이 될 수있는 유일한 방법은 코드를 작성하는 것입니다, 그리고 많은.

+0

아인슈타인은 현명했지만 과장되었습니다. –

+2

아니요, 그는 수학자가 아닌 물리학 자였습니다. 그가 필요로하는 수학은 일반 상대성 이론에서 일하기 시작했을 때 발명되지 않았던 것입니다. 그것이 어려웠던 것은 당연합니다. 나는 그 물건을 연구했는데, 80 년이 넘는 개선에도 불구하고 정말로 어렵다. –

+0

일반 텐서스는 아인슈타인이 일반 상대성 이론을 수행했을 때 발명되지 않았습니까? 죄송합니다. 이야기를 곧바로 이해하는 것이 좋습니다. 아인슈타인은 그의 친구 인 그로스 만 (Grossmann)으로부터 텐서 (tensors)와 미분 기하학에 대해 많은 것을 배웠습니다. 그는 훌륭한 사람 이었지만 GR이 기반으로하는 수학을 발명하지 않았습니다. 아브라함 파이스 (Abraham Pais)의 "미묘한 것은 주님"이라고 읽으십시오. 212 페이지를 참조하십시오. – duffymo

8

Discrete Mathematics은 당신이 가장 필요로하는 것입니다. 기본 2 (이진) 기본 16 (16 진수) 번호 시스템을 이해하면 이 유용합니다. 은 필수입니다. 이산 수학에서 수렁에 빠져있을 필요가 없습니다. 그 중 일부는 너무 깊어서 수학 전공을 싫어하게 만듭니다. 세트 및 로직과 같은 기본 사항을 살펴보십시오.

trig/calculus에 관해서 ... 나는 대학에서이 모든 것을 택했고, 이것들에 광범위하게 의존하지 않았다 ... 또는 잘.

+3

알고리즘 또한 매우 중요한 수학 분야입니다. –

+0

게임이나 이미지 분석과 같은 그래픽 작업을 할 때 trig이 더 유용 할 것입니다. –

2

선형 방정식, 행렬 대수, 기본 2, 8, 18 및 10 변환, 로그 및 집합 이론 (교차점, 유니언 등)은 기본적인 기초를 제공합니다. 대수학이 건전하다면 이산 수학, 곱셈 및 삼각 함수를 살펴보십시오. 일단 멀리까지 가면, 원할 경우 계속해서 문제가 없어야합니다.

솔직히, 현지 커뮤니티 칼리지에서 반편성 테스트를 치러 정직한 평가를받을 가치가 있습니다. 거기에서, 당신은 수업에 등록하거나 자기 지시를 통해 커리큘럼을 배울 수 있습니다.

+0

베이스 18이 중요한지 확실하지 않습니다. P – svens

+0

신뢰할만한 oct 편집기가 없어도 아무 것도 할 수 없었습니다. – rotard

0

"Concrete Mathematics"이 주제에 대한 서적입니다.

+0

아니요, 같은 책의 추천이 될 것입니다 –

3

수학 능력이 반드시 좋은 프로그래머가되기위한 전제 조건은 아닙니다. 좋은 프로그래머는 수학에 능숙한 경향이 있지만 강한 연관성이 있습니다. 그렇다고 수학을 더 배우면 필연적으로 더 나은 프로그래머가 될 것입니다. 더 나은 프로그래머가되기 위해서는 대개 많은 코딩이 필요합니다. 그래서 마음에 그와 :

  • 코드 훨씬 자주와 모범 사례,
  • 도전을 "속임수"하지 않으려 고 자신
  • Project Euler
  • 가에 스도쿠를 진행하고있는 시도에 몇 가지 문제를 통해 작업 시도 공제를 연습하고 워밍업을하는 당신의 머리
+0

또한 Einstein Puzzle 2.0 http : // linux로 게임하십시오. wareseeker.com/Games/einstein-puzzle-2.0.zip/338379 –

1

http://www.khanacademy.org/ 수학 부분을 살펴보십시오. 대부분의 사람들은 고등학교를 졸업하고 미적분 I 만 있습니다.

여기 모든 수학을 마치면 CS의 학사에 대해 거의 모든 수학 요구 사항을 만족하게됩니다. 남아있는 것은 이산 수학, 알고리즘, 유한 오토 마타입니다.

MIT Open Courseware도 확인하십시오.

0

이러한 좋은 제안을 남긴 시간이 있다면, 독서 목록에 헤드 퍼스트 통계도 던질 수 있습니다. http://www.amazon.ca/Head-First-Statistics-Dawn-Griffiths/dp/0596527586

통계는 핵심 Java 프로그래밍과 직접 관련이 없지만 컴퓨터 과학의 일부 분야에서 통계를 많이 사용합니다. 예를 들어,이 책은 내가 참여한 일부 데이터 마이닝 프로젝트에서 매우 유용하다고 생각했습니다.

나는이 책을 매우 쉽고 재미있게 읽고 유용한 소개 자료로 활용하기 때문에이 책을 추천합니다. 통계를 읽으십시오. 이것은 "비드 전"독서가 최소한의 노력으로 할 수 있다는 것입니다.

0

이것은 일반적인 격려로 권장되는 것이 아니므로 학습하게됩니다. 해결해야 할 문제 중 일부는 지루하고 건조하며 일반적으로 학습에 도움이되지 않습니다. 나는 스스로를 역량의 현재 수준보다 높은 프로그래밍 과제로 설정하면 많은 것을 배우고 지식의 새로운 영역을 열어줍니다. 문제 해결의 결과. 아마도이 방법으로는 더 힘들거나 느릴 수 있지만, 주제에 견고하고 실제적인 접지. 예를 들어, 인간의 대 컴퓨터 가위 - 가위 게임을하는 가장 간단한 방법을 찾기 위해 모듈로 수학에 대해 많은 것을 배웠습니다. 제 2 센트.

0

저는 종종 책을 통해 작업 해 보았습니다. 그리고 부분적으로는 수학 서적을 많이 읽었습니다. 2 년 전 Open University의 순수 수학 과정 (M208)을 많이 했었습니다. 구조가 잘 맞았고, 모든 연습을해야했으며, 두 가지 방법을 모두 소개하기에 충분했습니다. 내 자신의 박쥐를 보았지만, 충분히 만족 스러웠습니다.

관련 문제