10년이상 프로그래밍 공부를 해보신 분들께 여쭈어 봅니다.

kekmodel의 이미지

안녕하세요. 저는 20대 후반의 청년입니다.
전공은 산업공학을 했구요. 다니던 회사는 얼마전 그만두었습니다.
근 2달간 쉬면서 앞으로 어떻게 살 것인가에 대해서 많이 생각하고, 도움이 될만한 책들, 강의들을 보면서 결심했습니다.

모바일 어플리케이션 개발자가 되자.

물론 출발이 많이 늦었다는 것을 압니다. 프로그래밍 지식도 지금 기억나는 건 if, for문 정도구요. 허허;;
지금 당장은 적당한 직장을 구해서 입에 풀칠을 하고 주말, 자는 시간 반납하고 미친듯이 이쪽 공부해서 3년 후 쯤엔 이직을 할 생각이 있고.
입사후 실력을 쌓아서 앞으로 10년 후 쯤에는 좋은 사람들과 모바일 어플리케이션 벤처를 설립하는 것이 목표로 하고 있구요.

늦은 만큼 되도록 효율적인 방법으로 트렌드에 맞는 공부를 하고 싶어 이렇게 진심으로 글을 남깁니다.
10년이상 공부해오신 분들(IT세상이 또렷히 보이는 '득도'하신분 들)이 지금 저의 상황이라면 어떤 언어들을 어떤 방식으로 공부할 것 같으신가요?

어느정도 커리큘럼을 짜주시면 정말 많은 도움이 될 것 같습니다.
작은 답변이라도 귀담아 듣겠습니다. 도와주십시오!

p.s 보수는 상관없습니다.

익명 사용자의 이미지

전 비전공자가 충분한 공부없이 (취미가 아닌)프로그래머를 목표로 하는것에 대해
상당히 부정적인 사람입니다.

비록 학부수준의 대학에서 가르치는것이라도 제대로 소화하는 사람이 많지는 않아도
반드시 배워야하는 내용들입니다.

운영체제, 프로그래밍언어, 자료구조, 알고리즘, 소프트웨어 엔지니어링, 네트워크, 데이터베이스

여기서 말하는건 API 이름 외우고, 사용하는법을 배우는것이 아닙니다.
예를들어, DB과목에서는 MySQL, Oracle 사용하는 방법을 배우는것이 아닌( 그런것은 직업훈련 학원 과목으로 들어가야겠죠 ) SQL을 어떻게 이해해야하며, lamda calculus도 좀 배우고, 자료구조를 어떻게 저장하는가 등을 말하는것이고, 네트웍도 소켓프로그래밍을 어떻게 하는것인가가 강의 주제가 아닙니다.

어쨋든, 프로그래머가 되고 싶으시면, 최소한 학부수준에서 배우는, 위에서 열거한, 저정도의 공부는 하고 시작하시길 바랍니다( 책으로 혼자 공부를 하던...대학에서 수업을 듣던.. )

"남들은 4년동안 공부하지만, 난 책보고 몇달이면 돼..."

라고 생각하신다면, 기술자로서는 득도하시지 못할겁니다.

kekmodel의 이미지

전산학-> 프로그래밍언어-> 자료구조, 알고리즘-> 운영체제-> 네트워크 -> 소프트웨어 엔지니어링-> 데이터베이스
테크로 기본을 1년 정도 쌓고 시작하고 싶습니다.

여기서 프로그래밍언어를 주력언어로 삼을 것을 공부할지 C부터 하는게 맞을지 모르겠습니다.
혹시 메신저쓰시는 것 있으시면 가르쳐주시면 안될까요?^^

shint의 이미지

제가 10년이상된 프로그래머는 아니지만... 제 생각으로는.
의지를 가지고 무언가에 대해 노력한다면. 그게 뭐건간에. 충분히 가능하리라 생각됩니다.

다른 사람들의 요구와 수준에 자신을 맞춰주기위해서 노력하시려는게 아니라면.
자신이 하고 싶은것에 대해 주장하고. 대화하고. 노력하는것도 좋다고 생각됩니다.
하고 싶은것을 하면서. 돈도 벌고 재미나게 산다면. 그것만큼 좋은게 없습니다.

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com

kekmodel의 이미지

힘주셔서 감사합니다. 노력이 능력이라고 생각합니다.

RedPain의 이미지

일단 3년 후쯤이 급하군요. 일을 하시면서 3년이란 시간동안 얼마나 공부를 할 수 있으실지 잘 모르겠습니다.

1. 가장 적게 공부하는 방법.
- "늘어나는 삽질 속에 빨라지는 작업 속도 by RedPain"란 표어를 믿습니다.
- 플랫폼을 정합니다.
- 플랫폼에 대해(언어부터 각종 개발환경까지) 공부하면서 삽질을 합니다.
- 간단한 프로그램을 만들어 보면서 삽질을 합니다.
- 어떤 종류의 프로그램(게임인지 웹관련인지 등등)을 만들며 살지 정합니다.
- 게임이라면 게임프로그래밍 관련 지식(물리학, 3D 등등)을, 웹관련이라면 웹관련 프로그래밍 관련 지식(HTML, 각종 웹표준 등등)을 공부합니다.
- 쓸만한 프로그램을 만들어 보면서 삽질을 합니다.
- 입사합니다. 응?

