여러 프로그래밍 언어를 경험하라?

luftpalen의 이미지

네.. 사실...

뭐 하나 잘하는 언어도 없는 학생입니다만 -_-

전에 KLDP 에서 다양한 프로그래밍 언어를 경험하는 것이 좋다는 얘기를 들어서 말이죠. (근데 찾아봐도 안보이더군요. )

요즘 PL수업을 들어서 느끼는거지만 세상에는 많은 프로그래밍 언어들이 있고 그 언어들마다 개발자의 철학이 녹아있는데, 맨날 C, C++ (가끔 Java) 만 파고있는 절 보니 한심해 지더군요. 시야가좁아진다고나 할까요..

반면에 하나도 제대로 못하는데 다른것까지 뭐하러 손대나 하나나 잘하자 하는 생각도 드는건 사실입니다.

이와 관련되어 많은 분들의 조언 부탁드립니다.

Bini의 이미지

한글로 소설을 못 쓰는데 영어나 중국어로 쓴다고 잘 쓰지는건 아니죠.
한글로 멋진 소설이나 수필을 쓸수 있다면 영어로 쓰는건 그렇게
어렵지(?) 않을 겁니다.
단지 도구의 문제죠. 하긴 요즘 워낙 이도구라는 놈의 중요성이 점점 부각되다보니... 짧은 시간에 쉽게 습득할수 있는 문제도 아니고...
물론 저도 프로그래밍이 시원찮읍니다. 더욱이 취미이다보니 투자할 시간이 많지가 않네요(먹고 사는데 허덕이다 보니). 저에게 많은 시간이 주어진다면
하나의 적당한 언어에다 알고리즘이나 자료구조, 프로그램의 분석 설계, 컴퓨터구조, 기반이 되는 수학, 영어공부에 시간을 보낼겁니다.

익명 사용자의 이미지

뭐... 위에 분도 말씀을 하셨지만 ...
정말 언어는 수단입니다.
그런데 가끔 언어를 잘하면 그게 고수이고, 다 된 것으로 착각을 하시는 분이 있는데...
말을 할 줄 안다고, 그사람이 위대해 지는건 아닙니다.
말을 하고 행동을 해서 무언가 이루어야 그 사람을 우리는 위대하다고 하는 것입니다.
여러 언어를 경험 해보는 것에 좋은 점은 ...
아무리 좋은 언어가 있다고 해도 모든 것에 그 한가지만을 적용을 할수가 없기 때문입니다.
그리고 어떤 프로젝트를 할 때, 언어의 선택에 따라서 기간이나 포퍼먼스가 확실히 달라 질텐데 할 줄 아는 언어가 한정 되어 있어 못하게 되거나 시간이 더 걸리게 된다면 그만큼 뒤쳐지는 것입니다.
이런 면에서 많은 언어를 경험 하는게 좋은 것입니다.

대략... 짧게 얘기 해서 이정도이고...
아마 이걸로 계속 얘기하면 너무 장황해질것 같아 끝 ~~~

<어떠한 역경에도 굴하지 않는 '하양 지훈'>

chadr의 이미지

언어는 자신의 생각을 표현하는 도구일 뿐입니다..

도구를 사용하는 방법을 익히는데 시간을 보내시기 보다는..
한 도구만 대충 얼른 익히셔서 자신의 생각을 어떻게 하면 잘 표현을 할 수 있는지에 대해서 고민을 해보세요..

그리고나서 자신의 생각을 어느정도 표현하는데 익숙해지셨다고 생각하시면 다른 도구들도 만져보세요..

그때는 처음 도구를 배우는 시간보다 절반을 더 쉽게 익히실 수 있습니다..

-------------------------------------------------------------------------------
It's better to appear stupid and ask question than to be silent and remain stupid.

hanzo69의 이미지

언어 자체는 그리 중요치 않을듯.. 윗 분들도 그런 뜻으로 말씀하시는 듯 하구요.

현재는 각 언어마다 적용되는 분야가 다르니만큼.. 한 언어를 하시면서 그 언어가 적용될 분야의 기술을 배우는게 더 중요하지 않을까 합니다.

C++을 배운다 하더라도... 그래픽스, 시스템, 네트워크, 인공지능 등등.. 각각의 분야에 대한 지식이 없다면 아무 쓸모가 없게 되죠.
그런 상황에서 다른 다양한 언어를 배워봤자 그저 노가리감 밖엔 안되겠죠..

좀 더 넓은 세상을 보시길 바랍니다.

님ㅎ 즐~

