심각하 진로고민입니다..

rareboy의 이미지

현재 2학년을 마치고 휴학중인(제대는 했습니다) 대학생입니다.

좀 거창한 프로젝트를 해보고 싶다는 욕심에 공부해볼 생각으로 나름 계획을 가지고 휴학을 했습니다.

본래 의도했던바는 비트교육센터라는 IT교육기관에서 학원 수료를 하고싶었으나

지난 4월에 시험을 쳤고 대부분의 사람들이 합격선이라 말하는 점수를 받았지만 2학년이라는 딱지때문에

고급과정(?)이라는 녀석을 듣고 오라고 하더라구요.

그래서 고급과정이라는 놈을 약 일주일정도 들었더랬습니다.

그런데 거기 오신 분들 대부분이 이제 c언어 막 마치고(?) 오신 분들이었습니다.

C++, API, MFC, SYSTEM, NETWORK, COM 이런 순으로 강의가 2개월 이어지고,

나머지 2개월은 프로젝트였습니다..

저는 어릴적부터 프로그래밍을 해왔습니다.. 그렇다고 잘하는건 아니지만..

서당개도 3년이면 풍월을 읊는다고 하는데 저는 벌써 10년째이고..

이제 겨우 c언어 마치신 분들과 비교하는건 무리가 있다고 생각했습니다.

저보다 c언어를 더 잘아실수도 있지만

프로젝트를 하는데 있어서 언어는 기본아닙니까.. 그냥 단지 키워드 한두개 더 아는게 중요한게 아니라

경험과 설계능력이 더 중요하다고 생각하는데 그 분들은 경험이 없으시니까요..

비싼 돈 주고 제가 배우러간건데 가르치고 있는 제 모습을 발견하자.. 이건 아니다 싶어 그만두었습니다.

그리고 이제는 아무런 계획이 없습니다. 그만둘때 뭔가 대책을 세워놓고 그만뒀어야 하는건데..

여기서 무얼 어떻게 해야할지 모르겠습니다..

조금 더 잘해보겠다는 욕심에서 일은 벌려놓았는데 수습이 안되네요.

고급과정 4개월을 그냥 전문과과정에 들어가기 위한 투자라고 생각하고

낭비하기도 시간이 아깝다는 생각이 자꾸들고..

어떻게 하는 것이 좋을까요.. 그걸 감수하고도 들어갈만한 가치가 있는걸까요?

아니면 대학교 연구실은 어떤가요? 대학원을 가야될지도 모르는 부담이 주어져서 계속 망설였거든요..

하지만 뭐 지금은 많이 공부만 할 수 있다면 대학원도 나쁘지 않을 것 같기도하고..

자꾸 횡설 수설하는것 같은데ㅡㅡ;; 이쯤에서 정리해서 쉽게 객관식 문제로 정리하겠습니다..

1. 비트교육센터 전문과과정을 이수한다(이 경우에는 제 졸업이 반년이 늦어질겁니다)

2. 대학교 연구실에 들어가서 프로젝트를 진행한다(이 경우는 대학원 진학을 고려하지 않으면 안됩니다)

3. 그냥 독학한다(의지는 충만하나 프로젝트 경험은 쌓을 수 없겠죠..)

4. 다 때려치우고 복학한다ㅡㅡ;;

(되도록이면 시간이 걸리더라도 조금 수준 높은 프로젝트를 진행해보고 싶습니다)

그리고 만약 제가 독학을 한다면

제가 가지고 있는 능력으로 할만한 프로젝트가 어떤 것들이 있을까요..

제가 2학년을 마쳤긴 하지만 3학년 주요 과목들은 대부분 이수했습니다..

그걸 감안해서 주제선정을 좀 해주세요^^;;

자료구조나 알고리즘도 학자처럼 상세하게 모든걸 알지는 못하지만

특화된 분야가 아니라면(vision 같은 영상처리 알고리즘 등) 흔히 쓰이는 것들은

실전에서 사용할 수 있을만큼 알고있습니다..

언어는 C, C++, VB, C#, java찔끔(ejb이런건 전혀 모릅니다..) 그밖에 웹언어시리즈 php, .net아닌 asp

