프로그래머에게 있어서 알고리즘

kby2194의 이미지

대학생 2학년입니다;
제가 학교에서 이산구조를 배우고 있는데요 이게 알고리즘의 매우 기초를 가르친다고해서 수업듣고있습니다.
근데 듣다보면 이게 과연 나중에 프로그램을 만드는데 필요할까 라는 생각이 들더라구요..

뭐 많이 알면 나쁠건 없겠지만 대부분 이론적인 수학내용을 포함하는
이산구조 라던가 알고리즘이

프로그래머에게 있어서 꼭 필요할까요? 필요하다면 어떻게 필요할까요;

snowall의 이미지

영문학과 전공자에게 과연 문법이 필요할까요?

인터넷 하는데 과연 랜선이 필요할까요?

먹고사는데 숟가락과 젓가락이 정말 필요한걸까요?

대충 그런 질문이네요.

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

heizen3947의 이미지

적절하군요 이 예시...

-------[Signature]-------

Per Audar Ad Astra.
In Omnibus requiem quaesivi, et nusquam inveni in angulo cum libro.
Verbum Vitae Et Lumen Scientiae, Deferto Neminem.
Siste, Viator! Quid Debemus Cogitare?
Sanctus, Nullus Repentini Homoris, Adeo Non Pr

kby2194의 이미지

저도 알거같네요

김정균의 이미지

영문학과 전공자에게 문법이 필요할까요? => 영문학 전공자에게는 없어도 졸업 가능할 듯.. (영어학 전공자는 필요할 듯..)

인터넷 하는데 랜선이 필요할까요? => 요즘은 무선이 대세라..

먹고사는데 숟가락과 젓가락이 정말 필요한걸까요? => 포크도 있고, 손으로 직접 먹는 나라도 있죠. (왼손 사용 안됨!)

이렇듯이.. 프로그래머에게 꼭 이산 수학이 필요하지 않아도 상관은 없습니다. (이런 분들을 코더라고 칭하기도 하는 것 같더군요.)

다만, 이놈이 당사자의 품질을 좌우해 줄 뿐이라 생각합니다.

kby2194의 이미지

저도 굳이 필요하진않지만 더 효과적이구 좋은결과를 내는데 알고리즘은 꼭 필요하다 정도로 이해했습니다.

misari의 이미지

사실 프로그래머라면 알고리즘은 매우 중요하고, 넘어야 할 산입니다. 하지만, 그렇지 못한 것이 현실이기도 하고, 어떤 면에서 꼭 알아야 할 필요가 없을 수도 있습니다. 좀 헷갈린가요?

제 나름대로 경험한 사실을 토대로 나름 객관적으로 평가해 본다면 대충 우리나라에서 프로그래머라고 칭하면서 활동하는 사람들 중 알고리즘에 대하여 웬만큼 제대로 알고 일하는 사람들 별로 없습니다. 너그럽게 봐 줘야 20% 쯤 되려나요? 그러면 이런 사람들이 어떻게 프로그램을 작성하고 밥벌이를 할까요?

프로그래밍 중에서 스케쥴링이나 라이브러리를 만들거나 컴파일러를 만들거나 운영체제 또는 시스템 영역의 프로그래밍을 하는 사람이라면 알고리즘 반드시 알아야 합니다. 하지만, 이런 분야에서 일하시는 분들은 전체 프로그래머의 몇 % 안됩니다. 대부분의 나머지 분들은 웹 페이지를 작성하거나 SI 사업에 투입되어 비쥬얼한 화면 만들고, 또는 DB에 SQL 갖고 이러저러한 데이터 처리하는 일들을 합니다. 이런 일들은 사실 알고리즘과 직접적인 관련은 없다고 봐야죠.

자동차를 만드는 일을 하시는 모든 분들이 반드시 역학에 능통해야 하지 않듯이 프로그래밍 영역도 다양한 분야가 존재하고, 또 일하시는 분들의 수준 차이도 다른 분야에서보다 훨씬 많이 납니다.

