Chapter1 구직을 시작하기 전에
- 너 자신을 알라
"올바른 직장을 선택하는데 있어서 가장 중요한것 중 하나가 바로 자신이 어떤 유형의 프로그래머인지를 파악하는 것이다"
내가 지원하고자 하는 포지션이 내가 할 수 있는 있고 내가 좋아하는 것인지를 파악하는 것이 중요하다고 볼수 있다.
일이라는게 흥미와 열정없이는 오랫동안 계속해서 일을 하기는 쉽지 않다. 이 말은 100%동감한다
- 시장을 알고 팔릴 만한 능력을 계발하라
서류 전형에서든 면접에서든 눈에 띄기 위해서는 업계에서 원하는 능력과 업적을 쌓는 것이 중요하다
Chapter2 입사 지원 절차
- 이 장에서는 회사 선택 및 접촉, 어떤 회사를 선택해야 하는지 또 어떤 프로세스를 입사 절차가 진행되는지에 대해 설명하였다.
또 근무조건협상, 연봉협상등 어떻게 하면 유리한 입장에서 입사진행을 해야하는지에 대해서 설명을 하였다.
Chapter3 전화 예비 면접
- 전화 예비 면접은 지원자가 회사에서 일하기 위한 필수 기본 지식과 경험이 있는지를 판단하는 절차 이다.
기껏 사내 면접에 불렀는데 알고 보니 업무에 필요한 기본적인 역량마저도 갖추지 못한 지원자라면 시간만 낭비하게 될것이다.
이 장에서 전화 예비 면접 방법과 전화 예비 면접에서 보게 될 만한 기본 지식 기반 문제와 코딩문제 몇가지에 대해서 살펴 보았다
Chapter4 프로그래밍 문제 접근법
- 코딩 문제에서 가장 중요한 것은 지원자가 코딩을 할 수 있는지, 그리고 코딩 실력이 어느 정도 되는지를 가늠하는 것이다.
지원자가 작성한 코드와 지원자의 대답을 바탕으로 채용 추천 여부를 결정하기 때문에 그만큼 면접에서 가장 중요한 것이 코딩 문제라고 할 수 있다.
Chapter5 연결 리스트
- 기초적인 자료 구조 개념을 테스트 하기에 더할 나위 없이 좋은 연결 리스트문제 대해
그 종류와 왜 연결리스트인가와 구현법과 문제 해결에 대해 설명을 하였다
Chapter6 트리와 그래프
- 트리와 그래프는 프로그래밍에서 흔히 쓰이는 자료구조이기 떄문에 프로그래밍 면접에도 자주 등장한다.
그 중에서도 트리는 지원자의 재귀 호출과 실행 시간 분석에 관한 지식을 테스트하기 하기에 안성맞춤이다.
이진트리, 힙, 그래프 등 예상 문제와 문제 해결법에 대해서 설명을 하였다.
Chapter7 배열과 문자열
- 배열은 어떤 메모리 블록에 연속적으로 나열된 같은 유형의 변수 모음이다. 배열은 기업에서 개발용으로 주로 쓰이는
모든 언어에서 중요한 역할을 하기 때문에 사용법이나 문법에 대해서 잘 알고 있을 것이다. 이 장에서 이론과 배열의 응용에만 촛점을 맞추었다.
Chapter8 재귀호출
- 재귀 호출은 자기 자신을 호출하는 루틴을 모두 재귀 호출이라고 한다.
이 장에서는 예제, 응용 방법 및 재귀적인 알고리즘과 반복적인 알고리즘의 비교에 추첨을 맞춘 실용적인 접근법에 대해서 알아본다.
Chapter9 정렬
- 정렬 알고리즘을 직접 코딩하는 경우는 없다, 대부분의 언어의 표준 라이브러리에는 적어도 하나 이상의 정렬 알고리즘이 내장되어 있다.
이 장에서는 정렬 알고리즘 각각의 차이와 장단점에 대해서 알아본다.
Chapter10 동시성
- 멀티 스레드 프로그래밍(동시성 이라고도 부른다)
동시에 돌릴 수 있는 스레드 수는 컴퓨터에 있는 코어 개수로 제한되기 때문에 운영체제에서는 각 스레드에 조금씩 시간을 나눠주면서
여러 스레드를 돌아 가면서 실행시킨다. 이 장에서는 기본 스레드의 개념과 스레드의 효율적 이용방법에 대해서 설명하였다.
Chapter11 객체지향 프로그래밍
- 이 장에서는 객체지향의 기본 원리와 효과적인 사용 등을 통해 객체지향 프로그래밍의 원리를 설명하고 면접에서 나올수 있는 기본 객체지향에 대해서 설명하였다.
Chapter12 디자인 패턴
- 디자인패턴이란 객체지향 프로그래밍에서 공통적인 디자인 문제를 찾아내고 해결하는 가이드라인을 디자인 패턴 이라고 부른다.
디자인 패턴은 프레임워크나 클래스 라이브러리와 달리 추상적인 것으로, 실제 코드를 제공하는 건 아니고
특정 유형의 프로그래밍 문제를 해결하는 방식을 제공해 주는 역할이라고 한다.
이장에서는 디자인 패턴의 유형과 신뢰성, 재사용성을 극대화할 수 있도록 조직화 구조화하는 것과 관련된 문제에 대해서 설명을 하였다
Chapter13 데이터베이스
- 프로그래머로서 데이터베이스에 대해서 반드시 알아야 한다.
이 장에서는 관계형 데이터베이스의 기본 개념과 SQL에 대한 내용 및 데이터베이스의 기본 개념 및 활용에 대해 설명하였다.
Chapter14 그래픽스와 비트조작
- 그래픽스와 비트 조작에 관한 문제는 다른 주제에 비하면 잘 안나오는 편이지만 그래도 심심치 않게 나올 수 있기 때문에 어느 정도 공부해 둘 필요가 있다.
Chapter15 데이터 과학, 난수, 그리고 통계학
- 데이터과학은 전산학, 소프트웨어 공학, 그리고 통계학의 교집합이라고 할 수 있는 비교적 새로운 융합 영역이다.
새로운 영역에 대해서 질문이 나올 수 있기 때문에 그와 관련된 난수, 통계학에 대해서 살펴본다.
Chapter16 카운팅, 측정 및 순서관련 퍼즐
- 면접에는 기술적인 문제나 프로그래밍 관련 문제 외에 각종 복잡한 퍼즐도 종종 등장한다고 한다.
여기에서 얘기하는 퍼즐이란 컴퓨터 프로그래밍과는 직접적으로 연관되지 않는 수학 및 논리를 이용하는 문제를 뜻한다고 한다.
문제 해결능력을 검증하기 위해선 퍼즐문제가 면접에서 실제 많이 나온다고 하니 알아두면 좋을 것 같다.
Chapter17 그림 및 공간 퍼즐
- 퍼즐 중에는 그림을 써야 하는 것과 공간 지각 능력을 필요하는 하는 것이 많이 있다. 그림과 무관한 퍼즐을 푸는데 사용했던 기법도 모두 적용할 수 있지만,
이런 유형의 퍼즐에는 또 다른 강력한 기법을 활용 할 수 있다 이런 활용기법에 대해서 설명을 하였다
Chapter18 지식 기반 문제
- 지식 기반 문제는 일반적으로 지원자가 자기소개서에 쓴 내용과 그 전에 물어봤던 질문들, 이렇게 두 가지를 바탕으로 낸다.
면접 전에 자신이 제출한 이력서나 자기소개서를 바탕으로 다시 한번 확인해 보고 거기에 적어놓은 어떤 내용에 대해서는 대답할 수 있도록 준비해야 한다.
Chapter19 기술과 무관한 질문
- 기술 면접 과정에서 기술과 무관한 질문도 중요한 부분을 차지한다.
해당 직위에 적합한 경험, 학업 수준, 개인적인 목표 등을 갖추고 있는지 판단하기 위해 면접 초반에 이런 질문들을 하는 경우도 있다.
기술과 무관한 질문에 대해서도 준비하여 잘 대답할 수 있도록 하자
총평
기술면접에 대해서 전반적으로 살펴 볼 수 있는 책이다. 내용도 방대하며 면접 전 몇개월전부터는 준비해야 할 것 같다.
이직을 준비하고 있거나 IT 기업에 취업을 희망하는 취업자에게 필요한 책이다.
기술면접에 두려움을 갖지 말고 잘 준비하여 원하는 결과를 얻을 수 있다면 좋겠다