ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 리트코드 Top Inteview 150 후기
    Coding Test 2024. 7. 7. 00:28

    리트코드는 알고리즘 문제 사이트이다.

    그중 좋은 문제 150개를 엄선해서 모아놓은 분류가 있는데 이게 Top Interview 150이다.

    이거를 생각날 때마다 하나씩 풀다보니 어느새 다풀었다.

     

    누구는 알고리즘이 현업에서 쓸 데 없다고도 하고

    누구는 알고리즘 잘하는 사람이 현업 개발 못하는걸 본 적 없다고 한다.

     

    현업 개발을 많이 겪진 못했지만 지금까지 경험으로 보면

    일단 도메인을 많이 아는게 중요하다.

     

    선임 개발자분들을 보면 개발 40 디버깅 40 회의 20의 비중을 두고 있다.

    디버깅 비중이 크다.

    예상치 못한 예외케이스가 발생할 수 있다는걸 알기 위해서는 일단 도메인에 대한 지식이 필요하다. 

    그리고 미처 처리하지 못한 예외케이스가 발생해 디버깅을 해야하는 경우에도 문제 발생 원인을 파악할 때 도메인 지식이 필요하다.

     

    버그는 개발이 완료된 후에 잡는 것이고, 개발 과정에서 필요한게 알고리즘이다.

    우리 회사는 셀 개념의 1~3인이 공동 사용하는 공간에서 일하는데,

    셀에 질문하러 들어가보면 벽에 알고리즘 순서도가 그려져 있는걸 심심치않게 볼 수 있다.

    빠른 개발도 중요하지만 그와중에 챙겨야 할 부분은 로직에 논리적 모순이 없는지 확인하는 것이다.

    db에 데이터를 넣었는데 꺼내려고 보니 없다. 이러면 대참사다. 아무도 이 db를 안 쓸 것이다. 

     

    코테 준비할 땐 문제의 분류를 추출해내고 이에 필요한 도구들을 빠르게 사용하는게 중요했다.

    하지만 리트코드를 풀땐 여유로운 마음을 가지고 알고리즘을 순서도 그려가며 풀었다.

     

    이걸 통해 성장하고자 하는 점은 새롭게 접하는 문제도 겁먹지 않고 차분히 분석한 후 해결책을 설계해서 코드로 작성하는 힘이다. 개발자의 기본 소양이라고 할 수 있다.

    보통 이런 힘을 기르기 위해서는 특별한 환경이 필요하다.

    애초에 문제가 없는 환경에선 기를 수도 없다.

     

    알고리즘 문제는 이러한 환경을 제공하는 역할을 한다.

    게임으로 치면 업무는 보스 몬스터를 잡는거고, 알고리즘 문제 풀이는 일반 몬스터를 잡는거다.

    일반 몬스터를 잡아 성장해서 보스몬스터를 잡는다.

    물론 보스몬스터를 잡으면서 성장할 수도 있다. 결국 보스잡는게 목표가 되어야 한다.

     

    다음 목표

    1. 150문제 다시풀기

    - 새로운 문제를 계속 푸는건 지친다. 그리고 앞서 접했던 문제를 모두 씹어먹지도 않고 다른 문제 보는건 좋지 않다고 생각한다. 150문제 중에는 빠르게 푼것, 시간이 걸려서 푼것, 못풀어서 답지본것, 못풀어서 넘겼다가 답지보고 푼것, 답지보고도 이해 어려워서 못풀다가 푼것 등 타입이 다르다. 그리고 뭐든지 능숙해지기 위해서는 복습이 중요하다. 그래서 다시풀고싶다.

    2. 정기 대회 참가

    - 리트코드에서는 매주, 격주 대회가 있다. 이거 참가하고 싶다. 신청은 그냥 클릭 한번이면 끝이다. 사실 나 말고 알고리즘 고수들 입장에서는 리트코드 문제는 아무것도 아니다. 별 것 아니지만 그래도 꾸준히 성장하고 싶어서 참가하고 싶다.

     

    기타

    팀원들을 보면 이런점을 배우고 싶다고 느끼는 부분들이 있다.

    1. 자기가 불편을 느껴 모두가 사용할 수 있는 툴을 만들어 제공한다.

    2. 주간 보고 등 여러 사람과 공유하는 글을 일목요연하게 정리해서 잘쓴다.

    3. 도움이 필요할 때 주저없이 도움을 요청한다.

    4. 누군가 해야하는 일을 도맡아 한다.

    5. 나눌 수 있는건 뭐든지(먹을거, 지식) 나눈다.

    6. 개발 자체를 잘한다.

     

    열심히하자.

     

     

     

     

     

     

     

     

     

     

Designed by Tistory.