├── README.md
└── Translations
└── Korean
└── README_KR.md
/README.md:
--------------------------------------------------------------------------------
1 | Back-End Developer Interview Questions
2 | ======================================
3 |
4 | A list of helpful back-end related questions you can use to interview potential candidates.
5 | Inspired by the git-repo: https://github.com/darcyclarke/Front-end-Developer-Interview-Questions.git and
6 | [Paul Irish](http://paulirish.com) ([@paul_irish](http://twitter.com/paul_irish))
7 |
8 | @Version 1.0.1
9 |
10 | This repo contains a number of back-end interview questions that can be used when vetting potential candidates.
11 | It is by no means recommended to use every single question here on the same candidate (that would take hours).
12 | Choosing a few items from this list should help you vet the intended skills you require.
13 |
14 | **Note:** Keep in mind that many of these questions are open ended and could lead to interesting discussions that tell you more about the person's capabilities than a straight answer would.
15 |
16 | ## Table of Contents
17 | * [Contributors](#contributors)
18 | * [General Questions](#general)
19 | * [Design Pattern Specific Questions](#dpspecific)
20 | * [MVC](#mvcspecific)
21 | * [MVVM](#mvvmspecific)
22 | * [Repository](#repospecific)
23 | * [Dependency Injection](#dispecific)
24 | * [Visitor](#vspecific)
25 | * [PHP Code examples](#phpcodeexamples)
26 | * [PHP Specific Questions](#phpspecific)
27 | * [Database Specific Questions](#databasespecific)
28 | * [ORM Specific Questions](#ormspecific)
29 | * [Doctrine](#doctrine)
30 | * [HTTP Specific Questions](#httpspecific)
31 | * [Operating System Specific Questions](#osespecific)
32 | * [Web Services Specific Questions](#webservicesespecific)
33 | * [Common Server Response Codes](#csrcspecific)
34 | * [Network Specific Questions](#networkspecific)
35 |
36 | ### Contributors
37 |
38 | * [@travisvandame](http://twitter.com/travisvandame)
39 | * [@jmurowaniecki](http://twitter.com/jmurowaniecki)
40 | * [@emanuelsaringan](http://lambdageek.com)
41 |
42 | **[[⬆]](#toc) return to Table of Contents**
43 |
44 | ### General Questions
45 |
46 | 1. What did you learn yesterday/this week?
47 | 2. What excites or interests you about coding?
48 | 3. What version control systems have you used (Git, SVN etc.)?
49 | 4. What is your preferred development environment? (OS, Editor, Browsers, Tools etc.)
50 | 5. How do you go about testing your PHP?
51 | 6. Have you ever looked at the source code of the libraries/frameworks you use?
52 | 7. How do you organize your code?
53 | 8. When do you optimize your code?
54 | 9. If you could master one technology this year what would it be?
55 | 10. Explain the importance of standards and standards bodies.
56 | 11. Explain MVC, HMVC, the differences, goals and cons.
57 | 12. What did you learn/know about agile methodology?
58 | 13. Do you prefer to work on a team or alone?
59 | 14. What's the biggest problem faced on your projects and how did you solve it?
60 | 15. How you contribute to the open source community (Github, Bitbucket, IRC, forums)?
61 | 16. What do you think about algorithms? An algorithm which you like. Discuss.
62 |
63 | **[[⬆]](#toc) return to Table of Contents**
64 |
65 | ### Design Pattern Specific Questions
66 |
67 | * MVC
68 | * Question: In the MVC design pattern what's M stands for? **Answer: M stands for Model, it is the data and data-management of the application.**
69 | * MVVM
70 | * Repository
71 | * Dependency Injection
72 | * Visitor
73 | * The classes and/or objects participating in this pattern are? **Answer: Visitor, ConcreteVisitor, Element, ConcreteElement, ObjectStructure**
74 |
75 | **[[⬆]](#toc) return to Table of Contents**
76 |
77 | ### PHP Code Examples:
78 |
79 | ```php
80 | floor(3.14)
81 | ```
82 | Question: What value is returned from the above statement? **Answer: 3**
83 |
84 | ```php
85 | echo join("", array_reverse(str_split("i'm a lasagna hog")));
86 | ```
87 | Question: What value is returned from the above statement? **Answer: "goh angasal a m'i"**
88 |
89 | ```PHP
90 | $array = array();
91 |
92 | array_push($array, 1);
93 | array_push($array, 2);
94 | ```
95 | Question: What is the value of `count($array)`? **Answer: 2**
96 |
97 | ```PHP
98 | $foo = "Hello";
99 |
100 | function alert_a() {
101 | global $foo;
102 |
103 | $bar = " World";
104 |
105 | echo ($foo . $bar);
106 | }
107 |
108 | function alert_b() {
109 | $bar = " World";
110 |
111 | echo ($foo . $bar);
112 | }
113 |
114 | alert_a();
115 | alert_b();
116 | ```
117 | Question: What is the outcome of the two alerts above? **Answer: alert_a() = Hello World, alert_b() = E_NOTICE : type 8 -- Undefined variable: foo -- at line 15 World**
118 |
119 | **[[⬆]](#toc) return to Table of Contents**
120 |
121 | ###PHP Specific Questions
122 |
123 | * Describe two good uses - and practices - for callback usage.
124 |
125 | **[[⬆]](#toc) return to Table of Contents**
126 |
127 | ### Database Specific Questions
128 |
129 | * General SQL
130 | * What is the difference between a View and a Table?
131 | * What does the HAVING clause do?
132 | * How do you choose a column to be indexed?
133 | * Do you know MySQL?
134 | * How would you backup and restore data using `mysqldump` from the command line?
135 | * When should you use SQL_CACHE and S_NO_CACHE on your queries?
136 | * Question: describe five functions that disable cache on queries and describe why. **Answer: BENCHMARK(), CONNECTION_ID(), CONVERT_TZ(), CURDATE(), CURRENT_DATE(), CURRENT_TIME(), CURRENT_TIMESTAMP(), CURTIME(), DATABASE(), ENCRYPT(), with one parameter FOUND_ROWS(), GET_LOCK(), LAST_INSERT_ID(), LOAD_FILE(), MASTER_POS_WAIT(), NOW(), RAND(), RELEASE_LOCK(), SLEEP(), SYSDATE(), UNIX_TIMESTAMP(), USER(), UUID(), UUID_SHORT()**
137 | * Have you tinkered with MySQL server optimization, and if so, what did you do to alleviate what problems?
138 | * Do you know PostgreSQL?
139 | * How do you improve [Resource Consumption](http://www.postgresql.org/docs/current/static/runtime-config-resource.html)?
140 | * SQL Server
141 | * How would you migrate from SQL Server to PostgreSQL or MySQL?
142 | * Do you know How to 'hack', build a cluster, improve performance, implement cache, pooling or compile those services from source?
143 | * Are you familiar with NoSQL databases?
144 |
145 | **[[⬆]](#toc) return to Table of Contents**
146 |
147 | ### HTTP Specific Questions
148 |
149 | * What happens between the time you enter a URL in your browser until you see the page that you requested?
150 | * How does the 3-way TCP handshake occur when you request a page from a server?
151 | * What are the contents of an HTTP request header? Response header?
152 | * What is the difference between HTTP and HTTPS?
153 | * How would you design a URL shortener similar to bit.ly?
154 |
155 | **[[⬆]](#toc) return to Table of Contents**
156 |
157 | ### ORM Specific Questions
158 |
159 | **[[⬆]](#toc) return to Table of Contents**
160 |
161 | ### Web Services Specific Questions
162 |
163 | * Have you created or managed some web service?
164 | * What web service protocols do you know?
165 |
166 | #### Common Server Response Codes
167 |
168 | Question: Describe server response code 200. **Answer: ("OK") Everything went ok. The entity-body, if any, is a representation of some resource.**
169 |
170 | Question: Describe server response code 201. **Answer: ("Created") A new resource was created at the client's request. The location header should contain a URI to the new resource and the entity-body should contain a representation of the newly created resource.**
171 |
172 | Question: Describe server response code 204. **Answer: ("No Content") The server declined to send back any status message or representation**
173 |
174 | Question: Describe server response code 301. **Answer: ("Moved Permanently") Client triggered an action on the server that caused the URI of a resource to change.**
175 |
176 | Question: Describe server response code 400. **Answer: ("Bad Request") A problem occurred on the client side. The entity-body, if any, is a error message.**
177 |
178 | Question: Describe server response code 401. **Answer: ("Unauthorized") The client failed to provide proper authentication for the requested resource.**
179 |
180 | Question: Describe server response code 404. **Answer: ("Not Found") Client requested a URI that doesn't map to any resource.**
181 |
182 | Question: Describe server response code 409. **Answer: ("Conflict") Client attempted to put the servers resource into a impossible or inconsistent state.**
183 |
184 | Question: Describe server response code 500 **Answer: ("Internal Server Error") A problem occurred on the server side. The entity-body, if any, is a error message.**
185 |
186 | **[[⬆]](#toc) return to Table of Contents**
187 |
188 | ### Operating System Specific Questions
189 |
190 | * Linux/Unix/MacOS
191 | * Do you know how to use MacPorts, Aptitude, YUM, RPM and other package managers?
192 | * How often do you update running services?
193 | * How would you install, configure and handle services such nginx, apache, squid, samba, etc..?
194 | * What do you know about kernel tuning?
195 | * What do you know about virtualization?
196 | * What is the difference between threads and processes?
197 | * Microsoft
198 | * How to remove Windows?
199 | * How would you install Linux using USB or liveCDs?
200 | * How would you disable Secure Boot and install Linux?
201 | * How would you migrate from windows to Linux?
202 |
203 | **[[⬆]](#toc) return to Table of Contents**
204 |
205 | ### Network Specific Questions
206 |
207 | * What are the 7 layers of the OSI model?
208 | * What are some advantages of CDNs? Disadvantages?
209 | * What is a reverse proxy?
210 | * What ports do the following use?
211 | * HTTP
212 | * HTTPS
213 | * SSH
214 |
215 | **[[⬆]](#toc) return to Table of Contents**
216 |
--------------------------------------------------------------------------------
/Translations/Korean/README_KR.md:
--------------------------------------------------------------------------------
1 | 백앤드 개발자 면접 문제 은행
2 | ======================================
3 |
4 | @Version 1.0
5 |
6 | 이 저장소에는 백앤드 개발자 면접에 나왔던 문제들이 있습니다.
7 | 여기에 있는 모든 문제들은 푸는 것(꽤 많은 시간이 걸릴 것입니다)보다는
8 | 여기서 몇 가지 질문을 골라 자신의 실력을 평가해보는 것이 좋을 것입니다.
9 |
10 | ## 한국어 번역
11 |
12 | * [@DevSusu](https://github.com/DevSusu)
13 |
14 | ## 목차
15 | * [기여자](#contributors)
16 | * [일반 질문](#general)
17 | * [디자인 패턴 관련 질문](#dpspecific)
18 | * [MVC](#mvcspecific)
19 | * [MVVM](#mvvmspecific)
20 | * [리파지토리](#repospecific)
21 | * [의존성 주입](#dispecific)
22 | * [방문자](#vspecific)
23 | * [PHP 코드 예제](#phpcodeexamples)
24 | * [PHP 관련 질문](#phpspecific)
25 | * [데이터베이스 관련 질문](#databasespecific)
26 | * [객체 관계 매핑ORM 관련 질문](#ormspecific)
27 | * [원칙](#doctrine)
28 | * [HTTP 관련 질문](#httpspecific)
29 | * [운영체제 관련 질문](#osespecific)
30 | * [웹 서비스 관련 질문](#webservicesespecific)
31 | * [대표적인 서버 응답 코드](#csrcspecific)
32 | * [네트워크 관련 질문](#networkspecific)
33 |
34 | ### 기여자
35 |
36 | * [@travisvandame](http://twitter.com/travisvandame)
37 | * [@jmurowaniecki](http://twitter.com/jmurowaniecki)
38 | * [@emanuelsaringan](http://lambdageek.com)
39 |
40 | **[[⬆]](#toc) 목차로 되돌아가기**
41 |
42 | ### 일반 질문
43 |
44 | * 당신은 이번주/어제에 무엇을 배웠습니까?
45 | * 코딩을 하는데에 당신을 자극하는것이 무엇입니까?
46 | * 사용해 본 경험이 있는 버전관리 시스템엔 어떤 것들이 있습니까(깃, SVN 등)?
47 | * 당신이 선호하는 개발 환경은 어떤 것입니까? (운영체제, 편집기, 브라우저, 개발툴 등)
48 | * PHP 테스팅을 어떻게 시작하십니까?
49 | * 당신이 쓴 라이브러리/프레임워크의 소스 코드를 살펴본 적이 있습니까?
50 | * 당신의 코드를 어떻게 관리합니까?
51 | * 당신의 코드를 어떻게 최적화합니까?
52 | * 만약에 당신이 단 하나의 기술을 완벽히 익힐 수 있다면 무엇을 익히겠습니까?
53 | * 표준과 표준체의 중요성에 대해서 설명하십시오.
54 | * MVC와 HMVC에 대해서 설명하고 둘의 차이점, 목표와 장점에 대해 설명하시오.
55 | * 애자일 방법론에 대해서 배웠거나 알고있는 사실에 대해 말하시오.
56 | * 혼자 일하는 것을 즐기십니까, 팀으로 일하는 것을 즐기십니까?
57 | * 당신이 프로젝트 진행 중 마주했던 가장 큰 문제가 무엇이었으며, 그것을 어떻게 해결하였습니까?
58 | * 오픈소스 커뮤니티에 어떻게 기여하십니까? (깃허브, Bitbucket, IRC, 포럼)
59 |
60 | **[[⬆]](#toc) 목차로 되돌아가기**
61 |
62 | ### 디자인 패턴 관련 질문
63 |
64 | * MVC
65 | * MVVM
66 | * 레파지토리 패턴
67 | * 의존성 주입
68 | * 방문자 패턴
69 | * 이 패턴에 들어가는 클래스와 객체들은 무엇이 있는가? **답변: Visitor, ConcreteVisitor, Element, ConcreteElement, ObjectStructure**
70 |
71 | **[[⬆]](#toc) 목차로 되돌아가기**
72 |
73 | ### PHP 코드 예제:
74 |
75 | ```php
76 | floor(3.14)
77 | ```
78 | 질문: 위 코드에 의해 반환되는 값은 무엇인가? **답: 3**
79 |
80 | ```php
81 | echo join("", array_reverse(str_split("i'm a lasagna hog")));
82 | ```
83 | 질문: 위 코드에 의해 반환되는 값은 무엇인가? **답: "goh angasal a m'i"**
84 |
85 | ```PHP
86 | $array = array();
87 |
88 | array_push($array, 1);
89 | array_push($array, 2);
90 | ```
91 | 질문: `count($array)` 의 값은 무엇인가? **답: 2**
92 |
93 | ```PHP
94 | $foo = "Hello";
95 |
96 | function alert_a() {
97 | global $foo;
98 |
99 | $bar = " World";
100 |
101 | echo ($foo . $bar);
102 | }
103 |
104 | function alert_b() {
105 | $bar = " World";
106 |
107 | echo ($foo . $bar);
108 | }
109 |
110 | alert_a();
111 | alert_b();
112 | ```
113 | 질문: 위 두개 alert의 결과는 무엇인가? **답: alert_a() = Hello World, alert_b() = E_NOTICE : type 8 -- Undefined variable: foo -- at line 15 World**
114 |
115 | **[[⬆]](#toc) 목차로 되돌아가기**
116 |
117 | ### PHP 관련 질문
118 |
119 | * 콜백을 쓰는 두 가지 좋은 실례를 설명하시오.
120 |
121 | **[[⬆]](#toc) 목차로 되돌아가기**
122 |
123 | ### 데이터베이스 관련 질문
124 |
125 | * 일반 SQL
126 | * 뷰와 테이블의 차이점이 무엇인가?
127 | * HAVING 문이 하는 일이 무엇인가?
128 | * 인덱싱할 열을 어떻게 선택하는가?
129 | * MySQL 관련 질문
130 | * 당신은 어떻게 커맨드 라인을 사용하여 mysqldump로부터 데이터를 백업하고 복구하겠는가?
131 | * 어떤 상황에서 SQL_CACHE와 S_NO_CACHE를 쿼리에서 쓸 것인가?
132 | * 질문: 캐시를 불활성화하는 5개의 함수를 설명하고 왜 그런지도 설명하라.
133 | **답변: BENCHMARK(), CONNECTION_ID(), CONVERT_TZ(), CURDATE(), CURRENT_DATE(), CURRENT_TIME(), CURRENT_TIMESTAMP(), CURTIME(), DATABASE(), ENCRYPT(), with one parameter FOUND_ROWS(), GET_LOCK(), LAST_INSERT_ID(), LOAD_FILE(), MASTER_POS_WAIT(), NOW(), RAND(), RELEASE_LOCK(), SLEEP(), SYSDATE(), UNIX_TIMESTAMP(), USER(), UUID(), UUID_SHORT()**
134 | * PostgreSQL 관련 질문
135 | * [리소스 소비](http://www.postgresql.org/docs/current/static/runtime-config-resource.html)를 어떻게 개선시키는가?
136 | * SQL 서버
137 | * 어떻게 SQL 서버를 PostgreSQL이나 MySQL로 이전하겠는가?
138 | * 추후에 번역 추가하도록 하겠습니다.
139 | * Do you know How to 'hack', build a cluster, improve performance, implement cache, pooling or compile those services from source?
140 | * NoSQL 데이터베이스에 대해서 얼마나 아는가?
141 |
142 | **[[⬆]](#toc) 목차로 되돌아가기**
143 |
144 | ### HTTP 관련 질문
145 |
146 | * 브라우저에 URL을 입력하고 요청한 페이지를 볼때까지 어떤 일이 일어나는가?
147 | * 서버에 페이지를 요청했을때 TCP 3-way handshake가 어떻게 일어나는가?
148 | * HTTP 요청과 응답 헤더에 어떤 내용이 들어가는가?
149 | * HTTP와 HTTPS 프로토콜의 차이점은 무엇인가?
150 | * URL 축약서비스를 어떻게 설계하겠는가?
151 |
152 | **[[⬆]](#toc) 목차로 되돌아가기**
153 |
154 | ### ORM 관련 질문
155 |
156 | **[[⬆]](#toc) 목차로 되돌아가기**
157 |
158 | ### 웹 서비스 관련 질문
159 |
160 | * 웹 서비스를 개발하거나 운영해본 경험이 있습니까?
161 | * 어떤 웹 서비스 프로토콜을 알고 있습니까?
162 |
163 | #### 대표적 서버 응답 코드
164 |
165 | 질문: 서버 응답 코드 200에 대해서 설명하라. **답변: ("OK") 모든 과정이 잘 처리되었다. body가 있을 경우 리소스를 표현하는 것이다.**
166 |
167 | 질문: 서버 응답 코드 201에 대해서 설명하라. **답변: ("Created") 새로운 리소스가 생성되었다. location 헤더는 리소스를 가르키는 URI를 포함하고 있어야 하고 body는 새로 생성된 리소스의 대표값을 가진다.
168 |
169 | 질문: 서버 응답 코드 204에 대해서 설명하라. **답변: ("No Content") 서버가 어떠한 상태 메세지를 보내기를 거부하였다.**
170 |
171 | 질문: 서버 응답 코드 301에 대해서 설명하라. **답변: ("Moved Permanetly") 클라이언트가 리소스의 URI를 바꾸도록 하였다.**
172 |
173 | 질문: 서버 응답 코드 400에 대해서 설명하라. **답변: ("Bad Request") 클라이언트에서 문제가 발생했다. body가 에러 메세지이다.**
174 |
175 | 질문: 서버 응답 코드 401에 대해서 설명하라. **답변: ("Unauthorized") 클라이언트가 요청한 리소스에 대한 적절한 인증 조건을 만족하지 못하였다.**
176 |
177 | 질문: 서버 응답 코드 404에 대해서 설명하라. **답변: ("Not Found") 클라이언트가 어떠한 리소스에도 해당하지 않는 URI를 요청했다.**
178 |
179 | 질문: 서버 응답 코드 409에 대해서 설명하라. **답변: ("Conflict") 클라이언트가 서버의 리소스를 접근 불가능하거나 동기화되지 않은 상태로 바꾸려고 하였다.**
180 |
181 | 질문: 서버 응답 코드 500에 대해서 설명하라. **답변: ("Internal Server Error") 서버에서 문제가 발생하였다. body는 에러 메세지이다.**
182 |
183 | **[[⬆]](#toc) 목차로 되돌아가기**
184 |
185 | ### 운영체제 관련 질문
186 |
187 | * Linux/Unix/MacOS
188 | * MacPorts, Aptitude, YUM, RPM과 같은 패키지 매니저를 쓰는 방법을 아십니까?
189 | * 이미 진행되고 있는 서비스를 어떻게 업데이트 합니까?
190 | * nginx, apache, squid, samba 와 같은 서비스를 설치하고 설정하며 관리합니까?
191 | * 커널 튜닝에 대해 아십니까?
192 | * 가상화에 대해서 아십니까?
193 | * 프로세스와 쓰레드의 차이점은 무엇입니까?
194 | * Microsoft
195 | * 윈도우를 삭제하는 방법은?
196 | * USB나 liveCD를 이용하여 리눅스를 설치하는 방법은?
197 | * 어떻게 Secure Boot를 해제하고 리눅스를 설치하겠는가?
198 | * 윈도우에서 리눅스로 어떻게 이전하겠는가?
199 |
200 | **[[⬆]](#toc) 목차로 되돌아가기**
201 |
202 | ### 네트워크 관련 질문
203 |
204 | * OSI 모델의 7 계층은 무엇인가?
205 | * CDN의 장점과 단점에 대해 설명하시오.
206 | * What are some advantages of CDNs? Disadvantages?
207 | * Reverse Proxy가 무엇인가?
208 | * 아래 프로토콜에 사용되는 포트는?
209 | * HTTP
210 | * HTTPS
211 | * SSH
212 |
213 | **[[⬆]](#toc) 목차로 되돌아가기**
--------------------------------------------------------------------------------