ITbeginner
2020-05-20 11:55:47 작성 2020-05-20 11:58:52 수정됨
14
1141

알고리즘이 문제 해결능력이라는지, 이런분들 있는데... 알고리즘은 그냥 해결방법이에요..


저는 그게 개발자의 실력을 판단하는게 아니라고 생각하는 거구요..


문제를 해결하는데 정형화된 알고리즘이 도움을 되겠지만, 우리가 실제 개발에 들어가면서 모든 알고리즘을 다 안다고 해결하는 상황이 얼마나 될까요?

요즘 함수형으로 JPA나 Django 같은 ORM 프레임워크나 스칼라같은 언어들도 많이 나오는데...


알고리즘이 문제해결능력이라고 생각하시는 분들은 다시 한번 정의를 정해주셨으면 좋겟네요..

저는 진짜 알고리즘만 보고 합불 결정하는 회사는 개발자보단 정의서 주면 코딩해주는 사람을 원한다고 생각합니다. 

1
  • 댓글 14

  • ITbeginner
    2020-05-20 11:56:56

    댓글분 중에 공감되는 것은 알고리즘으로 컷하려는 건 젊은 사람을 뽑을라고 하는 것에 좀 공감이 되네요. (참고로 저는 20대입니다.)

  • 마라토집착
    1k
    2020-05-20 12:05:09 작성 2020-05-20 12:06:23 수정됨

    퀵소트와 정렬에 대해서 원리를 깨우치고 (백준 알고리즘 사이트 에서 공부) 해서 난잡한 요구사항을 퀵소트의 그것을

    이용해서 자바 비지니스 오브젝트들을 우아하게 회사현실에서

    클래스 설계 코딩 가능한것은 

    알고리즘 따로 학습이 문제 해결 능력을 끼워준것이고

    이래서 신입 뽑을때 알고리즘 검증 필수요

    각종 알고리즘을 알고있는것 자바 api 의 내부구조를 

    쉽게 이해한다는것입니다. 여기에 실전 경험만 쌓으면 

    우수한 개발자 되지요


  • YepBt
    1k
    2020-05-20 12:09:50

    이전 댓글에서 

    알고리즘이 어떻게 문제 해결능력이 되는것인지...

    알고리즘(라틴어, 독일어: Algorithmus, 영어: algorithm )이란 어떠한 문제를 해결하기 위한 여러 동작들의 모임이다


    라고 하셨는데요.


    알고리즘은 문제를 해결하기 위해서 동작들의 모임을 말하는거고, 그 동작들은 개발자들이 생각해서 알고리즘을 만들기 때문에 같은 문제에 대해서도 효율이 천차만별로 갈릴 수 있기 때문에 문제해결능력이라고 판가름되는거고요


    "문제를 해결하는데 정형화된 알고리즘이 도움을 되겠지만, 우리가 실제 개발에 들어가면서 모든 알고리즘을 다 안다고 해결하는 상황이 얼마나 될까요?"

    라고 말씀하신걸 보아 그냥 보편적인 알고리즘들을 말하는것 같으신데


    단순히 다익스트라, BFS, DFS, 플로이드 워셜, 이분매칭 등 이런 알고리즘들은 그냥 유명하고 보편적인 알고리즘이지, 알고리즘 = 다익스트라, bfs 등 유명 알고리즘 혹은 존재하는 모든알고리즘

    을 말하는게 아닙니다


    회사들이 bfs, dfs문제들 등 정형화된 문제들을 내는것이 잘못된거고, 인식을 잘못시킬수는 있다고 생각하는데


    원론적으로 알고리즘은 개인의 문제해결능력을 말하는게 맞지요

  • JsKim4
    74
    2020-05-20 12:12:00 작성 2020-05-20 12:12:59 수정됨

    제가 생각하는 개발자는 문제를 해결하는 사람이라고 생각합니다.

    문제사항은 바리에이션이 넓기 때문에 하나로 정의할 수 없지만 작성자님이 말하신것 처럼 정의서대로 코딩을 하는 것 또한 정의서라는 문제를 코딩이라는 방식으로 해결하는 것으로 생각합니다.

    문제해결 과정에서 큰 문제는 작은 문제로 쪼개질 수 있고 이를 하나하나 해결하는 것 또한 문제해결이라고 생각하구요.

    그렇다면 좋은 개발자는 문제를 잘 해결하는 사람이라고 생각하는데 알고리즘 이라는 말 자체가 문제해결을 위해 답을 찾아가는 과정을 뜻합니다.

    지금 많이 말씀하고 계시는 알고리즘이라는 것을 알고리즘 문제풀이로 한정지어 생각했을 때 문제풀이를 수학에 비유하여 설명하면 단순히 수학문제를 많이 풀어보기만 하는 것은 수학 능력을 키울 수 없는것과 같이 단순히 문제를 많이 푸는것은 효과가 적겠지만

    수학에서 검증의 과정을 통해 식을 도출하면 수학 실력이 많이 느는것과 같이 알고리즘 또한 해당 알고리즘이 나온 경위를 이해하고 검증을 통해 학습하면 충분히 문제해결 능력을 기를수 있다고 생각합니다.




  • pooq
    5k
    2020-05-20 12:12:13
    수학공식을 많이 알고있어야 수학문제를 풀 수 있는것처럼, 해결방법을 많이 알고있어야 그걸 바탕으로 문제를 풀게되서 해결 능력도 향상되는거죠.
    알고리즘이 전부는 아니지만 개발 능력을 키우는데 필수 조건임은 확실합니다.
  • ITbeginner
    2020-05-20 12:15:00 작성 2020-05-20 12:16:42 수정됨

    YepBt

    요새 알고리즘 공부한다면서 하시는 분이 님의 요구사항처럼 하는 분들이면 얼마나 좋겟지만..

    너무 알고리즘이 필요충분조건처럼 요구하는 게 이상해요.. 그리고 말씀하시는 부분들도 알고리즘에서 클래스를 하는 곳이 얼마나 있으실지.. 대부분 스크립트 형식으로만 요구하는 곳도 많고...

  • 5rijin
    88
    2020-05-20 12:21:19

    정형화된 알고리즘을 공부하는 측면이 아닌 알고리즘 문제들이 대부분 정도의 차이는 있지만 생각이 필요한 복잡한 문제를 해결하는 것이 많고 그걸 자신의 힘으로 해결해 나가면서 문제해결 능력이 향상되는 것 같아요. 정형화된 알고리즘을 이용해서 문제해결하는 것이나 알고리즘을 더 많이 외우고 있는 건 별 도움 안되는것이 맞네요.

    알고리즘 문제를 해결하는 과정 속에서 문제풀이 능력이 향상된다는 측면으로 봤어요~ 저도 알고리즘만 외워서 적용만 하는 것은 싫어해요 ㅎㅎ

  • 맥키드
    64
    2020-05-20 13:09:36

    알고리즘은 정형화된 수식이나 규칙으로 정리된 것만을 이야기 하는것이 아닙니다.

    알고리즘이란 단어 자체는 어떤 문제를 해결하기 위한 절차 같은 걸 이야기 하는겁니다.

    그래서 보통 개발자들에게 주어진 문제를 어떤 방식으로 풀어나가는지를 생각하는게 알고리즘입니다.

    알고리즘 시험은

    가령 100명이 사람에게 5개의 빵을 나눠주면 빵이 몇개가 필요한가에 대한 문제하면

    우리라면 당연히 5 * 100 하겠지만 곱하기를 모르는 사람이라면

    for문 돌려서 5를 100번 더하는 과정으로 값을 도출하겠지요.

     곱하기라는 알고리즘을 알기때문에 더 쉽게 해결하는거지요

    그래서 알고리즘 문제를 포함하는거구요.

    그렇다고 for문 으로 5를 100번 더하는게 틀렸다는게 아닙니다.

    이것을 생각해낸것도 알고리즘이지요.


  • Honowis
    415
    2020-05-20 13:11:42

    천재가 아닌이상 많은 해결 방법을 알고 있어야 해결 능력이 생기지 않을까요.

    천하의 이창호도 항상 여러 선인의 기보를 구해 공부를 했습니다.

  • 만년코더
    7k
    2020-05-20 13:16:40

    솔직한 생각으로는 코테 공부 해보시고

    시험도 쳐보시고 말씀하시는 건지라는 생각이 듭니다.

    (해봤으면 할 수 없는 이야기들을 하고 계셔서)


    왜 수학이 공식이 있다고 수학 문제 풀이가 다 의미없습니까?

    공식은 기본이고 실제 공식을 적용해서 어떻게 풀지를 알아야하는데?


    그냥 기본입니다 기본....그리고 너무 경쟁적으로 난이도 올라가는건 문제가 있다고 봅니다만

    그럼 그거 말고 그냥 예전에 학벌로 끊던 시대로 돌아가는게 맞냐 하면 그것도 아니거든요...


    물론 개발사양서 주고 과제 형태로 하는 것도 좋은 대안이겠습니다만

    이미 그렇게 코딩테스트를 시행하는데도 많이 있습니다.


    알고리즘으로 보는 곳은 소위말하는 전통 대기업들인데요...

    얘네들은 기본적으로 공채라는 제도를 운용하기 때문에

    부작용이 있음을 알면서도 그래도 좋은 도구다 생각하고 쓰는거에요.

    (수비드라는 요리법이 사실은 맛보다는 표준 품질 균일성 유지와 대량생산의 용이성을 위해서 나왔듯이)


    이게 싫으면 공채제도로 인사채용하는데 말고 다른 곳 가시면 됩니다....


  • ISA
    3k
    2020-05-20 13:19:59

    갠적으로는 차라리 인적성 같은거 하는거보다 알고리즘 테스트가 더 나은거 같습니다. 물론 알고리즘은 매우 어렵다는건 맞는거 같아요. 현실적으로 굳이 알고리즘 풀이를 할정도로 어려운 알고리즘을 쓸일도 거의 없다는 것도 맞고요.

  • 만년코더
    7k
    2020-05-20 13:26:03 작성 2020-05-20 13:26:26 수정됨

    대놓고 이야기하죠


    방황했던 뭐했건 간에 12년동안 공부 해서 좋은 대학 간것도 아니고

    비전공자에 4년 간 대학교에서 이뤄놓은 성적도 별로야

    대외활동도 없어

    어학도 없고 해외 연수경험도 없어


    그래도 초봉을 5000씩 줄게

    근데 너 이 문제 5개만 풀어봐

    나는 이거 풀면 그래도 너는 가능성이 있다고 생각해


    이거 풀어서 합격하면 딴거 안보고 입사시켜줄게인데


    이거보다 더 공정하게 어떻게 해요 대체......................?


  • ㅇㅈㅇ
    3k
    2020-05-20 16:15:33

    기존의 알고리즘을 공부하지 않아도 개발을 잘할 수 있다는 자신감이 있다면 

    기존 알고리즘을 사용하지 않고도 알고리즘문제를 풀수 있어야겠죠.

    알고리즘 문제들이 기존 알고리즘보다 더 나은 해법으로 풀면 오답처리하는것도 아닌데.

  • dudgh107
    271
    2020-05-20 17:55:17

    알고리즘을 무조건적으로 맹신하는것은 안되지만 같은조건이라면 기본적인 알고리즘 능력이 있는 사람을 저는 더욱 선호하겠습니다.


    13년의 경력을 가지고있는데 여기저기보면 구현이 별로 어렵지 않은 기능인데 불가능하거나 시간이 오래걸린다고 말빨로 커버치는 사람들이 엄청 많습니다.


  • 로그인을 하시면 댓글 을 등록할 수 있습니다.