[job] 카카오, 삼성전자 SW직군 취업특강
카카오, 삼성전자 SW 직군 취업특강
카카오
1. 소프트웨어 디자인의 중요성
제품/서비스를 만들기 위해 기본적으로 고민해야할 요소들
1. 아키텍처
2. 데이터베이스 디자인
3. 서브시스템 디자인
4. 컴포넌트 디자인
5. 데이터 스트럭처, 알고리즘 디자인
- 카카오는 5번에 집중
- 신입 채용시 코딩테스트를 보는 이유
- 5번 요소에 대한 능력이 나머지 요소에 영향을 미침
- 제품/서비스의 디자인 3요소
- 기능적 디자인
- 성능적 디자인(속도)
- 유지/보수(얼마나 오래 사용할 수 있고 개선될 여지가 있느냐)
- ex. 다음, 카카오: 10~20년동안 사용되고 있음. 어떤 디자인으로 구성하여 유지보수를 자동화하고 효율화할 수 있느냐 중요
- ex. 다음, 카카오: 10~20년동안 사용되고 있음. 어떤 디자인으로 구성하여 유지보수를 자동화하고 효율화할 수 있느냐 중요
2. Q & A
- 기본을 봐라
- 코드가 어떻게 설계되어있으며
- 이렇게 설계했을때는 어떤 문제가 생길수 있고 어떤 장점이 있는지를 알 수 있는 능력을 갖추기
- 아는 척 하지마라
- IT 사회는 너무 복잡해서 다 알 수 없음
- 면접관도 그것을 알기 때문에, 아는 것은 안다고 모르는 것은 모른다고 솔직하게 말하기
- 포트폴리오/코테 팁
- 지원하려는 영역의 기본기에 집중
- (서버사이드 예시) 각 코드가 프로그램 상에 어떤 차이를 가져오는지 알기
- ex. for문이 1번 돌때와 1000번 돌때 차이
- (서버사이드 예시) 각 코드가 프로그램 상에 어떤 차이를 가져오는지 알기
- 코딩 테스트도 이러한 원리를 확장하여 지원자의 기본기를 알아보려는 테스트
- 유형별로 어떤 방법, 구조를 쓰는 게 효과적인지 몸에 익을 때까지 연습
- 지원하려는 영역의 기본기에 집중
- 비전공자?
- 가능. 클라우드 팀의 1/3 비전공 출신
- 하지만 전공자보다 배운 시간이 적기 때문에 그만큼 더 많이 연습하면서 차이를 극복
- 앱서버 웹서버 db서버를 가지고 문제 해결하는 연습
- 면접 팁?
- 표면적인 것이 아니라 근본적인 이유를 아는지
- 자율주행을 공부했다는 지원자. 자율주행에서 가장 중요한 부분?
- 자바를 공부했다는 지원자. 자바를 jvm에서 돌리는데 왜 virtual machine이라고 하는지?
- 키보드 눌렀을 때 시스템이 처리하는 과정?
- 표면적인 것이 아니라 근본적인 이유를 아는지
삼성
버그를 안만들어내는 개발자를 원한다
1. 버그를 안만드는 신입이란?
- 내가 생각하는 로직을 정확히 구현할 수 있는
- 다른 사람의 생각을 이해 및 로직으로 정확히 구현할 수 있는
- 쉽게 생각해 내기 어려운 예외 상황을 생각해내는
- 성능(속도/용량) 저하도 버그라고 생각하는
2. 기업이 바라는 ‘SW개발 직무’ 신입사원 역량 2가지
- A) SW 개발에 대한 기본 역량이 튼튼 (코딩 경험이 많은 개발자)
- B) 전공과목들에 대한 기초 지식(but 전문적인 수준의 지식은 바라지 않음. 현업에서 쌓아가야 함)
- BUT A>B
3. 그렇다면, 기본역량을 키우기 위해서는?
- 끝까지 완성한 프로젝트 많이 해보기(과제말고)
- 개인적인 프로젝트 끝까지 완성해서 서비스 해보기(버그 없이 완성도 높은 수준으로)
- 알고리즘 많이 풀어보기
4. (3번)처럼 함으로써 기를 수 있는 능력
- 회사에서는 여러가지 오픈소스를 가져다가, 자기네 제품/서비스에 맞게 포팅(porting)하여 사용
- 누구나 쓰는 API보다 자기네 상황에 맞게 최적화 할 수 있는 능력이 무엇보다 중요함 => 포팅
- 알고리즘 연습을 통해서, 원하는 대로 API를 수정해서 사용할 수 있는 능력 향상됨
- 경쟁사보다 더 빠르게 더 빠른 속도로 서비스 구축하고
- 일반적으로 생각하기 어려운 테스트 케이스 생각해내고
- 결국, 버그를 만들지 않는 SW개발자가 될 수 있음
5. 결론
- 열정, 전문성, 커뮤니케이션 능력보다
- 알고리즘 잘 짜고 앞에 설명한 것들 해본 경험이 있는 사람 선호
- 이런 것들이 가능하다는 것은 그만큼의 열정, 전문성, 커뮤니케이션 능력있다는 것을 대변하는 것
FAQ
1. 추천경험
- 오픈소스 경험
- 자소서 보면 주제만 다르고 다 똑같은 프로젝트
- 현재 기업들은 개발 시간보다 디버깅하는 데에 많은 시간을 씀
- 오픈소스를 포팅하는데 시간이 많이 걸리기 때문
- 직접 오픈소스에 컨트리뷰트 한 경험이 있다면 GOOD (README에 오타수정이라도)
2. 포트폴리오는 글이 아닌 코드로
-
열마디 말보다 깃허브 링크가 좋음
-
시작한 시간이 남보다 적더라도 시작한 이후부터 소프트웨어에 미쳐보겠다고 꿈꾸고 노력해온 사람
3. 삼성전자에 왜 지원하는가? 라는 질문에 대한 조언
- 자기만의 이유를 찾기
- 대기업의 장점이 있고, 스타트업의 장점이 있음
- 삼성에 오는 게 정답이라고 할 수없다
- 작은 곳에서 미래의 삼성을 만들기 위한 기회를 갖고 싶다면 스타트업
느낀점
- cs 기초 공부 꾸준히 - 코드의 근간을 이해하고 짜기
- 알고리즘 열심히 - 더 빠르고 효율적인 코드, 예외 상황 테스트 케이스로 생각할 수 있는 능력 기르기
- 다른 사람 코드 배우기 - 오픈소스로 시중에 서비스 중인 코드 많이 읽기
- 깃허브 포트폴리오로 활용
- 오픈소스 컨트리뷰트 경험 해보기
댓글남기기