jedi의 이미지

다양한 언어를 경험하면 취직하기가 조금 더 쉬워지는 것 아닐까요?

+++ 여기부터는 서명입니다. +++
국가 기구의 존속을 위한 최소한의 세금만을 내고, 전체 인민들이 균등한 삶을
영위할 수 있는 착취가 없는 혁명의 그날은 언제나 올 것인가!
-- 조정래, <태백산맥> 중에서, 1986년

yielding의 이미지

luftpalen wrote:
네.. 사실...

뭐 하나 잘하는 언어도 없는 학생입니다만 -_-

전에 KLDP 에서 다양한 프로그래밍 언어를 경험하는 것이 좋다는 얘기를 들어서 말이죠. (근데 찾아봐도 안보이더군요. )

요즘 PL수업을 들어서 느끼는거지만 세상에는 많은 프로그래밍 언어들이 있고 그 언어들마다 개발자의 철학이 녹아있는데, 맨날 C, C++ (가끔 Java) 만 파고있는 절 보니 한심해 지더군요. 시야가좁아진다고나 할까요..

반면에 하나도 제대로 못하는데 다른것까지 뭐하러 손대나 하나나 잘하자 하는 생각도 드는건 사실입니다.

이와 관련되어 많은 분들의 조언 부탁드립니다.


지금은 새로운 언어 여러 개를 하는 것 보다 프로그램을 더 할때 같네요..

언어는 C++을 추천하고싶습니다(만 뭐 c++을 잘하는것도 만만한 일은아니죠..) 한 운영체제에서 기본적인 시스템,네트웍 프로그래밍 그리고 원하는 GUI를 익숙하게 개발하게 될 정도까지는 여러 언어 보는게 좋지 않을거 같군요.

PL 베우실때면 학부 2,3학년 정도 되실텐데.. 코스 열심히 따라가시고 시간이 남으면 역량에 맞는 프로젝트를 하나씩 단계별로 해보세요. 주제는 이곳 고수분들에게 물어보시면 좋은 답을 많이 얻으실 겁니다.

Life rushes on, we are distracted

익명 사용자의 이미지

다른 분들과 달리 저는 1년에 한번쯤은 꾸준히 외도를 하시라고 말하고 싶습니다.

한가지만 계속하면 익숙해지고 능숙해지겠지만, 사고방식도 고정됩니다. 프로그래밍 언어에 따라서 상당히 쇼킹한 해결방법을 얻게 되는 경우도 있습니다. (C/C++를 계속 해오셨다면 Lisp이나 Prolog같은걸로 천천히 보시는것도 좋을듯 싶습니다)

하지만 짧은 시간에 이언어 저언어 뛰어다니는건 저도 반대입니다. 남는거 없어요.

Prentice의 이미지

최근에 John Carmack님의 블로그에 올라온 내용인데.. 사고의 전환을 위해 요즘 Java로 휴대폰용 게임을 개발중이시라고 합니다.

주소를 원하시면 검색해보세요.. 제가 예전에 KLDP BBS에 주소를 올린 적도 있습니다.

PS. http://www.armadilloaerospace.com/n.x/johnc/Recent%20Updates

vacancy의 이미지

Scheme이나 Prolog 같은
非절차적 언어는
좀 접해보시면 신선하실듯도 .. 8)

juneaftn의 이미지

다양한 언어를 경험하면 배울 수 있는 것들이 있습니다. "디자인"에 대한 것이죠. 어떤 요소를 빼고 어떤 요소를 넣어 어떻게 버무리는 것이 좋을지에 대한 감각을 얻을 수 있습니다. 여기서 "디자인"이라고 하면 프레임워크나 라이브러리 디자인이 될 수도 있고, 기능 설계가 될 수도 있고 여러가지 포괄적으로 생각할 수 있습니다.

반면, 다양한 패러다임의 경험이라는 측면에서 생각해 볼 수도 있습니다. 다양한 언어와 다양한 패러다임이 꼭 동일하지는 않습니다. 여러 언어를 경험해도 다 거기서 거기일 수도 있고, 반대로 한 언어에서 다양한 패러다임을 경험할 수도 있습니다. 이와 관련해서는 CTMCP를 권합니다. SICP를 능가하는 책입니다.

익명 사용자의 이미지

검은해 wrote:
최근에 John Carmack님의 블로그에 올라온 내용인데.. 사고의 전환을 위해 요즘 Java로 휴대폰용 게임을 개발중이시라고 합니다.

