~01/03 + 취업준비과정 돌아보기

Ian·2021년 1월 2일
16

Today I Learned

목록 보기
31/40
post-thumbnail

취업 준비 과정 돌아보기

최종 합격, 그러나 포기

이전에 준비했던 회사에 최종 합격을 했다. 그러나 연봉 협상에 실패해 아쉽게도 가지 못 하게 되었다. 연봉 테이블을 찢고 들어갈 만한 실력은 아니었던 거 같다. 정말 좋은 회사였고, 면접에서도 피드백을 잘 해주셔서 성장하는 계기가 되었지만 정말 아쉽게 되었다.

한 달 반동안의 작년의 구직활동을 돌아보면서, 올 해는 어떻게 구직 준비를 할까 적어보려고 한다.

아 연봉 협상을 실패하고 나서는 며칠 좀 놀고, 개발 서적이 아닌 읽고 싶은 책도 좀 읽고 했다. 알고리즘은 하루 한 번씩 꾸준히 시도했다. 하루 한 문제를 풀기는 어려웠지만, 하루 한 문제를 최대한 풀도록 노력해봤다. 알고리즘 말고는 공부를 안 했다.

올 해 취업준비를 하면서 느낀 점

신입에겐 많은 걸 바라지 않는다

비유적 의미가 아니라 말 그대로이다. 많은 걸 바라지 않는다. 신입이 이력서에 어떤 라이브러리를 써 봤다고 해도, 현업 입장에서는 이 친구가 기본정도는 안다 싶으면 라이브러리 자체는 합격점이라고 생각하는 거 같다.

기초적인 것들은 확실히 알고 가야한다

그러나 라이브러리랑은 다르게 기초적인 것들은 확실히 알아야 한다고 생각한다. 면접을 보다보면서 느낀 건, 신입에게 많은 걸 바라지 않는 대신, 기초가 어느정도 잘 되고 라이브러리도 평균 이상은 쓰는 사람을 신입으로 뽑아 가르치려는 거 같단 점이었다.

예를 들어 네트워크에서 UDP 와 TCP 의 차이라든지, HTTPS 는 무엇이며 HTTP 에 비해서 무엇이 다른지, JS 에서의 function expression 과 function decalration 의 차이점이 무엇인지, bundling 이 무엇인지, hoisting 이 무엇인지, lexical scope 와 closure 가 무엇인지, call stack 이 무엇인지 같은 것들.

그래서 CS 중 적어도 네트워크, 그리고 JS와, HTML 과 CSS 를 조금 더 깊게 공부해 보려고 한다.

알고리즘을 해야 하는 이유

1. 가장 효율적인 방법을 아는가?

사실 우리가 푸는 대부분의 문제는 천재들이 가장 효율적인 답을 내려준 경우가 많다. 그래서 그 효율적인 답에 대해 알고있는지를 물어보기 위해 알고리즘을 한다는 생각을 했다.

2. 취업을 위한 최소한의 자질은 되는가?

예전에 적었던 것처럼 취업준비를 해 보면서, 그 중에서 코딩테스트를 보면서, 기업들의 코딩테스트는 알고리즘을 통해 알고리즘을 잘 하는 사람들을 뽑는다기보다는 알고리즘을 못 하는 사람을 걸러내려는 문과의 인적성과도 비슷하다는 느낌을 받았다. 완전탐색으로 풀어야 하는 문제면 완전탐색으로, 탐욕법으로 풀어야 하는 문제면 탐욕법으로, 적어도 출제자가 문제를 낸 의도대로는 풀어야한다. 만약 대부분의 회사들이 진짜로 알고리즘을 잘 하는 사람을 뽑았을 거면, 알고리즘 전형이 제일 뒤에 있었을 것이다.

3. computing mind 를 가지고 있는가?

예전에 같은 비전공자로 출발한 지인분께서 회사 면접에서 들었던 이야기가 계속 기억에 남았다. 문과와 이과, 정확히 비전공자와 전공자의 차이는 어떻게든 사용하는 자원을 줄이려는, 즉 효율성을 향상하려는 "습관" 의 유무라고.

이 말이 계속 생각났다. 그리고 나 또한 효율성 테스트에서 빨간줄을 쫙 그여보면서, 이젠 알고리즘을 풀 때 이게 진짜 최선인지를 한 번 더 생각해 보게 된다. 굳이 더 돌지 않아도 되는 loop 은 중간에 break 나 continue 를 통해 중단시키고, 굳이 필요한 반복문이나 변수가 아니라면 사용하지 않는다.

코딩테스트를 통과할 정도면 적어도 최소한의 배경지식과 습관에 의해 문제를 해결했다는 걸 검증할 수 있으니, 지원자가 이런 연습을 꾸준히 했느냐도 보는 거 같다.

그래서 매일매일 알고리즘을 풀고 있다. 하루를 오롯이 다 쏟을 수는 없어서 하루 한 문제는 조금 어렵지만, 그래도 꾸준히 한 문제가 풀릴 때까지 시도해보고 있다.

나부터 나 스스로와 같이 일 하고 싶은 사람인지 되돌아봐라

너무 당연한 이야기다. 같이 일하는 건데 같이 일하기 어려운 사람과 같이 일하는 거 만큼 고역은 없다고 생각한다. 그래서 내가 그런사람이 아닌지, 내게 그런 면이 혹시나 있는지, 있다면 어떤 면인지를 생각해본다. 이 부분은 거의 최종면접에서 많이 질문을 받은 내용인데, 이건 준비라기보다는 내가 내 스스로를 돌아보고 고민해야 하는 내용이라고 생각한다. 이전에 내가 썼던 일기들을 읽어본다. 지금도 꾸준히 쓰기도 하고.

'그냥' 이라는 말은 절대로 하지 말아라

"왜 axios 를 썼어요? fetch 써도 되잖아요?" 라는 질문처럼, 특정 라이브러리를 왜 썼는지 물어본다면 그에 대한 근거가 있어야 한다. 무조건. 예를 들어서 Redux 를 쓰지 않고 useContext 를 사용할 수 있는데 왜 Redux 를 사용하셨어요? sessionStorage 를 사용하셔도 되는데 왜 localStorage 를 사용하셨어요? 왜 bearer 로 사용하셨어요? 왜 passport 를 사용하셨어요? 등등. 다 근거가 있어야 하고, 근거 하에 사용을 할 수 있도록 하자.

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

딱 3개월. 정확히 3월 말까지. 그 때까지 제대로 공부를 해 보려고 한다.

1개월차

CS 기본 (JS, HTML, CSS, 네트워크) 공부하기

2개월차

자기만족성 프로젝트가 아닌, 누군가에게 도움을 줄 수 있는 작은 프로젝트 하나 만들어보기

3개월차

클린코드 / 리팩토링을 보면서 2개월차에 만든 프로젝트를 개선하기

이력서 내면서 공채 지원해보기

그럼 오늘은 뭐 할건데요

읽을 예정이었던 책들을 딱 10페이지씩만 읽고 친구들이랑 공터에 나가 산책이나 해야겠다.

여담

2021년의 새로운 잔디밭이 깔렸다.

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

1개의 댓글

comment-user-thumbnail
2021년 1월 29일

그냥이라는 말이 없다는 부분이 인상깊네요 ㅎㅎ
프로젝트를 하면서도 이거를 왜 사용할까 비교해보면서 해야겠습니다!

답글 달기