~12/06 + 취업준비과정 돌아보기

Ian·2020년 12월 4일
3

Today I Learned

목록 보기
27/40

취업 준비 과정 돌아보기

많이 배울 수 있던 첫 번째 과제 전형

모 기업의 프론트엔드 신입 서류에 합격하였고, 그 다음 과정인 과제 전형을 받아 일주일동안 열심히 구현해 5일 자정이 되기 직전 일주일동안 해서 겨우 제출하였다.

우습게도 쉽지 않았다. 그리고 떨어질 걸 예상하고 있다. 왜냐면 기본 사항을 완벽히 요구하는 건 당연하고, 가산점 사항(확장성을 고려한 구조, 깔끔해진 코드, 그리고 최신 문법 등) 을 고려해야 그 다음 과정인 면접까지 가는 건데, 기본 사항을 완벽히 구현하는 것도 하지 못 했기 떄문이다. 그래서 당연히 탈락이라고 생각하고 있다.

그럼에도 불구하고 정말 소중한 경험이었다. 첫 번째 이유는 내가 그만큼 부족하단 걸 알았기 떄문이다. 두 번째 이유는 무엇이 부족한지를 알았기 떄문이다. 세 번째 이유는 TypeScript, React Hooks, 기초적인 CSS, React Router 그리고 Redux 를 "한 번 보기는 했으나", 그걸 통해 "제대로 뭔가를 구현하려고 시도했던" 적은 이번이 처음이기 때문이다. 백 번 혼자서 To Do List 만들어 보는 것보다, 이번처럼 제대로 된 시도 하나를 치열하게 하는 게 훨씬 더 기억에도 남고 배우는 점도 많았다.

몇 번의 코딩 테스트 탈락

몇몇 기업의 프론트엔드/백엔드 서류에 합격해서 코딩테스트를 보기도 하였다. 그리고 전부 탈락했다. 생각해 보면 기본도 안 되어 있었다. 프로그래머스 레벨 1도 다 풀지 못 했고, 기본적인 알고리즘 유형조차도 모르는 상황이었기 때문이다. 완전탐색이나, 동적 계획법, 탐욕법 등등의 유형조차도 몰라서, 탐욕법으로 풀어야 하는 문제를 완전탐색으로 풀고 효율성에서 왜 통과가 안 되는지를 계속 바보처럼 붙잡고 있었다.

그래서 알고리즘 공부를 정말 열심히 하는 팀원부터 남해에서 만난 알고리즘의 대가(?) 한 분에게 조언을 구했고, 당연한 대답을 들었다. "유형부터 익히고 가라" 라는 대답이었다. 알고리즘이란 결국 "어떤 알고리즘으로 이 문제를 풀어야하는가?" 라는 생각을 먼저 해 내야하고 (Best Practice 가 다 있다) 그것이 곧 출제자의 의도이며, 출제자는 이런 문제를 적절한 알고리즘을 통해 풀어내지 "못 하는" 최소한의 준비가 "안 되어 있는 사람" 들을 걸러내려고 한다. 문과로 치면, 인적성과 비슷하다. "인성과 적성이 훌륭한 사람" 을 뽑는 게 아니라, "인성과 적성이 약간 아쉬운 사람" 들을 걸러내기 위한 시험이다.

그럼에도 불구하고 이런 멘땅 헤딩은 무의미한 시도가 아니라는 걸 알게 되었는데, 왜냐하면 이렇게 몇 번 두들겨 맞아보고 현실을 알게 된 이후에야 알고리즘 공부가 "어디까지는" 필요한지를 알게 되었기 때문이다.

몇 번의 면접

부족한 나이지만, 그럼에도 불구하고 여러 사람들이 기회를 주어서 면접까지도 보고 왔다. 그리고 면접 마지막에 항상 면접관들이 하는 "질문할 게 있으면 편하게 질문해 주세요!" 라는 질문에는, 항상 "제가 혹시 아쉬웠던 점이 있다면 피드백을 주실 수 있습니까?" 라는 질문으로 마무리했다.

그리고 나서 들었던 생각은, 알고리즘이나 라이브러리의 구동방식/원리를 잘 알지 못하는구나 이전에 "아, 내가 기본적인 전산학 지식이 부족하구나" 였다. 특히 정말 기본적인 네트워크 (7 Layer, HTTP, 웹 사이트를 입력했을 떄 브라우저가 작동하는 과정 등등) 지식도 부족했다.

"그게 왜 중요해요, 그냥 React 잘 쓰고 최신 스택 잘 알면 되는 거 아닙니까" 라고 할 사람들을 위해(아무도 없겠지만) 적어보자면, 그걸 알아야 하는 이유는 그 바닥에서 프로그래밍으로 밥 벌어먹고 사는 사람들은 기본적으로 다 아는 지식 이기 때문이다. 정말 기초적인 전산학, 그 중에서도 웹 개발 분야를 지원하면서 전산학의 일부인 네트워크 지식도 모르고 면접에 간다는 건, 담배에 대해서 하나도 모르고 관심도 없지만 워라밸이 좋다는 이유로 비흡연자가 담배회사에 지원하는 것과 같고 러시아에 대해서 하나도 모르는 사람이 러시아 - CIS 해외영업부서에 지원하는 것과 같다고 생각한다.

그래서 앞으로는 뭘 할건가요

당연하게도 내가 부족하다고 느꼈던 부분들을 집중적으로 다시 공부하면서 꾸준히 취업 시도를 할 것이다.

  • 알고리즘: 프로그래머스, 리트코드, 그리고 알고리즘 유형별 분석도서
  • 전산학: KOCW 네트워크 강의
  • 웹 기초: Deep dive to HTML5, CSS, JS
  • 웹 응용: React 와 그 친구들 (Redux, React-Router, TypeScript 등)
  • 기타: 디자인 패턴이나 클린 코드 등의 더 나은 개발 방법론 서적 및 git branch 전략등의 더 나은 협업을 위한 최선의 시도 학습

그럼 오늘은 뭐 할건데요

부끄럽지만 하루만 좀 쉬고싶다. 일주일동안 정말 무식할 정도로 달렸기 떄문이다. 하루정도는 쉬어가도... 좋잖아? 공부는 내일부터(?)

여담


당근마켓에서 키보드를 샀는데 정말 좋다. (사진은 대충 내가 쓰는 거랑 비슷한 거로 퍼왔다) 리얼포스라는 회사의 키보드인데, 확실히 비싼값을 하는 듯 하다. 해피해킹이라는 키보드를 사고 싶었으나, 그건 너무 배열이 고인물 배열이기 때문에 그냥 리얼포스 키보드를 샀다.

profile
правда и красота, truth and beauty

2개의 댓글

comment-user-thumbnail
2020년 12월 5일

화이팅👏🏻👏🏻 계속 발전하려고 하시는 모습이 존경스럽고 많이 배워갑니다!
계속 이렇게 노력하시면 분명 좋은 회사에 합류하실 것 같아요!! 지치지 말고 힘내세요!

답글 달기
comment-user-thumbnail
2020년 12월 15일

Thanks a lot for sharing!JOKER123

답글 달기