오늘 봤던 PM직무 면접에 기술 면접이 포함되어 있었다. 사실 기술 면접이 있을 줄 모르고 준비를 하나도 안하고 본지라 쉬운 문제만 주셨음에도 불구하고 제대로 답변을 하지 못했다. 하 창피하다 정말 ^-ㅠ. 어쨌든 PM으로 지원을 계속 할거라면 당분간 기술 면접 준비도 꾸준히 해야할 것 같다. 정말 열심히 했나? 라고 되돌아 보게 되는 하루였다. 솔직히 더 하면 할 수 있었을 것 같은데, 너무 안일하게 공부를 했던 것 같기도 하고, 오늘은 자기 반성이 필요하다.

 


1. API란 무엇인지 간단하게 설명해주세요.

  • Application Programming Interface : Inter는 ~ 간에, ~ 사이에, face는 '면' , 면과 면 사이에 무언가를 프로그래밍 적으로 작동하게 해주는 것. 이라고 이해하면 쉬울 듯.
  • 데이터와 기능의 집합을 제공하여 컴퓨터 프로그램간 상호작용을 촉진하며, 서로 정보를 교환가능 하도록 하는 것

 

2. Restful한 API란 무엇인가요?

REST(Representational State Transfer)의 약자로 자원을 이름으로 구분하여 해당 자원의 상태를 주고받는 모든 것을 의미

 

즉 REST란 

  1. HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고,
  2. HTTP Method(POST, GET, PUT, DELETE, PATCH 등)를 통해
  3. 해당 자원(URI)에 대한 CRUD Operation을 적용하는 것을 의미합니다.

 

3. Arguments와 Parameter의 차이점에 대해 설명해 주세요.

  • 컨트롤러 단에 집어넣는 전달인자는 Argument, Parameter는 매개 변수.
  • Parameter는 함수 혹은 메서드 정의에서 나열되는 변수 명입니다. 반면 Argument는 함수 혹은 메서드를 호출할 때, 전달 혹은 입력되는 실제 값입니다. Parameter의 실체는 변수이고 Argument의 실체는 값입니다.

http://taewan.kim/tip/argument_parameter/

 

4. var, let, const의 차이점에 대해 설명해 주세요.

  • var는 애크마스크립트 때 많이 사용했지만 자바스크립트 버전이 업그레이드 되면서 많이 사용하지 않게 되었다.
  • let은 선언 중복이 되지 않지만, 재할당은 가능함
  • const는 선언도 재할당도 모두 안된다.

 

5. 객체지향에 대해 설명해 주세요.

  • 객체 지향 프로그래밍 (Object-Oriented Programming, OOP)은 프로그래밍에서 필요한 데이터를 추상화 시켜 상태와 행위를 가진 객체로 만들고, 객체들간의 상호작용을 통해 로직을 구성하는 프로그래밍 방법이다.
  • 객체는 또한 레고 조각과도 비슷하게 여러군데에서 재사용 할 수 있는데 이는 부품화 와 재사용성 이라는 객체 지향 프로그래밍의 특징을 보여주기도 한다.
  • 객체 지향 프로그래밍은 크게 추상화 , 캡슐화 , 상속 , 다형성 의 네가지 특징을 가진다.

 

https://jongminfire.dev/%EA%B0%9D%EC%B2%B4%EC%A7%80%ED%96%A5-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D%EC%9D%B4%EB%9E%80

 

객체지향 프로그래밍이란?

