콘퍼런스
Devground Junior 2019
<이력서 준비: 꿀팁으로 검색>
개발자가 갖추어야 할 9가지 기술 -박종천 삼성전자
유투브 보기
각 프로젝트에 책들보기
설득할떄 3가지 중요요소 <메세지, 형태(어떤식으로 말을 전달), 말을 하는 사람 (화자의현위치)>
프로필
아래한글에서 처음시작, 6년일을 함, 보스턴 스타트업, 블리자드>넥슨>삼성전자
- Basic Knowledge(C++, OS)
- Understanding for product
- Development Cycle
development 9가지 덕목 (진짜 9가지 꼭 신경쓰기)
1-5 years of development 9가지 덕목 (진짜 9가지 꼭 신경쓰기)
혼자공부하기 (프로그래밍, 언어,등등)
제품의 이해(블리자드예시)
Product Analysis
Power of blizzard
- everyone loves game
Three types of restaurants
- going for profit
- try to make customer happy
- love cooking
진짜 게임만들기 좋아하는 사람들이 더 미쳤다, 자기가 좋아하는 것을 만든다.
Development Cycle
- Requirements &Analysis
- Design &modeling
- Implementation
- Test/release
- Feedback/update
전부 1:1 중요성임, 막상 만드는 것도 비중이 엄청 높지 않아
여기까지가 기초(1~5년차 해당사항)
Project Management
Why, What, How 알아야함 (왜만드냐, 무엇을만들냐, 어떻게만드냐 기술)
내가 무슨 타입인지 알자, 똑같은 일을 다른 결과는 안나와, 과정이 달라야 결과가 달라
(나는 아마 how, why타입)
Triple constraints
Cost(Resources)
Time (Schedule)
Scope(Quality)
진짜 기능을 잘라야 시간을 단축한다, 완전 중요함 필요없는 기능들 버려
Team Management
Forming, Storming, Norming, Performing>>순환:이 단계로 팀워크가 발전함!! 서로가 커짐
performing단계로 빨리넘어가기위한 조건 : 억지로 돌아가게하려면 안됨. 사람들에게 말하면안되고
이건 나만 알고있고, 그사람들의 역량의 80퍼센트까지 하자 조금씩 푸쉬하는것
Case by case
- Tip:
- 조직관리는 급하면 망한다
- 6명조직 상황괜찮으면 3개월~6개월은 Performing단계
- 한국은 관계가 꼭필요, 술, 당구 등등. 우리나라는 그럼
- “잘하고있어 리더가 항상 말해줘야함”
Trust&Knowledge
Roles around the Team
여러가지 역할들 (???)
Engineers는 실패를 막는사람(버그하나 잘못해도 바로 날아가고 실패함)
(이 개발과정이 빨라야 순환이 빠르고,피드백도빠름, 스타트업회사의 장점)
Process(Agile, Zero-Bug)
6~10 years of development
Software Engineer
Senior Software Engineer
Better way to do it, Optimal way
- Detect failure, prevent failure
Project management Process
- Waterfall, Agile/scrum
(???)
사람과 잘지내는 사람이 더 큰 성장을 함
서로다른 생각들을 통합하는 과정에서 더 새로운 것들이 나옴
process를 기본적으로 만들고 다음에 다른 더 좋은 길을 찾는것이다
Project Management Maturity Model (이를 이용하여 프로세서로 정확히 사람을 돌릴수있다)
필수요소(발전방향)
- Initial = Common Language (용어 통일해야함, 누가 뭘말했을때 딱 그과정!정확히 용어 전달)
- Repeatable = Common process
- Defined = Singular Methodology(같은 방식으로 일을해서 남는 인력을 넣어도 됨)
- Managed = Benchmarking (다른사람들 계속 가져옴)
- Optimized = continuous Improvement(이것을 계속 지속함)
HR System(면접)(꿀팁)
Hiring
Resume, Cover Letter Review
- 왜 여기를 와야하는가, 왜 당신이 삼성에 오고싶은지? 당신은여기와서 뭘할수있냐
- Customize for each job
- Why this company? why you? What you can do?
Coding Test
Engineering interview(skill set)
- Tech Interview Questions
- Whiteboard Test/ simplified Real Issue
Team interview(Culture Fit)
- Be honest
- make it two-way communication
Smart (Fast to Learn), Diligent, Good Will
채용에서의 목표는 잘하는 사람을 뽑는게 아니라 못하는 사람을 피하는것임
기본적 지식, 협업, 문화적 투표등등
개인적으로 3가지 , 똑똑하냐(빠르게 배울수있느냐), 부지런한사람, 착하냐(남들을 속이고,,사기치고, 자기에게 이득될때 바뀌고..)
평가(아래는 전부 다 잘하야함)
Example: Software Engineer
Productivity
Professionalism (reliability)
Teamwork(Communication)
Knowledge
Functionality(no defect)
(???)
HR system - Titles
Assistant = Newbie
(???)
- 개발자 경력별 차이
- Senior - Make a work for others (안해본것못해)
- Lead - Superior knowledge or performance(안해본것가능)
Performance Reviews
Titles(Engineering)
Rewards
Education
Benefit
Business Management
(???)
Vision/Goals/Culture
꼭필요, 비전이필요, 개인, 회사 등등 전부 비전이 일치되면 좋다
당신의 목표가뭐냐, 팀의 목표, 회사의 목표,,등등 일치되면 좋다
return Message
10년후 20년후에도 배우는 자세 성장하는 자세가 필요함(없다는것=죽은것)
(다른 개발 싸이클을 지금 볼수는 없다. 대기업은 1년의 두번을 1주의 두번 스타트업 출시임. 스타업이 유리할수밖에없다)
( 합친 조직 필요, 다른 조직에 있는 사람 꼭 친해져야함)
(한달에 한번 다른 조직 한명, 책한권읽기 최고다)
(개발자의 더 중요한 이야기: 시간관리= 자기관리 =돈, __spending돈을 쓰는 곳은 필요한곳에씀, waste(낭비)로만들고, Invest(투자) 극한으로 올리자, 사람 만나기(예를 들면 1년에 100명 만나기), 영어 공부, 전부 30퍼이상 , 영어 구글로 검색하자 스펜딩,워에스트, 임베스트 딱 3가지로 나누기. 돈, 시간 꼭 3가지로 나눠보기)__
해외에서 데이터 기업 성장시키기 - 서하연 데이터분석
데이터를 분석하고 데이터 제품만들어 매출을 일으킴
3번쨰 회사 밸런스 히어로는?
빠르게 성장 중인 FinTech Service in india since 2014
12중 10명이 3년차 이하 주니어멤버로 구성된 데이터팀
모바일 지갑, 결제를 함
신용도 평가 어떻게함, 연체관리,
제품 성장시키기Growth hacking - UX(제품 기획/사용성 개선), User Research, Marketing/sales
ux개선, 문제점을알아내고 문제점파악, 해결과정, 데이터팀의 도움을 받지않고 오류가 어디서나왔는지 알수있게해놓음 그래서 어디서 오류가 터졌는지 알고 다른 팀에서 변경 가능
인도에서 불편함을 해결함,12년을 살았던 사람의 도움을 받음
데이터를 분석해서 누가 꾸준히 사용하는 거지
위치정보를 분석해서 옆사람들에게 추천하는것을 알게됨
리워드를 해서 더 추천하면 더 돈을 주게.. 상관관계 분석하기 최적을 리워드를 찾음
비용 아끼기(Operational excellence) -안해도되는일안하고 CS자동화, IR/경영정보, 치팅 방지, 오픈소스를 이용해 개발해서 따로 만듬, 따로 유료서비스는 막 함부로 안씀
CS 일반적인 특징- User 가 많아질 수록 운영이 어려워짐, 주제별로 분류해서 전담자가 처리
사람이 늘어서 상담사가 늘어야하므로 이걸 줄어야함
BalanceHero 특수 상황: 인도 지역 언어 처리, 문법 오류, 짧고 단순한 질의 내용, 유사 내용의 반복
CS 언어가 너무 많아 다양해, 이런 언어들을 처리해야함
새로운 기회 포착(Data product) -자체 신용평가모델
신용평가 모델(
통신비 사용 패턴을 통한 income level/risk level 평가
생활 패턴 일정하면 통신비 지출 유지됨
안전 구간 내 유지 여부 모니터링
해동 패턴 분석을 통한 risk level 평가
앱 사용 패턴, 활동지역 기반 분석 (로컬에 있는 연락처를 봄)
Social 패턴 분석을 통한 risk level 평가
연락처 보유 및 활용 수준, 통화 쇳수 빈도.
병원 경찰서, 등등 문자를 받으면,, 이런 커뮤니케이션 양 분석
데이터조직 만들기 너무 어려웠어요
스타트업은 태생적으로 사람/시간/돈 모두 부족
해외에서 사업을 하기 때문에 규몯에 비해 알려지지 않음
비즈니스는 너무 빠르게 성장하는데
주니어들을 뽑아서 일 잘 할수 있는 환경을 만듦
(스타트업에는 좋은 인재가 오지않는다)
스타트업 업무 환경 특징
- 자원 (특히 사람수)가 항삳ㅇ 부족해요
일정은 항상 촉박해요
- 문제 해결 방법은 모르는 경우가 많아요
- 실수를 피하기 무척 힙듭니다(필연적)
- 사수가 뭘해야할지 모르고 CEO까지도 모르고 문제도 뭔지 모르는 경우가 많다
어떤 선택을 했는가
자원 (특히 사람수) 부족하면
Teamwork 서로의 부족한 부분을 보완합니다
Data scientist가 갖추어야 할 역량은 너무 다양, 비즈니스에 대한 정보도 멤버별로 편차가 큼, 각자 장단점이있음, 각자 하나씩 잡고 하다가 아무도 못 푸는 경우가 허다함, 그래서 과제별 ownership은 갖되 teamwork로 진행, 여러개를 게속 넣어줌
자동화 컴퓨터가 할수 있는 일을 사람이 하지 않습니다
자동화 진짜 문제에 집중
- 2번이상 들어온 것은 전부 자동화 시켰다
너의 20대를 그런 노가다를 하지말고 사람은 사람밖에풀수없는 진짜 문제를 풀자
- 다른 팀에게 요청할때 자동으로 가능하면 하자
일정에 쫒기면
- 자발적인 데드라인 관리 (언제까지 해야 되나요 vs 언제까지 할게요)(좋은 팀웟은 최소의 모양만만들고, 유저 피드백 받는것처럼. 계속 매니저한테 말함 )
업무로 린하게 (자주 묻고 자주 리뷰하고 자주 피드백을 받는게 좋아요
- 주기적인 해우소 운영 - 진행과정과 고민을 공유하고 함께 문제 해결!!!!!!!!! 같이 고민
- 작은 task일정 관리는 빡빡하게 큰 job 일정은 유연하게
실수는 피하기 힘들다 대응이 중요
실수 노트 만들고 공유하기 (wiki에 올려, 왜, error, 어떻게 해결했나, 반성문처럼, 다같이 공유할수있음 아주빠름)
실수 없는 세상은 없어요, 실수는 누구나 할수있어요
실수를 책망하고 감추지 않고, 실수의 원인과 피해를 스스로 파악하고 정리해서 똑같은 실수를 반복되지 않도록 팀에 공유
회고의 중요성
성장을 위한 시간
주기적인 팀 회고 월급들어오는 날 부족한 점, 데이터 인프라 등등 전부
- 주기적인 해우소 운영 - 진행과정과 고민을 공유하고 함께 문제 해결!!!!!!!!! 같이 고민
return Message
기본기를 갖추자
기본 SQL test 5문제 중 1문제 통과율 5% 미만
현실 문제를 많이 접하자(실질적인 문제, 쉬운문제도 풀어라)
수업이나 경진대회는 세팅된 환경(난이도 정해져있고 데이터 세트도 잘 정돈되어 있음)
현실은 지저분함 (예외 상황에 익숙해지자)
실제 문제를 많이 풀어보는게 좋은 경험이 됨
무슨 코스, 시 경진대회 등등 필요없다(가두리양식장)
실제 현실에 문제들을 꼭 풀자
내가 주니어 개발자 때 알았더라면 좋았을 것들 - 정도현&김태현 aws코리아 -교양 -solutions Architect manager
part1 - 김태현 - 7번 이직경험담
1999년 - mySQL
1위 !!!!!!!!! 회사를 선택해라, 1위회사는 글로벌을 본다
LG공채 4개월을 강요되는 야근, 주말도나가고 실리콘밸리와 환경이많이다름
미사일 연구소 국내유일
미사일을 만듬, 군산업, 국방비이므로 안정적, 3년짜리 프로젝트 1개하고 퇴사(1년은 공부, 1년은 개발,1년 시험, 테스트 8개월이상 바다에서보냄 12시간을 그렇게보냄)
이직이유는 군산업이니까 군사규격을 맞춤, 신기술을 쓰지않아, 자기발전이 없음 안해
c, C++로만 이루어진 네이버, server, indexing 기술적 기반이 3년일하는동안 생김, 빅데이터를 다룸
일을 생각하고 기술이 맞으면 갔다써야됨, 3개월동안 파이썬,자바, 등등전부 기초부터 다해야함
속도감이 다름 , 툴이나 언어가 굉장히 9개월동안 빡세게 학습, 개발자로써 못한다고 처음들음, 사수가 5일을 반나절에 끝냄, 인정하고 배워라, 사람마다 장단점이있으니까 꼭 찾자, 계속 고민하고 장점, 단점찾자, 기술다루고 내 경험을 알려줘고 컨설팅하고 이런것 좋아서 이런거 3년동안 급여안올려줌
skT로 감, 빅데이터를 다룸, 외주관리만 하고 ppt만드는것이 주요 일들 1년동안 개발은 안함 못함
사내밴처를 함, skt나가서 직접함
쿠팡 개인화팀, 추천 알고리즘을 만듬 쿠팡은 외국인이 많다, 영어를 안할줄알았다,,
쿠팡으로 쥬니어 추천,, 진짜 협업을 할수있다 페이스북이나여기에서 일하는 사람과 협업가능
aws로 이제 이직
직접개발보단 매니징을 좋아해서 컨설팅을 하고싶어서 글로감
다시 주니어 개발자로 돌아간다면? (꿀팁)
꼭 지원할 회사 amazon, Facebook, Airbnb, google, netflix, uber, lya, dropbox, microsoft 진짜 비슷한 실력임
확실히 지원해서 가보자, 가서 일해보고 깨지자
Leetcode(해외입사할때 준비하는것) 20분내에 풀면 입사가능(미디엄문제!) (하루에한문제좋음)
200~300문제 풀면 google가능, 50문동안 2문제
왜 한국안에서만 찾아야하지? 나는 해외간다.
데이터사이언티스트면 kaggle을 유사한 문제들로 나감
영어공부 존나해라 제발 존나해 제발 존나하자 제발,,,제발
part2 정도현
aws 테크니컬 트레이너
1995년 sds유니텔 사업부
사용하는 프로그래밍 언어:java
agenda
learn and be curious와 dive deep
배우고, 궁금증을 가지자>최대한 밑바닥까지 공부하기
잘되길래 멈췄습니다.– 이건최악의 대답임
Be Curious가 제일 중요
어떻게 동작하는 거지, 완전 궁금해서 찾아보느ㅡㄴ 것이 무조건 성장하는 비결(우선순위필요)
호기심이야 말로 개발자 힘의 원천(책, 블로그, 유튜브, 개발자 커뮤니티 사용 권장)(쉬운것과 어려운것 끝까지 찾고 )
멋진 이력서
이력서는 두개 (현재이력서와, 미래의 이력서!를 준비)
이력서를 더이상 채우기힘들다? 그러면 이직고려해야함
저축꼭 하자, 돈을 벌기위해 억지로 하게됨
글쓰기와 개발자
좋은 개발자는 좋은 작가입니다. 체계적으로 내가 배운것을 정리하고 이런것 중요, (stackoverflower창업자 2명 책추천)
최고의 학습법
회사에서 알려주는 것과 내가 가는 방향이 일치됨. 아주좋음
강이 흐르는 방향과 내가 가고자하는 방향이 일치해야함
남을 가르치는 것이야말고 가장 좋은 학습법입니다.
시연하기<집단토의<연습<가르치기 아주좋음
커뮤니티를 활용해 보세요
AWSKRUG 에서 오픈 되어있다
발표할떄 AWS는 비용 전부 준다, 진짜 커뮤니티에있는 사람들이 잘하는사람들이 많이 알려줌
return Message
스택오버플로워에 질문을 해라, 진짜 질문이 중요함, 영어로 꼭 자주 해보기
영어 영어!!!!!!!!!!!!!!!!!!
넷플릭스 영어 애니메이션 사우스파크
랭기지 익스체인지 , teacher 하고 개발자 찾기
(꿀팁)
회사고르는 기준: 누구나 가고싶은 회사, 다음회사를 고민, 재밋게 젊을때 타이틀이중요, 결혼하면 재밋게 일을 할수있는 회사
해외취업은 아이교육떄문에 오히려 함
주니어는 업무 가이드 필요
시니어는 일에 대한 접근방법, 이런것 어떻게 할지 안다(다른사람을 리드할수있냐없냐차이)(다른팀에영향가능) (기준존재)
모르면 물어보자
1년 이상은 하고 이직 생각해보자 (이직전에 회사내에서 찾자)(한회사는 3년정도가 적당)
git hub에 오히려 팔로우 하는게 좋다, 유명한 블로거들을 차라리 하자
5년차면 실무하자
이제 막 시작하는 싱주니어, 랭기지는 하나는 꼭 챙기가 (깊게 이해)
python을 깊게 본느것도 좋다 시중책도 좋고(자기만의 무기)
1년에 하나씩 언어 새로운것좋다
영어 제발영어
블로그 운영 추천하기 (분석이나 이런것도 좋다)
meetup에 aws 꼭 찾아서 참가해보기(진짜 좋을듯)
성장을 바라는 프론트엔드 개발자를 위한 제언 -김민태 우아한 형제들
Q) 성장해야만 한다!, 성장해야만 할까? 어떻게 계속 성장할수있는 루틴을 만들것인가? (꿀팁)
내가 생각하는 성장 vs 내가 상상하는 성장
상상과 현실
테크 트리 꼭 참고하기 꼭 보자 박스 하나하나가 책 몇권씩,, 담보되어야함.)
나만의 호흡과 전략. 의미있는 훈련이 필요하다. 상상만 쉽다. 열심히 하는것만으로는 부족하다. 조급해하면 지는게임
목표>실행>피드백>충전>목표>실행>피드백>충전>목표 (목표를 아주작게하고 실행하고 피드백을 받자, 충전도꼭필요, 무한반복)(의지는 에너지에서온다, 번아웃안오게하자)
타인이 바라보는 성장, 타인이 평가하는 성장
평가하기위해 성장을 하라,? 이부분을 자각해야함
성장을 위한 결심만으론 부족하고 객관화를 위한 측정 지표를 만들자.! 계획하고 목표하고반드시 피드백을 받아야한다 꼭받아야해(예를들면 무슨 프레임워크로 앱을 만들떄 기능을 추가할때 흔들리지 않는 앱을 만들겠다.라는 객관화된 측정지표가 필요함)
결심한 목표와 형태가 적절한가?
달성 기준은 무엇인가?
성장 목적은 무엇인가? 이유가 정말 중요함!!!!!!!!!!!! why가 중요
정말 필요함(면접자들은 이력서를 보면서 왜 이기술을 도입했나요 유사기술은 뭐가있을까요? 이런것들 물어봄)
why가 구체화되어야 달성 기준을 명확히 만들수있다
멘토가 필요한이유(큰틀만필요)
멘토가 없어야 하는 이유(솔직히 필요없다..?)
멘토와 가장 효과적인 학습 방법은 1:1, 1:N, N:1, N;N
코칭을 해주는 사람도 나에 대해 알아야함. 그래야 더 효과가큼, 나의 상태를 알고 진단을 해야 좋은 멘토
나의 단점을 내가 파악하고있어야 인지하고 자각하고 구체적이여야 해결가능
성장에 영향을 주는 환경(기술, 회사, 멘토, 동료, 태도)
태도>동료>기술 하지만 기술은 항상 중요하지만 제일중요한건 태도ㅡ, 동료
태도는 배우기가 힘듬, 교정이안됨.. 기술은 엄청 배우기 쉬워
태도는 열린마인드!!!!!!좋은회사(좋은 동료가 많은것)
항상 문제의식을 가지자 (칭찬을 해도 100퍼 칭찬이 아니며 비판을 해도 100퍼 비판받는 대상이아님)
어떤걸 배워야 할까요?
나는 정말 어떤걸 배워야하는지 모르는가? 아마 지름길을 찾는거냐
지름길은 없다. 하지만 시간은 있다.
조급해하지마라
선형적으로 배우지말고 그냥 바로 어려운것도 막하고 그냥 다 해라 하고싶은거 하면된다
성장 로드맵에 지름길없어.
남을 다 따라할필요없다
나에게 맞는건 가지고 맞지않는건 버리자
성장은 환경에 대한 적응 그럼으로 성장해야만 한다
그러기 위해 끊임없이 질문하자. 어떻게 성장할 것인가!
스스로에게 계속 질문하자 계속 계속계속, 그걸로 목표 싸이클전부 찾고 내 에너지에 맞냐?
개발자는 내가 다음 배울것들을 내가 찾고 배우고 피드백 받고 부족한것을 다시 고치고 목표 또계속 이렇게
혼자서 홀로서기가가능함.
됫어라고 생각하지마라. 계속 그걸 돌리자
회사일이 내가 하는 방향과 다르다
회사일을 빠르게 처리하고 익숙해지고 (1년이면 다 익숙해짐)(회사일이 지루해짐)
내가 하고싶은 기술과 그런것들은 내 개인시간을 다 내 공부로 병행해도 가능하다.(개인프로젝트까지가능)
피드백은 어떻게 받나?
구체적으로 피드백 받는 방법, 회사마다 문화다르다. 누군가가 칭찬받는 걸 좋아한다, 그냥 주변 동료들이 불편해하는것들을 내가 만들어서 배포하고 주변 동료들이 아주좋아한다, 피드백이 온다. 그떄 내가 써보고싶은 기술들을 도입한다.
오픈소스 속에서 성장하기 강대명 유데미
가르쳐주는 정보를 의심하자
주니어- 어떻게 해야 성장할 수 있을까?
시니어- 내 성장이 멈춘건 아닐까?(작년대비 난 성장했나?)
“언제 성장했다고 느낄까?
- 남이 짠 코드가 쉽게 이해될 때..
- 모르는게 자꾸 생길 때!!!
- 작년에 내가 짠 코드 보면서 욕할때
- 그런 적이 없다
“정체 되어있다고 느껴질때
- 작년에 내가 짠 코드가 이해안될때
일단은 회사를 다닌다면 회사 업무를 통해 성장하는 것이 좋습니다
여러분은 성장을 위해 어떻게 하셨나요?
공부
- 책읽기, 컨퍼런스
토이프로젝트
- 뭔가 만들어 보기
- 큰 규모 프로젝트 에 도움이됨
왜 오픈소스> 필요한 솔루션이 없었음, 사람의 잔고는 통장잔고 ㅋㅋ
네이버에서 오픈소스화 한 인메모리 솔루션입니다
set/list/btree 등의 자료구조를 제공하는
(???)
Redis
선택한이유,
collection기능을 제공
c로 개발됨
실제로 코드를 볼 생각보다는 사용을 해볼 생각이였음
그때 naver에서 centos5.3 redis 컴파일 실패
빌드 문제를 고치기 위한 접근 방법
- 먼저 재현하기
- 정말로 CentOS 5.3에서 안되는 가?
- 나만 안되는건지 남들도 안되는 건지
- 재현하기는 나주엥 테스트 환경과 연관이이씅ㅁ
- 재현환경 구축(???)
- 먼저 재현하기
빌드 문제를 고치기 위한 접근 방법
왜 안되는지 이유를 확인
- linux에서 사용하는 sync_file_range는 특정 리눈스 커널 버전2.6.17이사ㅏㅇ에서만 동작
해결발법찾기
- 해당 방법이 정말 해결이 되는가
- 더 좋은방법이없는가.. 멈추지 말자
Lesson Leant
- 해당 주제에만 집중!!!!!!!!!!!!
- 딱 주제와 상관없는 다른 것들은 굳이 고치지 말자
- 띄워 쓰기나 오타나, 뭔가 같이 보이는 다른것들…………
- 젤 쉬워 보이는 걸로 고르자
redis를 하면서 배우게 된 것들
- 다양한 자료구조, hash table, skip list, 남들이 올리는 이슈에 따른 지식(stance_file_range. Gettimeofday issue)
오픈 소스을 분석하면 겪어야 할 오류들을 미리 해결해볼수있다
오픈소스 한다면? 어떤걸 해야할까? (꿀팁)
유명한 오픈소스는 어떨까?
남들한테도 매력적
큰 프로젝트는 알아야 할 것도 많다.
내가 많이 쓰는 오픈소스를 고르자(결국 볼 수 밖에 없다.
내가 많이 쓰는 오픈소스의 장점(업무나, 내 프로젝트에 쓰고있는 오픈소스보자)
- 좀더 장애를 겪어볼 수있다.
- 조금이라도 배경지식을 더 많이 알수있음
- 계속 쓰고 있다
- 변화를 따라가기 쉬움
- 오픈소스의 학습이 업무지식에도 도움이된다
- 결국 그냥 관심있는 프로젝트 보다는 길게 참여할 가능성이 높아짐.
- 이해도가 높아진다, 패치를 보냇다면 즉 잘알고있다라는 근거가있다.
- 좀더 장애를 겪어볼 수있다.
내가 충분히 익숙한 언어로 구현되었는가?
기반 지식을 충분히 이해하고 있는가?
전체 모든 지식이 아니라 필요한 지식이필요함
커뮤니티는 활발한가?
커뮤니티나 전문가를 통해 제대로 된 답변을 받자
결론은 Just For Fun
- 업무로 특정 솔루션 사용 >사용중에 버그나 기능 필요>버그 수정이나 기능 구현>업스트림에 반영
- 지식의 특징은 배워서 남주면 더 이해도가 높아진다
return Message (꿀팁)
- 오픈소스를 통해 여러 가지 지식습득이 가능하고, 선행학습 가능하다 노오력이 필요
- 그러나 재미가 가장 중요하다.
- 실제적으로 오픈소스에 참여하면서 생기는 이점도 많다.
- 늙어 죽을떄 까지 계속 뭔가 개발하고 공유하면서 성장
- 성장만 계속 신경쓰지말자,. 조금의 여유,필요하다 60년넘게할꺼니까
- 처음봐서 이해하지말고 배경지식을 공부하고 그 포인트위주로 보고 전체를보지말고 조금씩 쌓아가자,,전부를 한꺼번에 보지마라
내가 미리 알았으면 좋았을 개발 생활 팁 강윤신 라인파이낸셜플러스 (질문할때 꿀팁)
주제: 어떻게 물어봐야 할까요?, 왜 내 말을 알아듣지 못할까요?
프로그래머는 뭐 하는 사람이에요?
해결하려는 문제를 정의하고, 코드로 해결하는 사람입니다
내 문제를 이해하자
내가 정의한 문제가 무엇인지(특히 무슨 언어?, 프레임워크, 구체화해야함)(내가 구체화해야함)
이 문제를 이 사람에게 물어보는게 맞을까?(회사문제는 회사사람!)
상대방은 내가 정의한 문제를 이해 했나?(한번확인!!!!!!!, 꼭 상대방도 확인을해야한다)
나는 상대방의 대답을 이해 했나?( 내가 저사람 답변을 이해했나? 내 어플서버를 끄나? 로컬을 아예 재부팅하냐? 등등)
코드로 해결하기
코드 문제가 맞나?
이 코드가 내가 정의한 문제에 맞나?
꼭 자기코드를 확인하고 자기코드오타등등확인 (나머지 10퍼센트는 라이브러리 확인, 구글 검색)(설정문제를 코드로풀지마라)
인풋과 아웃풋을 정의하고
문제정의가 중요함
눈앞에 에러때문에 전체 인풋 아웃풋을 꼭 확인하자
왜 내 말을 이해하지 못할까?
꼭 상대방에 맞추자
Context (고맥락문화 vs 저맥락 문화)
고맥락(상대방이 미리 알고 있다는것을 가정하고 이야기하는게 있다)은 간결, 신속, 효율적, 빈자리를 채워 넣는 일은 듣는 사람의 몫(왜 해야하고, 등등 전부 알고있다고 생각하는 부분이 다르다, 개발자가 생각하는 고객이랑, 디자이너 고객이랑 다다르다)(기획관련에서는 약관 동의필요하다만 끝이지 회의에서는 무슨 약관인지 뭔지 구체적은 아니다. 필수동의, 선택동의등등, 개발자는 다 알아야 구현한다. 하지만 기획자들은 신입, 약관정도는 이미 알지않아? 라는 느낌으로 고맥락문화가 되어버려, 개발자가 고통스러,.)이게 유지되면 결국엔 아 이 기능빠졌네요 망했어요.. 다시해볼까요?ㅋㅋㅋ, 이런사람이랑 이야기할때 꼭 피드백으로 이해한거 확인, 면접관이 high context로 질문하면 내가 이해한게 이거맞나요? 라는 피드백가능
저맥락문화
구체적, 장황함 웹프로그래밍등은 저맥락, 계속전부 정의해줘야함, 내가 말한걸 이해못하면 저맥락으로전환해야함,!!!!!!!!! context를 맞추는 것이 필요함,
내가 정보를 표현하는 방법
상대가 정보를 받아들이는 방법
용어
프로그래밍 관련 용어
업무 관련 용어
개발자가 갖춰야할 세 가지 위대한 덕목
나태: 전체의 노력을 줄이기 위해 수고를 아끼지 않는 기질. 이 기질의 소유자는, 다른 사람들에게도 유용하다고 생각하는, 노동력을 절감하는 프로그램을 만들도록 하며, (???)
조바심
컴퓨터가 게을러질 때 느끼는 분노, 이 기질의 소유자는 지금 있는 문제에 대응하는 프로그램에 그치지 않고, 향후 발생할 수 있는 문제를 감안한 프로그램을 만든다. 적어도 그렇게 하려고 노력한다.
자만심
천벌을 내릴 정도의 과도한 자존심, 또는 다른 사람들에게 부끄럽지 않은 프로그램을 만들려고 또한 유지하려는 기질
홀로 성장하는 시대는 끝났다 이소영 한국마이크로소프트
커뮤니티 리더쉽(내가 알고 있는 지식과 경험을 최대한 널리 알리고, 공동체의 성장을 도와, 사람들이 자발적으로 내 의견이나 정보에 귀 기울이게 만드는 능력, 커뮤니티 리더쉽)
실전 투입, 늘 공부하는 습관, 커뮤니티에서 배우고 나눔, 늘 즐겁게 공부하는 습관,
사수없음 바로 실장, 온세상이 선생님, 헝그리 정신, 결국 망함 그래도 안 죽더라
장정 7년 추락하는 서비스의 PM(해킹이슈, 검찰/경찰서 불려당님, 스트레스, 결국 부서 전체 공중 폭파 5번)
meetup 등등 준비하면서 팀워크가 중요성을 느끼고 실제 커뮤니티에서 중요
failure 했을때 persistence가 매우 중요 즐겁게 버텨내는 힘
커뮤니티 공뷰 = ‘~하기’ 공부
- 내향적
- 전문 서적 번역하기
- 블로그에 올릴 글이나 칼럼 작성하기
- 도서 집필하기
- 지식인, 기술 포럼 답변하기
- 트위터, 페이스북 등의 소셜 활동하기
- 외향적
- 페이스북, 카페 밋업 등의 그룹 활동하기
- 유튜브 방송하기
- 콘퍼런스 발표하기
- 스터디 활동하기
- 앱개발, 메이크활동하기
누가 인재인가?
성장형 마인드 (꿀팁)
어떤 조건 상황이든 성장할수있는 마음가짐
- 영향력도 봄. 다른사람의 성장에 기여를 한 영향력도 중요, 다른 사람것을 잘 갔다쓰는것
- 모험이나 도전이나 그냥 도전
- 실패든뭐든 다 모험
- 다른사람이 성공하면 부럽고 나라면 어떻게 따라가지?
고정 마인드
좋은 대학을 나왔으니 똑똑하겠지,,, 사람의 능력이나 지능은 한계가있다
망할것같은 회사 있으면 안가, (???)
실패는 아무것도 필요없고, 부정적인 피드백은 안들어, 다른사람이 성공하면 위헙으로 받아들임
내가 똑똑해 보이려는 노력(???)
커뮤니티 공부 - 현장감 있는 공부! 인적네트워크
AI/데이터 시대를 사는 개발자를 위한 생존가이드 - 임백준 삼성전자
새로운 시대로 바로 진입하는 방법
programming 2.0
조엘 온 소프트웨어 꼭읽기
stackoverflow를 잘써야 코딩이 재밋어짐 두꺼운책x,
게임화를 햇다.
이제는 humans need not apply 시대이다
1.0은 명령어를 명시적으로 전달해 주는 방식임
2.0은 뉴럴 네트워크 데이터를 통해 컴퓨터가 스스로 필요한 로직을 만듬
인공지능이 적용되고있지만, 전면적으로 이제는 ai가 다 할수있게된다
2.0
풀고자 하는 문제와 목적을 설정(무엇을 예측/분류/추론할것인가?)
컴퓨터가 탐색할 공간을 지정하는 코드의 얼게 작성(뉴럴넷 아키텍처)
가능한 모든 자원을 동원해서 컴퓨터가 탐색을 수행하는 환경 제공
- 그럼 1.0을 없어지냐? ㄴㄴ
- 2.0개발자는 데이터 정체, 레이블링, 전처리, 먼계 통합, 관리, ml dl 사용
- 1.0 은 전통적인 코딩으로 2.0이 쓰는 프로그램들을 만듬
survival guide
빠르게 쏟아지는 신기술과 개념을 어떻게 공부할 것인가?
프로그래밍 언어 - 파이썬 자바,,,
프레임워크,,,,,
데이터 엔지니어링
데이터분석 - 선형대수, 통계
딥러닝 - 텐서플로우
클라우드- 도커
Git 등등,,
전부다 잘하는건 불가능
Devope Full-stack
하나를 해도 여러가지 !
API를 막 잘아는건 그 분야떠나면 못쓴다
10년 20년 뒤에도 도움이되는걸 공부하자 기본
Fundamental
유행하는 프레임워크나 API의 수명은 길어야 3년
객체지향, 함수형, TDD, 리펙토링 , 패턴 등 원리와 패러다임은 10년이상학력, 경력, 직책, 나이, 성별,종교는 다 떼어내고 남은 인간,ㅡ 자체의 문제 해결 능력은 평생(별로 신경쓰지않고 그냥 계속 지속함)
필독서요약 습관과 태도에 문제에있다!
올바른 습관과 올바른 태도
- Fake it til you make it (일단 도전하자) 펄은 아무것도 모르지만 서점가서 바로 펄책을 구입해서 존나해서 장학금땀 일단 자신을 밀어놓고 보자
- Job vs career (회사를 생각하지말고 커리어로 생각하자, 여러회사를 분야까지 달라질수있다, 크게보자, job에서 아무리 힘들어도 career관점에서 보면 생각보다 멘탈 안깨짐, 그림그리는중)
- People skills (인간관계,)(아주중요)
- How to out
- Brand
- Technology is not a religion(내기술만이 종교가 아니야,, 새로운걸 항상 받아들이자)
- Add value to others(내가 일한것이 남에게 가치가 될떄 이떄가 최고임)
- Don’t be afraid to look like an idiot(그냥 날 보여줘 날 바보같이보든 말든 일단 모른다고 질문하고 어쩌고든 일단 유치하거나 바보같은건 없다.)
- 자존감이 진짜 제일 중요
- 사람이 밝은 에너지가 있어야한다, 함께 일하고 싶은 사람이되어야함, 태도가 중요, 커뮤니티케이션 명확하게!
- 전자레인지를 음식으로 대우는데 원리를 알필요는 없다, 하지만 머신러닝에 대해 처음부터 만드는 법을 공부하는 것일까? 그럴필요없다, 모든 사람들이 그런 알고리즘등을 이용해서 흥미로운걸 만들어내는게 중요하다. 다른사람에게 가치를 만들어내는것이 훨씬 더 중요하다. 즉 프로그래밍은 팝콘을 튀기는 거다. 문제를 먼저보고 그다음 필요한 기술 공부를 하면되는거다, 경험을 쌓자(이건 개취)