[완료]진로에 대해 고민이 많습니다... 어떻게 해결해야될까요..?

Wing_나노의 이미지

내년에 23살이 되는 (하루도 안남았네요...) 컴공과 3학년 재학생입니다.
(3학년이지만..올해 8월중에 과를 바꿔서 온 바람에 1학년 과정부터 하고있습니다..)

처음 프로그래밍 공부할 땐 단순히 개발이 좋아서 무작정 공부했습니다.

8월 달 초쯤에 막막한 상태에서 우선 c가 중요하단 생각에 C를 공부했습니다..그 후 자료구조 와 알고리즘의 중요성을 느껴서 혼자 끙끙거려보기도하고...
그러다 문뜩 그림판을 보고 그림판은 어떻게 만들어진 걸까, 윈도우 창은 어떻게 생성되는걸까 궁금해서
윈도우즈 API도 공부하고.. 지금은 또 문득 채팅프로그램에서 메세지 전송으 어떻게 이뤄지는지 궁금해서 TCP/IP 프로그래밍도 끄적거려보고...
(아직 확실히 정한건 아니지만..)게임프로그래밍은 C++이 중요하단 소리에 C#하려던 마음접고 C++을 하고있습니다..

공부를 하면 할수록 저한테 무엇이 부족한지 느껴지고, 앞으로 무엇을 해야될지 생각하게 되더니 요즘엔 처음 막 c공부했을 때 보다 더 막막한
심정입니다. 코딩이든 공부든 신나게 열댓시간씩 타이핑 하고 책 들여다 보고 있다가
문뜩 "과연 이렇게 한다고 해서 꿈이 이뤄질까?" 란 생각에 좌절도 많이 됩니다..

저의 꿈은 클라이언트개발자 입니다. 그리고 현재 가장 고민 중인 두번째 진로는 아무래도 요즘 가장 큰 추세(대세)인
스마트폰 어플리케이션 개발 쪽 입니다.
저희 부모님도 이 분야를 더 권장하시는 분위기이고... 친구들 및 선배들, 주변 사람들 모두 스마트폰 개발로 가는게 좋지 않겠냐 하십니다.

전 고집이 쎈 편이라 주변사람들의 말은 아무래도 좋다고 생각하고 있습니다. 그런데 저도 막상 "난 게임프로그래밍을 할테아!" 라고
당당하게 말을 못하겠습니다.

제 짧은 지식으로는

클라이언트 개발과 스마트폰 어플리케이션 개발은 배우는 과정이 다른걸로 알고있습니다.

그리고 현재까진 클라이언트 개발자에 좀더 다가가기 위해 계획대로라면 내년 3월 달 까지 윈도우즈API(김상현님 저) 2권과(레퍼런스로 참고할까만 생각했지만 한번이라도 쭉 훑어 보는게 도움이 될거라 생각이 들었습니다..) TCP/IP 프로그래밍 바이블, C++ 프로그래밍 바이블 을 보고 자료구조와 알고리즘은 도중도중에 시간날때마다 하려고 계획했었습니다. 내년 5~6월 달 경엔 다이렉트X도 공부하려고 계획중이기도 합니다.. (아.. 현재는 API는1권과 C에서 부족한 부분, C++과 자료구조만 하고있습니다.)

하지만 만약 도중에 진로를 바꿔서 스마트폰개발 쪽으로 나가게 된다면...
아무래도 API보단 C#과 JAVA를 주력으로 공부해야 될테고 API, DirectX는 전혀 안쓸것 같기도 싶은데 내가 지금 과연 잘하고 있나 싶기도 하고...
또한 학교 커리큘럼 상에 다이렉트X와 OpenGL 과정이 없다는 것도 혼란스럽습니다.. 이러다가 나중에 이도저도 아니게 될까 두렵기도 합니다.

