안녕하세요 프로그래머가 꿈인 중학생입니다 =_=.

penekhun의 이미지

자칭 개발자 고민상담실이란 게시판은 없길레 개발자 고민상담실에올려봅니다.

1년정도 오브젝트파스칼(델파이)란것을 공부하다가.. => 실은 그냥 공부하다기보다는 문법을 알아가며 여러가지 프로그램을 코딩하며 흥미를 찾아갔을뿐입니다.
4달정도 C++를 하며 객체지향프로그래밍에대해 더알아갔고..
최근(2~3개월전)에 좀더 전문적으로 배워보자! 하며 codeup, 프로젝트 오일러(오일러는 10문제정도 풀고 한계를느꼈습니다..)란 알고리즘문제풀기 사이트에서 문제를 풀다가
차근차근히 해보자하며 이진탐색부터 차근히 나아갔습니다.

그러다가 Lower Bound란 함수를 이진탐색알고리즘을 활용해서 재귀함수로 짜던도중에... 조금 헤매며 "아.. 난 생각하거나 문제에대해 접근하는 능력이 부족하거나.."라는 생각이들었습니다.

일명 어떠한 쉽다고불리는 알고리즘을 구현하려고해도 구현못함 or 발적화죠..

아참 저의 정확한 나이는 올해 16세, 중3입니다. 교과 수학은 중상위정도 하는것같습니다. 국어도 중상위구요.

어떻게 해야 문제에대한 접근능력을 향상시킬수있을까요?
알고리즘 순서도라도 그려야 될까요?

아니면 제나이에 지금 Lower Bound재귀함수를 이상하게 짜는게 당연한건가요? 짱짱한 개발자님들의 얘기를 듣고싶습니다.

아참 추가적으로 질문하고싶은게 하나더있습니당

요즘 이전에 회사 경력이있어야 취업이유리하더라하더군요. 그래서 제가 마이스터고를 진학하려고 알아보는중인데..
마이스터코를 가더라도 3년후에 대학은 "꼭"가고싶습니다. 이럴바엔 그냥 특성화고에 진학하는게 좋을까요?

긴글 읽어주셔서감사합니다 :)!

bt의 이미지

알고리즘에 대한 관심과 노력 칭찬하고 싶습니다.

이게 학교 성적이나 시험이 아닌데 구현이 쉽게 안된다고 자아비판하지 마시기 바랍니다. 고민하고 생각하는 과정이 더 나은 알고리즘을 만들게 해줄 겁니다. 앞으로 5-10년 후를 생각하고 만들어가면 되겠네요.

16살에 어떤 결과가 만족스럽지 않다고 생각하는 건 자신과 남을 비교하는 것 아닌가요? 16살에는 뭘 짜야 한다 - 그런 기준은 없습니다.

알고리즘에 대한 재미를 잃지 말고 꾸준히 해보세요.

괜찮은 4년제 학교 갈 수 있을 정도로 학과 공부를 잘 한다면 4년제 가는데 가장 유리한 고등학교로 진학하세요. 대학에서 더 많은 것을 배울 수 있습니다.

jujubar9의 이미지

일단.. 저는 인서울 컴공 4년제 나왔고..(중상)
현재 공기업에서 전산행정관련업무를 보고 있으며..
대학교 전공이 거의 반취미가되서.. 알고리즘이랑 웹쪽이나 혼자 조금씩 만지느 수준입니다.

제가 걸어온 길로 비춰볼 때...
최고의 수준으로 가고싶으시다면(전제조건입니다.)
지금 프로그래밍에 관심을 가지시는 것보단.. 본연의 공부에 더 충실하라고 말해드리고 싶습니다.
지금 프로그래밍하는 동나이들 중에선.. 정올나가는 괴물들이 수두룩합니다.(일반 인문고등학교 다니시는 학생이시라면 주위에 안보이실겁니다.)
이들 공통점은.. 수학과 영어 어린나이에 동년배들과 비교할 시 엄청나게 고수준입니다.
(이들수준이면 이미 인서울 대학교 중상위권 이상의 실력이라고 전 판단하고 있습니다.)

