├── 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) 목차로 되돌아가기** --------------------------------------------------------------------------------