프로그램어가 되고 싶다면
일단은 닥치는대로 전공을 파라.
학교다니면서 쓸데없는 교양과목들 듣지마라.
우선 기본 내공을 길러주는 과목들이 있다.
자료구조, 알고리즘, 컴퓨터구조, 네트워크, 데이터베이스, 운영체제
대략 이정돈데, 내공에 해당하는 과목은 너희가 어떤 분야의 프로그램어가 되더라도 늘 필요한 기본 과목들이다.
괜히 전공필수 과목이 아니니 하나라도 소홀히 하지 말고 공부하거라.
그담에 외공에 해당하는 과목들을 알려준다. 이 분야는 실질적으로 너희의 진로가 될것이다.
시스템 개발자(C언어, 시스템프로그래밍)
어플 개발자(닷넷, 자바)
웹서버 개발자(jsp,asp,php)
웹클라이언트 개발자(자바스크립트, html)
너희는 아직 어디가 적성이 맞는지 모르므로, 학부때는 일단은 한번씩은 다 다뤄보고, 그중에서 한가지 꽂히는쪽을 깊게 파고들어라.
그래서 형님은 뭐하고 있으심?
형은 존나 특출나서 사실 다 할줄 아는데, 주력은 시스템프로그램어 쪽이다.
와 말로만 듣든 시스템?ㄷㄷ하시네요 시스템쪽이면 뭐 커널프로그래밍 그런건가요?
형은 오픈소스 라이브러리들을 사용하여 솔루션을 개발하긴 하지만, 직접 리눅스 커널 소스를 건드리진 않는다. 그건 그냥 믿고 쓰는 영역이다. 커널을 직접 건드리는건, 칩제조사에서 주로 새로운 칩이 나올 때 커널에 포팅할때 하는데 탑클라스들이 하는거다. 참고로 리누스토발즈 형님은 50이 넘고도 현재도 최신 커널 소스코드에 직접 커밋하고 계신다.
물론 형도 학부때 커널소스 분석한답시고 커널코드를 많이 보긴했다만.. 전체적인 구조파악 정도만 했고, 디테일한건 건들지 못했다. 이건 정말 탑클라스들이나 할 수 있는 영역인거 같더군.
그럼 형님 회사가 하는 일이 주로 어떤? 어디서 이윤을 창출하시는지
형 회사는 비밀이고, 업계 1위라서 분야도 말할수 없다. 솔루션을 판매해서 먹고산다. 로얄티도 받아먹고.. SI가 아니라서 수익모델이 괜찮은편이다.
비밀이라시면 더 이상 여쭙진 않겟고 형님처럼 시스템 관련해서(솔직히 범위가 무한할텐데) 일 할려면 어떤쪽으로 파서 진로를 정해야할까요?
학부생이라면.. 운영체제랑, 시스템프로그래밍을 존나게 깊게 파야한다. 운영체제는 이론적인거고, 시스템프로그래밍은 실무적인거라고 보면된다. 리눅스 시스템콜들을 대부분 능수능란하게 사용할 수 있을 정도로 파야한다. 기본적인 쉘정도를 만들어봐야하고..멀티쓰레드 프로그래밍도 필수다. 커널까지 파면 좋겟지만, 솔직히 학부때는 좀 무리다. 그리고 네트워크 전필과목을 통해 이론과, 그에 걸맞는 실무적인 소켓프로그래밍을 깊게 파봐라. 그리고 이런것들의 개발환경은 리눅스를 써야하고, 당연히 리눅스를 잘 다뤄야한다.(컴파일,링킹,makefile등의 개발환경에 대한 이해도 필수). 시스템프로그래머는 말그대로 시스템이 어떻게 굴러가는지 디테일하게 다 알고 있어야 한다.
결국 운영체제에 대한 완벽한 이해와 시스템 프로그래밍 경험 + 소켓이 핵심이네요? 문제가 되지 않는다면 재직중인 회사에 들어오는 신입분들.. 위에 핵심 3가지 프로젝트만 있으면 들어오는편인가요 아니면..?
아니..사실 신입애들중에 저걸 제대로 갖춰오는애들은 없어 ㅋㅋ 그래서 늘 신입들이 회사생활하면서 욕묵으면서 일하긴 하지 ㅎㅎ
내일 출근하셔야할텐데 자꾸 꼬치꼬치 물어서 죄송하고 제가 백..라서 여쭤본거고 ㅋ 그럼 어느정도 되면 뽑습니까 기준이 보통? 경험한 프로젝트나 학점 기본적인 학과 지식 이정돕니까? 제일 낮은 실력?순번으로 들어온 신입이라도 이정도는 된다..라고 할만한게 뭘까요?
음..글쎄다. 다른팀 신입들은 잘 모르겠고..우리팀 신입은 매일 욕묵긴해도, 그래도 나름 학교다닐때에는 학점 잘받고 나름대로 관련된 프로젝트 수행 경험은 있더군..생각해보면 나도 신입때는 욕 묵었는데 ㅎㅎ 하긴 실무와 학부와는 갭이 크니깐..이건 어쩔수 없는 걸지도..