정렬기법
dfs bfs 등 이런걸로 고등학교 경시대회 같은 문제를 푸는게
적절한지 아직도 모르겠네요
물론 전공자나 오래 개발하신분들도 저게 뭔지는 다 알지만
저런 알고리즘 적용해서 개발하는곳 거의 없을것 같은데요
차라리 어떤 기능을 라이브러리 써서 구현 아님
코드에 치명적인 오류를 찾아라
뭐 이런게 오히려 현업에서 유리할텐데 말이죠
정렬기법
dfs bfs 등 이런걸로 고등학교 경시대회 같은 문제를 푸는게
적절한지 아직도 모르겠네요
물론 전공자나 오래 개발하신분들도 저게 뭔지는 다 알지만
저런 알고리즘 적용해서 개발하는곳 거의 없을것 같은데요
차라리 어떤 기능을 라이브러리 써서 구현 아님
코드에 치명적인 오류를 찾아라
뭐 이런게 오히려 현업에서 유리할텐데 말이죠
좀 더 일반적으로는 전체적으로 어떤 모듈을 어떻게 조합해서 사용해야하는지.. arch 레벨의 경험과 지식이 훨씬 더 중요하다고 생각합니다.
알고리즘 생각 안하고 막짠거는 진짜 바로잡는 게 오래걸려서요..
많게는 개발기간 2배를 디버깅하고 다시 짜고 어훕..
알고리즘, 정렬 이런 거 본 적이 거의 없네요.. ㅎ
개발 키맨들이 시험을 봐야죠
아 기업 입장에서 평가의 편리함은 있겠군요 테스트케이스 만들고 쉬우니
수학적인 로직보다는요
개발환경 세팅부터 시작해서 코드를 얼마나 깔끔하고 알아보기 쉽게 짰는지 그리고 왜 이런 방식으로 구현했는지 설명해보라고 하면 될것 같습니다
경력에게는 마음하늘님께서 말씀하신 것처럼 성의테스트 느낌인 거 같기는 합니다…
실제로도 적당한 난이도의 코딩테스트를 통과하지 못하는 경력자분들이 꽤 많은데… 경력자에게 코테란 그냥 준비를 아예 안한 사람을 떨구기 위한 장치처럼 느껴졌습니다
도출 과정을 면접 요소로 하는게 적절한거 같아요..
단순 개발도 각자만의 알고리즘이 필요한데
그걸 한번도 안해본 사람처럼 일을하면
너무 더디고 더티코드가 나오는 문제가 있어서..ㅠㅠ
어차피 잠시간의 테스트로 응시자의 코딩실력을 완전히 알아낼 방법은 없으니까요.
그래서 최근엔 면접시에 라이브코딩등도 같이 참고하잖아요.
물론 알아두면 좋긴 한데 결국 현업에서 필요한게 이게 아닐텐데 싶기도 하고.
책장을 살펴보니 주니어 시절에 스터디다 뭐다 하면서 다 했던 거더라구요. (기억은 안납니다 ㅋㅋ)
이게 문제 해결능력이더군요. 그리고 잘 모르는것을 빨리 검색해서 빨리 적용할 수 있는게 현업에서는 더 중요했어요.
그리고 그걸 문제라고 내는 사람도 정작 하라면 못한다에 한표 겁니다.
말씀하신대로 네비게이션 개발하거나 db엔진 개발하는 포지션 아니면 큰 의미는 없어요.
개발자가 부족하지만 아직은 회사가 갑의 위치이기때문에 가능한거죠.
회사도 성의가 있으려면 과제테스트 하고 검토해야하는데 그러기엔 개발자와 회사 모두 리소스소모가 커서
쉽지않은 점은있죠
서류보고 면접 말빨만 보는것보단 저거라도 추가된게 다행인듯요?
참고로 저흰 현역들도 다 시험쳐서 기준 넘길때까지 들들 복죠. 못 넘긴 사람들은 슬슬 다 어디론가 가버리고..
의외로 현역들도 학부 1학년만 지났어도 짤 수 있어야 하는 수준 문제를 못하기도..
퀴즈: 주어진 1차원 정수 배열을 정렬하는데 O(n log n) running time이면서 외부 버퍼를 안쓰는 (즉, in-place) 알고리즘을 구현하시요 ㅎ
물론 신입 이하 얘기겠지만요
신입한테 현업 테크닉 테스트하면 대부분 수준미달이겠죠
구현하라는 내용이었는데..손도 못대고 포기한적이 있습니다. (검색관련회사라..그런건가.)
나중에 들어보니 그냥 문제은행에서 개발팀도 아니고 인사팀에서 무작위로 뽑아다 한다고 하더라구요.
그이후로도 한참을 개발자가 안뽑히고 있던것같은데..
자기네들도 도저히 안되겠던지 기준을 대폭 낮춰서 아이폰관련 개발자를 많이 뽑아갔다고 하더라구요.
제가 이런쪽으론 운이 없는편.. ㅎㅎ;; 아이폰 출시전부터 iOS앱을 개발했는데.. 전혀 어필이 안되더라구요.
시험중에도 문의사항 있으면 연락달라는 전화번호가 있길래(개인휴대전화번호였던것으로)..
전화를 해도 받지도 않으시고... 그냥 일부러 떨어뜨리려나보다 생각했습니다.
다른 건 몰라도 데이터가 저장되어 있는 자료구조와 그 규모에 따라서 적절한 형태의 알고리즘을 짤 수 있느냐 정도는 봐야되는 거 같아요.
피 고용인 입장에선...글쎄요.. 좋을게 있나 싶네요. 어차피 관련성 있는 업무는 제한적인 상황에서, 전체의 개발 직군에 다 보는 상황이라...
대부분 경우 업무 연관성은 별로 없죠..
근데 그 알고리즘 코드를 쌩으로 짜야 하는게 (인터넷검색도 없이) 부적절하다고 본거에요
오픈북시험이면 좋을텐데 말이죠
실수없이 풀려면 코드를 거의 외우다시피해야 ㅠ
알고리즘을 구현한 라이브러리도 많아서 어떤 문제에는 어떤걸 써야하고 이렇게 하는게 중요하다. 이 정도면 되지 않을까 해요.
현업에서 일하다 보면 저런거 구현할 시간에 필요한 라이브러리 써서 작동하는게 더 중요하다고 봅니다. 물론 리스크 관리는 해야하는게 맞고, 그것도 필요한데 그거야 코드리뷰도 있고, 헤더가 해줘야죠.
라이브러리도 없고, 필요한게 있다면 직접 만들기는 하는데.. 요새 그런만한 일이 많을지는 모르겠네요.
현실은 못자르니 이것저것 재죠. 기본 머리를요.