주소를 원하시면 검색해보세요.. 제가 예전에 KLDP BBS에 주소를 올린 적도 있습니다.

PS. http://www.armadilloaerospace.com/n.x/johnc/Recent%20Updates

이시대 최고의 게임프로그래머답게 굉장히 심오한 글이군요..

부럽습니다... 34살의 나이로 저정도 내공을 쌓을 수 있다는 점이.

익명 사용자의 이미지

주제와는 약간 벗어난 말이지만..

이시대 최고의 게임프로그래머 라면.. 저는 존 카멕 보다는 리차드 게리옷을 꼽겠습니다....

위대한 로드 브리티쉬여.. 흐...

segfault의 이미지

묵검추 wrote:
주제와는 약간 벗어난 말이지만..

이시대 최고의 게임프로그래머 라면.. 저는 존 카멕 보다는 리차드 게리옷을 꼽겠습니다....

위대한 로드 브리티쉬여.. 흐...

리차드 개리엇은 위대한 프로그래머라기보다는 위대한 게임 개발자라고 하는 편이 낫지 않을까요?

존 카맥이 tech god이라는점에는 저도 동의합니다.

그의 업적은 3D 게임계 전반에 널리 퍼져 있지요...
(예를 들어서 그가 doom에서 처음으로 도입한 공간분할 기법(binary space partitioning)이라던지...)

Prentice의 이미지

http://www.armadilloaerospace.com/n.x/johnc/Recent%20Updates

Quote:
After Quake 3, I spent some time writing driver code for the Utah-GLX project to give myself more empathy for the various hardware vendors and get back to some low-level register programming.

그러고보니 Carmack님은 Q3 개발 후에는 Utah-GLX에서 드라이버 작성에도 참여하셨다고 합니다.

다양한 경험을 해봐서 나쁠 것은 없겠죠..?

죠커의 이미지

리차드 게리엇은 Designer라고 보는 것이 옳을 겁니다. (Graphic Artist와 혼동하시는 분 없으시겠죠 ...)

다른 언어를 배운다고 하더라도 C를 배웠으니 파스칼!! 이런 식이면 곤란하다고 생각합니다. 언어를 배우기 위해서 언어를 배우는게 아니라 다른 세상을 알기 위해 언어를 이용하는 것이 되어야 할 겁니다.

다른 세상을 이해하기 위해서는 적어도 다른 패러다임의 언어를 찾는 것이 현명하겠죠.

익명 사용자의 이미지

PD죠... 존 카맥은 developer구. 리차드 게리엇은 기획자입니다...

saxboy의 이미지

다른 경험을 위해서라면 lisp이나 prolog 를 한번 배워보면 좋으리라 생각합니다.

저도 알고 있는 랭귀지가 몇개 되지 않고, 그나마 매일 사용하는 것만 우려먹다보니 제대로 쓸줄 아는 언어라고 꼽을 수 있는 것이 그나마 C나 C++정도이지만, lisp과 prolog에서 문제를 해결하는 방법을 알고 있다면 사고의 전환에 참 많은 도움이 되리라 생각합니다. 보통 C나 C++정도만 알고 있다면 대부분의 고급 언어들은 필요할 때 (java, python, perl 정도를 제외하면 사실은 다른 언어가 필요한 경우도 별로 많지 않습니다만) 별 어려움 없이 사용할 수 있게 마련이지요. 하지만 함수형 언어들은 무언가 특별한 것이 있습니다. 궁금하시면 한번 개론서를 슬쩍 뒤적여보세요.

그리고... 임베디드 시스템과 전혀 관련이 없는 일을 하게 되더라도 x86이나 arm 같이 많이 사용하는 칩들의 어셈블리는 한번 배워볼만 하지요.

익명 사용자의 이미지

깨달음이 생깁니다.이건 마치 매트릭스1을 보면 막판에 네오가 총싸이언인이 된듯한 기분을 알게 해주죠..

그 깨달음을 얻게 되면 언어는 우습 습니다.단지 필요한건 매뉴얼과 인터넷만 있으면 그 언어를 조금만 훑어봐도 금방 학습하고 응용할수 있으니까요.그 단계가 되면 정보력이 얼마나 중요한지를 절감하게 됩니다.찾지 못하는것은 구현하지 못하고 찾는 것은 구현하고...

--;;두서가 없네여..

너굴사마의 이미지

전 1학년 때 C, C++, ASM을 약간 다루어 보았고 UNIX, OS 수업을 청강해 보았습니다.

C언어를 이해하는 것과 관련있는 과목에 많은 시간을 보낸거죠...