api, mfc, system programming(wdm은 거의모릅니다) 등을 왠만큼 할 수 있습니다..

참고로 관심분야는 임베디드지만 하드웨어는 거의 잼병이고

(그나마 다행인건 컴아키텍쳐에서 배우는 정도는 알고있습니다.)

또한 지금껏 거의 윈도우즈 플랫폼에서의 연습만을 해왔기때문에

프로젝트 주제는 임베디드가 아니어도 상관없습니다.

선배님들 많은 답변 부탁드리겠습니다.. 쓴소리 많이해주세요..

geneven의 이미지

다 때려치고 복학하고 컴퓨터관련 랩실 들어가고 오픈소스에 참여하시는게 답인거 같습니다

rareboy의 이미지

그게 나을까요?
학교가 인천에 있어서 강남까지.. 학원인지 뭔지 다니기도 너무 힘들긴합니다ㅎㅎ
아무튼 답변감사합니다^^

creativeidler의 이미지

왜 학원을 다닐려고 했었는지에 대한 설명이 없어서 뭐라 말하기 그렇네요. 개발자로서 이루고 싶은 것이 무엇인가에 따라서 선택은 다양하게 달라질 수 있을 것 같습니다.

semmal의 이미지

기본기가 달리면 무얼해도 결국에 한계에 부딪히기 마련입니다.

살면서 지금도 느끼는 점이지만 고등학교, 대학교 과목 치고 세상살면서 하나하나 중요하지 않은게 없더군요. 물론 저만 그럴 수도 있지만요.

학교공부라도 아주 아주 충실하게 하세요.

학원에서 가르쳐주는 잔기술 테크닉 배워봤자 잘해봐야 5년이나 써먹을까요?

설계를 배우시고 싶다면 컴파일러 공부를 특히 많이 하신다음, 수많은 경험을 하다보면 확실히 늡니다.

물론, 경험이야 좋은 사람 많이 만나서 열심히 일하면 생기는 것이구요.
------------------------------
How many legs does a dog have?

------------------------------
How many legs does a dog have?

Fe.head의 이미지

학교 수업에 충실하시며 기초를 다지시고
오픈 프로젝트에 참여하시거나 만들어 보세요.

10년이상하셨으면 학원 다닐 필요 없으실것 같네요.

-----------------------
과거를 알고 싶거든 오늘의 네 모습을 보아라. 그것이 과거의 너니라.
그리고 내일을 알고 싶으냐?
그러면 오늘의 너를 보아라. 그것이 바로 미래의 너니라.

고작 블로킹 하나, 고작 25점 중에 1점, 고작 부활동
"만약 그 순간이 온다면 그때가 네가 배구에 빠지는 순간이야"

pjs0919의 이미지

흠... 차라리 같은 투자시간이면... 변리사 준비를...

공인중개사도 괜찮구요....

\(´∇`)ノ.大韓兒 朴鐘緖人

\(´∇`)ノ.大韓兒 朴鐘緖人

freestyle의 이미지

먼저 개발자(프로그래머)로써 어떤 일을 하고 싶은지부터
시작하는 것이 정답이라고 봅니다.

글 중에서는 임베디드라고 하셨는데,
앞으로 임베디드는 지금보다 훠~얼씬 체계화 될 것입니다.

물론 어떤 파트든 하드웨어든, 소프트웨어든, 바디든(디자인은 외주?),
전체적인 시스템에 대해 이해는 하고 있어야겠지만

점점 한 분야의 전문성을 많이 요구할 것입니다.
(물론 소기업에 가까운 중소기업들은 여전히 혼자서 코딩하고
기획하고 다 하게 되겠지만)

따라서 언어(커널, 디바이스 드라이버처럼 로우레벨인지, 어플, UI처럼 사용자쪽인지)를 할 것인지
하드웨어(회로 설계부터 특정 모듈에 대한 제작)를 할 것인지 결정하셔야 할 듯 싶습니다.

임베디드쪽은 결국 컴퓨터이기 때문에 현재 컴퓨터에 대한 해당 파트
전문지식을 더욱 높이시기 바랍니다.