그리고 내년 8월 중에 공모전에도 참가하고 동계인턴도 신청 해보고 싶은데... 요즘 공모전은 대부분 어플리케이션 개발이 주를 이루고있다는 점에서
또 한번 혼란을 겪고있습니다...(공모전에 참가하기위해선 지금 당장 C#을 공부해야 될것같다는 생각에...)

가장 두려운건... 노력한 댓가가 티끌 만큼일까봐 두렵습니다...(제가 욕심쟁이인걸까요...윽..)

선배개발자분들에게 "제 꿈이 어느게 나을까요?" 같은 어리석은 질문을 하고싶진 않지만..
선배개발자분들께선 처음 입사하실때 혹은 공부하실때 "기준"혹은 "목표"를 어떻게 설정하셨는지 .. 짧게나마
의견이나.. 충고, 꾸짐람이라도 해주시길 부탁드리겠습니다.

(글이 두서가 없고 내용이 뒤죽박죽인 점 정말로 죄송합니다.. 마음이 혼란스러워서인지 질문하고 싶은것도 많고 답답한 심정을
글로써 풀고싶단 생각에 생각이 정리가 안되는 것 같습니다...죄송합니다..)

snowall의 이미지

최고의 실력자가 아닌 상황에서 남들이 하는거 따라하면 망해요.

그리고 윈도우즈 프로그래밍을 배웠다고 해서 스마트폰 프로그래밍을 못하는 것도 아니고, 다 써먹을 수 있는 부분이 있게 됩니다. 그 반대도 마찬가지고.

꿈이 이루어질까를 고민하기보다는 도대체 그 꿈이라는 것을 이루고 싶긴 한건가 고민해 보세요.

피할 수 있을때 즐겨라! http://melotopia.net/b

익명 사용자의 이미지

앞뒤 안가리고 파는 것도 중요합니다.
물론 앞뒤 안가리고 파다보면 더이상 사용되지 않는 플랫폼이 되기도 하고요.
열심히 하되 능동적으로 대처하는게 중요하지 않을까 싶습니다.

shei77의 이미지

자신의 의지가 중요 합니다. 하고 싶은거 하세요.. 참고로, 제 친구도 졸업 당시에
COBOL로 취직 한다고 걱정 많이 했었는데, 지금도 5년차 하고 있네요 -_-
하면서 다른거도 하지만요

----------------------------------------------------------
It's feasible to make an inspiration on your own.

poplinux의 이미지

고민글로 봐서는 아직 고민을 할 실력은 아닌 것으로 생각됩니다. 우선 어떤 분야가 되었던 프로그래밍에 대한 기본 실력을 키우세요. 환경과 도구는 기본이 되어 있으면 크게 영향을 미치지 않습니다.

========================
조직 : E.L.D(Embedded Linux Developer/Designer)
블로그 : poplinux@tistory.com
카페 : cafe.naver.com/poplinux

임베디드 리눅스 관련 프리렌서 지향

이응준의 이미지

제 경험에 비추어 말씀드리면,
현재 학부생이시라면 꼭 취업하고자 하는 회사의 요구사항에 맞추어 공부를 해야 할 필요는 없습니다.

제 사례를 말씀드리면, 대학 내내 게임프로그래밍에만 관심이 있었고, 거의 그쪽만 팠지만, 결국 취업은 포털로 갔습니다.
(게임 N사와 포털 N사 합격후 포털 N사로 감)

가장 경계해야 하는 것은, '내 진로는 이거다' 라고 섣불리 지나치게 좁은 범위로 한정하고 특정 분야만을 고집하여 익히는 상황입니다.
자칫하면 현재 상황에 공부하기 매우 적합하지 않은 분야에 시간만 낭비하고 성취는 이루지 못할 우려가 있습니다.

'무엇을 배울 것인가' 에 대한 기준으로 아래 세가지를 권해드립니다.

* 재미있는 것
* 주위 사람들이 하는 것 (다른 사람들과 함께하며 배워야 합니다. 막히면 물어볼 수 있어야 합니다.)
* 현재 하는 일과 관련있는 것 (예를 들어 학생이라면 수업시간에 써먹을 수 있는 것. 써봐야 늡니다.)

또한 좋은 프로그래머가 되기 위해 무엇을 공부해야 하는 것이 좋은지에 대한 지침으로, 다음 글을 추천합니다.

http://gaemon.wordpress.com/2008/10/13/10년-안에-프로그래밍-독학하기/

익명 사용자의 이미지

작년 8월부터 컴공 공부 처음 시작하셨다고요? 그리고 올해 8월에 공모전하고 인턴한다고요?

에효..

이미 제대로 바닥부터 차근차근 쌓아올라가는 건 불가능해 보이네요. 남들 코피터져가며 3~4년동안 하는 걸 1년에 하는 건 애초에 불가능합니다. 욕심이 많으신게 아니고, 그냥 뭘 잘 모르시는 거예요.

현재 님의 수준으로 내년에 뭔가 결실을 내고 싶으시다면 방법은 하납니다.

이것저것 기웃거리지 말고, 단 하나만 죽자고 달려들어서 뭔가 돌아가는 걸 만들어내세요. 게임 클라이언트 프로그래머가 목표라면, DirectX 하나만 죽자고 파서 3D로 뭔가 그럴 듯한 포트폴리오 만들어내세요. 자바니 C#이니 기웃거리다간 정말 죽도 밥도 안됩니다.

그리고 책 붙들고 이거 다 본다음에 뭔가 만들기 시작해야지 이래선 절대 못하고요, 일단 뭔가 만들기 시작해놓고, 그때 그때 필요한 걸 어떻게 하나 윈도우 API 책이든 DirectX 책이든 찾아가며 하셔야 할 겁니다. API 레퍼런스 책은 책상 앞에 앉아서 각 잡고 보는게 아니고요, 밥 먹을 때 옆에 높고 쭉쭉 책장 넘겨가며 뭐가 있나 살펴봐놓고, 코딩 할 때 옆에 놓고 계속 찾아보는 겁니다.

스마트폰은 비추입니다. 님처럼 기본 실력이 없는 상태에서 그 길로 가면, 정말 하루살이 개발자 됩니다.

익명 사용자의 이미지

그리고 덧붙이자면, 냉정히 말해 올해 공모전은 무립니다.

정말 개발이 재미가 있고 제대로 하고 싶으시다면, 저라면 말씀하신 비현실적인 스케쥴은 포기하고 좀 더 길게 보고 시간을 투자하겠습니다. 취업을 좀 미루고 대학원을 가더라도, 기초를 최대한 다져놓는 편이 정말로 두고 두고 좋습니다. 물론 이거야 님이 처한 현실적인 조건에 따라 달라지는 문제겠습니다만..

Wing_나노의 이미지

충고 진심으로 감사합니다..

"불가능", "절대 못하고요", "님처럼 기본 실력이 없는 상태"...ㅋ... 좋은 '무시'였습니다.

열심히 해야겠다는 의지를 다시금 다질 수 있게 해주셔서 감사합니다.

익명 사용자의 이미지

열심히 하시라고, 의지를 다지시라고 쓴 게 아닙니다. 주어진 제약 조건 하에서 어떤 목표를 달성하려면, 전략이 필요하죠. 열심히 하는 건 기본이고요.

님은 스스로 밝힌 바에 따르면 4개월 남짓 컴퓨터 공학을 공부하셨고, 그럼 님이 천재가 아닌 이상, 남들이 3~4년 동안 기초부터 다져가며 공부한 걸 1년 안에 따라잡는 건 불가능이고, 그렇다면 그 기간 내에 가시적인 성과를 내려면 어떻게 해야하는지를 쓴 겁니다.

저렇게 취업해봤자 길게 가기 어려운 사파의 길이지만, 어쨌든 당장 살아는 남아야 되니까요.

익명 사용자의 이미지

그리고 DirectX, C++ 해놓으면, 나중에 필요하면 스마트폰 개발로 전환하는 거 어렵지 않습니다. 하지만 지금 스마트폰 개발을 하시게 되면, 님이 갈 종착지는 SI밖에 없어요.

익명 사용자의 이미지

C#쪽으로 간다, JAVA로 간다, 이길로 가면 다른걸 포기해야한다.. 왜죠??

그냥 다 하세요 ㅡㅡㅋ 굳이 포기할 필요가 있나요?
언어 하나에 대한 벽을 너무 크게 생각하시는 것같습니다.
지금 수준에서도 충분히 빨리 C#이나 JAVA를 습득하실 수 있을 것같은데요~~

그리고 학교 과정에 원하는게 있길 바라지마세요~
고학년이 듣는 수업은 현재 하면 어려울 것같은 편견 역시 버리세요~

저도 다이렉트X는 1학년 때 어찌어찌 하다가 하게 되었던 경험이 있습니다.
학과 과정에 물론 없었죠. 레퍼런스보고 찾아보고 하면서 배우는 겁니다. 샘플 프로그램 코드 봐도 되구요.

아, 그리고 남는게 없을 것같다는 걱정 하시는데.
사실 언어자체가 중요하다 생각하지 않습니다.
하나의 언어를 배우면 다른 언어를 배울때 쉬울뿐더러, 그 전에 배웠던 것들(일반화, 프로그램 구조적인 문제 등등)이 동일하게 적용되는 경우가 꽤 있거든요.
그리고 다른 기술을 배우시다가 그쪽이 더 마음에 들수도 있구요. 해보지 않았는데 어찌 압니까~

일단 땡기는데로 시작하세요. 준비되길 기다리면 늦습니다. 생각보다 어렵지않을겁니다.

kocker의 이미지

개발 10년차입니다.

10년동안 안해본게 없네요...

- 시스템 프로그래밍(리눅스, 임베디드 리눅스, UCLinux, UNIX)
- 윈도우즈 시스템 프로그래밍
- JAVA Programming
- GUI(QT, GLIDE, DELPHI, WIN32, MFC, C#, WPF)
- Mobile(Apple iOS(objective-C), Android)
- VoIP(H.323, SIP)
- Database(MySQL, BerkelyDB, SQLite, MSSQL...)

뭐든 하시더라도 원리를 이해하세요. 원리는 어떤 언어든지 결국은 비슷합니다.

개발 10년차로 답답한게 요즘 신입 사원들 보면 자기가 해본게 아니면 못한다, 공부할 시간을 달라...

한국 대학교 컴공과의 커리큘럼을 보면 원리는 무시한체 눈에 보이는 것만 가르치고 있는데

프로그램이 어떻게 돌아가는 것인지(컴퓨터 아키텍쳐)부터 이해하시고 천천히 프로그래밍을

하더라도 늦지 않는데 말입니다.

한가지에 대해서 원리를 잘 이해한다면 다른 언어를 배울때/사용할때도 체계적으로 잘 할 수 있을 것입니다.

즉 시스템 프로그래밍, 소켓 프로그래밍, 그래픽 분야 등등을 봤을때 언어와 사용방법이 약간 다를뿐이지

결국은 논리와 원리는 비슷하구나 입니다.

너무 조급하게 성급하게 다가서지 마시고 한가지를 하더라도 원리를 잘 이해하세요.

kocker의 이미지

책은 책일 뿐입니다.

너무 많은 레퍼런스를 가지고 자기것으로 만드는 습관은 개인적으로 좋아하지 않습니다.

즉 C#이건, Objective-C이건, JAVA이건 가장 기본적인 문법과 HELP정도만 레퍼런스로 가지고 가시는 습관을 하시기를 바랍니다.

책을 많이 본다고 실력이 느는것은 아니라고 생각합니다.

바닥부터 닦아온 설계와 고민이 결국은 자신의 노하우가 되고 실력이 된다고 생각합니다.

책을 읽었으니 자신의 실력도 늘겠지라는 생각은 위험합니다.

그러나 원천 기술이 될 수 있는 책은 보면 볼수록 좋겠지요(MPEG-4의 이해, TCP/IP의 원리와 같은 책)