1학년 이후 3월에 훈련소 들어가기 3일전에...

Haskell을 공부해 봤더랍니다.

"뭐지? 뭐지? 뭐지?"만 연발하고...

훈련소 들어갔다가.

한달후에 돌아왔다는... (공익 이니까...=_=; )

뭐 이 이야기의 결론은...

한 언어만 무진장 파다가 다른 패러다임의 언어를 만났을 때 무척 당혹 스러웠다는 거죠.

앞으로는 한 우물에 주저하지 않고... 시간이 된다면 여기저기 기웃거려 보고 싶습니다. ^^

----------------------------------------------------------------------------
"It is more important to know where you are going than to get there quickly"
- Mabel Newcomber

Lodi의 이미지

예~ 저도 프로그램언어나 외국어나 같다고 생각합니다.
표현능력이 기르는게 가장중요한거 같습니다 :P

익명 사용자의 이미지

Anonymous wrote:
이시대 최고의 게임프로그래머답게 굉장히 심오한 글이군요..

부럽습니다... 34살의 나이로 저정도 내공을 쌓을 수 있다는 점이.


핸폰 잃어버리고 마누라가 좋은거 사다 준 김에 공짜에 문서도 널렸겠다 자바로 좀 깔짝거려보려다가
졸라게 느린 속도에 OTL 했다는 글이 어떻게 하면 굉장히 심오하게 보일 수 있는지 궁금하군요.
segfault의 이미지

천사 wrote:
Anonymous wrote:
이시대 최고의 게임프로그래머답게 굉장히 심오한 글이군요..

부럽습니다... 34살의 나이로 저정도 내공을 쌓을 수 있다는 점이.


핸폰 잃어버리고 마누라가 좋은거 사다 준 김에 공짜에 문서도 널렸겠다 자바로 좀 깔짝거려보려다가
졸라게 느린 속도에 OTL 했다는 글이 어떻게 하면 굉장히 심오하게 보일 수 있는지 궁금하군요.

technological jargon이 많아서 꽤나 심오하게 느껴질 만도 하군요.

익명 사용자의 이미지

babjo87 wrote:
technological jargon이 많아서 꽤나 심오하게 느껴질 만도 하군요.

--- off topic ---

technological jargon 때문에 세시간 머리 싸매고 고민했습니다.
technical jargon 이라고만 썼어도 아마 무심코 그냥 넘어갔을겁니다.
제가 웹을 돌아다니면서 본 jargon 들 중 지금까지 technological jargon 은 없었습니다.
한번 구글로 검색해보니 둘다 나옵니다.

결국 아래를 보고 결론을 내렸습니다.

http://www.wordiq.com/definition/Jargon

'Sometimes technical terminology is termed jargon or terms of art.'

따라서 technical jargon 은 역전 앞입니다.
오스포드에 technology 의 뜻은 다음과 같이 나와 있습니다.

'scientific knowledge used in practical ways in industry, for example in designing new machines'

따라서 technological jargon 은 저로써는 이해 불가능한 조합입니다.

익명 사용자의 이미지

항상 딴지 거시는 분들은 계시네요^^.
걍 좋게 생각하면 안돼나요... 솔직히 회사일도 바쁜데...
시간 쪼개서 다른 프로그램도 짜보고...생활속에서 이거저거 해보는게
심오하게 느껴지면 안돼는건가요?
모 항상 고차원의 먼가를 해야 심오한건가요?
일본 IBM의 한직원은 심심해서 만든 Linux 기반의 시계가
히트 상품까지 돼리라고 생각했을까요?
그리고 어차피 취미인데 하다가 잘안돼서 OTL하면 안돼는건가요?

Prentice의 이미지

천사 wrote:
결국 아래를 보고 결론을 내렸습니다.

http://www.wordiq.com/definition/Jargon

'Sometimes technical terminology is termed jargon or terms of art.'

따라서 technical jargon 은 역전 앞입니다.


논리적 오류를 범하고 계십니다. Technical terminology가 jargon의 일종이라고 해서 모든 jargon이 technical terminology는 아니잖아요.

http://en.wikipedia.org/wiki/Jargon
http://en.wiktionary.org/wiki/Jargon
OED1의 jargon의 첫 항목, 여섯번째 의미

이쪽이 좀 더 잘 나와 있네요.

wordiq.com에서도 나왔듯 baseball jargon도 있을 수 있으므로 technical jargon은 실용적으로 필요한 표현이고, 의미론적으로 문제 없습니다.