저는 소프트웨어쪽이라고 가정하고 말씀드리겠습니다.

앞으로 임베디드에서 유망하게 쓰일 언어는
전통적인 c와 어셈, 그리고 앞으로 c++ / 저는 왜 그런지 모르겠지만 JAVA입니다.

뭐 M$에서 계속 돈 쏟아부으며 임베디드용으로 자꾸 내놓는데,
20~30년 안에는 그것이 주력이 될리는 없습니다.

어찌어찌 잘 풀려서 대학원거쳐서 학위 따고 연구소 가서 전문적으로 연구하게 되면
보통 Target용으로 직접 개발할 가능성이 높고,
일반적으로 취업이나 창업하게 되면 리눅스나 윈도우를 베이스로 개발하게 될 것이니
저는 이쪽을 중점으로 말씀드리겠습니다.

일단 컴퓨터 구조나 언어에 대한 이해는 어느 정도 하셨다고 하니,
시스템 내부를 공부하기 쉬운 리눅스 내부를 들여다 보고
리눅스 시스템 프로그래밍을 해보시길 권장합니다.

가능하면 쉘부터 시스템 프로그램, 디바이스 드라이버, ..., 커널쪽으로 공부해 나가시고,
돈 아깝다 생각치 마시고 각 분야에서 괜찮다고 하는 책 2권정도씩 사셔서
실습해 가시면서 공부해 보세요.

여력이 있다면 공부용 전용 시스템 두고 마음껏 지지고 볶고 하는 것을 추천드리고,
그렇지 않다면 vmware같은 가상화 프로그램을 활용해 보세요.

공부하면서 시간은 약간 걸리지만 어느 정도 이해가 된다면 그 자리에서 내 것으로
만드시고, 그렇지 않다면 일단 예제라도 한 번씩 쳐가면서 눈과 손끝의 감이라도
익혀 보시는 것이 좋습니다.

아마 대학 다니는 동안에 저것들을 살짝 해보고 나가기만 해도 현업에서 접하시면
훨씬 수월할 것입니다.

참, 그리고 취업과 실력은 정비례 하지 않습니다.
일반적인 기준에서 영어실력과 학교 간판(여전합니다;), '인맥'이 오히려 더 중요하지요.

아주 열심히 했는데 취업 잘 안 되어서 작은 기업에서 시작해서
납땜질하고 AS전화 응대하면서 1~2년 일하다가, 이직도 녹녹치 않아
'아, 차라리 일본 가야겠다' 해서 그 때 6개월 일본어 배우면서 인턴식으로 일하시고
취업하면, 물론 잘 될 가능성도 있지만 너무 시간이 많이 걸리잖아요 ^^;

본인의 길이지만 덜 돌아가면 좋지요.

참, 그리고 삼성소프트웨어 멤버십이 접수 중입니다.
기술면접이 7월 초이니 새로 프로젝트를 만들 시간은 없을테고
기존에 만든 프로그램 중 선택하셔서 개선시킨 다음 들고 가세요.

합격하면 1년 이상 삼성 멤버십으로 활동하면서 졸업하면 삼성전자 입사 특전이 부여됩니다.
예전보다 많은 수를 선발하고, 요즘 이전 기수가 많이 나가서 자리가 좀 난다네요.

뭐 이번에 떨어지면 한 학기 더 다니시고 도전해 보는 것도 좋지요.
그 때는 임베디드로..

마지막으로 지금 이런 프로젝트를 만드실 수 있는지요?
임베디드 장비에서 돌아가는 SMS(System Management System)인데,
알아야 하는 것은 리눅스 기준으로 봤을 때

1. 임베디드 개발 환경 세팅
(크로스 컴파일러 설치, 디바이스 드라이버 응용, 커널 수정해 밀어넣기)
2. 시스템 프로그래밍 ; 시스템의 정보를 얻어와야 하므로 여러가지 알아야 함
3. 네트워크 프로그래밍 ; 무선이 정답이지만, 일단은 유선(이더넷), FTP처럼
명령/제어 포트 분리하고, 쓰레드로 돌리기(동기화 필요)
정보 유출되면 안 되므로 암호화
4. GUI ; qt/e나 GTK+로 사용자 인터페이스 만들기