이런 부분들이 고려되어야 보다 정답에 가깝지 않을까 싶습니다.

다만, 프로그래머라고 당당히 명함 내밀 수 있으려면, 알고리즘을 모른다고 가정할 때 저 같으면 창피할 것 같긴 합니다.

꿈을 버리지 말자!

kby2194의 이미지

답글 감사합니다.

dingkyu의 이미지

도망갈 구멍을 만들지 말기 바랍니다.
알고리즘을 모르고 이해가 부족한 사람을 "프로그래머"라고 불러줄 수 는 없습니다.

당장은 이해하기 어렵고 무슨 의미인지 모르겟다 하더라도 "프로그래머"라고 불리고 싶으면
지금 열심히 공부하고 조사해보시기를 추천해 드립니다.

고민이 많아 고민인 애늙은이 입니다.

kby2194의 이미지

도망갈 구멍을 만들기 위해 질문한게 아닙니다
뭐 집합연산자라던가 좀 프로그래밍에 맞지 않을거 같은 수학적 개념을 배우고있어서
이게 알고리즘의 기초가 되는 것인가 궁금해서 물어본거에요

질문 내용이 그런 의도로 보였다면 어쩔수없지만요..ㅎ

답글 감사합니다

이응준의 이미지

사실 대학교를 졸업하고 회사에 취업하는 것만이 목적이라면, 알고리즘을 잘 몰라도 별 상관없습니다.
알고리즘에 대한 지식을 그다지 요구하지 않고 컴퓨터 프로그래머를 고용하는 국내 회사는 얼마든지 있으니까요.

또한 그런 지식이 없어도 안 잘리고 회사 잘 다닐 수 있습니다. (계속 프로그래머를 할 수 있을지는 모르겠지만...)
즉 알고리즘 배워도 써먹을 데 없다고 주장하는 개발자를 만나서, 혹시 그 말을 믿는다 하더라도, 그 이유가 단지 그가 현업에 있다는 이유만이어서는 안된다는 이야기입니다.

다만 취업 후에 회사를 다니면서 좋은 프로그래머가 될 것이냐 말 것이냐의 기로에서는 알고리즘에 대한 지식이 상당한 영향을 미칠 수 있습니다.
좋은 프로그래머라면 요구되는 수준의 성능을 보장하는 코드를 작성할 수 있어야 할 것인데, 이때 알고리즘의 이해가 필요하기 때문입니다.

예를 들어 자바 프로그래머라면 상황에 따라 ArrayList를 사용할 것인지 LinkedList를 사용할 것인지 판단할 수 있어야 할 것이며,
데이터베이스를 사용하는 프로그래머라면 인덱스를 추가했을 때 성능이 얼마나 개선될 것인지를 B Tree에 대한 이해를 바탕으로 개략적인 추정이 가능해야 할 것입니다.

kby2194의 이미지

그렇군요 답글 감사합니다

sjw0687의 이미지

알고리즘을 배우면서 구현해보면서 느낀 점은...

"특정 알고리즘을 외워서 프로그래밍 할 때 사용한다" 라는 것보다 알고리즘을 배우는 과정에서 프로그래밍적인 사고 능력이 향상된 것 같아요. 저도 대학생 3학년인데 프로그래밍 대회를 준비하고 있거든요.. 그 과정에서 수 많은 알고리즘을 공부하고 프로그래밍 문제를 해결했는데, 이제 프로그래밍을 잘 하게 된 것은 물론이고, 프로그래밍 관련된 공부는 다른 학생들보다 빠르고 쉽게 배울 수 있는 것 같아요. 무엇보다 중요한 자료구조랑 알고리즘 과목은 꼭 직접 코딩도 하면서 공부하는 것을 추천드려요 ㅎㅎ

제 개인적인 생각이었습니다.

kby2194의 이미지

답글 감사합니다