뭐 핵심 논문이나 최신 개념까지 가는거면 오바고
게임 프로그래밍부터 시작해서, 웹까지 쓰는 코딩은
주로 통계,이산 수학은 전부 고등학교에서 대부분 선대 초중반까지임.
선형 대수 초반에 쓰는건 대부분 3개월컷 가능함
그래픽스로 따지면 좌표계 변환 2D,3D 변환 이 수준이면 충분히 3개월컷도 가능하다고 봄
문제는 머신러닝 가서 선형회귀,로지스틱 회귀, 특이값 분해, 고유값 분해 이런거 하면 몇년으로도 힘들고
선형변화, 비선형 활성화 함수는 학부수준으로 힘듬.
근데 애초에 대부분은 거기까지 생각도 안하고, 결국 어디까지 보냐인데 CUDA 까지만 봐도 선형 연립, 행렬분해인데, 엄청 깊게 이해 안해도됨
애초에 CUDA 라이브러리 자체가 그정도 수준까지 안쓰게 할려고 만든거라
저 아래 통계도 결국 모함수가 어떻고 기본 개념 증명하고 직접 문제 풀이 안하고, 그냥 어디에 어떻게 파악해서 코드 짤 수준이면 6개월 컷이 완전히 불가능하진 않다 봄
문제는 특이값 분해, 고유값 분해, 행렬 미분 이런 개념이 좀 오래걸리는거지.
결국 전부 다 이해한다는거면 어려운데, 애초에 여기서 하는 코딩들 절대 다수가
대부분 저기 수학의 표면 수준이라 일반인 수준의 코딩이라는 기준으로 잡으면 6개월 컷도 틀린건 아님
애초에 컴공 학부 커리큘럼 ACM기준인데, ACM 기준으로 프로그래밍 필요한 수학기준이면 수학만 판다면 1년도 가능하긴함. 대학수준이라 치면
현실적인 프로그래밍 문제는 주로
고등학교 수학, 선형대수 기초, 이산수학 기초 정도로 충분함
3D 그래픽스 회전행렬은 대1 2개월 컷임.
경사하강법도 어떤 개념인지만 이해하고 굳이 구현 안해도 '사용만 한다'라는 개념이면 1주일도 됨
문제는 CUDA 커널 개발자 수준이면 행렬미분, GPU 아키텍쳐인건데, 그냥 CUDA 라이브러리 쓰는 정도면야 뭐.
프로그래밍 하는 애들 특징이 자기가 하는게 다 어렵고 힘들다 과장하는게 있는데, 애초에 80%의 문제는 대부분 대1 수학에서 컷남.
텐서 플로우에서 linalg.svd() 이거 구현하는건 몇년 공부해야하지만 이거 쓰는건 그냥 1시간이면 사용법 외움 ㅇㅇ.
그렇게 라이브러리랑 프레임워크화됐고. 만약 옛날처럼 다 메모리 계산하고 했으면 모를까 지금 시대에 필요한부분만 체리피킹 하면된다 생각
저수준 API 개발자, 커널 개발자, AI 모델 개발자 이런 애들이야 존나 어려운 수학하는거지.
절대다수 문제 풀이는 그 수학이 아니긴함. 애초에 프로그래밍 세계는 상위 10%의 개발자가 라이브러리를 만들어서 90%가 편하게 쓰게 해주는거라
상위 10%가 되는게 아니라면야 쓰는 수준이면 뭐.
자바 GC 설정할때 다이크스트라 3색 매칭 알고리즘이랑 GC알고리즘 계산해서 안쓰고 그냥 어떨때 뭐가 좋다 이런거 보고 쓰잖아
그런거임
얘는 전공수학이랑 저수준 API 커널 개발에 이상한 환상이 있네
형님, 저수준 API 개발에 왜 어려운 수학이 쓰이는지 물어봐도 될까요?
어떤곳에 쓰냐에 다름. 게임쪽 저수준 API에서는 하드웨어와랑 직접 처리하는데 오디오 비디오 처리 할때만해도 FFT 같은거 할때 수학 개념은 일반적으로 학부수준에서 좀 벅차긴함. 그리고 멀티코어 프로세서 병렬 처리 자체도 그래프 이론임. 게임쪽 저수준 API 도 여전히 그런 문제가 있고. 대학원에 있을때도 수학 계산할때 필요한 로직 계산할때 수학들 대부분 어려운 수학들이었음. 게임 엔진도 최적화하는 부분에서 많은 수학적 기법이 들어감. 몬테카를로 같은것도 쓸거고, 애초에 렌더링 기술 자체가 기본적으로 어려운 수학임
가령 레이트레이싱, 패스트레이싱 같은거 수학 개념 자체가 몬테 카를로 적분에 샘플링 기법도 다 대학원 수준임. 물리엔진에서 ODE말고 PDE 계산하는것도 어렵고, 수치 계산자체가 사실 학부 통째로 갈아도 힘든거라 더 그럼
그래픽스 API 얘기만 하네 그래픽스 전공임?
인터넷에서 드립하려고 공부하는거면 밑도 끝도 없고 자기가 만드는데 필요해서 찾아서 공부하는거면 쓸데없는거 안하고 귀신같이 필요한 것만 공부하게 됨