'이런 시스템을 만들겠다'는 생각으로 프로젝트를 진행하시면 좋습니다.

조금 내용을 바꾸면
'임베디드 장비로 무선 환경에서 터치스크린으로
이기종 시스템에서 여러 명이서 접속해 테트리스를 플레이 할 수 있는 프로그램을 만들겠다'
이렇게도 되겠지요.

혼자서는 무리일 것 같은가요?

그렇다면 비트에 가보세요.
그쪽 학생들 중에 제가 아까 말씀드린 삼성소프트웨어멤버십 지원하려고 다니는 친구들도 있고,
실력은 필드 플레이어나 플젝경험이나 네임벨류가 필요해서 다니는 친구들도 있습니다.

뭐 더욱 좋은 것은 뜻이 맞는 학교 친구들과 그룹 만들어 스터디 하고
플젝 진행하면서 지도교수님께 조언 구하는 것입니다.

대학교의 교수님쯤 되시면, 강의 때는 좀 설명을 못하실 수 있으나 실력도 실력일 뿐더러
산전수전, 공중전까지 다 겪은 분들이 대부분입니다.

물론 현장감은 떨어진다고 생각할지 모르겠으나, 그런 것은 필드 나가서 배워도 늦지 않으니..

잡설이 길어졌네요. 새벽에 그냥 할일 없어서 끄적여 봅니다;;
필터링 잘 하셔서 읽으시길 ㅎㅎ

-------------------------------------------------------
Go to the U-City

----------------------------------------------------------------------------------------
Don't Feed the Trolls!
----------------------------------------------------------------------------------------

freestyle의 이미지

삼성전자소프트웨어멤버십 홈페이지는 secmem.org입니다.

합격하면 각 지역별로 활동하고, 많은 프로젝트를 마음 맞는
멤버들과 같이해서 여러 대회에도 출품하고 입상도 합니다.

그리고 회사 프로젝트를 현업에서 같이 해볼 수 있는
기회도 제공합니다.

이렇게 장점만 열거하는 것은, 물론 자신과 맞지 않아
뛰쳐나가거나 대충하다가 짤리는(?) 경우도 있긴 하지만,
보통은 같은 직종의 같은 일하면서 더 좋은 대우 받는 곳으로 가기 때문에
추천드리는 것입니다.

그럼 열공하세요~ ^^
---------------------------------------------------
Go to the U-City

----------------------------------------------------------------------------------------
Don't Feed the Trolls!
----------------------------------------------------------------------------------------

jinhoy97의 이미지

쭉 글을 읽어보니 본인의 프로그래밍 경험은 충분할 것 같습니다. 저 역시 학원보다는
이제는 실제적인 프로젝트 참여를 해서 본인의 경험을 활용하면서 '일하는 방법'을
배우는 것도 좋은 방법일 것 같습니다.

하지만 여러 기술을 익혔다고 해도 그리고 어떤 프로젝트들을 수행하며 경험이 많다고 해도
'자신만의 길'을 알지 못하면 별 소용 없을 것입니다. 예를 들어 네트워크 프로그래밍을
할 줄 아는 것과 게임서버전문가와는 별개의 이야기라 할 만큼 많이 다릅니다. 영상처리나
그래픽스 역시 마찬가지입니다.

본인이 현재 기술 익히고 기술 늘리는 것에 더 즐거운지 아니면 근본적인 알고리즘을
분석하고 문제를 찾아내는 것이 더 즐거운지 판단하셔야 합니다. 앞에 쪽이면 회사나
실무쪽으로 경력을 잡으시는게 맞고 뒤쪽이라면 대학원을 가셔서 석사나 박사 학위가
필요합니다.

가장 중요한 것은 먼저 '자신을 아는 것'입니다. 그것이 모든 답을 줄 것입니다.
사실 사람나이 50이 가까워와도 진로 고민합니다. 고민은 늘 하는 것이니 걱정은
마세요. 힘내시길 바랍니다.