잡담 & ETC

code kata 를 하자! - Codewars

Hyunec 2023. 2. 20. 03:04
A kata is an exercise in karate where you repeat a form many, many times, making little improvements in each

카타는 하나의 양식을 여러 번 반복하면서 조금씩 개선하는 가라데의 운동입니다. 

 

보통 코딩 테스트 통과를 위한 알고리즘 공부는 leetcode, 백준을 추천하곤 합니다.

하지만 저는 실무에 있어 퍼즐에 가까운 알고리즘 풀이보다는, 범용적인 자료구조와 해당 언어의 Best Practice 학습이 더 중요하다고 생각합니다. 그러던 중 codewars 라는 사이트를 알게 되었고 제 목적에 부합하고 꽤 유용하다고 생각되어 간단히 소개해보고자 합니다.

 

Codewars - Achieve mastery through coding practice and developer mentorship

A coding practice website for all programming levels – Join a community of over 3 million developers and improve your coding skills in over 55 programming languages!

www.codewars.com

 

 

Pros

 

1. 공부하고 싶은 언어와 목적을 선택할 수 있습니다.

  • 특히 문제 선택을 위해 참고할 수 있는 유형을 태그로 지원해 줍니다.

 

2. Best Practice 를 볼 수 있는 UX 가 압도적으로 훌륭합니다. 

  • 다른 사람의 코드를 볼 수 있는 기능은 다른 사이트에도 있지만, UX 가 압도적으로 훌륭합니다.
  • codewars 를 소개하는 가장 큰 이유입니다.

 

 

Cons

 

1. 커뮤니티 형태의 운영에서 생기는 단점

  • codewars 는 문제를 사용자 스스로 올릴 수 있고, 커뮤니티에서 자체적으로 관리됩니다.
  • 그렇기에 참여가 적은 문제는 품질 관리 수준이 낮고, 난이도가 높아질수록 억지스러운 문제들도 존재합니다.

 

2. 분석 도구의 부족

  • 효율성까지 분석해 주는 다른 사이트와 달리 성공과 실패만을 알려줍니다.

 

3. 앞의 2가지 이유로 코딩 테스트 준비 용도로는 추천하지 않습니다.

  • 코딩 테스트 준비가 목표라면 leetcode, 백준을 추천합니다.

 

 

개인적인 활용

 

알지 못했던 String.replaceFirstChar 활용을 통한 개선

1. 하루에 1~2개 정도, 낮은 레벨의 문제만 풉니다. (kyu8 ~ kyu5)

  • 낮은 레벨의 문제는 보통 요건이 단순하고 5줄 미만으로 해결할 수 있습니다.
  • 자료구조와 Best Practice 를 학습하려는 목표에 적합합니다.

 

2. 문제의 태그를 선별적으로 활용합니다.

  • 선호 태그 FUNDAMENTALS STRINGS LISTS
  • 비선호 태그 MATHEMATICS ALGORITHMS PUZZLES