객체 지향 프로그래밍이란? 객체 지향 프로그래밍 (Object-Oriented Programming, OOP…

jongminfire.dev

https://jeong-pro.tistory.com/95

 

객체 지향 프로그래밍이 뭔가요? (꼬리에 꼬리를 무는 질문 1순위, 그놈의 OOP)

객체 지향 프로그래밍(Object Oriented Programming) 여러 소프트웨어 관련 IT기업 신입사원 기술면접에서 면접자들 긴장을 풀어줄 겸 워밍업으로 자주 나오는 질문이다. "객체 지향 프로그래밍에 대해

jeong-pro.tistory.com


6. 인생에 어려웠던 순간을 어떤 방식으로 해결했는지?

 

7. 보통 부트 캠프 수료생들은 복붙만 할 줄 아는데, 스스로 코딩연습을 얼마나 했는지? 

 

8. 부트 캠프 프로젝트를 하면서 어떤 역할(포지션)을 맡으셨는지? 

 

9. 모르면 모른다고 하는게 부끄러운 건 아니지만, 알아야 하는 건 알아야 한다. (뼈맞았어요 ^^)

  • 몰라도 괜찮을 땐 몰라도 해도 좋지만, 내가 지금 역량이 안되서 못하는 상황인데 다 할 수 있다는 사람도 원치 않고, 개발을 못한다고 쉽게 포기하는 사람도 원치 않는다. 벌써부터 개발이 안맞아서 PM직무를 선택하는 건 섯부른 판단인 것 같다. 프로젝트를 하면서 맡을 수 있는 업무 중에 맡은 업무가 PM이었을 것 같다. 더 개발공부를 하면 좋을 것 같다.
  • 개발만큼 중요한게 목적을 잃어 버리는 것. 매니저급들이 잡아주는 역할이 필요하다. 그 역량은 아마 PM을 하면서 키웠을 것 같은데, 개발 역량 같은 경우는 베트남 지사같은 경우 체계가 없고 바로바로 뚝딱 만들어야 하는 현실이기 때문에, 개발을 꾸준히 공부했으면 좋겠다. 

10. 회사에 바라는 점이나 해보고 싶은 업무가 있는지?

 


첫 술에 배부를 수 없다. 반성하고 여행으로 리프레시 하고 다시 열심히 해보자 ! 

 

1. 배열, 링크드리스트를 비교하여 설명해주실 수 있을까요?

- Array는 연속된 메모리 공간에 존재하고 Linked List는 메모리 상에서 떨어져 있는 데이터들이 앞의 데이터와 뒤의 데이터를 기억하는 형태로 존재한다.
- Array에 저장되어 있는 데이터를 조회할 때는 O(1)로 가능하지만 Linked List는 O(N)이 소요된다.
- Array에 데이터 추가 및 삭제할 때는 O(N)이 소요되지만 Linked List는 O(1)로 가능하다.
- 추가적으로 Array는 컴파일 과정에서 메모리가 할당되는 정적 메모리 할당인 반면 Linked List는 런타임 환경에서 메모리가 할당되는 동적 메모리 할당이다.
- 또한 배열은 Stack 영역에 메모리 할당이 되고, Linked List는 Heap 영역에 할당이 된다.
- 배열은 빠른 접근이 요구되고, 데이터의 삽입과 삭제가 적을 때 사용하고 링크드리스트는 삽입과 삭제 연산이 잦고, 검색 빈도가 적을 때 사용한다.
 
( 추천 답안 )

배열은 입력된 데이터들이 메모리 공간에서 연속적으로 저장되어 있는 자료구조이며 메모리상에서 연속적으로 저장되어 있는 특징을 갖기 때문에 index를 통한 접근이 용이하다는 장점이 있으나 삽입/삭제가 오래 걸리고 배열 중간의 데이터가 삭제 되면 공간 낭비가 발생할 수 있는 단점이 존재합니다. 링크드리스트(연결리스트)는 여러 개의 노드들이 순차적으로 연결된 형태를 갖는 자료구조이며 각 노드는 데이터와 다음 노드를 가리키는 포인터로 이루어져 있는 트리(tree)구조의 근간이 되는 자료구조입니다. 배열과 달리 메모리를 연속적으로 사용하지 않아 삽입/삭제에 용이하다는 장점이 있습니다. 그러나 index로 임의 접근이 불가하며 처음부터 탐색을 해야하는 단점이 있습니다. 따라서 배열은 빠른 접근이 요구되고, 데이터의 삽입과 삭제가 적을 때 사용하고 링크드리스트는 삽입과 삭제 연산이 잦고, 검색 빈도가 적을 때 사용합니다.

 

2. CORS란 무엇이고 어떻게 허용할 수 있나요?

- 교차 출처 리소스 공유(Cross-Origin Resource Sharing)는 단어 그대로 다른 출처의 리소스 공유에 대한 허용/비허용 정책이다.

- 아무리 보안이 중요하지만, 개발을 하다 보면 기능상 어쩔 수 없이 다른 출처 간의 상호작용을 해야 하는 케이스도 있으며, 또한 실무적으로 다른 회사의 서버 API를 이용해야 하는 상황도 존재한다. 따라서 이와 같은 예외 사항을 두기 위해 CORS 정책을 허용하는 리소스에 한해 다른 출처라도 받아들인다는 것.
- 요약하자면 SOP 정책을 위반해도 CORS 정책에 따르면 다른 출처의 리소스라도 허용한다는 뜻이다.
- 허용하는 방법은 서버에서 Access-Control-Allow-Origin 헤더 세팅하는 방법이 있다. 이 방법은 직접 서버에서 HTTP 헤더 설정을 통해 출처를 허용하게 설정하는 방법이다.

 

( 추천 답얀 )

한 출처에 있는 자원에서 다른 출처에 있는 자원에 접근하도록 하는 것으로 교차되는 출처 자원들의 공유입니다. 다른 출처의 리소스를 가져오는 상황에서 SOP는 이 접근을 차단합니다. 하지만 CORS 설정을 통하여 Access-Control-Allpw-Origin을 서버의 응답헤더에 작성하게 되면 접근 권한을 얻을 수 있습니다.

 

3. 시간복잡도와 공간복잡도가 무엇인지 설명해주실 수 있을까요?

- 시간 복잡도는 특정 알고리즘이 어떤 문제를 해결하는데 걸리는 시간을 의미한다. 같은 결과값을 갖는 소스라면 시간이 적게 걸리는 것이 좋은 소스이다.
- 시간 복잡도에는 빅-오 표기법이라는 개념이 나오는데, 최악의 경우를 계산하는 방식을 빅-오(Big-O) 표기법이라 부른다.
- 공간 복잡도(Space Complexity)란 작성한 프로그램이 얼마나 많은 공간(메모리)을 차지하느냐를 분석하는 방법이다.
- 요약하면, 시간 복잡도는 얼마나 빠르게 실행되는지, 공간 복잡도는 얼마나 많은 자원(메모리 공간)이 필요한지를 판단한다.
- 시간 복잡도와 공간 복잡도는 반비례하는 경향이 있어, 보통 알고리즘의 성능을 판단할 때는 시간 복잡도를 위주로 판단한다.

 

( 추천 답안 )

시간 복잡도란 특정 크기의 입력을 기준으로 할 때 필요한 연산의 횟수를 나타냅니다. 시간 복잡도에는 빅오 표기법이라는 복잡도를 나타내는 점근 표기법 중 가장 많이 사용되는 표기법을 사용합니다. 공간 복잡도는 프로그램 실행과 완료에 얼마나 많은 공간(메모리)가 필요한지를 나타냅니다. 알고리즘을 실행시키기 위해 필요한 공간, 고정 공간과 가변 공간이 있습니다.

 

4. 사용자 패스워드를 전송하고 보관하는 방법을 설명해주실 수 있을까요?

유저의 패스워드를 받은 클라이언트는 평문으로 서버로 전송합니다. 평문을 받은 서버는 패스워드를 단방향 해시 함수로 암호화하여 보관합니다. 단방향 해시함수는 수학적 연산에 의해 원본 데이터를 완전히 다른 암호화된 데이터(다이제스트)로 변환하는 것을 말합니다. 원본 데이터로는 다이제스트를 구할 수 있지만 다이제스트로는 원본데이터를 구할 수 없어야 합니다. 이것을 단방향이라 합니다. 단방향 해시함수는 브루트포스 공격으로 쉽게 당할 수 있기 때문에 이를 보완하기 위해 입력된 다이제스트를 N번 반복해서 생성하는 것인 key stretching과 원문 패스워드에 임의의 문자열을 추가하여 해싱하는 것인 salting을 이용해 보안의 강도를 높힐 수 있습니다.

 

 

5. 스택, 큐에 대해 설명해주실 수 있을까요?

- 스택은 쌓여있는 접시와 같다. 먼저들어온 자료가 나중에 나간다. FILO(First In Last Out.)
- 스택은 접근성에 제한이 있는 자료구조. 오직 맨 위에 추가(push)할 수 있고, 맨 위에 것만 나갈(pop) 수 있다.
- 큐는 놀이공원에 줄 서있는 사람들과 같다. 먼저 온 사람이 먼저 나간다. FIFO(First In First Out.) 
- 큐는 두가지 동작만 허용된 자료구조. Enqueue(들어옴)과 Dequeue(나감).
- Stack과 Queue의 가장 큰 차이점은 item을 삭제할 때 있다. 아이템을 삭제할 때, Stack은 가장 마지막에 추가되 있던 item을 삭제하고, Queue는 가장 처음으로 들어와 있던 item을 삭제한다.

 

 

6. DI와 IoC에 대해 아는 만큼 설명해주실 수 있을까요?

- IoC(제어의 역전)란 코드의 흐름을 제어하는 주체가 바뀌는 것이다.
- 코드의 흐름을 제어한다는 것은 여러 행위를 포함한다. 오브젝트를 생성하는 것, 오브젝트의 생명주기를 관리하는 것, 메소드를 수행하는 것 등. 그리고 일반적인 프로그램은 이러한 행위를 하나부터 열까지 모두 스스로 수행한다. IoC 를 적용한다는 것은 이러한 흐름 제어를 또다른 제 3자가 수행한다는 것을 의미한다.
- DI(의존성 주입) 는 필요로 하는 오브젝트를 스스로 생성하는 것이 아닌 외부로 부터 주입받는 기법을 의미한다.
- Constructor Injection (생성자를 통해 주입하는 방식), Setter Injection (Setter 메소드를 이용하여 주입하는 방식), Interface Injection (Interface 로 주입받는 메소드를 정의)하는 방식이 있다.
- Dependency Injection 은 IoC 개념이 적용된 결과물 중 하나일 뿐

 

 

7. Call by reference란 무엇이고 보통 어떻게 쓰이나요?

- 함수가 호출될 때, 메모리 공간 안에서는 함수를 위한 별도의 임시 공간이 생성된다. (함수 종료시 사라짐)
- call by reference 참조에 의한 호출방식은 함수 호출시 인자로 전달되는 변수의 레퍼런스를 전달한다. (해당 변수를 가르킨다.) 
- 함수 안에서 인자의 값이 변경되면, 함수 호출시에 있던 변수들도 값이 바뀐다. 
- JAVA에서 Call by reference는 해당 객체의 주소값을 직접 넘기는 게 아닌 객체를 보는 또 다른 주소값을 만들어서 넘긴다

 

 

8. Override 와 Overload 를 설명해주실 수 있을까요?

- 오버로드(Overload) : 메서드의 이름은 같고 파라메터의 갯수나 타입이 다른 함수를 정의하는 것을 의미한다. (리턴값만을 다르게 갖는 오버로드는 작성 할 수 없다.)
- 오버라이드(Override) : 상위 클래스의 메서드를 재정의 하는 것이다.
메서드의 이름은 물론 파라메터의 갯수나 타입도 동일해야 하며, 주로 상위 클래스의 동작을 상속받은 하위 클래스에서 변경하기 위해 사용된다.
- 오버로딩(Overloading)은 기존에 없던 새로운 메서드를 정의하는 것이고, 오버라이딩(Overriding)은 상속 받은 메서드의 내용만 변경 하는 것이다.

 

 

9. MVC 모델이란 무엇인지 설명해주실 수 있을까요?

- MVC 는 Model, View, Controller의 약자 입니다. 하나의 애플리케이션, 프로젝트를 구성할 때 그 구성요소를 세가지의 역할로 구분한 패턴입니다. 
- 사용자가 controller를 조작하면 controller는 model을 통해서 데이터를 가져오고 그 정보를 바탕으로 시각적인 표현을 담당하는 View를 제어해서 사용자에게 전달하게 됩니다.
- 이러한 패턴을 성공적으로 사용하면, 사용자 인터페이스로부터 비즈니스 로직을 분리하여 애플리케이션의 시작적 요소나 그 이면에서 실행되는 비즈니스 로직을 서로 영향 없이 쉽게 고칠 수 있는 애플리케이션을 만들 수 있게 됩니다.

3달 안에 무조건 취업 뽀개는 방법 

 

취업, 왜 이렇게 어려운 걸까 ?

  • 본인을 잘 모르고, 주어진 환경을 잘 모르기 때문 
  • 나의 강점을 잘 모르기 때문이다.
  • 당신은 신입 개발자로서 어떤 사람인가요?에 대한 질문을 던져보자.
  • 매력어필을 잘 하는 것이 중요하다. 
  • 의지가 있는 한, 타석에 오를 수 있다. 홈런왕은 삼진왕. = 실수하고 개선하는 과정이 필요하다.
  • 최대한 많이 지원하고 부딪혀보면서 배워야 한다. 
  • 빨리 준비해서 빨리 한대 더 맞는게 중요해. 실패에서 더 잘 배우기
  • 면접을 보면서 피드백을 여쭤보자, 보안할 점 더 공부해야할 점.
  • 계속해서 기술적인 챌린지를 유지해야한다 = 기술 블로그, 알고리즘, cs공부
  • 처음 시작할 때와 비교하면 많이 성장해있음을 볼 수 있을 것이다.
  • 3달 뒤에 또 성장할 모습을 상상하면서 구직을 하자.

 

무조건 뽀갠다! 필승 원칙 5가지

  • 많이 쓴다. = 가장 중요하다
  • 피드백을 받는다.
  • 변명 말고 고친다.
  • 효율화 한다.
  • 같이 한다.

 

FQA

  • 조금은 아쉽지만, 그래도 내게 기회를 준 회사. 가야 할까? - 무조건 가라.
  • 면접 준비는 어떻게 하면 좋을까요? 
  • 프로그래밍 면접 = 알고리즘 문제많이 풀어보기
  • 기술 면접 (cs) = 팀으로 준비하는게 효과적, 팀원끼리 질문하기
  • 이력서 바탕 예상 질문 서로 물어보면서 실제 면접처럼 연습해보기
  • 노션 형식이 깔끔 ( 이력서 )
  • 이력서 포맷 - 너무 길면 이상함. 첫 페이지 상단을 가장 많이 봄. 따라서 첫 페이지 상단 부분에 자신을 드러내는 것을 잘 기입하는게 중요. 내가 생각하는 나를 드러내는 방법을 잘 고민해서 레이아웃을 짜기
  • 부트 캠프 비전공자 연봉 제안 상한선 : 4000만원 정도 ? 

 

매력적인 신입 개발자 ? 

  • 사람들마다 다르겠지만, 성장가능성을 본다.
  • 0부터 99일까지의 성장 곡선을 잘 보여주면 좋다.
  • 내가 이력서에 적은 내용을 막힘없이 깊이있게 아는 사람. 내가 했던 것들에 대해 깊이 알고 있는 사람.
  • 다른 일을 해봤던 사람. 일하는 방식을 아는 사람.

 

다음은 지난주에 있었던 토스뱅크 프론트엔드 개발자 박지혜 멘토님,  네이버 시크플랫폼 개발자 김건희 튜터님의 이력서 특강 내용을 정리한 부분이다  !

 

박지혜 멘토님의 자료

 

  1. 포맷을 맞춰서 보기 쉽게 한 장으로 ( 항해 이력서 포맷 참고/ 한눈에 보기 쉽게 / 스토리텔링 있도록 )
  2. 깃허브를 이용하자! 깃허브 프로필 잘 꾸미기
  3. 어떤 기술로 어떤 개선사항이 있었는지 적어주기 ( 이력서 프로젝트 아래에 ) 
  4. 유저수 만족도 구체적으로 어떤 피드백이고 어떻게 개선했는지 적용하면 더 매력적일 듯. 
  5. 노드 : AWS 사용해서 로드밸런싱 한 경험 어필 등 서버 개발자의 역량을 좀 더 어필하기.
  6. 사용기술 왜 그 기술을 선택했는지, 그 질문을 잘 준비해야 함 ( 면접 )
  7. 경험은 최대한 자세하게 적기. 무엇을 했는지 알 수 있도록.
  8. 항해에서 제공하는 포맷이 아닌경우, 예를 들어 노션으로 만든 경우 다른 디자인이고 디자인에 개성이 표현되어 있으면 한번 더 눌러보게 된다. 본인을 잘 표현 할 수 있도록 가독성있게 작성하기 ! 
  9. 개발자의 발작 버튼 ! 키워드 ! - 서버의 경우 Pessimistic Lock - 데드락 어떻게 해결했나요? 라는 질문 들어올 것. 어떻게 해결했는지 등등 개념 공부를 빠삭하게 하고 적어야 한다. 
  10. 발작버튼을 잘 눌렀을 때 답변을 잘 하면 취업이 훨씬 수월할 것이다.
  11. 아키텍쳐 넣기 - 기술스택 
  12. 본인이 어떤 노력을 했고 어떤걸 배웠는지 잘 녹여내도록 하기. ( 스토리텔링 !!)
  13. 읽기 편한 이력서를 작성할 것 ! ( 노션을 잘 활용해도 좋아 )

위와 같이 배운점과 개선점을 잘 풀어내는게 중요해.

 

1인분의 정의가 무엇인가요? 회사에서 생각하는 1인분의 구체적인 기준이요

( 박지혜 개발자님 답변 )

 

비유로 설명하기 애매할 수도 있지만, 요리를 한다고 생각해보면, 가끔 레시피(구글링) 찾아볼 수는 있겠지만, 재료손질부터 간을 맞추는 것까지 혼자 있고, 요리하다가 돌발상황(개발자로서 생각한다면 서비스 장애나 이슈 트러블 슈팅을 위한 디버깅 같은 것들) 만나도 대응할 있다면, 1인분을 하는 거라고 생각합니다. 기능을 코드로 구현하는 것은 보통 신입이든 경력직이든 누구든 있는 영역이라고 생각하는데요. 보안을 신경쓴 코드라든지, 대용량 트래픽을 신경쓰기 위해 인프라를 어떻게 구성하는게 좋겠다든지, 배포전략을 어떻게 세워야한다든지, 장애가 발생해서 바로 대응해줘야한다든지, 디버깅을 해야해서 로그를 찾아야하는 상황 등등 여러 상황을 아직 경험하지 못하셨기 때문에 서비스 하나를 온전히 사람에게 맡기는 경우들이 더러 있어요. 가지 안되는 경우만 예시를 들긴 했지만, 이런 현재 하실 있다면 1인분을 충분히 하실 있는 개발자라고 생각합니다!!

지난주 토요일 김선우 시니어 개발자님이 주신 개발자 취업 팁을 정리해 보자 !

 

  1. 신입을 채용하는 기준 : 1. 책임감 2. 의지, 열정 
  2. 신입을 뽑는 목적 = 잠재력을 보고 투자하겠다는 것 .
  3. 과제수행을 할거야 ( 온보딩 기간 )
  4. 중요한건 좌절하지 않는 마음 . 중꺾마
  5. 입사 후 1년은 배우는 기간, 1인분을 만들어나가는 기간
  6. 면접 들어갈 때 핸드폰 녹음을 키고 들어가서 나중에 피드백을 받도록

이력서 작성 팁

자기소개서는 별로 관심 없음 - 즉, 주저리주저리 쓸 필요 없음.

할줄 아는 능력이 중요함

  • 프로젝트에서 뭘 했는지
  • 기술스택 
  • 이력서는 PDF 기준 한 장 정도면 된다. (compact 하게 )
  • 이력서를 통해서 질문을 유도하게 ( 따라서 자신있는 것만 적기 )
  • 잘 할 수 있고, 잘 설명할 수 있는 것만 적기

 

좋은 회사 고르는 방법

  • 성장 가능성이 있는 회사
  • 배울 수 있는 사수가 있고, 코드 리뷰가 있는 회사
  • 연봉 1-2천 차이 아무것도 아님, 일단 배울 수 있는 회사로 가야함

 

면접을 보는 방법

  • 질문에 대한 대답을 하는 자리가 아님
  • 나도 면접관을 면접하는 자리, 내가 역으로 질문을 많이 해야함
  • 나에게 유리한 질문을 하기.
  • 나도 상대방을 파악한다는 느낌으로. 소개팅 하는 느낌으로

 

개발자로 살아남는 방법

  • Chatgdp 완전하지 않다.
  • 끊임없이 학습하는게 중요함. 그리고 나만의 데이터 베이스를 만들기
  • 변화가 없다고 느낄땐 이직을 하던지 변화를 줘야함.
  • 학습 == 공부 + 구현 ( 사이드 프로젝트 )
  • 태도와 마음가짐 : 나는 배우고 있다고 생각하면 그게 학습 ( 삽질 포함 )
  • 지치지않고 꾸준히 하는게 중요하다. 
  • 잠은 관짝 들어가서 자는 것이다.

 

학습 방법

  • 블로그, 스택오버플로우 : 학습이 아니다
  • 학습은 책과 강의가 학습이다.
  • 그리고 추가적으로 운영체제, 네트워크 공부도 하면 좋음

멘토님 책 추천

  • 알고리즘/인터뷰 :  알고리즘 문제해결 전략, 코딩 인터뷰 완전 분석, 면접을 위한 CS 전공지식 노트
  • 백엔드 : Java 기본서(Java의 정석, 혼자 공부하는 자바 등등...), 이펙티브 자바 3판, Head first design pattern
  • 책보다 좋은건 공식 문서 : oracle java doc
  • 프론트엔드 :  Do it! 모던 자바스크립트 프로그래밍의 정석, Do it! 리액트 모던 웹 개발 with 타입스크립트, 리액트를 다루는 기술, 모던 자바스크립트 Deep Dive

 

+ Recent posts