SlideShare une entreprise Scribd logo
1  sur  27
Télécharger pour lire hors ligne
손코딩뇌컴파일눈디버깅
하광성
kwangswei@gmail.com
2014.04
AWARDS
하광성 (kwangswei@gmail.com)
daumkakao 멀티미디어처리파트(2014.10~ 현재)
LG전자 CTO SW Platfrom(연) (2011.02 ~ 2014.09)
2008 삼성소프트웨어멤버십 18기
2011 일등SW신입과정 사전 테스트 전체 1등.
2011 일등SW신입과정 6기(우수자과정) 프로젝트 최우수팀.
2012 SW Coding Expert
2012 Intensive C(Advanced) 과정 실습강사
2012 SW College 우수강사
2013 손코딩뇌컴파일눈디버깅 커뮤니티 리더
사전 설문조사
Q) 전산 혹은 컴퓨터 공학과 졸업자??
Q) 정보올림피아드/ACM ICPI/TopCoder 등 대
회 참가 경험자??
Q) Coding Interview 유경험자??
Q) C++ / JAVA / PYTHON 외…?
손코딩뇌컴파일눈디버깅
손으로 코딩하고,
머리로 컴파일하고,
눈으로 디버깅한다?
손코딩뇌컴파일눈디버깅
‘Problem Solving’
역량 함양을 위한
의도적 수련
Problem Solving
Algorithm?
그거 몰라도 현업하는데 문제 없어.
아마도 하루 중 대부분의 시간을....
http://awesomegeekblog.blogspot.kr/2013/11/the-software-developers-fallacy.html
"개발" 보다 "디버깅" 에 더 많은 시간을 쓰고 있다!
"디버깅" == "problem solving"
TDD, Code-review, unit-test 등 이와 같은 문제를 개선하기 위한 방법론이나 프로세스들은 많지만,
근본적으로는 SW Engineer가 꼼꼼하게 문제를 정의하고, 발생 가능한 문제를 예측하고, 깔끔하게 작성해야..!!
Problem Solving
우리가 수학을 배우는 이유.
미적분 몰라도 먹고 사는데 지장 없어요.
계산기 있잖아요.
-> 수학공부를 통해 길러지는 사고력, 논리력, 응용력
Problem Solving 을 통해 키워지는 역량
타인의 코드를 읽고 이해하는 능력
문제를 정의하고 추상화 하는 능력
예외 상황이나 오류를 찾아내는 능력
기본 코딩 스킬
Google, Microsoft, Apple, Yahoo, Facebook, Amazon, Netflix 등등 수많은 기업의
Interview Process
그들이 평가하는 것
문제를 잘 이해하는가? 필요한 조건 및 가정을 잘 도출하는 가?
어떤 과정을 통해 문제를 접근하고 풀어나가는가?
그 과정에서 의사소통을 잘 하는가?
깔끔하게 코딩을 잘 하는가?
자신의 풀이에서 버그나 예외 상황은 없는 지 검증하고 디버깅을 잘 하는가?
그들의 인터뷰 목표
“잘하는 사람을 놓치더라도 자질이 부족한 엔지니어를 채용하는 일은 없도록 하
자”
위와 같은 역량이 뛰어난 엔지니어들만이 보유하고 있는 스킬이라는 것이 아니라
모든 SW Engineer가 기본적으로 갖춰야 하는 역량이라고 본다는 의미!
참고
http://www.quora.com/TopCoder/Why-are-programmers-in-the-software-engineering-job-interviews-
tested-on-skills-similar-to-a-Topcoder-contest-irrespective-of-the-fact-that-the-skills-required-in-the-
industry-are-entirely-different
국내 동향
Coding Interview
쿠팡, LG 전자, Daumkakao, ESTSoft…..
LG전자
Coding Interview 도입
Code Jam 통해 일정 비율 선발
Coding Expert 선발
Daumkakao 멀티미디어처리파트
지원자의 역량, 필요한 스킬에 따라 직접 문제를 만들어서,
3차례에 걸쳐 코딩, 시스템디자인, 관련 전공 지식을 심층 면접
의도적 수련
Do you remember this old joke?
A young man is on the subway, carrying a guitar case.
He’s a member of a band that is performing a concert at Carnegie Hall;
and he’s running late.
He knows that the performance hall is close, but he doesn’t know the direction.
So he stops an old man on the street and asks:
“Excuse me sir, but how do I get to Carnegie Hall?”
The old man looks at the lad with his guitar case and says:
“Practice son, Practice.”
All professionals practice
프로 운동선수들은 자기 시간 중 20%를 시합에, 80%를 훈련에 투자한다.
한 조사에 의하면 대부분의 직장인들은 자기 시간의 99%를 일에,
1%를 자기계발에 투자 한다.
운동선수로 치자면 거의 연습도 하지 않고, 시합에 임하는 것과 마찬가지다.
-혼다 나오유키, [레버리지 씽킹]
Programmers??
Write code. Lots of code.
끗?
(그나마 코드라도 많이 짜면 다행.. ㅠ.ㅠ)
아마도 이렇게??
백문(百聞)이 불여일Run(不如一Run)
1만 시간 법칙에 대한 오해
http://agile.egloos.com/4834009
당신이 지금까지 걸은 시간을 합하면 1만 시간을 훌쩍 넘는다.
당신은 당신을 "걷기 마스터" 라고 부르는가?
당신은 지금껏 적어도 20년 넘게 숨을 쉬어왔다.
당신의 "폐활량"은 박태환 만큼 될까?
"버티는 시간이 아니라, 의도적 수련의 시간이 중요!"
Do Practice!
손코딩뇌컴파일눈디버깅
코딩 전 꼼꼼하게 검토하는 습관
+
생각을 있는 그대로 코드로 풀어내는 연습
Kent Beck once said
“I’m not a great programmer,
I’m just a good programmer with great habits.”
오늘의 Practice!
(밑줄은 산출물)
코딩에 들어가기 전
문제를 풀기 위해 필요한 가정 도출
테스트 케이스
알고리즘 서술
코딩
서술한 알고리즘을 그대로 동작하는 코드로 옮기기
코딩 후
테스트 + 디버깅하기
시간/공간 복잡도 계산해보기
개선점 찾아보기
오늘의 Practice!
Coding Session #1 (1hr)
시간/공간 복잡도의 제한이 없다고 가정하고 합시다.
그 외 필요한 가정은 쉬운 방향으로 세우고 시작합시다.
5분 자기소개
5분 가정도출
10분 솔루션 찾기 + 테스트 선정
30분 코딩 + 디버깅
10분 Code Review
그라운드 룰
Communication
머리 속에서 혼자 하지 말고 말로 표현하여 서로 토론하고 검증하기
Question
좋은 질문은 좋은 답을 이끌어낸다.
Focusing
자신의 생각은 잠시 내려놓고 현재 논의 중인 내용에 집중하기.
Done is better than perfect
Small step
Time keeper
오늘의 문제
Triple sum
숫자 리스트가 주어졌다고 하자.
리스트 내의 3개의 수를 골라 합이 0이 되는 경우의 수
를 반환하는 함수를 작성하라.
문제 이해하기
필요한 가정
시간 / 공간 복잡도 제한은?
숫자의 범위는? 0도 포함인가?
숫자 리스트의 크기는 어느정도인가?
순서가 중요한가?
숫자는 중복이 가능한가?
오늘의 Practice!
Coding Session #2 (1hr)
5분 자기소개
15분 솔루션 찾기 + 테스트 선정
30분 코딩 + 디버깅
10분 Code Review
예상 답안
예상 답안은 참석자에 한해 별도로 드리겠습니다
kwangswei@gmail.com
Retrospective
각자 포스트 잇에 작성 (5min)
놀란 점, 배운 점, 실천할 것 각 1가지씩.
조별로 공유 (5min)
전체 공유(10min)
자유 토론(10min)
손코딩뇌컴파일눈디버깅 모임
“코딩 기술은 정확한 프로그램을 작성하는 데 있어 작은 한 부분에 지나지 않는다. 작업의 대부분은...(중략)...문제 정의, 알고리즘
디자인, 데이터 구조의 선택이다. 이 작업들을 잘 해낼 수 있다면, 정확한 코드의 구현은 쉬운 것이 보통이다." - 생각하는 프로그래
밍
"제가 생각하는 바람직한 소프트웨어 엔지니어가 갖추어야 할 역량은 programming skill, domain knowledge, communication skill 입니
다." - LG전자 소프트웨어플랫폼 연구소장(전)
Online Coding study or Coding Interview 를 앞두고 계신 분. or 기타…
kwangswei@gmail.com
linkedin : kwangsung ha
그동안의 모임 Editorial 보기 (http://kwangswei.tistory.com)
개요 http://kwangswei.tistory.com/421 2회 http://kwangswei.tistory.com/422
3회 http://kwangswei.tistory.com/423 4회 http://kwangswei.tistory.com/424
5회 http://kwangswei.tistory.com/425 6회 http://kwangswei.tistory.com/426
7회 http://kwangswei.tistory.com/427 8회 http://kwangswei.tistory.com/428
참고자료
Books
Cracking the coding interview
The coding dojo handbook
알고리즘 문제 해결 전략
Algorithm Judge or Competitions
http://topcoder.com/tc
http://codeforces.com
http://algospot.com
Coding interview
http://www.careercup.com
http://www.glassdoor.com/index.html
http://oj.leetcode.com
Q&A
Feedback
(http://goo.gl/NhcpYJ)

Contenu connexe

Tendances

이승재, 사례로 배우는 디스어셈블리 디버깅, NDC2014
이승재, 사례로 배우는 디스어셈블리 디버깅, NDC2014이승재, 사례로 배우는 디스어셈블리 디버깅, NDC2014
이승재, 사례로 배우는 디스어셈블리 디버깅, NDC2014devCAT Studio, NEXON
 
신입 개발자 생활백서 [개정판]
신입 개발자 생활백서 [개정판]신입 개발자 생활백서 [개정판]
신입 개발자 생활백서 [개정판]Yurim Jin
 
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019devCAT Studio, NEXON
 
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018devCAT Studio, NEXON
 
코딩 테스트 및 알고리즘 문제해결 공부 방법 (고려대학교 KUCC, 2022년 4월)
코딩 테스트 및 알고리즘 문제해결 공부 방법 (고려대학교 KUCC, 2022년 4월)코딩 테스트 및 알고리즘 문제해결 공부 방법 (고려대학교 KUCC, 2022년 4월)
코딩 테스트 및 알고리즘 문제해결 공부 방법 (고려대학교 KUCC, 2022년 4월)Suhyun Park
 
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들Chris Ohk
 
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...Amazon Web Services Korea
 
임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013devCAT Studio, NEXON
 
[NDC 2009] 행동 트리로 구현하는 인공지능
[NDC 2009] 행동 트리로 구현하는 인공지능[NDC 2009] 행동 트리로 구현하는 인공지능
[NDC 2009] 행동 트리로 구현하는 인공지능Yongha Kim
 
송창규, unity build로 빌드타임 반토막내기, NDC2010
송창규, unity build로 빌드타임 반토막내기, NDC2010송창규, unity build로 빌드타임 반토막내기, NDC2010
송창규, unity build로 빌드타임 반토막내기, NDC2010devCAT Studio, NEXON
 
게임 프로그래밍 기초 공부법
게임 프로그래밍 기초 공부법게임 프로그래밍 기초 공부법
게임 프로그래밍 기초 공부법Chris Ohk
 
이승재, 마비노기 듀얼: 분산 데이터베이스 트랜잭션 설계와 구현, NDC2015
이승재, 마비노기 듀얼: 분산 데이터베이스 트랜잭션 설계와 구현, NDC2015이승재, 마비노기 듀얼: 분산 데이터베이스 트랜잭션 설계와 구현, NDC2015
이승재, 마비노기 듀얼: 분산 데이터베이스 트랜잭션 설계와 구현, NDC2015devCAT Studio, NEXON
 
MMOG Server-Side 충돌 및 이동처리 설계와 구현
MMOG Server-Side 충돌 및 이동처리 설계와 구현MMOG Server-Side 충돌 및 이동처리 설계와 구현
MMOG Server-Side 충돌 및 이동처리 설계와 구현YEONG-CHEON YOU
 
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)Heungsub Lee
 
새해 일어난 일
새해 일어난 일새해 일어난 일
새해 일어난 일Eunhyang Kim
 
그럴듯한 랜덤 생성 컨텐츠 만들기
그럴듯한 랜덤 생성 컨텐츠 만들기그럴듯한 랜덤 생성 컨텐츠 만들기
그럴듯한 랜덤 생성 컨텐츠 만들기Yongha Kim
 
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012devCAT Studio, NEXON
 
나의 이직 이야기
나의 이직 이야기나의 이직 이야기
나의 이직 이야기종립 이
 
로그 기깔나게 잘 디자인하는 법
로그 기깔나게 잘 디자인하는 법로그 기깔나게 잘 디자인하는 법
로그 기깔나게 잘 디자인하는 법Jeongsang Baek
 
[NDC 2010] 그럴듯한 랜덤 생성 컨텐츠 만들기
[NDC 2010] 그럴듯한 랜덤 생성 컨텐츠 만들기[NDC 2010] 그럴듯한 랜덤 생성 컨텐츠 만들기
[NDC 2010] 그럴듯한 랜덤 생성 컨텐츠 만들기Yongha Kim
 

Tendances (20)

이승재, 사례로 배우는 디스어셈블리 디버깅, NDC2014
이승재, 사례로 배우는 디스어셈블리 디버깅, NDC2014이승재, 사례로 배우는 디스어셈블리 디버깅, NDC2014
이승재, 사례로 배우는 디스어셈블리 디버깅, NDC2014
 
신입 개발자 생활백서 [개정판]
신입 개발자 생활백서 [개정판]신입 개발자 생활백서 [개정판]
신입 개발자 생활백서 [개정판]
 
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
 
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
 
코딩 테스트 및 알고리즘 문제해결 공부 방법 (고려대학교 KUCC, 2022년 4월)
코딩 테스트 및 알고리즘 문제해결 공부 방법 (고려대학교 KUCC, 2022년 4월)코딩 테스트 및 알고리즘 문제해결 공부 방법 (고려대학교 KUCC, 2022년 4월)
코딩 테스트 및 알고리즘 문제해결 공부 방법 (고려대학교 KUCC, 2022년 4월)
 
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들
 
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
 
임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013임태현, 게임 서버 디자인 가이드, NDC2013
임태현, 게임 서버 디자인 가이드, NDC2013
 
[NDC 2009] 행동 트리로 구현하는 인공지능
[NDC 2009] 행동 트리로 구현하는 인공지능[NDC 2009] 행동 트리로 구현하는 인공지능
[NDC 2009] 행동 트리로 구현하는 인공지능
 
송창규, unity build로 빌드타임 반토막내기, NDC2010
송창규, unity build로 빌드타임 반토막내기, NDC2010송창규, unity build로 빌드타임 반토막내기, NDC2010
송창규, unity build로 빌드타임 반토막내기, NDC2010
 
게임 프로그래밍 기초 공부법
게임 프로그래밍 기초 공부법게임 프로그래밍 기초 공부법
게임 프로그래밍 기초 공부법
 
이승재, 마비노기 듀얼: 분산 데이터베이스 트랜잭션 설계와 구현, NDC2015
이승재, 마비노기 듀얼: 분산 데이터베이스 트랜잭션 설계와 구현, NDC2015이승재, 마비노기 듀얼: 분산 데이터베이스 트랜잭션 설계와 구현, NDC2015
이승재, 마비노기 듀얼: 분산 데이터베이스 트랜잭션 설계와 구현, NDC2015
 
MMOG Server-Side 충돌 및 이동처리 설계와 구현
MMOG Server-Side 충돌 및 이동처리 설계와 구현MMOG Server-Side 충돌 및 이동처리 설계와 구현
MMOG Server-Side 충돌 및 이동처리 설계와 구현
 
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)
[야생의 땅: 듀랑고] 서버 아키텍처 Vol. 2 (자막)
 
