본인은 8년도 더 전에 온라인 코딩 테스트를 치러본 적이 있다.
EA 채용 관련해서 코딩 테스트를 진행했는데 사실 그전까지는 A4 용지에 손 코딩을 했기 때문에 뭐 손 코딩보다 어려울까?라는 생각이었고 결과는 처참하게 완패하였다.
처음으로 접해보는 외국어 코딩 테스트(codility)에서 코딩은커녕 문장 해석도 안돼서 결국 ^^...
그때부터였다. 막연하게 온라인 코딩 테스트가 어렵게 느껴진게.
그 뒤로 비교적 근래에 온라인 코딩 테스트란 게 생긴 걸 보았고 요샌 백준이나 최근에 접한 프로그래머스 같은 곳이 엄청 핫 하단 걸 알게 되었다.
물론 이웃 블로거들이 스터디하고 정리하는걸 꾸준히 봐왔고 문제도 한글이니 해볼 만하겠다고 생각하여 본인도 한 번씩 재미 삼아 풀어봤는데 뭐 재미 삼아 풀 수준이 아니더라..
어쨌든 최근에 또 온라인 코딩 테스트를 해야 할 일이 생겨서 프로그래머스 연습문제를 풀어보았으나 정말 이게 뭔가 싶었다. 대부분이 알고리즘에 관련된 문제였고 본인은 학부 공부를 마친지는 까마득해서 기억나는 것도 없거니와 학부생 때도 알고리즘은 학점을 위해서만 공부했지 딱히 사명감을 가지고 했던 것도 아니었다.
그렇다고 개발 업무에 있어 알고리즘 적인 부분은 STL이나 이미 잘 만들어져 검증된 코드를 활용했지 스스로 뭔가 알고리즘적인 구현을 해본 적이 언젠가 싶다. 그리고 역시 업무와 알고리즘은 거리가 있고 이러한 온라인 코딩 테스트나 알고리즘 문제들은 변별력이 없는 주니어 개발자들에게 필요한 것이지 현업 경력이 있는 개발자에게 필요할까?라는 생각이 있었다.
이번 경험으로 이러한 생각들은 완전히 깨부수어졌다.
코딩 테스트 페이지를 보면 요구사항, 제한사항 그리고 샘플 값과 기댓값을 명시해주더라.
보통의 개발 업무를 하면 고객 요구사항서(구두전달을 포함한)를 분석하여 개발 문서를 작성 또는 개발에 임하고 개발 진행에 따른 피드백과 산출물에 대한 피드백으로 고도화(이슈, 성능 등을 모두 포함한) 진행을 한다.
결국에 코딩 테스트 페이지에서 나에게 요구하는 항목들도 현업 개발 절차와 마찬가지 아닌가..
요구사항 분석을 통한 논리 전개를 코드화 하는 것보다 조금 더 구체적으로 표현했을 뿐..
뭐 어쨌든 하고 싶은 말은
코딩 테스트를 위해서 필요한 것은 지문을 이해할 문해력 -> 문장을 패턴화하고 수식화 할 수 있는 수리력 -> 정리된 사항을 산출물 까지 이어낼 수 있는 코딩능력이라 생각한다.
이번 기회를 통해 본인은 수리력이 부족하단 걸 여실하게 느꼈다. 손으로는 풀리는데 왜 이걸 수식화 하지 못할까.
그 결과 많은 감정을 느꼈지만 그중에 가장 큰 감정 두 개는 부끄러움과 즐거움이었다.
부끄러움은 결국 현업에서 사용하지 않는다고 쓸 일이 없다고 당연스럽게 밀어 두고 쳐다도 보지 않아 필요할 때 발만 동동 굴리는 내가 너무 부끄러웠고 즐거움은 정말 오랜만에 뭔가 도전하는 기분이었고 새로운 패턴을 생각해내며 다른 개발자들이 올려둔 코드와 비교하면서 또다시 배울 수 있단 점이 즐거웠다.
코딩 테스트를 준비하는 짧은 시간이었지만 본인이 만든 수많은 설루션과 서비스가 머릿속으로 지나갔다. 알고리즘 적인 요소를 사용해 성능 개선을 했다면 더 좋았을 텐데, 안정성이 떨어지는 부분에서 STL 컨테이너를 더 활용했더라면 고생을 덜했을 텐데 등등 실시간으로 배워갔다고 할까나..
나도 시간이 나면 틈틈이 개념적인 정리 글보다는 스스로를 위해 이것저것 풀면서 공부를 해야지 싶다란 생각을 하게 되었다.
'IT > note' 카테고리의 다른 글
AWS Marketplace / 마켓 등록 절차, 용어 설명 등 팁 공유 (5) | 2022.01.26 |
---|---|
Server OS의 변화 동향에 따른 client OS의 향후 동향 예측 (10) | 2022.01.25 |
분산 데이터 베이스 정의 / 특징, 장점, 단점 (0) | 2022.01.25 |
QA 조직 요구 사항 및 인력 구성 (6) | 2022.01.25 |
클라우드 컴퓨팅의 서비스 형태, 장점, 단점, IaaS, PaaS, SaaS (0) | 2022.01.19 |
댓글