저는 수학을 전공하는 대학원생이며 컴퓨터 과학을 전공했습니다. 나는 수학에서 프로그래밍에 대한 수학의 응용을 탐구하는 수학 ∩ 프로그래밍 이라는 블로그를 운영 하고 있으며, 컴퓨터 과학의 수학이 아닌 부분은 대부분 건조하고 영감을 얻지 못한다는 것을 인정해야한다. 업계에서 경험 한 시스템 프로그래밍에 들어가는 어리석은 해킹).
다른 한편으로, 내 블로그에서는 얼굴 인식 (약간의 선형 대수), 암호화 방법, 튜링 머신 및 셀룰러 오토마타, 연쇄 살인범 활동 예측 모델, 검색 엔진 및 기타 여러 가지 수학적 개념과 같은 문제를 살펴 봅니다. . 가장 좋은 부분은 아이디어와 내 자신의 아이디어를 구현한다는 것입니다!
당신의 친구가 다른 사람들처럼 프로그래밍을 좋아하게하려면 정말 흥미로운 사람을 찾으십시오.계획. 그가 좋아하는 제품을 향해 노력하지 않으면 프로그래밍 측면은 달라지지 않을 것입니다. 언어에 관해서는 Mathematica, Racket (매우 친절하지만 여전히 강력한 Scheme 파생), Python 및 Haskell을 권장합니다. Mathematica는 아마도 자신의 수학 함수를 선택적으로 구현하고 Mathematica의 내장 라이브러리를 사용하여 프로젝트를 완료 할 수 있기 때문에 (예 : 푸리에 계수를 계산하는 함수를 작성한 다음 Mathematica를 사용하여 나머지 분석을 수행 할 수 있기 때문에) 최고 일 것입니다. 필터링, 이미지 생성 등). 통합과 같은 기본 주제조차도 매력적인 프로젝트 (다른 직각 규칙, 몬테 카를로 통합, 대규모 데이터 세트를 통한 기계 학습으로의 부드러운 전환)를 제공합니다.
또한 수학을하지 않거나 수학 소프트웨어를 제안하는 언어를 사용하지 않은 사람들의 반응이 많은 것 같습니다. 사람들이 Haskell을 추천하는 이유는 가능한 한 범주 이론의 실제 구현에 가깝고 일부 기본 개념의 수학적 정의와 잘 맞기 때문입니다. 그러나 친구가 나이에 가까워지면 수학적으로 범주 이론을 준비하지 못합니다 (성숙은 대학원까지 거의 쓸모가 없으며 자신을 가르치기 어려워합니다). 첫 번째 언어로 Haskell은 가장 가파 릅니다.제안 된 언어의 학습 곡선 (아마도 Prolog가 더 가파름) 나는 Haskell을 사용하여 Javascript 컴파일러를 구현했으며 매우 아름다운 우아한 코드로 끝났지 만 변수 돌연변이와 같은 직관적 인 일을 위해서는 이미 사소한 모나드를 사용해야합니다.
Python과 Mathematica는 훨씬 친숙 할 것입니다. Mathematica는 모든 라이브러리가 멋진 문서와 함께 멋진 사용자 인터페이스로 패키지되어 있기 때문에 학습 곡선이 가장 얕습니다 (F1을 누르십시오!). 다른 한편으로, 고급 수학으로의 전환과 동시에 Haskell에 대한 소개를 제공하는 한 가지 책이 있습니다 (읽지 못함) . 긍정적 인 아마존 리뷰가있는 것 같으므로 확인하고 싶을 수도 있습니다. 그는 산업 분야를 원한다면 C # 및 Java와 같은 언어로 이동할 수 있지만 정글에 들어 가지 않아도 될 것입니다 (그리고 많은 산업 수학 분야는 순수한 Matlab입니다).
그러나 내가 말했듯이, 올바른 프로젝트를 배우면 프로젝트가 무엇이든간에 언어가 기쁨이됩니다.