- TypeScript basic: Type, Class, Interface, Generic
- Cracking the code interview techniques
- Technical interview
- 사고의 절차를 말로 표현하는 것에 익숙해지는 연습을 해두길 권장
- 막히더라도 생각의 헤드라인(?)이라도 먼저 밝히는 것이 좋다
- 조용한것보단 중얼중얼하는 것이 낫다
- Behavioral questions
- Quick shows of success(성공 경험은 구체적으로, 신속하게 밝힌다)
- Direct to key stories(자신의 핵심 스토리로 질문을 유도)
- Technical habbit(even toy-project). Non technical habbit => make it relevant
- 7 Steps to solve algorithm problems
- 문제를 주의깊게 듣기
- 테스트 인풋은 적당히 크면서도, 특수한 케이스는 벗어나도록 정해둔다
- Brute-force first
- Optimize!!
- Walk throught algorithm
- Code it * coding style matter(brace, case-style, naming convention...) 어떤 스타일이냐보다는 일관성을 유지하는 것이 중요하다. * 변수, 함수명은 길더라도 명확한 의미를 표현해야한다. * 처음부터 모듈화해서 작성하면 좋다. 알고리즘 step 수에 따라 쪼갤 것 * 각 모듈을 감싸는 코드부터 시작한다.
- Test * small case first, edge case next, big test last
- 3 Algorithm strategies
- BUD
after brutal force, check three things * Bottleneck: 발생 지점을 찾아서 줄이거나 없애기 e.g. O(A*B) => O(A+B) * Unneccessary work: break문으로 적절한 시점에 반복문을 탈출로 줄일 수 있음. (단 예시로 든 경우는 O의 차수를 줄이진 못함) * Duplicated work: 나중에 또 필요한 값을 저장해두는 테크닉을 사용한다. 해시맵. - Space-Time Tradeoffs(좀 더 배우고 와야 이해가 될 것 같다)
- DIY(좀 더 배우고 와야 이해가 될 것 같다)
- BUD
- Technical interview
- 코드를 작성하기 전에, 생각보다 많은 절차들이 있다.
- 병목현상을 줄이는 테크닉은 몇가지 사례와 원리를 봐야 이해가 될 것 같다.. 에를 들면 해쉬셋
- Brutal force 방식은 새로 알게된 방식이다. nested for loop으로 일단 해결하고 리팩토링 하는 방법도 해보자.
- Todos 리팩토링
- 할일 클릭 시 input창이 나타나서 내용 수정 가능하게 변경
- todos label, input CSS 분리
원인은 CSS가 아니라 label tag의 for attribute 때문이었다. 질문하다가 해결.. 미심쩍을 때 테스트를 해봤어야 했다.
- todos node collection, classLists를 사용해서 array 메소드를 보다 적극적으로 사용하도록 수정하기
- 장고 튜토리얼을 마무리하는대로, aws 무료서버로 옮겨보고 성공 시 장고로 todo 서버를 구축하고 aws에 db까지 하자는 원대한 포부는 과연...
- 마음이 급하다. 코딩 할 때든, 뭘 하든...