2020년 서울시에서 주최한 강소기업탐방 프로그램에서 발표한 자료 입니다.
학교를 졸업하고 software engineer로 취직을 하기까지의 여정을 다뤘습니다
1. 개발자가 나에게 맞을지 고민하기 위한 방법
2. 개발자로 취직하기 (이력서/면접 준비 팁)
3. 개발자로 취직한 후 우리가 하는 일
12. 필요한 역량 - 논리로 무장
‣ 우리가 하는 일은 problem solving
‣ 문제를 어떻게 해결할지 작은 조각들로 나눌 수 있어야 한다
‣ Critical 하게 사고해서 문제에 대한 해결 방법을 코드로 작성해야 한다
‣ 서비스를 개발하다 보면 커버 되지 않은 edge case가 있기 마련, 차분
하게 한 번 더 생각해봐야 한다
‣ 손이 머리보다 빠르지 말 것
13. 필요한 역량 - 도전 정신
‣ 끊임 없이 새로운 일의 연속
“웹 사이트 만들어 주세요” -> “이번엔 API 서버 만들어 주세요”
‣ 점점 복잡해지는 문제의 난이도
“택시만 잡히면 좋겠다” -> “택시가 빨리 잡히고 결제 까지 되면 좋겠다”
‣ 끊임없이 나오는 새로운 기술
‣ 도전을 즐기지 않는다면 금방 도태됨
14. 필요한 역량 - 빠른 습득력
‣ 하루가 멀다하고 쏟아지는 새로운 기술
‣ 변화에 빠른 습득력이 필요
15. 어떻게 공부해야 할까?
‣ 시작은 한가지 기술에 대해 깊이 팔 것
‣ 공식 document를 먼저 읽어보고 찾는 습관
‣ 새로운 기술은 그 기술의 철학과 신념, 아키텍쳐를 먼저 이해하
려고 해야 한다
‣ Googling!
검색 키워드에 따라 나오는 결과페이지가 다르다
키워드를 어떻게 검색해야할 지 모르겠다면 공식 document를
참고하거나 주변 개발자에게 키워드를 물어보자
16. 개발자의 커뮤니케이션 스킬
‣ 정말 중요합니다
‣ 혼자 개발하지 않아요. 결국은 팀워크
‣ 대부분의 요구사항은 일반 사용자나 기획자 등 비 개발자로 부터 온다
‣ 서비스 기획, 사업 기획, 디자이너 등 비 개발자 직군 에게 ‘얼마나 걸릴
지’, ‘왜 안 되는지’, ’시스템 구성을 어렵지 않게 설명’ 할 수 있어야 한다
‣ 모든 문제는 명확하게 정의하고 지금 우리에게 필요한게 뭔지, 장기적으
로 생각했을 때 어떤게 필요할 지 잘 논의하고 정리할 수 있어야 한다
18. 이력서
‣ 분량은 A4 기준 1장~2장
‣ 묻기 전까진 넣지 않아도 될 것
‣ 사진
‣ 취미, 주소, 생년월일 등 과도한 개인 정보
‣ 아주 오래된 일들 (e.g. 10년 전..)
‣ 희망 연봉
‣ 봉사활동 내역
https://brunch.co.kr/@aria-grande/17
20. 이력서
‣ 지양해야 할 포맷팅
https://brunch.co.kr/@aria-grande/18
21. 이력서
‣ 지양해야 할 포맷팅
https://brunch.co.kr/@aria-grande/18
22. 이력서
‣ 지양해야 할 포맷팅
https://brunch.co.kr/@aria-grande/18
23. 이력서
‣ 지양해야 할 포맷팅
https://brunch.co.kr/@aria-grande/18
24. 이력서
‣ 지양해야 할 포맷팅
https://brunch.co.kr/@aria-grande/18
25. 이력서
‣ 지양해야 할 포맷팅
https://brunch.co.kr/@aria-grande/18
26. 이력서
‣ LinkedIn 에 주기적으로 업데이트하자
‣ 물론.. 학생 때에는 연락 안온다. 경력이 쌓이면 오기 시작한다
27. 면접
https://brunch.co.kr/@aria-grande/20
‣ 서류에 적었던 경험/프로젝트에 대한 구체적인 설명이 가능해
야 한다
e.g. 지금의 ‘나'라면 다시 이 프로젝트를 진행할 때, 어떻게 설계할 것인가요?
‣ 프로젝트 진행 시 겪었던 어려움과 이를 해결하기 위해 시도했
던 것들을 미리 정리해서 가면 좋다
이력서 포트폴리오 관련 질문
28. 면접
https://brunch.co.kr/@aria-grande/20
‣ 한국에서는 신입에게 주로 많이 물어본다
‣ 북미권 major IT 회사에서는 신입~경력 관계 없이 물어본다
‣ 자료구조, 알고리즘 (Problem solving) 질문이 일반적
e.g. HashTable이 어떻게 동작하나요?
e.g. BST 에서 특정 노드는 어떻게 찾나요?
‣ 노트에 미리 정리해두고 필요할 때마다 쉽게 찾아볼 수 있도록 하자
- 정의
- 특징/특이사항
- 접근시간
- 사용 상황 구분
기본적인 CS 지식
29. 면접
https://brunch.co.kr/@aria-grande/20
‣ 지원한 팀에서 사용하고 있는 기술, JD의 요구사항에 있는 기술
에 대한 질문을 하곤 한다
e.g. React.js는 어떤 특징이 있나요?
e.g. 웹사이트를 만들어야 하는데 어떤 기술을 사용하면 좋을까요?
‣ 다이어그램을 그려가면서 설명하면 훨씬 있어보이고 면접관 입장에서
도 내가 무슨말을 하는지 더 쉽게 이해함
도메인 지식
30. 면접 태도
https://brunch.co.kr/@aria-grande/20
‣ 모르는 질문이 들어왔다면?
•‘모르겠어요’ 하고 끝 (X)
•기죽고 쭈뼛하게 있는 것보다 왜 이걸 몰랐는지 설명하자
•‘그건 모르지만 비슷하게 이런건 알아요’ 하고 그 쪽으로 화제를 돌리면서 설명하자
‣ 내가 갖고 있는 개발 철학/가치관 공유하자
•개발은 비지니스를 도와주는 도구라서 디자인 패턴도 중요하지만, 비지니스 일정도 고려를 하면서 진행해야 한다
•내가 작성한 코드에 대한 책임감을 가지고 있다
‣ 내가 잘할 수 있는 것에 대해 어필
•협업을 잘할 수 있는 사람임을 어필
•열정적인 사람임을 어필 -> 신입일 때는 다들 이해 할거에요
31. 추천하는 면접 준비 과정
‣ 평소라면?
‣ PS 문제 풀기; 백준OJ, Leetcode, HackerRank, AlgoExport.io
‣ 그룹 스터디 진행 (https://github.com/monkeys-code/save-the-monkey)
‣ 면접이 잡히면?
‣ 채용 담당자에게 어떤 것을 준비해 가야할지 물어보세요
‣ 이력서에 기입한 경험/프로젝트의 try/fail/learn 포인트 정리
‣ PS 문제 복습
‣ 꼭 모의 면접을 하자!
https://brunch.co.kr/@aria-grande/20
32. 면접
‣ 추천하는 면접 준비 과정
•평소 - Leetcode, HackerRank, AlgoExport.io
•면접이 잡히면 - 이력서에 있던 내용은 꼭 다시 숙지하고 가
기, 꼭 모의 면접을 하자!
33. 신입을 뽑긴 하나요?
‣ 공채 뿐만 아니라 수시 채용도 많다
‣ 채용 페이지를 자주 체크하고 주변 네트워킹을 통해서 정보를 빨리 수
집할 수 있도록 합니다
‣ N년 이상의 경험을 요구하고 있지 않다면, 그 말은 신입도 뽑겠다는
의미
‣ 공고를 봤고 관심이 간다면 일단 들이대 봅니다. 적극적인 사람이 더
많은 기회를 얻습니다
‣ LinkedIn jobs, Wanted, Programmers, 학교 온라인 게시판, …
36. Junior와 Senior
Junior
‣ 프로젝트 내 작은 기능 구현, 버그 픽스
‣ 주어진 문제를 해결
‣ Development lifecycle에서 한 부분
을 맡아 개발할 수 있는 사람
‣ 코드 작성 >> 리뷰
‣ 열정도 120%! 더 빨리 배우고 성장
할 수 있는 사람
‣ 팀 내 영향을 미치는 사람
Senior
‣ 시스템 디자인, 아키텍팅
‣ 문제를 찾아내고 장기적인 솔루션 제
공
‣ 전반적인 development lifecycle을
리딩 할 수 있는 사람
‣ 주니어 멘토링
‣ 리뷰 >> 코드 작성
‣ 팀, 조직 내 영향을 미치는 사람
38. 개발자의 daily life
‣ 커피 마시기
‣ Stand-up
‣ 미팅
‣ 기획자와 스펙 논의
‣ 디자이너의 시안 공유
‣ 개발 팀 내 기술셋 결정, 시스템 디자인 리뷰 등
‣ 코딩
‣ 문서 읽고 작성
39. 소프트웨어 디자인 패턴과 아키텍쳐
‣ 소프트웨어 개발 생산성, 유지보수성을 높이기 위한 패러다임
‣ 사용하는 언어, 프레임워크 별로 추천하는 개발 패턴들이 있다
‣ 개발 패턴을 공부해서 실제 프로덕에 도입해 볼 수 있음
#FactoryDesignPattern
#PubSub (Publish-Subscribe pattern)
#DDD (Domain Driven Design)
#DI (Dependency Injection) #MSA (Micro Service Architecture)
#CleanArchitecture #BLoC (Business Logic Component)
…
https://en.wikipedia.org/wiki/Software_design_pattern
40. 마지막으로 하고 싶은 말
‣ 내가 하고 싶은 일이 뭘지 생각해보세요.
다양한 상황 속에서 나를 놓아야, 내가 어떤 사람인지 알아야겠죠?
✓ 사이드 프로젝트, 인턴십
✓ 리더로서의 경험, 팀원으로서의 경험
‣ 커리어에 대한 고민은 계속 하는 것 같아요. 자연스러운 일이에요!
‣ 공부는 정말 끝이 없더라구요. 즐겨야 할 것 같아요!
‣ 주변 사람으로 인해 좋은 기회가 많이 오더라구요
‣ 적극적으로 재밌게 살아보아요 :)