Skip to content

Latest commit

 

History

History
51 lines (50 loc) · 2.36 KB

File metadata and controls

51 lines (50 loc) · 2.36 KB

Data Structure & Algorithms with Go

C에 비해서 알고리즘 자체에 집중할 수 있다. Go의 idiom을 배울 수 있다. 작은 사이즈의 실제 production level의 코드를 여러개 만들어보면서 언어 자체를 익힐 수 있다. problem solving을 연습을 통해 job interview나 실제 프로젝트에 활용해 보기 바란다.

요령

어려운 이유

  • 2가지 장벽
    • 익숙하지 않은 프로그래밍 언어
    • 개념까지 익혀야 하니
    • 2가지 중에 하나가 익숙하면 배우기 쉽다.
  • 문제->방법->코드로 전환
    • 자세하게 설명하는 경우보다 '이래서 이렇게 되어야 한다'라는 식으로 갈켜줌
    • 초보자들이 이해하기 어렵고 대부분 '이렇게 처리해야만 하는구나'라고 생각하고 외우는 경우가 많더라.
  • 어떻게 배우거나 익히는 것이 좋을까?
  • 알고리즘이나 문제 해결을 위해서는 코드로 해결하기 위해서 사용할 수 있는 패턴이 있다는 생각이 들더라.
  • 많이 풀면서 자연스럽게 스스로 깨우치는 것도 좋은 방법이지만 초보자가 흥미를 가질 수 있게 조금은 쉽게 설명해 주는 것이 필요하지 않을까?

절차

  • 데이터를 넣고 어떻게 처리되는지는 알겠다.
  • 하지만 코드로 표현하기가 어렵다.
  • 생각하기
    • 가장 간단한 초기 동작
    • 다음 동작 설명
    • 3번째부터는 반복시킬 수 있는 방법 찾기
  • 프로그래밍
    • 컴퓨터가 잘 하는 반복 계산 절차 형태로 표현 -> 컴퓨터 수행 가능
    • 프로그래밍 언어에서 표현법

훈련

  • 필요한 저장소
    • 어떤 정보가 필요할까?
    • 추가로 필요한 정보는?
    • 저장소에서 저장하는 방법 (stack or queue, set)
    • 저장소에서 꺼내오는 방법 (stack or queue)
  • 처리 절차
    • 3개 정도 처리하는 과정을 직접 손으로 써보기
    • 나누기
      • 초기화
      • 절차 1
      • 절차 2
      • 반복을 위해 점프할 위치
  • 특정 언어로 자료구조와 알고리즘 마스터 하기
  • 새로운 언어로 자료구조와 알고리즘 도전
    • 해당 언어의 idiom에 집중
    • generic
    • collection 구현 참조
    • unittest
    • benchmark 도구 습득
  • Beyond 알고리즘
    • concurrency 문제를 여러 언어로 해결해 보기