뭐 핵심 논문이나 최신 개념까지 가는거면 오바고


게임 프로그래밍부터 시작해서, 웹까지 쓰는 코딩은


주로 통계,이산 수학은 전부 고등학교에서 대부분 선대 초중반까지임.


선형 대수 초반에 쓰는건 대부분 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알고리즘 계산해서 안쓰고 그냥 어떨때 뭐가 좋다 이런거 보고 쓰잖아 


그런거임