일단.. 수학과 영어 마스터하시겠다는 생각 가지시고. 수학과 영어 둘다 고작 '중상'위권 유지하는 수준으로는 나중에 써먹을 곳이 없습니다.(경험입니다. 전 전국 5-6퍼였습니다만 그것도 부족합니다)
수학과 영어를 '최상'을 찍으시고... 대학교도 좋은 곳으로 가신 다음에 프로그래밍하시는걸 강력히 추천합니다.
수학과 영어를 최상의 실력을 찍을려면 기초도 탄탄해야되고 중상수준에서 못보이는 원리들과 생각들을 접할 수가 있습니다. 이점이 나중에 알고리즘 대회나가면 수준차이가 하늘과 땅차이로 벌어지게됩니다.
지금 프로그래밍 하시고 싶은 마음 크겠지만. 기초공사 안된 건물은 아무리 고층건물이어봤자 무너지기 마련입니다.
님의 나이는 지금 기초를 단단히 해야할 때 입니다.
아 물론 위의 모든 내용은 위에 적혀있듯 최고수준으로 가고싶을 때입니다..

일단 중학교시면.. 수학으로 중학교 문제집 에이스수학정도는 무조건 전부 푸실 줄은 아셔야되고
거기서 더 가능하다면 올림피아드를 푸셔야됩니다.

고등학교는 정석 실력편으로 블랙라벨정도까지면 되겠군요..
(저도 기초가 부족하다생각되어 수학문제집 다시풀고 있습니다. 최근에요~. 제가 님이었다면 정말 수학과 영어에만 죽도록 매진할거같네요)

prits의 이미지

공감합니다.

덧붙이자면 국어 공부도 열심히 해두시면 좋겠습니다
영어랑 수학의 필요성은 강조해주셨으니 국어의 필요성을 강조해드리죠.

회사에서 일을 하거나 프리랜서로 일을 할 때 필요한 것은 커뮤니케이션입니다.
내 입장을 전달하고 이해시키는 스킬이 있어야 업무가 원활하게 잘 돌아갑니다.
국내에서 프로그래머로 살다 보면 프로그래밍 언어보다 한국어를 사용하는 일이 훨씬 많습니다.(안그런 곳도 있겠지만...)

영어를 잘 하기 위해서 국어는 필수이기도 합니다.
국어를 못하는 사람이 영어로 좋은 문장을 만들고 상대를 이해시키기는 굉장히 어렵다고 생각합니다.
저도 일본에서 일하고 있는지라 일본어로 일을 하는데, 국어를 열심히 공부했으면 더 좋았겠네...라는 생각 하고 살고 있습니다.
(국어 사회를 엄청 못해서 공과쪽으로 왔는데 결국 국어는 엄청 필요하네요)

정말 기초 다지기 열심히 하시기 바랍니다.
프로그래밍은 쉬엄쉬엄 하셔도 국(2)영(3)수(5)정도의 비율로 열심히 하시면 고등학교 졸업할 즈음에는 굉장히 실력이 붙어 있을 것입니다.

hothead의 이미지

지금은 가야 할 길이 공부 단 하나만 보이겠지만
대학교에 들어가고 사회 생활을 해보면 본인 생각 보다 진로에 대한 선택의 폭은 제한되어 있어요.

모든 것은 돈을 벌고, 먹고 사는 일과 연관되며
그 시대가 원하는 일자리의 수요와 공급에 따라 진로의 선택도 달라질 꺼에요.

예전에는 컴퓨터 공학 하면 먹고 살기 힘들다 35세에 닭집 사장 된다 라는 말이 있었지만 시장은 바뀌었고 먹고 살만한 상황이 되었습니다.
앞으로는? 잘 모르겠습니다.

지금 현 상황만을 딱 잘라 보고 컴퓨터에 올인 하기 보다는 다양한 상황에 적응 할 수 있는 기저(basis)를 키워 나가는 것이
앞으로 다가올 다양한 기회를 잡을 수 있을 것이라 생각 합니다.