새해 일어난 일
새해 일어난 일새해 일어난 일
새해 일어난 일
 
그럴듯한 랜덤 생성 컨텐츠 만들기
그럴듯한 랜덤 생성 컨텐츠 만들기그럴듯한 랜덤 생성 컨텐츠 만들기
그럴듯한 랜덤 생성 컨텐츠 만들기
 
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
조정훈, 게임 프로그래머를 위한 클래스 설계, NDC2012
 
나의 이직 이야기
나의 이직 이야기나의 이직 이야기
나의 이직 이야기
 
로그 기깔나게 잘 디자인하는 법
로그 기깔나게 잘 디자인하는 법로그 기깔나게 잘 디자인하는 법
로그 기깔나게 잘 디자인하는 법
 
[NDC 2010] 그럴듯한 랜덤 생성 컨텐츠 만들기
[NDC 2010] 그럴듯한 랜덤 생성 컨텐츠 만들기[NDC 2010] 그럴듯한 랜덤 생성 컨텐츠 만들기
[NDC 2010] 그럴듯한 랜덤 생성 컨텐츠 만들기
 

Similaire à 손코딩뇌컴파일눈디버깅을 소개합니다.

PS향유회 세미나 - PS는 개발자 취업에 도움이 될까?
PS향유회 세미나 - PS는 개발자 취업에 도움이 될까? PS향유회 세미나 - PS는 개발자 취업에 도움이 될까?
PS향유회 세미나 - PS는 개발자 취업에 도움이 될까? SesangCho
 
