SlideShare una empresa de Scribd logo
1 de 27
Descargar para leer sin conexión
손코딩뇌컴파일눈디버깅
하광성
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)

Más contenido relacionado

La actualidad más candente

로그 기깔나게 잘 디자인하는 법
로그 기깔나게 잘 디자인하는 법로그 기깔나게 잘 디자인하는 법
로그 기깔나게 잘 디자인하는 법Jeongsang Baek
 
[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기
[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기
[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기강 민우
 
NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현noerror
 
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기Jaeseung Ha
 
Massive service basic
Massive service basicMassive service basic
Massive service basicDaeMyung Kang
 
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들영욱 오
 
스타트업처럼 토이프로젝트하기
스타트업처럼 토이프로젝트하기스타트업처럼 토이프로젝트하기
스타트업처럼 토이프로젝트하기Sunyoung Shin
 
[261] 실시간 추천엔진 머신한대에 구겨넣기
[261] 실시간 추천엔진 머신한대에 구겨넣기[261] 실시간 추천엔진 머신한대에 구겨넣기
[261] 실시간 추천엔진 머신한대에 구겨넣기NAVER D2
 
데이터 분석가는 어떤 SKILLSET을 가져야 하는가? - 데이터 분석가 되기
데이터 분석가는 어떤 SKILLSET을 가져야 하는가?  - 데이터 분석가 되기데이터 분석가는 어떤 SKILLSET을 가져야 하는가?  - 데이터 분석가 되기
데이터 분석가는 어떤 SKILLSET을 가져야 하는가? - 데이터 분석가 되기Hui Seo
 
나의 이직 이야기
나의 이직 이야기나의 이직 이야기
나의 이직 이야기종립 이
 
임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012devCAT Studio, NEXON
 
Windows Registered I/O (RIO) vs IOCP
Windows Registered I/O (RIO) vs IOCPWindows Registered I/O (RIO) vs IOCP
Windows Registered I/O (RIO) vs IOCPSeungmo Koo
 
자습해도 모르겠던 딥러닝, 머리속에 인스톨 시켜드립니다.
자습해도 모르겠던 딥러닝, 머리속에 인스톨 시켜드립니다.자습해도 모르겠던 딥러닝, 머리속에 인스톨 시켜드립니다.
자습해도 모르겠던 딥러닝, 머리속에 인스톨 시켜드립니다.Yongho Ha
 
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버Heungsub Lee
 
데이터는 차트가 아니라 돈이 되어야 한다.
데이터는 차트가 아니라 돈이 되어야 한다.데이터는 차트가 아니라 돈이 되어야 한다.
데이터는 차트가 아니라 돈이 되어야 한다.Yongho Ha
 
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019devCAT Studio, NEXON
 
개발자를 위한 (블로그) 글쓰기 intro
개발자를 위한 (블로그) 글쓰기 intro개발자를 위한 (블로그) 글쓰기 intro
개발자를 위한 (블로그) 글쓰기 introSeongyun Byeon
 
테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템QooJuice
 
Multiplayer Game Sync Techniques through CAP theorem
Multiplayer Game Sync Techniques through CAP theoremMultiplayer Game Sync Techniques through CAP theorem
Multiplayer Game Sync Techniques through CAP theoremSeungmo Koo
 
전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019
전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019
전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019devCAT Studio, NEXON
 

La actualidad más candente (20)

로그 기깔나게 잘 디자인하는 법
로그 기깔나게 잘 디자인하는 법로그 기깔나게 잘 디자인하는 법
로그 기깔나게 잘 디자인하는 법
 
[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기
[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기
[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기
 
NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현NDC12_Lockless게임서버설계와구현
NDC12_Lockless게임서버설계와구현
 
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
NDC 2017 하재승 NEXON ZERO (넥슨 제로) 점검없이 실시간으로 코드 수정 및 게임 정보 수집하기
 
Massive service basic
Massive service basicMassive service basic
Massive service basic
 
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
NDC2017 언리얼엔진4 디버깅 101 - 게임 기획자, 프로그래머가 버그와 만났을 때 사용할 수 있는 지침들
 
스타트업처럼 토이프로젝트하기
스타트업처럼 토이프로젝트하기스타트업처럼 토이프로젝트하기
스타트업처럼 토이프로젝트하기
 
[261] 실시간 추천엔진 머신한대에 구겨넣기
[261] 실시간 추천엔진 머신한대에 구겨넣기[261] 실시간 추천엔진 머신한대에 구겨넣기
[261] 실시간 추천엔진 머신한대에 구겨넣기
 
데이터 분석가는 어떤 SKILLSET을 가져야 하는가? - 데이터 분석가 되기
데이터 분석가는 어떤 SKILLSET을 가져야 하는가?  - 데이터 분석가 되기데이터 분석가는 어떤 SKILLSET을 가져야 하는가?  - 데이터 분석가 되기
데이터 분석가는 어떤 SKILLSET을 가져야 하는가? - 데이터 분석가 되기
 
나의 이직 이야기
나의 이직 이야기나의 이직 이야기
나의 이직 이야기
 
임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012임태현, MMO 서버 개발 포스트 모템, NDC2012
임태현, MMO 서버 개발 포스트 모템, NDC2012
 
Windows Registered I/O (RIO) vs IOCP
Windows Registered I/O (RIO) vs IOCPWindows Registered I/O (RIO) vs IOCP
Windows Registered I/O (RIO) vs IOCP
 
자습해도 모르겠던 딥러닝, 머리속에 인스톨 시켜드립니다.
자습해도 모르겠던 딥러닝, 머리속에 인스톨 시켜드립니다.자습해도 모르겠던 딥러닝, 머리속에 인스톨 시켜드립니다.
자습해도 모르겠던 딥러닝, 머리속에 인스톨 시켜드립니다.
 
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
 
데이터는 차트가 아니라 돈이 되어야 한다.
데이터는 차트가 아니라 돈이 되어야 한다.데이터는 차트가 아니라 돈이 되어야 한다.
데이터는 차트가 아니라 돈이 되어야 한다.
 
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
 
개발자를 위한 (블로그) 글쓰기 intro
개발자를 위한 (블로그) 글쓰기 intro개발자를 위한 (블로그) 글쓰기 intro
개발자를 위한 (블로그) 글쓰기 intro
 
테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템
 
Multiplayer Game Sync Techniques through CAP theorem
Multiplayer Game Sync Techniques through CAP theoremMultiplayer Game Sync Techniques through CAP theorem
Multiplayer Game Sync Techniques through CAP theorem
 
전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019
전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019
전형규, SilvervineUE4Lua: UE4에서 Lua 사용하기, NDC2019
 

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

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
 
현업 엔지니어의 시각에서 본 알고리즘 공부의 장점과 단점
현업 엔지니어의 시각에서 본 알고리즘 공부의 장점과 단점현업 엔지니어의 시각에서 본 알고리즘 공부의 장점과 단점
현업 엔지니어의 시각에서 본 알고리즘 공부의 장점과 단점Wonha Ryu
 
해외에서 일하며 Ver 2
해외에서 일하며 Ver 2해외에서 일하며 Ver 2
해외에서 일하며 Ver 2Hakhyun Kim
 
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019devCAT Studio, NEXON
 
코딩테트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++ 코드 품질 관리 비법선협 이
 
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018devCAT Studio, NEXON
 
애자일 게임 개발: 현실 세계의 혼돈을 다루는 법 (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
 

Similar a 손코딩뇌컴파일눈디버깅을 소개합니다. (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
 
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
윤석주, 신입 게임 프로그래머가 되는 법 - 넥슨 채용 프로세스 단계별 분석, NDC2019
 
코딩테트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++ 코드 품질 관리 비법
 
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
홍성우, 게임 프로그래머는 어떻게 가르치나요?, NDC2018
 
애자일 게임 개발: 현실 세계의 혼돈을 다루는 법 (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년... 지그재그 손연미, 백서영
 

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

  • 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