132 deview 2013 프로그래머로 산다는 것...
DESCRIPTION
TRANSCRIPT
프로그래머로 산다는 것 유석문 이사 / 신규서비스개발실 NHN Technology Services
CONTENTS 1. 개발자???����������� ������������������
2. 좋은 개발자???
3. 좋은 개발자!!!����������� ������������������
0. 프로그래머로 산다는 것
2013년 문화체육관광부 우수학술도서
2012.09.26 로드북
황상철 하호진
이상민 김성박
0. 프로그래머로 산다는 것 FAQ
화장실에서도 일하란 말이냐??
필자 중 누구의 다리냐??
1. 개발자???
1.1 개발자??? or ??????
이미지 출처: http://www.leda-tutorial.org/en/official/ch02s04.html
상황: Java 3 ~ 5년 경력 기술면접
Class Stack() { …… }
응??
으응??
최근에는 개발보단 관리를 많이 하느라 …
읭???
개발(놈)者
1.2 개발(놈)者 Begins – 업무 할당
이미지 출처: http://elderonamission.blogspot.kr/2011/06/our-call-to-duty.html
이 일을 언제까지 끝낼 수 있겠나? 참고로 시간이 없네.
비극 또는 일상의 시작 ~!!
1.2 개발(놈)者 Begins – 업무 수행
이미지 출처: https://fisher.osu.edu/blogs/ftmba-admissions/tag/deadline/ http://www.3waylinks.com http://withalways.tistory.com/120 http://backreaction.blogspot.kr/2012/02/updated-science-symbol.html
검색
복사 & 붙여넣기
되는 것 처럼 보일때 까지 ~!
!!
1.3 개발(놈)者의 탄생 주역
이미지 출처: http://www.fanpop.com/clubs/kuzco/images/30859484/title/kuzco-3-photo http://4realleaders.com/2011/11/the-good-bad-and-ugly-part-3/ http://www.seattlejusticeblog.com/2010/10/mike-withey-joins-public-justice-to-fight-health-insurance-greed/ http://i-sight.com/investigation/managing-an-uncooperative-complainant-or-witness-in-a-workplace-investigation/ http://thedevilsdoor.org
비협조적인 동료 탐욕스러운 회사 나쁜 고객과 상사
통제할 수 없는 외부요인
1.4 개발자의 필수능력
이미지 출처: http://www.redbubble.com/people/yossirb9/works/9288761-keep-calm-for-inner-peace?p=sticker http://blog.naver.com/ryo132?Redirect=Log&logNo=100195221848
1.4 개발자의 필수능력
이미지 출처: http://www.redbubble.com/people/yossirb9/works/9288761-keep-calm-for-inner-peace?p=sticker http://blog.naver.com/ryo132?Redirect=Log&logNo=100195221848
깔끔한 코드
적절한 논리력
• 사람이 이해하기 쉬운 코드
• 변경이 용이한 코드
• 유지보수 비용이 낮은 코드
• 원리 탐색 능력
• 제약조건을 고려한 해법
• 단순한 디자인
1.5 깔끔한 코드 작성법
이미지 출처: http://www.solutionsiq.com/resources/agileiq-blog/bid/64395/What-is-the-Definition-of-Done-DoD-in-Agile http://www.iconarchive.com/show/people-icons-by-aha-soft/user-icon.html http://www.lunched.com.au/features
개발자
고객
ATDD Acceptance Test
Driven Development
TDD Test Driven Development
1.5 깔끔한 코드 작성법
이미지 출처: http://asynchrony.blogspot.kr/2008/12/hendrickson-on-atdd.html
1.5 깔끔한 코드 작성법
이미지 출처: http://diogoosorio.com/blog/entry/test-driven-development-tdd-using-phpunit
• 사용하는 코드만 만들기(Caller Create)
• 리팩토링(Refactoring)
• 코드 읽기(Code Review)
1.6 적절한 논리력
이미지 출처: http://teamdicky.blogspot.kr/2012/09/the-whining-and-bitching-part.html http://tommythematerialgirl.blogspot.kr/2012/05/easy-street.html
• 알고리즘과 데이타 구조(Don’t Reinvent The Wheel)
• 단순한 디자인(Simple Design)
• 진화적 디자인(Evolutionary Design)
• 협업(Cooperative Design, Design Review)
• 기술 벤치마킹(Benchmarking)
1.7 실천법
이미지 출처: http://www.mymodernmet.com/profiles/blogs/cute-yoga-kittens http://24.media.tumblr.com/tumblr_lzfa17ANA01qzo3c9o1_1280.jpg, http://ahmad.baitalmal.com/?cat=1
• 꾸준한 연습(Daily Practice)
• 매일 몸값 올리는 시간을 가져라
• 멀리 가고 싶다면 함께 가라
• 현재 필요한 만큼만 하라
• 간단하게 하라
2. 좋은 개발자???
2.1 좋은 OO 개발자???
이미지 출처: http://uas.osu.edu/program/collaborative-art-making-intensive http://www.jdsmitproductions.co.nz
“좋은”
공유 협업
개발자 서버, 웹, 클라이언트, 임베디드, 모바일, 게임, …………
• 분야가 다양 • 시간 변동성
• 시간 변동성 없음
2.2 공유하는 이유??
이미지 출처: http://themostbeautifulfraudintheworld.blogspot.kr/2012_05_01_archive.html
나는 관대하니까 ~ ????
2.2 공유하는 이유??
이미지 출처: http://www.spreadshirt.com/i-m-the-best-t-shirts-C3376A10929818
내가 최고니까 ~ ????
2.2 공유하는 매우 현실적인 이유
이미지 출처: http://www.beeskneesdance.com/lindy-hop-pet-peeves/homer-simpson-doh/ http://www.bubblews.com/news/294553-hall-of-fame http://www.123rf.com/photo_20283635_man-receiving-award-trophy-medal-reward-prize-knighted-honour-honor-ceremony-event-stick-figure-pict.html
주변이 똑똑해져야 내가 편함 • 사고를 수습하는 일이 줄어듬
• 중요한 일을 할 여유를 가질수 있음
좋은 평판을 얻을 수 있음
주변의 덕을 볼 확률이 올라감
2.3 공유 대상
이미지 출처: http://emergingtech.tbr.edu/new-technologies http://newstechnica.com/2008/11/28/portsmouth-gets-future-crime-predicting-cctv-cameras/cctv-epic-fail/ http://www.careerminds.com/blog/are-you-a-team-player-or-a-group-player.html http://tippingback.com/fun-is-yours-to-decide/
무엇이든
2.4 공유 방법
이미지 출처: http://diginomica.com/2013/05/24/email-the-stepchild-digital-forgot/ http://www.nuget.org/packages/Hellang.Repository/ http://www.weblinkinternational.com/chambers http://gallery.orchardproject.net/List/Search?searchTerm=author%3A%20Piotr%20Szmyd
기록
공유 조회
* 주의: 재미있어야함! * 주의: 쌈박질 조심!
메일
교육 세미나
코드리뷰
2.5 협업
이미지 출처: http://www.alleywatch.com/2013/06/10-tools-that-simplify-startup-collaboration/
2.5 협업의 전제조건: 상대를 이해하자
이미지 출처: http://www.telegraph.co.uk/news/picturegalleries/picturesoftheday/7735918/Pictures-of-the-day-18-May-2010.html?image=6
고슴도치도 제 새끼는 함함하다.
기획자 • 산출물: 기획문서
개발자 • 산출물: 코드
QA • 산출물: 테스트케이스, 버그레포트
• 자주듣는 말: 이걸 왜 해야 하는데요? • 자주듣는 말: 이거 이상해요!
• 자주듣는 말: 그럴리가 없는데? 제자리에선 잘되요 ~!
2.6 협업의 필수요소
이미지 출처: http://www.psychologytoday.com/blog/death-love-sex-magic/201005/the-secrets-meaningful-life-part-iii-the-importance-self-esteem
자아존중감(自我尊重感)
• 자신이 존중 받을 가치가 있다고 믿음
• 있는 그대로의 자신을 인정함
• 타인의 부정적 견해에 크게 영향 받지 않음
본성은 바꿀 수 없지만 외부의 자극에 반응하는 방식은 바꿀 수 있다.
2.6 자아존중감을 높이는 방법
인문학(Liberal Arts)
• 스토아 철학
• 세네카, 에픽테토스
• 인지심리학(Cognitive Psychology)
• 행복에 걸려 비틀거리다
• 뱀의 뇌에게 말을 걸지 마라
• 설득의 심리학
3. 좋은 개발자!!!
3.1 좋은 개발자!!!
논리력 좋은 코드 작성 능력
공유, 협업
도메인 지식
피드백 실천력
이미지출처: http://ifather.tistory.com/category/재밌는세상?page=2
3.2 좋은 개발자!!!
이미지 출처: http://www.todayhumor.co.kr/board/view.php?no=100207&page=1&s_no=100207&table=bestofbest
연습이 완벽을 만든다! (Practice makes perfect!)
Q&A
THANK YOU