오늘 강의에서는 코딩보다는 이론적인 내용이 쉴 틈 없이 몰아쳤다. 코드를 기반으로 객체가 생성되고, 그 객체가 어딘가에 쌓이고, 그 객체에는 어떤 정보가 담겨있고, 코드를 실행하면서 해당 객체가 어떻게 변화되고, 상황에 따라 this는 무엇을 가리키고 등등... 눈에 보이는 부분이 아닌 코드 뒷 편에서 돌아가는 현상들에 대해서 배우려니 너무 복잡하고 막연했다. 처음에는 이해하는 것조차 어려웠지만 튜터님께서 반복해서 말씀을 해주시고, 그림을 그려가면서 쉽게 설명해주신 덕분에 2번, 3번 듣다 보니 서서히 이해가 가기 시작했다. 그동안은 혼자서 개발을 하다보니 다른 사람의 코드를 볼 일이 없었는데, 앞으로는 다른 사람들과 협업을 하고 다른 사람의 코드를 이어받아 유지보수를 하는 일도 많이 생길테니 그러한 상황에서의 혼란을 줄이려면 이러한 개념들에 대한 이해도 꼭 필요하겠다는 생각이 들었다.
Today 2. [알고리즘] 특강
[문제풀이] 문자열을 정수로 바꾸기
형변환 방법 : parseInt(), Number(), + 연산자 등
[문제풀이] 서울에서 김서방 찾기
인덱스 탐색 방법 : for문, findIndex(), indexOf() 등
[문제풀이] 수박수박수박수박수박수
[문제풀이] 가운데 글자 가져오기
알고리즘 공부에 대한 조언
문제 단위가 아니라 시간 단위로 투자하는 것이 좋음
시간이 지나 혼자 힘으로 풀었을 때 풀 수 있는 것을 목표로 잡는 것이 좋음
코딩테스트의 경우 보통 코드의 가독성과 성능을 중심으로 평가
알고리즘 공부를 어떻게 진행하면 좋을까?
why : 좋은 회사, 좋은 코드, JavaScript 학습을 위해서 필요
where : 플랫폼에서 직접, IDE 사용
how : 자신의 사용 언어, 학습 수단(플랫폼, 책, 강의 등)에 맞게 선택
what : 자신에게 맞는 난이도의 문제와 유형으로 가능한 많이 풀기
who : 자신의 성향에 맞게 팀 단위 또는 혼자서 진행
when : 주기적인 학습(매일 아침, 매주 화요일 등) 계획 필요
지난 특강 때 숙제로 나왔던 문제들에 대한 풀이를 해주셨다. 혼자서 해결했던 문제들이었지만 내 방식과 다른 풀이들을 보면서 저런 메소드도 있구나, 저런 흐름으로 접근할 수도 있구나 하는 생각에 꽤 흥미로웠던 것 같다. 알고리즘 문제를 푸는 것은 앞으로 남은 캠프 기간동안, 어쩌면 개발자로 취업을 한 뒤에도 계속해서 해 나가야 할 일 중 하나인데 기초부터 차근차근히 익혀서 습관으로 자리 잡을 수 있도록 노력할 것이다.