공사꾼 개발부장 김종찬_페어코딩으로 테스팅 배우기_ausg_20170824
공사꾼 개발부장 김종찬_페어코딩으로 테스팅 배우기_ausg_20170824공사꾼 개발부장 김종찬_페어코딩으로 테스팅 배우기_ausg_20170824
공사꾼 개발부장 김종찬_페어코딩으로 테스팅 배우기_ausg_20170824AWSKRUG - AWS한국사용자모임
 
Learning Unit Testing with Pair Programming
Learning Unit Testing with Pair ProgrammingLearning Unit Testing with Pair Programming
Learning Unit Testing with Pair ProgrammingJongchan Kim
 
개발자, 성장하는 '척' 말고, 진짜 성장하기
개발자, 성장하는 '척' 말고, 진짜 성장하기개발자, 성장하는 '척' 말고, 진짜 성장하기
개발자, 성장하는 '척' 말고, 진짜 성장하기Donghyun Cho
 
해외에서 일하며 Ver 2
해외에서 일하며 Ver 2해외에서 일하며 Ver 2
해외에서 일하며 Ver 2Hakhyun Kim
 
코딩테트2205-kucc-220508145530-8015b5d7.pdf
코딩테트2205-kucc-220508145530-8015b5d7.pdf코딩테트2205-kucc-220508145530-8015b5d7.pdf
코딩테트2205-kucc-220508145530-8015b5d7.pdfssuser597fbd
 