2. 1번으로 접근하는 것보다 조금 시간이 있다면.
- 위 테크트리를 타면서, 영어(Reading >>> Writing > Listening > Speaking)와 자료구조를 공부합니다.
- 더 시간이 있으면, 알고리즘, 운영체제, 컴파일러, 네트워크, 데이터베이스, 프로그래밍 언어론, 컴퓨터구조론, 개발방법론 중 맘에 드는 것 하나씩 공부합니다.

3. 2번으로 접근하는 것보다 더 시간이 있다면.
- 위 테크트리를 타면서, Haskell, LISP, Smalltalk, J, Forth or Factor, OZ, Io, Erlang 등을 사용해봅니다.
- 위 언어를 절대 마스터할 필요는 없습니다. 한 언어에만 매달리다보면 "프로그램은 이렇게 만드는 것"이라는 고정관념이 틀에 박히는데 단순히 이걸 깨는 것일 뿐이니까요. 사고를 유연하게 만들어준다고나 할까... (주력 프로그래밍 언어가 Java나 Objective-C라면 Smalltalk는 굳이 안 해보셔도 됩니다. 해보면 안 된다는 건 물론 아닙니다. ;;)

제가 하고 싶은 말은 이겁니다. "시간이 많으시다면 우물을 넓게 파시고, 시간이 없으시다면 우물을 좁게 파세요.", 즉, 시간이 많으시다면 기반을 탄탄히 다지시고, 시간이 없으시다면 좁은 분야에 전문가가 되세요. 3년, 짧다면 짧은 시간이고 길다면 긴 시간입니다. 제가 말씀드린 모든 걸 할 수도 있는 시간이지만 직장을 병행하신다면 1번조차 하기 힘들 수도 있습니다. 건승을 빕니다.

당신의 카페 주소가의 이미지

않습니다

codebank의 이미지

좀 부정적인 발언을 하겠습니다.

만일 돈을 받을 수 있는 직업이 있다면 그쪽으로 전념을 하시는게 좋습니다.
IT 쪽이라는 것이 굉장히 빠른 변화를 보이고 있어서 3년 후면 세상이 바뀌어
있을 지도 모릅니다.
제가 볼때는 지금도 그렇지만 앞으로도 어플리케이션 보다는 누적된 데이터가
더 많은 돈이 될 수 있을지도 모르죠.
보수와 관련 없다고 하셨지만 기부하는 삶을 살지 않는이상 보수는 확실히
챙겨야합니다.
또한 10여년전부터 정부에서 많은 수의 개발자를 양산해 놓았고 아직도 높은
임금을 꿈꾸는 개발자가 도처에 산재해 있기도 합니다.
다만 임금을 낮추면 일자리는 많지만 그럴 가능성은 보이질 않고...

--------------------------------------------------
우리나라 개발에 대한 이런 저런 주변 상황을 충분히 인지 하셨고 그래도 개발을
해보고 싶다고 한다면 다음과 같이 공부하세요.

어떠한 언어든 자신이 읽기편한 또는 이해하기 편한 언어를 하나 고르세요.
(보통은 Java를 많이 권하지만 컴파일러를 구할 수 있다면 파스칼이나 베이직관련
언어를 고르시는 것도 좋습니다. 만일 이전에 컴퓨터 언어쪽을 조금이라도 공부해
보셨거나 이미 배운 언어가 있다면 그것을 시발점으로 삼으셔도 좋습니다.)
그리고 될 수 있으면(절대적으로) 책을 구입하세요. 인터넷을 통한 책이 아닌 실물
책을 구하시는게 중요합니다.
무조건 첫장부터 마지막 장까지 한번 읽어보세요. 중간에 컴퓨터를 켜서 코딩할 필요
없습니다. 그냥 무조건 한번을 읽어보세요.
그리고 두번째 읽을 때부터 컴퓨터를 켜고 직접 코드 하나하나를 입력하고 컴파일을
해보세요. 될 수 있으면 통합 IDE 보다는 Console에서 컴파일 하는 방법을 추천해
드립니다. (Copy & Paste는 개발자에게 편리함이 아닌 독입니다.)
조금 어렵게 어렵게 하나하나 앞으로 나아갑니다. 머리보다는 손에 코딩이 익을 수
있을때까지...
마지막으로 많은 응용프로그램을 만들어보세요.
그냥 생각나는 하잘 것 없는 프로그램부터 규모가 된다고 생각하는 프로그램까지
생각나는대로 만들어보세요.

이부분은 될 수 있으면 아래와 같은 규칙을 지키는게 좋습니다.

1. 무엇을 만들지에 대한 대략적인 문서를 만들고(수정 포함)
2. 무엇을 만들지에 대한 순서도를 만들고(수정 포함)
3. 함수 또는 Class를 분류하고(추가 수정 삭제 포함)
4. 코딩(수정)

처음부터 코딩을 하실때 이런 버릇을 들여 놓으세요.
다른건 지나쳐도 되도록 2번은 꼭 손으로(컴퓨터가 아니라...) 해보시라고 권하고
싶습니다.

위와 같은 방법으로 10~20여개 이상 프로그램을 작성하실 수 있다면 원문에 써놓으신
꿈을 펼쳐보세요.

------------------------------
좋은 하루 되세요.