마이스터고나 카이스트, 등등 프로그래밍, 공부 잘한다는 친구들 많이 만나 보았지만
고수 들은 자신을 낮추며 부족한 부분을 보완 합니다.

잘한다 못한다를 남한테 물어본다는 것은 본인 스스로 잘 알고 있는지 모르는지 자문 해보시길 바랍니다.

keedi의 이미지

뭐 사람들마다 의견이 다르겠지만 알고리즘도 훈련으로 계발이 가능하다고 생각합니다.
penekhun님의 하고자하는 뜻이 명확하시니 꼭 남들과 같은 방식으로 공부해야 한다고만은 생각하지 않습니다.
기초 과목 중요하지만 그것이 또 얼마나 전산학에 도움이 될까 생각하면 딱히 그렇지도 않은 것 같습니다.
필요없다는 것은 아니지만...

수학 잘해야 알고리즘 잘한다고 하지만, 딱히 그렇지도 않더군요.
수학 올림피아드 나갈 것 아니면 고등수학만 제대로 이해한다면
전산과 알고리즘 과정을 이해하는데 하등 문제가 없다고 생각합니다.
딱히 동년배 중에서 상위 1%안에 들어야 한다, 등 머 그리 생각하지는 않습니다.
전산에서 대부분의 문제 풀이는 이미 천공카드에 구멍 뚫어 코딩 하던 시절에
얼추 다 정립되었다고 생각합니다. 따라서 이미 잘 훈련된 이론과 해결 방법이 있으며
그냥 근성으로, 열심히, 머리를 굴려가며 이해하고 외우고, 코딩하면 됩니다.
똑똑하면 좀 더 수월하겠지만, 어짜피 그래봤자 천재 아니면 거기서 거기입니다. :)

다만 고등 교육 과정에 있는 그 모든 과목들은 전산 그자체보다 살아가는데 알게 모르게
큰 도움이되며 생각의 저변을 넓히는데 큰 도움이 되기 때문에 소홀히 하지는 않았으면 합니다.

정리하면 16세이신데 벌써 재귀란 단어를 알고 있고 알고리즘에 대해 고민을 하고 있다는
것 자체만으로 전산학도를 꿈꾸는 많은 동년배 친구들에 비해 몇걸음 앞서 있다고 생각합니다.
조급해하지 말고 차근차근 알고리즘, 자료구조 등을 공부하기를 추천드립니다.
더불어 메인으로 생각하는 언어로 컴파일 언어 하나, 스크립트 언어 하나를 차근차근
익혀 문법을 확실히 익혀 놓는다면 금상 첨화겠지요.

더불어 이러니저러니해도 개발자에게 영어는 필수인 것 같습니다.
16세라면 단순히 성적을 위해서가 아니라, 좋은 개발자가 되기 위한 밑거름이란 생각으로
정규 교육과정에 있는 영어를 진지하게 정말 열심히 공부하시길 바랍니다.

그리고 KLDP에 오실 정도니, 리눅스와 오픈소스에 대해서도 진지하게 생각해보시면 좋을 것 같구요. :)

다시 말씀드리지만 과도한 욕심을 부리기 보다는 차분하게 준비하면 대학교에 입학할 때쯤이나
또는 졸업할 때쯤이면 지금까지 생각못했던 새로운 것이 보이리라고 사료됩니다.
대학은 꼭 가야하는 것도 아니고 안가야 하는 것도 아니라고 생각하지만,
어짜피 갈 생각이 있다면, 좋은 선택이라고 생각됩니다.
다만, 대학에서는 꼭 전산학에만 얽매이기 보단 다양한 사람들을 만나고 경험하면서
인생을 배우셨으면 합니다. 전공 공부는 당연히 해야하는 것이겠지만요. ㅎㅎ

P.S.
더불어 인성도 정말 중요한 덕목 중 하나라고 생각합니다.
이건 누가 가르쳐 줄 수 있는 부분이 아니니...
항상 자기 자신을 되돌아볼 수 있는 그런 멋진 개발자가 되시길 바랍니다.

----
use perl;

Keedi Kim