임태현, 프로그래머 생존 가이드
임태현, 프로그래머 생존 가이드임태현, 프로그래머 생존 가이드
임태현, 프로그래머 생존 가이드태현 임
 
Introduce Myself & Advice for New Employee
Introduce Myself & Advice for New EmployeeIntroduce Myself & Advice for New Employee
Introduce Myself & Advice for New Employeerryusoo
 
애자일 도입과 사례 공유
애자일 도입과 사례 공유애자일 도입과 사례 공유
애자일 도입과 사례 공유agilekorea
 
애자일 개발 프로세스를 이용한 고품질 소프트웨어 개발
애자일 개발 프로세스를 이용한 고품질 소프트웨어 개발애자일 개발 프로세스를 이용한 고품질 소프트웨어 개발
애자일 개발 프로세스를 이용한 고품질 소프트웨어 개발Jaehoon Oh
 
C++ 코드 품질 관리 비법
C++ 코드 품질 관리 비법C++ 코드 품질 관리 비법
C++ 코드 품질 관리 비법선협 이
 
애자일 게임 개발: 현실 세계의 혼돈을 다루는 법 (Agile Game Development: Dealing With Chaos In Th...
애자일 게임 개발: 현실 세계의 혼돈을 다루는 법 (Agile Game Development: Dealing With Chaos In Th...애자일 게임 개발: 현실 세계의 혼돈을 다루는 법 (Agile Game Development: Dealing With Chaos In Th...
애자일 게임 개발: 현실 세계의 혼돈을 다루는 법 (Agile Game Development: Dealing With Chaos In Th...Kay Kim
 
사내 TDD 도입을 위한 설명 문서
사내 TDD 도입을 위한 설명 문서사내 TDD 도입을 위한 설명 문서
사내 TDD 도입을 위한 설명 문서Kim kyoung-song
 
SW Maestro 1-1 Project Keynote
SW Maestro 1-1 Project KeynoteSW Maestro 1-1 Project Keynote
SW Maestro 1-1 Project Keynote진수 한
 
어쩌다로봇
어쩌다로봇어쩌다로봇
어쩌다로봇민건 주
 
발표자료 1인qa로살아남는6가지방법
발표자료 1인qa로살아남는6가지방법발표자료 1인qa로살아남는6가지방법
발표자료 1인qa로살아남는6가지방법SangIn Choung
 
WTM2018 그것이 알고싶다 어쩌다 10년... 지그재그 손연미, 백서영
WTM2018 그것이 알고싶다 어쩌다 10년... 지그재그 손연미, 백서영WTM2018 그것이 알고싶다 어쩌다 10년... 지그재그 손연미, 백서영
WTM2018 그것이 알고싶다 어쩌다 10년... 지그재그 손연미, 백서영ZIGZAG
 
[FEConf 2018] Front-End 프로젝트의 Test code 작성경험기
[FEConf 2018] Front-End 프로젝트의 Test code 작성경험기[FEConf 2018] Front-End 프로젝트의 Test code 작성경험기
[FEConf 2018] Front-End 프로젝트의 Test code 작성경험기Ahreum Kim
 
Software engineer가 되기 위한 여정
Software engineer가 되기 위한 여정Software engineer가 되기 위한 여정
Software engineer가 되기 위한 여정Aree Oh
 
0917_서인고_멘토링_오원종_최종.pdf
0917_서인고_멘토링_오원종_최종.pdf0917_서인고_멘토링_오원종_최종.pdf
0917_서인고_멘토링_오원종_최종.pdfWonJongOh1
 

Similaire à 손코딩뇌컴파일눈디버깅을 소개합니다. (20)

PS향유회 세미나 - PS는 개발자 취업에 도움이 될까?
PS향유회 세미나 - PS는 개발자 취업에 도움이 될까? PS향유회 세미나 - PS는 개발자 취업에 도움이 될까?
PS향유회 세미나 - PS는 개발자 취업에 도움이 될까?
 
공사꾼 개발부장 김종찬_페어코딩으로 테스팅 배우기_ausg_20170824
공사꾼 개발부장 김종찬_페어코딩으로 테스팅 배우기_ausg_20170824공사꾼 개발부장 김종찬_페어코딩으로 테스팅 배우기_ausg_20170824
공사꾼 개발부장 김종찬_페어코딩으로 테스팅 배우기_ausg_20170824
 
Learning Unit Testing with Pair Programming
Learning Unit Testing with Pair ProgrammingLearning Unit Testing with Pair Programming
Learning Unit Testing with Pair Programming
 
개발자, 성장하는 '척' 말고, 진짜 성장하기
개발자, 성장하는 '척' 말고, 진짜 성장하기개발자, 성장하는 '척' 말고, 진짜 성장하기
개발자, 성장하는 '척' 말고, 진짜 성장하기
 
해외에서 일하며 Ver 2
해외에서 일하며 Ver 2해외에서 일하며 Ver 2
해외에서 일하며 Ver 2
 
코딩테트2205-kucc-220508145530-8015b5d7.pdf
코딩테트2205-kucc-220508145530-8015b5d7.pdf코딩테트2205-kucc-220508145530-8015b5d7.pdf
코딩테트2205-kucc-220508145530-8015b5d7.pdf
 
임태현, 프로그래머 생존 가이드
임태현, 프로그래머 생존 가이드임태현, 프로그래머 생존 가이드
임태현, 프로그래머 생존 가이드
 
Introduce Myself & Advice for New Employee
Introduce Myself & Advice for New EmployeeIntroduce Myself & Advice for New Employee
Introduce Myself & Advice for New Employee
 
애자일 도입과 사례 공유
애자일 도입과 사례 공유애자일 도입과 사례 공유
애자일 도입과 사례 공유
 
애자일 개발 프로세스를 이용한 고품질 소프트웨어 개발
애자일 개발 프로세스를 이용한 고품질 소프트웨어 개발애자일 개발 프로세스를 이용한 고품질 소프트웨어 개발
애자일 개발 프로세스를 이용한 고품질 소프트웨어 개발
 
C++ 코드 품질 관리 비법
C++ 코드 품질 관리 비법C++ 코드 품질 관리 비법
C++ 코드 품질 관리 비법
 
애자일 게임 개발: 현실 세계의 혼돈을 다루는 법 (Agile Game Development: Dealing With Chaos In Th...
애자일 게임 개발: 현실 세계의 혼돈을 다루는 법 (Agile Game Development: Dealing With Chaos In Th...애자일 게임 개발: 현실 세계의 혼돈을 다루는 법 (Agile Game Development: Dealing With Chaos In Th...
애자일 게임 개발: 현실 세계의 혼돈을 다루는 법 (Agile Game Development: Dealing With Chaos In Th...
 
사내 TDD 도입을 위한 설명 문서
사내 TDD 도입을 위한 설명 문서사내 TDD 도입을 위한 설명 문서
사내 TDD 도입을 위한 설명 문서
 
SW Maestro 1-1 Project Keynote
SW Maestro 1-1 Project KeynoteSW Maestro 1-1 Project Keynote
SW Maestro 1-1 Project Keynote
 
어쩌다로봇
어쩌다로봇어쩌다로봇
어쩌다로봇
 
발표자료 1인qa로살아남는6가지방법
발표자료 1인qa로살아남는6가지방법발표자료 1인qa로살아남는6가지방법
발표자료 1인qa로살아남는6가지방법
 
WTM2018 그것이 알고싶다 어쩌다 10년... 지그재그 손연미, 백서영
WTM2018 그것이 알고싶다 어쩌다 10년... 지그재그 손연미, 백서영WTM2018 그것이 알고싶다 어쩌다 10년... 지그재그 손연미, 백서영
WTM2018 그것이 알고싶다 어쩌다 10년... 지그재그 손연미, 백서영
 
[FEConf 2018] Front-End 프로젝트의 Test code 작성경험기
[FEConf 2018] Front-End 프로젝트의 Test code 작성경험기[FEConf 2018] Front-End 프로젝트의 Test code 작성경험기
[FEConf 2018] Front-End 프로젝트의 Test code 작성경험기
 
Software engineer가 되기 위한 여정
Software engineer가 되기 위한 여정Software engineer가 되기 위한 여정
Software engineer가 되기 위한 여정
 
0917_서인고_멘토링_오원종_최종.pdf
0917_서인고_멘토링_오원종_최종.pdf0917_서인고_멘토링_오원종_최종.pdf
0917_서인고_멘토링_오원종_최종.pdf
 

손코딩뇌컴파일눈디버깅을 소개합니다.

  • 2. AWARDS 하광성 (kwangswei@gmail.com) daumkakao 멀티미디어처리파트(2014.10~ 현재) LG전자 CTO SW Platfrom(연) (2011.02 ~ 2014.09) 2008 삼성소프트웨어멤버십 18기 2011 일등SW신입과정 사전 테스트 전체 1등. 2011 일등SW신입과정 6기(우수자과정) 프로젝트 최우수팀. 2012 SW Coding Expert 2012 Intensive C(Advanced) 과정 실습강사 2012 SW College 우수강사 2013 손코딩뇌컴파일눈디버깅 커뮤니티 리더
  • 3. 사전 설문조사 Q) 전산 혹은 컴퓨터 공학과 졸업자?? Q) 정보올림피아드/ACM ICPI/TopCoder 등 대 회 참가 경험자?? Q) Coding Interview 유경험자?? Q) C++ / JAVA / PYTHON 외…?
  • 6. Problem Solving Algorithm? 그거 몰라도 현업하는데 문제 없어.
  • 7. 아마도 하루 중 대부분의 시간을.... http://awesomegeekblog.blogspot.kr/2013/11/the-software-developers-fallacy.html "개발" 보다 "디버깅" 에 더 많은 시간을 쓰고 있다! "디버깅" == "problem solving" TDD, Code-review, unit-test 등 이와 같은 문제를 개선하기 위한 방법론이나 프로세스들은 많지만, 근본적으로는 SW Engineer가 꼼꼼하게 문제를 정의하고, 발생 가능한 문제를 예측하고, 깔끔하게 작성해야..!!
  • 8. Problem Solving 우리가 수학을 배우는 이유. 미적분 몰라도 먹고 사는데 지장 없어요. 계산기 있잖아요. -> 수학공부를 통해 길러지는 사고력, 논리력, 응용력 Problem Solving 을 통해 키워지는 역량 타인의 코드를 읽고 이해하는 능력 문제를 정의하고 추상화 하는 능력 예외 상황이나 오류를 찾아내는 능력 기본 코딩 스킬
  • 9. Google, Microsoft, Apple, Yahoo, Facebook, Amazon, Netflix 등등 수많은 기업의 Interview Process 그들이 평가하는 것 문제를 잘 이해하는가? 필요한 조건 및 가정을 잘 도출하는 가? 어떤 과정을 통해 문제를 접근하고 풀어나가는가? 그 과정에서 의사소통을 잘 하는가? 깔끔하게 코딩을 잘 하는가? 자신의 풀이에서 버그나 예외 상황은 없는 지 검증하고 디버깅을 잘 하는가? 그들의 인터뷰 목표 “잘하는 사람을 놓치더라도 자질이 부족한 엔지니어를 채용하는 일은 없도록 하 자” 위와 같은 역량이 뛰어난 엔지니어들만이 보유하고 있는 스킬이라는 것이 아니라 모든 SW Engineer가 기본적으로 갖춰야 하는 역량이라고 본다는 의미! 참고 http://www.quora.com/TopCoder/Why-are-programmers-in-the-software-engineering-job-interviews- tested-on-skills-similar-to-a-Topcoder-contest-irrespective-of-the-fact-that-the-skills-required-in-the- industry-are-entirely-different
  • 10. 국내 동향 Coding Interview 쿠팡, LG 전자, Daumkakao, ESTSoft….. LG전자 Coding Interview 도입 Code Jam 통해 일정 비율 선발 Coding Expert 선발 Daumkakao 멀티미디어처리파트 지원자의 역량, 필요한 스킬에 따라 직접 문제를 만들어서, 3차례에 걸쳐 코딩, 시스템디자인, 관련 전공 지식을 심층 면접
  • 11. 의도적 수련 Do you remember this old joke? A young man is on the subway, carrying a guitar case. He’s a member of a band that is performing a concert at Carnegie Hall; and he’s running late. He knows that the performance hall is close, but he doesn’t know the direction. So he stops an old man on the street and asks: “Excuse me sir, but how do I get to Carnegie Hall?” The old man looks at the lad with his guitar case and says: “Practice son, Practice.”
  • 12. All professionals practice 프로 운동선수들은 자기 시간 중 20%를 시합에, 80%를 훈련에 투자한다. 한 조사에 의하면 대부분의 직장인들은 자기 시간의 99%를 일에, 1%를 자기계발에 투자 한다. 운동선수로 치자면 거의 연습도 하지 않고, 시합에 임하는 것과 마찬가지다. -혼다 나오유키, [레버리지 씽킹]
  • 13. Programmers?? Write code. Lots of code. 끗? (그나마 코드라도 많이 짜면 다행.. ㅠ.ㅠ)
  • 15. 1만 시간 법칙에 대한 오해 http://agile.egloos.com/4834009 당신이 지금까지 걸은 시간을 합하면 1만 시간을 훌쩍 넘는다. 당신은 당신을 "걷기 마스터" 라고 부르는가? 당신은 지금껏 적어도 20년 넘게 숨을 쉬어왔다. 당신의 "폐활량"은 박태환 만큼 될까? "버티는 시간이 아니라, 의도적 수련의 시간이 중요!"
  • 16. Do Practice! 손코딩뇌컴파일눈디버깅 코딩 전 꼼꼼하게 검토하는 습관 + 생각을 있는 그대로 코드로 풀어내는 연습 Kent Beck once said “I’m not a great programmer, I’m just a good programmer with great habits.”
  • 17. 오늘의 Practice! (밑줄은 산출물) 코딩에 들어가기 전 문제를 풀기 위해 필요한 가정 도출 테스트 케이스 알고리즘 서술 코딩 서술한 알고리즘을 그대로 동작하는 코드로 옮기기 코딩 후 테스트 + 디버깅하기 시간/공간 복잡도 계산해보기 개선점 찾아보기
  • 18. 오늘의 Practice! Coding Session #1 (1hr) 시간/공간 복잡도의 제한이 없다고 가정하고 합시다. 그 외 필요한 가정은 쉬운 방향으로 세우고 시작합시다. 5분 자기소개 5분 가정도출 10분 솔루션 찾기 + 테스트 선정 30분 코딩 + 디버깅 10분 Code Review
  • 19. 그라운드 룰 Communication 머리 속에서 혼자 하지 말고 말로 표현하여 서로 토론하고 검증하기 Question 좋은 질문은 좋은 답을 이끌어낸다. Focusing 자신의 생각은 잠시 내려놓고 현재 논의 중인 내용에 집중하기. Done is better than perfect Small step Time keeper
  • 20. 오늘의 문제 Triple sum 숫자 리스트가 주어졌다고 하자. 리스트 내의 3개의 수를 골라 합이 0이 되는 경우의 수 를 반환하는 함수를 작성하라.
  • 21. 문제 이해하기 필요한 가정 시간 / 공간 복잡도 제한은? 숫자의 범위는? 0도 포함인가? 숫자 리스트의 크기는 어느정도인가? 순서가 중요한가? 숫자는 중복이 가능한가?
  • 22. 오늘의 Practice! Coding Session #2 (1hr) 5분 자기소개 15분 솔루션 찾기 + 테스트 선정 30분 코딩 + 디버깅 10분 Code Review
  • 23. 예상 답안 예상 답안은 참석자에 한해 별도로 드리겠습니다 kwangswei@gmail.com
  • 24. Retrospective 각자 포스트 잇에 작성 (5min) 놀란 점, 배운 점, 실천할 것 각 1가지씩. 조별로 공유 (5min) 전체 공유(10min) 자유 토론(10min)
  • 25. 손코딩뇌컴파일눈디버깅 모임 “코딩 기술은 정확한 프로그램을 작성하는 데 있어 작은 한 부분에 지나지 않는다. 작업의 대부분은...(중략)...문제 정의, 알고리즘 디자인, 데이터 구조의 선택이다. 이 작업들을 잘 해낼 수 있다면, 정확한 코드의 구현은 쉬운 것이 보통이다." - 생각하는 프로그래 밍 "제가 생각하는 바람직한 소프트웨어 엔지니어가 갖추어야 할 역량은 programming skill, domain knowledge, communication skill 입니 다." - LG전자 소프트웨어플랫폼 연구소장(전) Online Coding study or Coding Interview 를 앞두고 계신 분. or 기타… kwangswei@gmail.com linkedin : kwangsung ha 그동안의 모임 Editorial 보기 (http://kwangswei.tistory.com) 개요 http://kwangswei.tistory.com/421 2회 http://kwangswei.tistory.com/422 3회 http://kwangswei.tistory.com/423 4회 http://kwangswei.tistory.com/424 5회 http://kwangswei.tistory.com/425 6회 http://kwangswei.tistory.com/426 7회 http://kwangswei.tistory.com/427 8회 http://kwangswei.tistory.com/428
  • 26. 참고자료 Books Cracking the coding interview The coding dojo handbook 알고리즘 문제 해결 전략 Algorithm Judge or Competitions http://topcoder.com/tc http://codeforces.com http://algospot.com Coding interview http://www.careercup.com http://www.glassdoor.com/index.html http://oj.leetcode.com