Home Forums US Life 학부 1학년 CS 코스 – Python vs. Java vs. C++ 학부 1학년 CS 코스 – Python vs. Java vs. C++ Name * Password * Email 현재 미국대학 컴사에서 티칭중인 1인입니다. 언어 크게 상관 없습니다. 큰 결정 하는데 사소한것에 너무 매이지 마세요. 개인적으로 차라리 소위 '어려운' 언어로 처음부터 가르치는 학교가 더 낫다고 생각합니다. 이유는: 1. 어려우면 님 자제분만 어려운게 아니라 전부 다한테 어렵습니다. 이렇게 박터지게 해야 남는게 있고, 이게 적성에 맞나 안맞나 미리 알게 됩니다. 어려운 과목 열심히 잘해서 에이 쉽게 받을 수 있고, 쉬운 과목 시키는거만 했다가 에이 못받을 수 있다는 함정이 있습니다. 2. 학부제 탑 대학들은 1,2학년 컴사 과목들 일부러 터프하게 하는 경향이 있습니다. 이런 대학들은 아쉬울게 없으니, 쓸데없이 친절할 필요 없고, 현실직시 과감하게 도전을 시킵니다. 이런대학들 1학년 프로젝트 보먼 어처구니 없을 정도로 어렵습니다. 도전 시키고 걸러내는거죠. 반대로 좀 그런그런 대학들은 하향 평준, 학생 정신건강 따위 신경쓰는데, 이런데 가면 졸업후 벽이 크고, 진로 폭이 넓지 않습니다. 3. 컴퓨터 시스템 (운영체제,아키텍쳐) 과목들, 그리고 더 나아가 졸업해서 좋은 회사에 중요한 기술직 포지션에 들어가려면 결국 언어가 아니라 시스템 지식이 결정합니다. 파이선, 시샵 등등 언어들은 일단 배우기 쉽고, 버그가 없는 것 같은 프로그램을을 짜게끔 하지만, 나중에 threading, concurrency, memory ordering/consistency, I/O strategy, crash recovery, high availability strategy, virtualization 등등 큰 회사 big data/cloud infrastructure 효율 (== $$$) 과 직결된 문제들을 이해하거나 풀려면, C/C++ 그리고 x86 또는 ARM ISA 의 이해가 필수입니다. 4. 파이선이나 시샾등 언어들이 '쉽다'라는게, 이런 언어들이 메모리 할당 등 귀찮은 문제들을 자동으로 '알아서' 해결해 주기 때문인데, 함정은 이런 언어로만 배우면 실제로 어떤 과정을 거쳐서 그 밑으로 기계가 어떤 메카니즘으로 문제를 대신 해결해 주는지 완전히 이해를 못하고 대충 넘어가게 됩니다. 시스템의 완전한 이해가 있는 상황에서 이런 언어를 쓰면 편하기 그지 없습니다. C로 1000줄 걸릴거 10줄이면 해결할 수 있죠. 하지만, 잘 모르는 학생들이 이런 언어로 구현해놓은거 보면, 시스템 이해 부족으로 말도안되는 코드를 작성한경우가 많습니다. 어떻게든 돌아는 가는데, 형편없이 비효율적으로 돌아가는거죠. 차라리 C나 C++처럼 잘 모르고 이상하게 짜면, 메모리 버그로 벌렁 뒤집어 지게 하는게 배울때 오히려 좋다라고 생각합니다. (하지만 1학년 프로그래밍 과목서 C, C++로 해서 버쳘 어드레스, 포인터, 그리고 이렇게 하면 안된다는거 잔뜩 설명하고나면 한학기 훌렁 가버립니다). 5. C/C++ 잘 하면, 다른 언어 배우는건 쉽습니다. 그런데 python에서 C/C++배우는건 어렵습니다. 문법이 어려워서가 아니라, python배울때 대충 넘어간 시스템 지식들이 필요해서 그런거죠. 추가: 물리를 좋아한다니, 지적 호기심이 큰 것 같습니다. 이게 왜 그런건지 궁금해 하는거죠. 그런 측면에서 python이나 Java보다 C/ C++ 심지어 Assembly가 적성에 더 잘 맞을 것 같습니다. I agree to the terms of service Comment