7월, 2019의 게시물 표시

코딩과 디버깅에 관하여

오늘은 코딩과 디버깅에 관하여 읽었다. 내 경험상 코딩과 디버깅을 하는 것은 그리 중요하지 않았었다. 왜냐하면 코딩을 하려면 문제를 어떻게 풀지 이해하고 계획이 세워져 있었어야 하기 때문이다. 그래서 코딩은 대충 생각하는 경향이 있었는데.. 이 챕터를 읽으면서 코딩을 하면서 간과하지 말아야 할 것들, 문제를 풀면서 가져야 할 습관들을 알아보았다. 글을 쓰면서 오늘 읽었던 내용을 정리하고, 다시한번 복습해보는 시간을 가지려고 한다. ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 먼저 코딩을 하는데 있어서 중요한 것들을 보면, 간결한 코드를 작성하는것 적극적으로 코드를 재사용하는것 표준 라이브러리를 공부하는 것 항상 같은 형태로 프로그램을 작성하는 것 일관적이고 명료한 명명법 사용하는 것 모든 자료를 정규화해서 저장하는 것 코드와 데이터를 분리하는 것 들이 있다. 음.. 많다. 하지만 다 알아둬야 할 것들이니, 빼먹지 말고 지키려고 노력하고 실천해보자. 간결한 코드를 작성하는 것 코드를 길게 작성할수록 그 코드는 읽기 어려워지고, 단순한 버그들을 찾기 어렵고 오타나 디버깅이 어렵다. 코드는 간결하게 작성할수록 좋은 것이라고 할 수 있다. 물론 간결하게 작성한 만큼 소스 고치기가 어려워질수도 있지만, 그런 경우에는 모듈화를 잘 시켜놓거나 해야할 것이다.. 말이 쉽지만 몇번 소스를 갈아엎으면서 경험해봤던 적이 있어 이 부분은 좀 더 이해할 수가 있었다. 그리고 간결한 코드를 작성하는것은 단순히 코드를 짧게 쓰는 것이 아니라, 명확한 들여쓰기와 읽기 쉬운 함수,변수의 네이밍, 설명이 잘 되어있는 주석 등도 포함이 될 것이다. 적극적으로 코드를 재사용하는 것 같은 소스가 중복되는 상황이 발생한다면 어떻게 해야할까. 자바를 배우면서 메서드를 만들고 클래스를 만들었던 기억이 난다. 상속이란 개념을 이용해서 클래스를 사용했던 경험이 있는데, 이와 같다. 코드를 재사용하는 것은 코딩...

문제 해결 개관

이 포스팅은 '프로그래밍 대회에서 배우는 알고리즘 문제해결전략(인사이트, 구종만 지음)'책을 읽고 쓴 것임을 밝힙니다. 문제를 해결하는 방법을 익히기 위해서는, 문제를 푸는것에 그치는 것이 아닌, 좀 더 깊은.. 문제 속을 들여다봐야 할 수 있어야 하는것 같다. 한가지 문제를 풀었다고 해서 다른 문제를 항상 풀 수 있는 것이 아니기 때문에.. '문제를 푸는 것'이 아니라 '문제를 푸는 기술'을 연마해야 한다. 우리의 선조들 뿐만 아니라 역사적으로 인간은 문제를 해결하면서 살아왔기 때문에, 문제를 해결했던 예전의 일들을 보면서 문제를 해결하는 방법(==기술)을 배우면 더 도움이 될 것 같다. 그래서 책에서는 '파인만 알고리즘'을 처음 보여준다. 이 알고리즘은 3단계로 되어 있다. 파인만이 누구인지는 검색 해보도록 하자 칠판에 문제를 적는다. 골똘히 생각한다. 칠판에 답안을 적는다. 좀 감이 오는가? 여기서 느껴야 하는 것은 문제를 보기만 하지 않는다는 것. 문제를 적음과 동시에 어떻게 문제를 풀어야하는지 생각한다는 것이다. 이를 지나 좀 더 문제를 해결하기 위한 구체적인 방법을 제시한 ' 어떻게 문제를 풀 것인가 (How to solve it)'에서는 다음과 같은 문제 해결방법을 제시했다. 문제를 이해한다. 어떻게 풀지 계획을 세운다. 계획을 수행해서 문제를 해결한다. 어떻게 풀었는지 돌아보고, 개선할 방법이 있는지 찾아본다. 좀 더 구체적으로 문제를 해결하는 방법이 된것을 볼 수 있다. 이를 토대로 우리도 문제를 해결해보자. 문제를 이해하는 것이다. 문제를 이해하기 위해서는 문제를 정확하게 읽고 이해해야 한다. 이를 제대로 못하면 시간만 낭비하는 꼴이 될 것이다. 문제를 정확하게 읽고 조건들을 모두 잘 체크하고, 이를 토대로 다음 단계로 넘어가야 한다. 어떻게 풀지 계획을 세운다. 문제를 이해함으로써 문...

자신있게 하자

자신감 - 문제를 어떻게 풀어야 하나요? 매일 매일 나는 문제를 마주치면서 살고 있는데, 가장 큰 문제는.. 어떻게 해야 이 문제들을 해결할 것인지 해결책을 찾지 못한다는 것이다. 지금 내가 가지고 있는 큰 문제는 몇가지가 있는데, 아래와 같다. 꾸준히 하는 것이 없다. 스마트폰을 너무 많이 사용한다. 유튜브 가끔 아프리카 뉴스 자꾸 미루는 습관 이 문제들을 해결하기 위해 많은 생각을 해보았다. 그러나 그것도 큰 문제가 있었다. 바로 생각만 하고 만다는 것이다.. 내 유전자에는 이 생각만 주구장창하고 '행동'으로 이어지지가 않았다. 그래서 강한 마음을 먹고 이 문제를 풀어보려고 한다. 해야 할 것들은 너무 많으면 안되니까 딱 두가지를 7월달 동안 해보려고 한다. 프로그래밍 대회에서 배우는 알고리즘 문제해결전략 책 읽기 하루 최소 10페이지 사이드 프로젝트 진행 기간 : 2019.07.08 월요일 ~ 2019.07.31 토요일 매일 포스팅 올리기 못한 날은 못한 이유에 대한 포스팅 올리기 일요일은 자유롭게 하도록 한다. 행동도 하는 사람이 되자