반응형

안녕하세요. 이번 포스팅에서는 제가 했던 활동 중 정말 뜻깊었고 도움이 많이 되었던 '가짜 연구소'에 대해 소개하겠습니다. 가짜 연구소란, 머신러닝/데이터사이언스를 중심으로 모인 비영리 커뮤니티로, 다양한 분야의 사람들이 모여 공부하고 정보를 공유합니다. AI 쪽에 관심이 있으신 분들에게 특히 강력히 추천드립니다.

https://pseudo-lab.com/Pseudo-Lab-c42db6652c1b45c3ba4bfe157c70cf09

 

가짜연구소

가짜연구소는 머신러닝/데이터사이언스를 중심으로 모인 비영리 커뮤니티입니다. 성장의 앙상블이 만들어내는 울림을 통해 개인과 커뮤니티의 성장의 사이클을 함께 만들어나가요

pseudo-lab.com

 

가짜연구소 가입 절차

가짜 연구소는 빌더와 러너 2가지 형태로 참여할 수 있습니다. 빌더는 직접 스터디나, 프로젝트를 기획하여 팀원들을 모집하는 리더 역할을 수행하고, 러너는 다른 빌더들이 생성한 모임에 가입하여 팀원으로 참가하게 됩니다. 방학 시즌에 참가 인원들을 모집하는데, 팀원으로 참가하고 싶다면, 간단한 자기 소개와 원하는 프로젝트/스터디를 선택하여 신청할 수 있습니다. 

 위의 사진과 같이 정말 많은 프로그램들이 존재하며, 해당 프로그램의 리더가 팀원들을 선택합니다. 프로그램은 초급/중급/고급으로 나뉘고, 다양한 분야의 전문가들이 존재하여, 여러 분야에 AI를 결합한 재밌는 프로그램들을 볼 수 있습니다. 프로그램들은 스터디/ 논문 리뷰/ 프로젝트 진행 등이 있고 저는 학교에서 AI 수업 몇개정도 들어본 초보였기 때문에 초급반을 신청했습니다. 저는 2기에 참여했었는데 벌써 7기가 진행되고 있고, 훨씬 더 다양하고 체계적으로 바뀐 모습에 깜짝 놀랐습니다.

 

가짜연구소 장점

 가짜연구소의 최대 장점은 다양한 분야의 여러 사람들이 모여있다는 점입니다. 의사, 변호사, 연구원, 회사원 등등 다양한 분야의 사람들을 만나볼 수 있고, 저는 대학생이였기 때문에 이런 분들과 대화해 볼 수 있다는 점이 참 좋았습니다. 다들 현업을 하면서 진행하는 것이기에, 살인적인 스케쥴도 아니였고, 조금의 시간만 투자하며 참여할 수 있었습니다. AI가 다른 분야에서 어떻게 활용되는지 알 수 있었고, 서로의 스케쥴에 맞춰가면서 진행했기 때문에 큰 부담없이 재미있게 공부할 수 있었습니다. 회사에서 조금 여유가 생긴다면 8기에 한번 도전해 볼 생각입니다.

 

 

가짜연구소 프로젝트 진행 방식

 가짜연구소 프로젝트는 기간이 정해져 있고 보통 빌더분들이 스케쥴을 다 짜놓습니다. 모두 다 다른 빌더들이 진행하고, 형식이 자유롭기 때문에 진행 방식은 프로그램마다 모두 다릅니다. 따라서 제가 했던 프로젝트의 진행방식에 대해서 소개해드리겠지만, 모두 다르기때문에 각 프로그램의 소개를 보고 파악하시길 바랍니다.

https://pseudo-lab.com/e1f419456cac4980bb2fe90d89d2bad9

 

가짜연구소

가짜연구소는 머신러닝/데이터사이언스를 중심으로 모인 비영리 커뮤니티입니다. 성장의 앙상블이 만들어내는 울림을 통해 개인과 커뮤니티의 성장의 사이클을 함께 만들어나가요

pseudo-lab.com

 

한땀한땀 딥러닝 컴퓨터 비전 백과사전

 저는 컴퓨터 비전쪽에 관심이 많았기 때문에, 해당 프로그램에 참여했습니다. 인원은 총 5명이였고, 자동차쪽 현업자, 의사, 연구원 분들과 함께 진행했습니다. 활동은 총 3가지로 나누어 1주일에 한번씩 온라인으로 진행했는데, 

1. 컴퓨터 비전 전자책 제작

2. 논문 리뷰

3. 최근 AI 동향 공유 

 이 세가지 항목으로 진행했습니다.

 

1. 컴퓨터 비전 전자책 제작

 가장 주된 활동으로, 공부를 하는 것을 목적으로 컴퓨터 비전 전자책을 wiki에 함께 써나갔습니다. 우선 책과 다른 블로그들을 참고하여 카테고리를 정했고, 각 카테고리를 분담하여 1주일에 1항목씩 각자 정리해 온 후 서로 리뷰하는 시간을 가졌습니다. 내용은 초보자들을 위한 책이였기때문에 최대한 이해하기 쉽게 쓰도록 노력했습니다. 

https://wikidocs.net/book/6651

중간중간 헷갈리거나 어려운 부분은 아직 미완성이지만, 궁금하신 분들은 방문해보시길 바랍니다.

 

2. 논문 리뷰

AI 분야는 지속적으로 발전하고 있고, 다양한 신기술들이 계속해서 발굴되고 있었기에 조금 더 딥하게 공부를 해보기 위해 번갈아가면서 한명씩 논문 하나를 정해 리뷰하는 시간을 가졌습니다. 각자 분야가 달랐기 때문에 자신의 분야의 컴퓨터 비전 논문을 찾아 리뷰하였고, 정말 재밌었습니다. 저는 논문을 보는게 익숙치 않아 좋은 발표를 하진 못했던 것 같지만... 다른 분들의 리뷰를 들으면서 흥미로운 주제가 많았고, 시야를 넓히는데 큰 도움이 됐었습니다.

 

3. 최근 AI 동향 공유

  최근 딥러닝/데이터사이언스 관련 기사나 이슈들을 찾아보며, 각자 하나씩 리뷰하는 시간을 가졌습니다. 컴퓨터 비전이 정말 다양한 분야에 쓰이고 있다는 것을 알 수 있었고 저희가 공부했던 내용들과 엮어서 생각해보며 서로 토의했습니다. 정말 상상도 못하는 기술들이 나오고 있다는 것에 새삼 놀랐고, 재미있었습니다.

 

마무리

 저는 취업준비를 하면서 해당 프로그램에 참여를 했어서, 100%의 시간을 투자하진 못해서 아쉬웠지만, 제가 했던 모든 프로그램중에서 가장 뜻깊고 저를 성장시켜주었던 프로그램이였기에 여러분께 자신있게 소개해 드립니다. 취업을 하더라도, 가짜연구소에 가입해서 원하는 분야를 공부해보시는 것도 좋을 것 같습니다. 가짜연구소 정말 강력 추천하며, 이번 포스팅 여기서 마치도록 하겠습니다. 개발자 취준생 여러분 항상 응원합니다. 감사합니다.

반응형
반응형

안녕하세요. 이번 포스팅에서는 면접 스터디에 관해 다뤄보겠습니다. 혼자 준비하시는 분도 많겠지만 저는 면접 스터디가 참 많이 도움이 됐었기에 강력히 추천드립니다. CS 편에서도 스터디에 대해 잠깐 다루었었는데, 스터디를 어떻게 진행해야하는지, 어디서 구하는지 물어보시는 분들이 많아 좀 더 자세하게 다뤄보겠습니다.

 

https://nakco.tistory.com/entry/%EA%B0%9C%EB%B0%9C%EC%9E%90%EB%A1%9C-%EC%B7%A8%EC%97%85%ED%95%98%EA%B8%B0-CSComputer-Science

 

개발자로 취업하기 - CS(Computer Science)

안녕하세요. 이번 포스팅에서는 개발자로 취업하기 위해 공부해야하는 Computer Science 공부 방법에 대해 정리해보겠습니다. Computer Science는 컴퓨터 공학 전공 지식이라고 볼 수 있는데, 대학교에서

nakco.tistory.com

 

개발자 면접 스터디 구하기

면접에 도달했고, 이미 CS 공부까지 마치신 분들이라면 이젠 실전을 준비해야합니다. 보통 코딩테스트 결과가 나오면 그때부터 면접 스터디원을 이곳 저곳에서 모집할 것입니다. 

  • 카카오 오픈 채팅방
  • 기업 카카오 단톡방
  • 에브리타임
  • 캠퍼스픽

저는 위의 네 곳에서 면접 스터디를 구했었는데, 가장 추천드리는 곳은 캠퍼스픽입니다. 오픈 채팅방이나 단톡방은, 누군지 모르는 사람들과 무작위로 진행해야한다는 부분에서 좀 꺼려졌었고, 캠퍼스픽 같은 경우에는 보통 모집 인원, 모집 조건, 지역, 스터디 진행 방향 등에 대해 써있는 경우가 많기 때문에, 해당 사항들을 고려하여 스터디를 고르는게 제일 좋은 방법이였다고 생각합니다.

https://www.campuspick.com/

 

캠퍼스픽

대학생 커뮤니티, 동아리, 공모전, 대외활동 등 즐겁고 유익한 정보가 한 곳에!

www.campuspick.com

가장 좋은 방법은 캠퍼스픽에 직접 구인 글을 올려, 괜찮은 사람들을 선별하는 것이 좋지만, 여건이 안된다면 일단 이곳저곳 다 들어가보신 후 진행방향등에 대해 서로 논의한다음 맞지 않는 곳은 바로 나오시는 것을 추천드립니다. 에브리타임 같은 경우에는 같은 학교 사람들이라 좀 더 신뢰가 가고, 만나기 쉽다는 장점이 있지만, 같은 학교이다보니 모두 비슷한 경험을 했을 수 있어, 조금 편협적이 될 수도 있어서 캠퍼스픽을 가장 추천드립니다.

 

저는 면접을 준비할 때 한 기업당 적어도 하나의 면접 스터디에 참가했고, 많으면 세개까지도 참여했습니다. 첫 면접을 이미 경험해보셨다면, 어느정도 내용은 갖추고 있을 것이기 때문에, 직접 말해보는 것이 정말 큰 도움이 됩니다. 그리고 여러 사람과 대화를 하다보면 더 많은 정보를 얻을 수 있고, 다른 사람의 답변에서 힌트를 얻을 수도 있습니다. 따라서 최대한 많은 사람들과 준비를 해보며, 서로 피드백해주고, 많은 정보를 얻어가시길 바랍니다.

 

개발자 면접 스터디 진행

 면접 인원이 정해졌다면, 우선 서로의 자기소개서를 공유합니다. 물론 서로가 경쟁자라고 생각하여 자기소개서 공유가 꺼려질 수 있습니다. 하지만 이미 자기소개서는 제출 된 상황이고, 해당 내용을 기반으로 질문이 많이 들어올 것이기 때문에 꼭 공유해야합니다. 공유를 꺼려하는 사람이 있다면, 방출시키셔야 합니다. 서로에게 도움이 안될것이고 시간만 낭비하게 될 것입니다. 

 자기소개서를 서로 공유했다면, 공유 파일이나 노션을 이용하여 공동으로 사용할 수 있는 곳에 자기소개서 기반으로 질문들을 작성합니다. 각자의 이름 밑에 질문들을 적어놓으면, 각자 해당 질문에 대해 생각해보고, 다 같이 시간이 될때 직접 만나던, 온라인으로 화상채팅을 하던 실전 연습으로 나아갑니다. 실전처럼 다른 스터디원들이 질문을 해주고, 해당 질문에 답변을 하면, 꼬리 질문을 계속해서 진행합니다. 여기서 중요한 부분은 진행하면서 스터디원들 각각이 답변자의 답변에 대한 피드백을 계속 정리하여 공유 파일이나 노션에 기입하고 있어야 한다는 것입니다. 모든 질문이 끝나면, 각각 피드백에 대해서 말하는 시간을 갖고, 잘했던 점, 못했던 점, 어떻게 수정해야할지 등에 대해서 얘기하는 시간을 갖습니다. 칭찬도 좋지만 최대한 서로가 비판적인 시각으로 문제점을 짚어주는 것이 많이 도움이 될 것이라고 생각합니다.

 각각의 자기소개서에 대한 면접 연습과 피드백이 끝났다면, 이젠 공통으로 나올 수 있는 질문들에 대해서 연습해야합니다. 질문 기출이나, 자주 나오는 질문들에 대해서 적어놓고, 한명 씩 다시 실전 연습으로 돌입합니다. 여기서도 계속 꼬리 질문을 하고, 피드백을 공유하시길 바랍니다.

 여기까지가 전반적인 진행 방식이고, 사실 스터디원들이 모두 맞는 생각을 갖고 있는 것은 아니기때문에, 해당 피드백을 전적으로 받아드릴 필요는 없지만, 한번 더 생각해볼 수 있는 기회가 될 수 있기 때문에 매우 좋은 방법이라고 생각합니다. 그리고 우리 모두는 다 다른 생각을 갖을 수 있기 때문에 최대한 여러 사람들과 진행을 해보면, 더 다채롭게 생각할 수 있을 것입니다.

 

면접 스터디 진행 요약


1. 자기소개서 공유

2. 자기소개서 기반 실전 면접

3. 피드백

4. 공통 질문 공유

5. 공통 질문 기반 실전 면접

6. 피드백


 

스터디 내용 정리

 스터디가 끝났다면, 공유 파일에 정리해뒀던 피드백들과 내용들을 토대로, 질문들을 개인 파일에 나열하고 답변까지 적어 보시길 바랍니다. 자신에게 했던 질문이 아니더라도, 다른 사람이 연습할때, 괜찮았던 질문이나 답변을 잘 했던 것들도 같이 정리하여, 면접 전날 한번씩 소리내어 말해보는 것이 정말 큰 도움이 될 것입니다. 저는 기업당 예상 질문을 100개 이상 적어놓았고, 다른 사람들의 피드백과, 답변들을 참고하여 답을 미리 적어놓았습니다. 면접 전날과 당일날에 해당 질문에 대해 소리내어 읽어보며 (절대 외우는 느낌이 아님) 연습합니다. 절대 외우지 말고, 키워드만 생각하며 계속 말해보면, 면접때 말이 술술 나오는 마법을 체험하실 수 있을 것입니다. 꼭 말해야하는 키워드를 계속 각인시키도록 노력합시다.

 

마무리

같이 면접을 준비하는 사람들이 물론 경쟁자가 맞지만, 서로 최대한의 도움을 주며 정보를 교환해야 스터디의 의미가 있다고 생각합니다. 우리끼리만 붙자는 마인드로, 서로에게 열심히 피드백해주고 정보를 공유하면 정말 서로에게 큰 도움이 될 것입니다. 제가 정말 서로 열심히 했던 스터디였다고 생각하는게 삼성전자 면접스터디와, 카카오 면접스터디였는데, 삼성전자는 3명이 진행하여 3명 모두 합격하였고, 카카오는 9명이 진행하여 7명이 합격했었습니다. 서로 자소서도 공유 안하고, 피드백을 비판적으로 안하고 그냥 좋네요~~이정도만 하던 스터디들은 하면서도 진짜 시간낭비라고 생각됐고, 다들 붙었는지 떨어졌는지 공유도 없이 그냥 방이 폭파되었었습니다. 정보를 과감히 공유하며 함께 합격을 목표로 하시길 바랍니다. 오늘도 취준생, 개발자 여러분 모두 응원하며 이번 포스팅 여기서 마치도록 하겠습니다. 읽어주셔서 감사합니다.

반응형
반응형

안녕하세요. 이번 포스팅에서는 기술 면접 준비 방법 및 꿀팁에 대해서 알아보겠습니다. 면접이 처음이라면, 면접이 어떻게 진행되는지, 무슨 질문을 할지 하나도 몰라서 막막하고 두렵기만 할 텐데, 이런 분들을 위해 상세히 설명드리겠습니다. 저는 네이버, 카카오, 삼성전자, 네이버 클라우드, 신한은행, 당근 마켓 등 약 10개가 넘는 기술 면접을 봤었는데, 그 과정에서 느꼈던 점을 세세하게 말씀드리겠습니다.

 

https://nakco.tistory.com/entry/%EA%B0%9C%EB%B0%9C%EC%9E%90%EB%A1%9C-%EC%B7%A8%EC%97%85%ED%95%98%EA%B8%B0-CSComputer-Science

 

개발자로 취업하기 - CS(Computer Science)

안녕하세요. 이번 포스팅에서는 개발자로 취업하기 위해 공부해야하는 Computer Science 공부 방법에 대해 정리해보겠습니다. Computer Science는 컴퓨터 공학 전공 지식이라고 볼 수 있는데, 대학교에서

nakco.tistory.com

개발자 기술 면접

면접 시작

개발자 기술 면접은 말 그대로 내가 갖고 있는 프로그래밍 기술에 대한 질문을 주로 받게 됩니다. 일반적인 IT 직군이라면, 위의 CS 기반의 질문을 하게 되는데 해당 내용은 위의 링크를 참고하시길 바랍니다. 대부분의 기업이 2 ~ 4명의 면접관과 다대일로 면접이 진행됩니다. 기본적으로 처음에 자기소개를 30초 ~ 60초 정도 진행 한 후, 해당 자기소개에서 궁금한 부분을 질문하거나 아니면 자기소개서 기반의 질문으로 시작됩니다. 따라서 자기소개를 할 때 자신이 가장 자신있는 부분에 대해 궁금증을 유발하는게 하나의 꿀팁입니다. 

 

자기소개서 기반 질문

본격적으로 면접이 시작된다면, 자기소개서 기반의 질문부터 시작합니다. 대부분의 면접에서 제가 적었던 프로젝트 위주로 질문을 받았습니다.

  • 프로젝트에서 어떤 역할을 맡았는지,
  • 어떤 기술을 썼는지,
  • 해당 기술을 쓰면서 어려웠던 점은 무엇이 있었는지,
  • 배포까지 해봤는지,
  • 안했다면 왜 안했는지,
  • 아쉬웠던 점은 무엇이 있는지,
  • 더 발전시킨다면 어떤 방향으로 할 생각인지

프로젝트를 적었다면 위의 내용에 대해서는 꼭 한번 정리를 해 보시길 바랍니다. 대부분이 해당 질문들을 했었고, 현장에서 해당 질문을 받으면 생각보다 말이 술술 나오지 않았던 것 같습니다. 따라서 자기가 했던 프로젝트를 꼭 다시 리뷰해보고 해당 질문들에 대해 생각해보시길 바랍니다.

 

 네이버나 카카오같은 IT 기업이라면 좀 더 세부적으로 질문이 들어옵니다. 만약 안드로이드 앱 개발을 진행했었다면,

  • 자바를 썼는지 코틀린을 썼는지,
  • 시스템 설계는 어떤 모델을 사용해서 했는지,
  • 왜 해당 모델을 선택했는지,
  • 코틀린 or 자바의 특징은 뭐가 있는지,
  • 어떤 기능을 구현하는데 어떤 기술을 썼고, 왜 그랬는지, 다른 방법을 아는지

등 정말 내가 개발을 진행했는지, 해당 기술의 특성을 잘 이해하고 적용한 것인지 등의 내용을 파악하기 위한 질문들을 합니다. 저는 사실 프로젝트를 할 때 무슨 기술들이 있는지도 잘 모르고, 그냥 되는대로 했기 때문에 해당 질문들을 받았을 때 매우 난처했습니다. 여러분들은 꼭 미리 해당 질문들에 대해 준비해보는 것을 추천드립니다.

 

그리고 자소서에 어떤 과목에 대해서 적었다면 해당 질문도 들어올 수 있습니다. 예를 들어 '운영체제 수업을 들으면서 OS 동작에 대해 이해하게 되었고 이러한 부분을 생각하며 프로그래밍을 하여 좀 더 효율적인 코드를 작성할 수 있었다' 라고 적었다면, 

  • 운영체제 동작 중 하나를 설명해달라,
  • 어떤 부분을 생각하며 프로그래밍을 하는지,
  • 어떻게 효율적으로 코드를 짜는지,
  • 실제로 효율적으로 프로그래밍한 경험,

등에 대해 질문할 수 있습니다. 여러분이 자소서에 적은 내용들에 대해서는 따라서, 정말 꼬리의 꼬리를 물며 스스로에게 질문해보시고 답변을 미리 준비하시길 바랍니다. 자소서에 적은 내용인데 대답을 못한다면, 자소서를 과장되게 썼다는 인상을 줄 수 있습니다.

 

CS 기반 질문

 cs 기반 질문은 개발자로 취업하기 - CS 편을 보셨다면 잘 준비되어 있을거라고 생각합니다. 일반적인 IT 직군이라면, gyoogle의 있는 항목들 위주로 질문이 들어 올 것이고, 좀 더 세분화 된 직군 (앱 개발자, 백엔드 개발자, 프론트엔드 개발자 ...) 이라면 관련 지식을 주로 질문할 것입니다. CS 기반 질문에서 정말 중요한 점은, 질문에 대해 먼저 선수를 쳐서 아주 세세한 것 까지 자신이 아는 모든것을 뱉어 버리는 것입니다. 물론 너무 길게 대답하면 안되겠지만, 질문에만 대답하는 것이 아니라, 그 이후에 나올 수 있는 질문들에 대해서도 미리 선수쳐서 대답하면 긍정적인 반응을 이끌어 내실 수 있을 것입니다. 


ex) 해쉬가 무엇인지 설명해주세요

 

답 : 해쉬란 데이터를 다루는 기법으로 저장 및 검색이 매우 빠르다는 장점이 있습니다. key 와 value가 한 쌍으로 존재하고 ~~~ 저장의 시간 복잡도는 O(1)입니다. -> 여기까지가 질문에 대한 답변입니다.

추가 : 하지만 한정된 인덱스로 바꾸게 된다면 충돌이 발생 할 수 있고 이를 위한 해결책으로는 체이닝 기법과 매핑 개선 기법이 있습니다. 자바에서는 Seperate Chaining 방식으로 충돌을 해결하는 hash를 사용합니다.


 

여기까지 답한다면 이미 충분히 잘 알고 있다고 느낄 것이고, 꼬리 질문이 들어온다면, chaining 방식이 뭔지, open address가 뭔지, 매핑 개선 기법엔 뭐가 있는지 등이 나올 수 있겠지만, 보통은 저정도까지 얘기하면 이미 알고있다고 생각하고 물어보지 않을 것이고, 제 생각에도 저정도 얘기했으면 이후 질문도 쉽게 답하실 수 있을 것이라고 생각합니다. 질문자가 해당 내용으로 계속 질문하지 않게, 한번에 만족스러운 답변을 해내시길 바랍니다.

 

 

마무리

 보통 기술면접은 현업을 하고 있는 개발자들이 참여하고, 그 분들도 대부분 CS 지식을 까먹었을 것입니다. 그러니 너무 긴장하지 말고! 그분들도 인터넷을 찾아 질문을 가져오거나, 현업에서 하는 내용들에 대해 물어볼터이니, 자신의 직무에 맞게 잘 준비하시길 바랍니다. 자신이 알고있는 모든 것을 다 말하는 것이 중요하고, 자기소개서에 있는 모든 내용을 잘 숙지하시는 것도 중요합니다. 개발자 면접은 경험상 그렇게 딱딱하지 않고, 다들 편하게 해주는 경향이 있어 너무 긴장하지 마시고 자신있게 표현하시길 바랍니다.

 자기소개서와 마찬가지로 말을 할 때 항상 두괄식으로 말하고, 바로바로 답변하지 말고 조금 생각을 정리한 후 답변하시길 바랍니다. (네 답변 드리겠습니다 라고 하면서 생각을 하거나, 질문을 그대로 말하며 네 ~ 해쉬테이블이란~~ 하면서 생각을 정리) 또한 말하다가 잘못말하고 있다고 느끼면, 죄송합니다. 다시 답변드리겠습니다. 하고 다시 말해야지, 틀린 것을 계속 고집하시면 안됩니다.

 이상으로  개발자 기술 면접 포스팅 마치도록 하겠습니다. 더 궁금한 점 있으면 댓글로 남겨주시면 성실히 답하겠습니다. 개발자, 취준생 여러분 항상 응원하겠습니다. 감사합니다.

반응형
반응형

안녕하세요. 이번 포스팅에서는 개발자로 취업하기 위해 공부해야하는 Computer Science 공부 방법에 대해 정리해보겠습니다. Computer Science는 컴퓨터 공학 전공 지식이라고 볼 수 있는데, 대학교에서 4년간 배우는 지식이다 보니 범위가 매우 많게 느껴질 수 있지만, 중요한 부분부터 차근차근 공부해나가도록 합시다. 처음에 공부하시는 분이라면, 어디서부터 어떻게 공부할지 매우 막막할 수 있는데, 우선 입문하기 좋은 사이트 먼저 추천드리겠습니다.

 

https://github.com/gyoogle/tech-interview-for-developer

 

GitHub - gyoogle/tech-interview-for-developer: 👶🏻 신입 개발자 전공 지식 & 기술 면접 백과사전 📖

👶🏻 신입 개발자 전공 지식 & 기술 면접 백과사전 📖. Contribute to gyoogle/tech-interview-for-developer development by creating an account on GitHub.

github.com

 

해당 사이트에 들어가보면 Computer Science 과목들이 카테고리별로 잘 정리되어있고, 각각의 항목에 대해 간단히 정리가 되어있습니다. 우선은 해당 사이트를 보면서 전반적인 개요에 대해 이해하고 시작하는 것을 추천드립니다.

 

Computer Science 스터디

 우선 저는 학교 동기든, 같이 취준을 하는 친구든, 모르는 사람이든 4명정도 모아 스터디를 진행하는 것을 추천드립니다. 혼자서 많은양을 공부한다면 시간도 많이들고, 제한적인 정보만 습득할 수 있습니다. 따라서 스터디를 통해 주제를 나누고, 서로 해당 부분에 대해 토의하면, 기억에 남는것도 많고 더 deep 하게 공부하실 수 있을 것입니다. 저는 스터디를 어떻게 진행했는지 공유드리겠습니다.

 

1. CS 스터디 구하기

 저는 처음에 대학 동기 8명과 함께 스터디를 진행했습니다. 하지만 워낙 친했던 사람들이였기 때문에, 체계가 잘 잡히지 않았고, 잡담하는 시간도 많아 집중이 잘 되지 않았습니다. 따라서 차라리 모르는 사람들과 진행하는게 낫다고 판단하여, 캠퍼스픽이라는 곳에서 스터디원을 구했습니다.

https://www.campuspick.com/

 

캠퍼스픽

대학생 커뮤니티, 동아리, 공모전, 대외활동 등 즐겁고 유익한 정보가 한 곳에!

www.campuspick.com

해당 사이트에서 스터디 - 프로그래밍 카테고리로 들어가면 다양한 스터디를 구할 수 있는데, 직접 구인글을 올려도 되고, 다른 사람의 구인글을 통해 들어가셔도 좋습니다. 저는 직접올렸고 생각보다 많은 사람들이 문의를 해주어서 스터디를 경성하는데 큰 어려움이 없었습니다.

 

2. CS 스터디 진행 

 스터디를 결성했다면, 체계적으로 서로에게 도움을 주며 진행하는 것이 중요 할 것입니다. 저희는 1주일에 1번 만나는 것으로 결정했고, 스터디룸 하나를 3시간정도 빌려 진행했습니다. 첫번째로, 위에서 소개해드린 규글 사이트에 컴퓨터 구조, DB, 자료구조, 네트워크, 운영체제, Software Engineering, 알고리즘 총 7개의 항목이 있는데, 1주일에 2개의 항목을 공부하는 것을 목표로 했습니다. 네명 모두 2개의 항목에대해서 공부하되, 개인이 특정 항목을 맡아 더 자세하게 공부를 해와서 발표하는 식으로 진행했습니다. 발표를 하면서 헷갈리거나, 자신이 알고 있는 정보들을 서로 토의하며 더 deep하게 공부할 수 있었습니다. 네명이 공유 파일을 하나 만들어 (저희는 노션에 진행) 각 항목에 대해 자세히 정리를 하였고, 토의를 하며 자료를 강화했습니다. 이렇게  진행하여 3주만에 CS를 한번 훑을 수 있었습니다.

 

3. 개발자 기술 면접 준비

 대부분은 CS 공부를 기술면접 준비를 위해서 할 것입니다. 저희는 따라서 자료 정리를 마친 후 바로 기술면접 준비를 시작했습니다. 자신이 면접에 갈 기업이 있다면, 해당 기업의 질문들을 모았고, 아니면 이곳 저곳 면접 질문 후기들을 모아 한명씩 돌아가며 실전처럼 면접을 진행했습니다. 단 이때, 하나의 질문만 하는 것이 아니라, 그 질문에 계속 꼬리를 물고 깊게 파고 들어가며 진행했고, 저희가 정리했던 자료들에서도 질문을 하며, CS 지식들을 머리에 우겨넣었습니다. 저는 실제로 스터디에서 했던 질문들이, 기업에서 그대로 나오는 경우가 많았고 정말 도움이 많이 됐었다고 생각합니다. 여러분도 단순히 공부만 하지 말고, 이렇게 실전 면접 형식으로 진행해보는 것도 괜찮을 것이라고 생각합니다. 

 

컴퓨터 공학 자격증 준비

 컴퓨터 공학과 관련 자격증은 정말정말 많은데 기왕 공부할 거, 자격증도 함께 딴다면 1석 2조의 효과를 누릴 수 있을 것입니다. 저는 정보처리기사와 SQLD를 같이 준비했고, 준비를 하면서도 1석 2조라는 생각에 긍정적인 마인드로 공부를 할 수 있었던 것 같습니다. 앞 포스팅에 해당 자격증들에 대해 써놓은게 있어 공유드리겠습니다.

https://nakco.tistory.com/entry/%EA%B0%9C%EB%B0%9C%EC%9E%90%EB%A1%9C-%EC%B7%A8%EC%97%85%ED%95%98%EA%B8%B0-%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC

 

개발자로 취업하기 - 정보처리기사

개발자로 취업하기위해서는 프로젝트 경험과 학점 같은 것도 중요하지만, 꾸준히 Spec Up을 하는것도 중요합니다. 자소서에 한줄이라도 더 추가해야 취업시장에서 우위를 점할 수 있습니다. 우리

nakco.tistory.com

https://nakco.tistory.com/entry/%EA%B0%9C%EB%B0%9C%EC%9E%90%EB%A1%9C-%EC%B7%A8%EC%97%85%ED%95%98%EA%B8%B0-SQLD

 

개발자로 취업하기 - SQLD

안녕하세요. 이번에는 개발자로 취업하기 2편. SQLD 자격증에 대해 알아보겠습니다. SQLD(SQL Developer)는 Database 관련 자격증으로 정처기보다 훨~~씬 따기 쉽습니다. 그리고 정보처리기사와 마찬가지

nakco.tistory.com

 

 이 외에도 다양한 자격증이 있으니, CS 공부도 할 겸 1석 2조의 효과를 누리시길 바랍니다.

 

자기소개서에 쓴  CS 지식

 규글에 나오는 것들을 모두 공부했다면, 기본적인 CS 공부는 한 것이지만, 면접은 대부분 자기소개서 위주로 질문을 하기 때문에, 자신이 적은 내용에 대한 지식 또한 필수적으로 공부를 해야합니다. 예를 들어 내가 java를 사용하여 어떤 프로젝트를 했다고 적었으면 Java 언어에 대한 공부를 진행해야합니다. 자바의 특징은 무엇인지, 상속화, 캡슐화 등등은 무엇이고 언제 쓰는지 등, 직접 써본 경험이 있는지까지 생각하며 공부해야합니다. 저는 첫 면접때 java에 관한 질문에서 이론적인 부분은 잘 대답했는데 써본적이 있냐는 질문에서 턱 막혔습니다. 언제 쓰는지, 써봤는지 정리를 해두시면 좋을 것 같습니다. 또한 삼성 자기소개서에서 시스템프로그래밍 수업에서 어셈블리 언어를 사용해봤다 적었는데, 아주 간단한 어셈블리어 질문에도 대답을 못하여 당황했던 경험이 있습니다. 따라서 자기소개서에 쓴 내용은 꼭!꼭! 공부해놓으시길 바랍니다.

 

마무리

CS 지식은 그 범위가 광범위하나, 저는 저 규글에 있는 지식 외의 범위에서 질문을 받아본 적은 없습니다. 명심해야할 것은 겉핥기 식으로 공부하시면 안되고 꼭 꼬리의 꼬리를 물고 아주 deep하게 공부를 하셔야합니다. 제가 정말 잘대답했다고 생각했고, 실제로 면접관분들이 서로 마주보며 고개를 끄덕였던 질문이 있습니다.

 

질문 : 퀵 소트와 머지 소트의 차이점에 대해 설명해주세요.

 

퀵 소트는 ~~ 이고, 머지 소트는 ~~입니다. 차이점은 퀵소트는 보통 빠르지만, 최악의 상황에선 머지소트보다 더 성능이 안좋고, 추가적인 공간을 할당해야한다는 단점이 있습니다. 

 

까지만 말하면, 잘 대답한 것은 맞으나, CS 준비를 잘 한 사람이라면 누구나 할 만한 대답입니다. 저는 여기에 추가로 

 

머지소트는 안정적이고, 최악의 상황에도 O(nlogn)의 시간복잡도를 갖기 때문에 많은 양의 데이터를 처리할 때는 머지소트가 더 적합합니다. 개발 언어들에 내장된 라이브러리에서도 실제로 머지소트로 되어있는 부분이 많은 것으로 알고 있고, 제가 주로 사용하는 Python 언어에서는 Merge Sort와 Injection Sort를 합친 Tim Sort라는 알고리즘을 사용하는 것으로 알고 있습니다.

 

 이렇게 매우 딥한 부분까지 말씀을 드리니, 정말 만족해하셨고 면접도 합격 할 수 있었습니다. 따라서 여러분들도 질문에 대해서만 답변하는 것이 아니라, 사용 사례, 보완 사례, 등등 더 deep하게 들어가서 말씀드리면 성공적인 면접이 될 수 있을 것입니다.

 

이번 포스팅은 여기서 마무리하겠습니다. 개발자, 취준생 여러분 항상 응원하겠습니다.

 

반응형
반응형

안녕하세요. 이전 포스팅에서는 코딩테스트 기초에 대해서 알아봤었습니다. 이번 포스팅에서는 코딩테스트 꿀팁과 더 추가로 공부하면 좋은 심화 알고리즘들에 대해 소개하겠습니다. 기초편을 안보신 분들은 아래 링크에서 확인해보시길 바랍니다.

 

https://nakco.tistory.com/entry/%EA%B0%9C%EB%B0%9C%EC%9E%90%EB%A1%9C-%EC%B7%A8%EC%97%85%ED%95%98%EA%B8%B0-%EC%BD%94%EB%94%A9%ED%85%8C%EC%8A%A4%ED%8A%B8-%EA%B8%B0%EC%B4%88%ED%8E%B8

 

개발자로 취업하기 - 코딩테스트 (기초편)

안녕하세요. 이번 포스팅에서는 코딩테스트에 대해 다뤄보겠습니다. 개발자 스펙과 자기소개서 작성법을 보고 싶으시다면 이전 포스팅들을 참조해 주시길 바랍니다. https://nakco.tistory.com/ 낙서

nakco.tistory.com

 

프로그래머스 고득점 Kit을 전부 완료하였다면 이젠 실전 연습을 해야할 때입니다. 기업의 코딩테스트는 보틍 2~4시간 정도 주고, 4~7문제 정도를 풀어야합니다. 이때 중요한 점은, 부분점수는 아무 의미가 없다는 것입니다. 한 문제당 100점 or 0점이라고 생각하셔도 무방합니다. 보통 50%이상 맞추면 합격권이기 때문에, 선택과 집중을 잘하여 풀수 있는 문제를 완벽하게 푸는 것이 핵심입니다.

 

코딩테스트 전략

코딩테스트는 제한 시간이 있고, 빠르게 최대한 많은 문제를 풀어야 합니다. 하지만 그렇다고 조바심 내서 이문제 저문제 풀다보면 결국 풀 수 있는 문제도 못풀고 시간만 낭비하게 될 것입니다. 그렇다면 어떻게 전략을 짜야 할까요? 네, 바로 풀 수 있을 문제에 선택과 집중을 해야합니다. 어려운 문제에 더 높은 점수를 주는 기업도 있지만, 보통은 쉽든 어렵든 푼 문제 수로 갈리기 때문에, 내가 풀 수 있는 문제가 무엇인지 파악하는 것이 중요합니다.

 

1. 문제 파악하기

 문제를 읽으면서 어떤 알고리즘을 써야할지 먼저 알아내야합니다. 저희는 고득점 Kit를 푼 상태이기 때문에 해당 유형의 문제가 나오면 무조건 파악할 수 있습니다. 여러 코딩테스트를 봐보았을때 문제가 다 거기서 거기고, 그냥 내용만 살짝 바뀌는 정도였습니다. 따라서 내가 아는 유형인지 먼저 파악하고, 파악이 안될 시 우선 과감히 버리는 것을 추천드립니다. 그렇게 먼저 내가 아는 유형부터 문제를 풀도록 합니다. 

 

2. 문제 손으로 먼저 풀기

 알고리즘 문제를 풀 때 절대 문제를 읽으면서 바로 코딩해서는 안됩니다. 우선 문제를 모두 읽으면서 이해하고, 손으로 직접 풀어본 후, 그것을 코딩으로 옮기는 것이 순서입니다. 무작정 시작한다면 중간에 꼬여서 코드를 수정하고, 또 다시 문제를 읽고 예외를 발견하여 또 수정하고, 이러다 보면 코드도 더러워지고 나중엔 마구마구 꼬여버릴 수 있습니다. 제 경험상 다 이해하고 손으로 풀고, 코드로 옮기는 것이 훨씬 빨랐습니다.

 

3. 30분 내로 못풀면 넘어가기

 문제를 풀다보면, 분명 잘 푼거 같은데 정답이 아닌 경우가 있습니다. 이런 경우는 보통 3가지 이유로 나뉩니다.

 

(1). 내가 생각 못한 예외 상황이 있다.

(2). 아예 잘못된 알고리즘을 선택했다. (시간 복잡도를 고려 못했을 경우)

(3). 코드상 문법이 잘못된 부분이 있다. (Segmentation Fault, Runtime Error 등..)

 

어떤 이유든지 이러한 경우에는 우선 넘어가도록 합시다. 거의 다 풀었다고 생각하지만, 해당 문제만 붙잡고 있을 순 없는 노릇입니다. 넘어가서 다른 문제를 풀다보면 해결방안이 생각 날 수도 있고, 그때 돌아와서 풀는게 낫습니다. (2)번 같은 경우에는 코드를 싹 다 갈아 엎어야하는 문제가 있고, 또한 모르는 알고리즘이여서 원래부터 못푸는 문제였을 확률이 매우 높습니다. (3)번 또한 컴파일러를 보통 사용할 수 없기 때문에, 디버깅하는데 너무 많은 시간을 허비해야하기 때문에, 우선 풀 수 있는 다른 문제들로 넘어가고, 시간이 남거나 해결방안이 떠올랐을 때 돌아가도록 합시다. 시간 배분하는 것이 매우 중요합니다.

 

 

 

추가로 알아두면 좋은 알고리즘

  코딩테스트를 볼때 보통 맨 밑에 보면 조건이 있습니다. 데이터의 사이즈와, 시간 제한이 있는데, 저희가 사용하려는 알고리즘이 해당 제한 내에서 돌아갈 수 있는지 판단하는 것이 중요합니다. 계산해보고 안되는데 더 줄일 방법이 없는 경우에는 저희가 모르는 알고리즘이 있다는 뜻이겠죠!? 따라서 시간복잡도를 줄이는데 주로 사용되는 알고리즘들에 대해서 소개하겠습니다.

 

1. 이분 탐색

https://nakco.tistory.com/entry/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EC%9D%B4%EC%A7%84-%ED%83%90%EC%83%89%EC%9D%B4%EB%B6%84-%ED%83%90%EC%83%89

 

알고리즘 - 이진 탐색(이분 탐색)

개념 이진 탐색이란 데이터가 정렬돼 있는 배열에서 특정한 값을 찾아내는 알고리즘이다. 배열의 중간에 있는 임의의 값을 선택하여 찾고자 하는 값 X와 비교한다. X가 중간 값보다 작으면 중간

nakco.tistory.com

 

2. Union & Find

https://nakco.tistory.com/entry/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-Union-Find

 

알고리즘 - Union & Find

개념 그룹을 지을 때 사용할 수 있는 알고리즘이다. 처음에 자기 자신을 부모로 설정하고 조건에 따라 부모를 설정한다. Find는 자신의 최상위 부모를 찾는 역할을 한다. Union은 두 변수의 부모가

nakco.tistory.com

 

3. 누적합 (Prefix Sum)

https://nakco.tistory.com/entry/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EB%88%84%EC%A0%81%ED%95%A9Prefix-Sum

 

알고리즘 - 누적합(Prefix Sum)

개념 말 그대로 구간의 누적의 합을 구하는 알고리즘이다. 배열에 값을 저장하고 하나씩 더해가는 방식은 O(n^2)의 시간 복잡도를 갖는다. 하지만 누적합 알고리즘을 사용한다면 O(n)으로 시간복

nakco.tistory.com

 

4. 크루스칼 알고리즘 (Kruskal)

https://nakco.tistory.com/entry/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%ED%81%AC%EB%A3%A8%EC%8A%A4%EC%B9%BCKruskal

 

알고리즘 - 크루스칼(Kruskal)

개념 가장 적은 비용으로 모든 노드를 연결하기 위해 사용하는 알고리즘이다. 최소 비용 신장 트리를 만들기 위한 대표적인 알고리즘으로 흔히 여러개의 도시가 있을 때 각 도시를 도로를 이용

nakco.tistory.com

 

5. 다익스트라 (dijkstra)

https://nakco.tistory.com/entry/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EB%8B%A4%EC%9D%B5%EC%8A%A4%ED%8A%B8%EB%9D%BCdijkstra

 

알고리즘 - 다익스트라(dijkstra)

개념 다익스트라(dijkstra)알고리즘은 다이나믹 프로그래밍(dp)를 활용한 대표적인 최단 경로 탐색 알고리즘이다. 다익스트라 알고리즘은 하나의 정점에서 다른 모든 정점으로 가는 최단 경로를

nakco.tistory.com

 

6. 인덱스 트리 (Index Tree)

https://nakco.tistory.com/entry/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EC%9D%B8%EB%8D%B1%EC%8A%A4-%ED%8A%B8%EB%A6%ACIndex-Tree

 

알고리즘 - 인덱스 트리(Index Tree)

개념 이진 트리 중 하나로 구간 합을 구하는데 사용된다. 말단 노드에는 원소들이 들어 있고 부모는 자식들의 합이 된다. 부모는 모든 자식들의 합이 되기 때문에 연속되는 구간의 합을 구할 수

nakco.tistory.com

 

마무리

 저는 이러한 공부 방법으로 라인을 제외하고는 모든 기업의 코딩테스트에서 합격했습니다. 라인은 시간 분배를 못하고, 앞에 문제에서 끙끙대다가 풀 수 있는 문제도 못풀고, 시간분배를 못해 떨어졌다고 생각합니다. 여러분은 꼭 시간 분배를 잘 하시길 바랍니다! 제가 코딩테스트를 본 기업은 네이버, 카카오, 신한은행, 삼성전자, 네이버 클라우드 등이 있는데 나중에 시간이 된다면 각 기업의 코딩테스트에 대해 리뷰해보도록 하겠습니다. 오늘도 읽어주셔서 감사합니다. 개발자, 취준생 여러분 항상 응원하겠습니다.

반응형
반응형

안녕하세요. 개발자로 취업하기 자격증 편, 리눅스 마스터에 대해 알아보겠습니다. 리눅스 마스터는 리눅스 기반 시스템의 관리능력을 평가하는 1급 자격과 리눅스 운영시스템의 프로그램 사용능력을 평가하는 2급 자격으로 구분되어있습니다. 이 중에서 리눅스 마스터 2급을 많이 준비하실텐데요! 2차는 기초 활용 능력을 평가하는 시험이기에 기출 문제를 기반으로 암기하면 어렵지 않게 취득하실 수 있는 자격증 중 하나 입니다. 그럼 리눅스 마스터 시험에 대해 알아볼까요?

시험일정

리눅스 마스터 1급 시험은 매년 1차, 2차 시험 각 2회씩 진행됩니다. 2급은 1차, 2차 각 4회씩 진행됩니다. 밑에 표는 KAIT에 기재되어 있는 내용입니다. https://www.ihd.or.kr/guidecert1.do
일정 잘 참고하셔서 좋은 결과 있으시길 바라겠습니다!

 

KAIT 자격검정

정기검정 일정 정기검정 일정 종목 등급 회차 차수 접수일자 시험일자 합격자 발표 리눅스마스터 1급 2301회 1차 01.30.(월) ~ 02.10.(금) 03.11.(토) 03.31.(금) 2차 04.03.(월) ~ 04.14.(금) 05.13.(토) 06.02.(금) 230

www.ihd.or.kr

 

시험시간

입실 시간은 시험 시간 10분 전인 13:50분까지 입실하셔야합니다.
자세한 시험 시간은 밑의 표를 참고하시길 바랍니다.

참고사항

리눅스 마스터 2급의 경우 1차 시험은 온라인으로 진행되며 60분 동안 진행됩니다.

리눅스 마스터 2급 1차 온라인 시험

  • 온라인 시험은 접수완료 하신 다음날 오후 13:00 이후부터 응시 가능
    (단, 금요일 접수자의 경우 차주 월요일 오후 13:00 이후 응시 가능)
  • 온라인시험은 한 회차 당 1회에 한해 응시가능하며 불합격 시 재 응시 불가

참고사항

응시지역은 운영상황에 따라 변경될 수 있음
자격증 발급수수료 : 5,800원(배송료 포함)

  • 정보이용료 별도: 신용카드/계좌이체 650원, 가상계좌입금 300원
    연기 및 환불 규정
  • 접수기간~시험 당일10일전 : 신청서 제출시 연기 또는 응시비용 전액환불
  • 시험일 9일전 ~ 시험 당일 : 신청서 및 규정된 사유의 증빙서류 제출시 연기 및 응시비용 전액 환불
  • 시험일 이후 : 환불 불가
    ※ 온라인 1차 시험의 경우 응시 접속이력이 없을 경우 접수 기간내에만 환불만 신청 가능

시험 범위

리눅스 마스터 1급

리눅스 마스터 2급

https://www.ihd.or.kr/introducesubject1.do

 

KAIT 자격검정

리눅스마스터 졸업인증 경동대학교(정보보안학과), 공주대학교(컴퓨터공학부), 광안대학교(정보보호학과), 국제대학교(컴퓨터정보통신과), 동덕여자대학교(컴퓨터공학과), 동서울대학교(네트

www.ihd.or.kr

시험 합격 기준

https://www.ihd.or.kr/introducesubject1.do

 

KAIT 자격검정

리눅스마스터 졸업인증 경동대학교(정보보안학과), 공주대학교(컴퓨터공학부), 광안대학교(정보보호학과), 국제대학교(컴퓨터정보통신과), 동덕여자대학교(컴퓨터공학과), 동서울대학교(네트

www.ihd.or.kr

마무리

저도 리눅스 마스터 2급을 현재 공부 중에 있습니다. 1차 시험의 경우 온라인 시험이라 큰 부담이 없이 합격할 수 있다고 하니, 현재는 2차 시험을 위주로 공부하고 있습니다. 공부 베이스는 기출 문제 위주로 공부하고 있고, 필요에 따라서 인터넷 강의를 참고하고 있습니다! 다른 자격증의 경우 항상 벼락치기로 공부하던 습관이 있어서 시험 보기전에 불안했던 경험이 있어서 이번에는 한달의 기간을 잡고 하루 1~2시간씩 공부하고 있습니다. 저와 함께 리눅스 마스터 2급 자격증 시험을 준비하시는 분들 모두 합격하시길 바랍니다.

개발자 취준생 여러분 모두 좋은 결과 있기를 응원합니다. 다음에 또 찾아뵙도록 하겠습니다. 감사합니다!

반응형
반응형

안녕하세요. 이번 포스팅에서는 코딩테스트에 대해 다뤄보겠습니다. 개발자 스펙과 자기소개서 작성법을 보고 싶으시다면 이전 포스팅들을 참조해 주시길 바랍니다.

https://nakco.tistory.com/

 

낙서 코딩

삼성전자 개발자 출신의 취업, 코딩 낙서장입니다. 코딩 공부를 하고, 개발자로 취업하는 길이 매우 힘들었기 때문에 꿀팁을 공유하기 위해 블로그를 개설했습니다.

nakco.tistory.com

 

자기소개서까지 합격하신 여러분 축하드립니다. 하지만 아무리 자기소개서를 잘 썼다고 해도 코딩테스트에서 떨어지면 말짱 도루묵이겠죠! 코딩테스트는 갑자기 준비할 수 없는 영역입니다. 따라서 미리미리 준비를 해놓아야 합니다. 보통은 4문제 ~ 7문제로 이루어져있고, 문제의 절반정도 풀면 합격할 수 있습니다. 문제의 난이도는 회사마다 매우 상이하지만, 보통 1문제는 엄청 쉽고 2문제 부터 백준 실버 ~ 골드, 프로그래머스 level 2 ~3 정도라고 생각합니다.

 

코딩테스트 준비 사이트

 이전에 알고리즘을 해본적이 없거나, 기초가 부족하다면 바로 문제를 풀기는 어려울 것입니다. 코딩 문제를 풀 수 있는 사이트는 백준, 프로그래머스 등이 있는데, 백준도 물론 좋은 사이트지만 저는 프로그래머스를 강력 추천드립니다. 백준에는 너무도 많은 문제가 있어, 무엇을 풀어야할 지 감이 안오고, 또한 컴파일러가 저는 프로그래머스가 훨씬 좋다고 느꼈습니다. 시험 자체도 프로그래머스 사이트에서 보는 기업이 꽤 있기에, 프로그래머스 사이트를 강력 추천드립니다.

 

프로그래머스에 알고리즘을 입문하기 굉장히 좋은 페이지가 있어 소개해드리겠습니다.

https://school.programmers.co.kr/learn/challenges?tab=algorithm_practice_kit 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

바로 코딩테스트 고득점 Kit 입니다. 해당 페이지에는 자주 나오는 유형별로 문제가 나누어져있고, 각 테마마다 level 1~3까지의 문제들이 구비되어 있습니다. 

 

자, 그렇다면 해당 사이트에서 어떻게 공부를 해야할까요? 우선 해당 개념을 먼저 익혀야합니다. 무작정 문제 먼저 푼다고해서 절대 문제를 풀 수 없습니다. 코딩도 수학과 마찬가지로 공식을 먼저 이해해야 문제를 풀 수 있습니다. 알고리즘은 수학의 공식과 똑같습니다. 이를 이해하지 못한다면 문제는 손도 못댈것입니다.

 

코딩테스트 고득점 Kit 공부 방법

한 항목의 개념을 익히셨다면, level 1 문제만 우선 풀어보도록 합시다. level 2 부터는 절대 쉽지 않습니다. 우선 각 항목의 개념을 익히면서 level 1 문제만 푸는 것을 목표로 합니다. 그렇게 모든 항목의 level 1 문제를 풀고나면, 다시 시작입니다. 다시 각 항목의 개념을 공부합니다. 항목이 10개가 되기 때문에 기억이 잘 안날 수 있고, 다시 보면 분명 더 알아가는 것이 있을 것입니다. 그 후에 level 2 문제에 도전합니다. 아마 이때부터 쉽지 않을 것입니다. 하지만 지금부터가 중요합니다. level 2 정도만 스스로 풀 수 있어도 웬만한 코딩테스트는 합격할 수 있을 것입니다. 

 

level 2 부터는 무조건, 스스로 풀어야합니다. 시간을 1 ~ 2시간정도로 잡아두고, 문제 풀이를 시작합니다. 이 시간 동안에는 절대 남의 코드를 찾아보지 않기로 약속해야합니다. 계속 틀리고 고치고를 반복하다가, 기준 시간이 다 됐음에도 못풀겠을때, 그때 해당 문제를 검색해서 다른 사람의 풀이를 보면서 이해합니다. 이때 그 사람의 코드를 그대로 따라하면, 그건 그 문제를 푼게 아니라, 그냥 타이핑 연습하는 것이겠죠? 머리로 이해했다해도, 남의 코드를 그대로 적는건 기억에 남지 않습니다. 따라서 다른 사람의 코드를 이해만 하고, 다시 자신의 코드로 직접 문제를 푸는것이 핵심입니다. 절대로 조급해 하지마세요. 여러 부분을 얕게 아는 것보다, 하나를 정확히 아는것이 코딩테스트에 도움이 됩니다. 왜냐면 코딩테스트는 부분점수가 없기 때문이죠. 0점이나 90점이나 똑같이 fail입니다. 무조건 100점을 목표로 문제를 풀어야합니다.

 

level 2까지 모두 푸셨다면 여러분은 이미 합격권에 있을 확률이 높습니다. 하지만 naver, kakao 같은 IT 기업은 문제가 조금 더 어렵습니다. 따라서 level 3까지 도전해봐야 안정적으로 대부분의 코딩테스트를 합격할 수 있을 것입니다. level 3 부터는 아마 남의 코드를 봐도 어렵고 짜증날 수 있습니다. 하지만 한번 풀어놓으면, 해당 알고리즘을 사용하는 문제들은 그냥 껌씹듯이 풀 수 있을 것입니다. 조급해하지말고, 기출문제 풀려하지말고, 그냥 우선 코딩테스트 고득점 Kit 부터 정복하시길 추천드립니다. 

 

마무리

프로그래머스에서 고득점 Kit를 모두 정복하셨다면, 아마 대부분 기업의 코딩테스트에서 절반 이상은 맞출 수 있을 것입니다. 하지만 해당 사이트에 없는 알고리즘도 분명 나올 수 있습니다. 다음 포스팅에서는 코딩테스트 꿀팁과, 심화 알고리즘에 대해 소개하도록 하겠습니다. 개발자, 취준생 여러분 모두 응원하며 마무리하겠습니다. 감사합니다.

 

반응형
반응형

안녕하세요. 오늘은 개발자 자기소개서 2편, 자소서 작성하기 시작하겠습니다. 1편은 하기 링크에서 참고해주시면 감사하겠습니다.

https://nakco.tistory.com/entry/%EA%B0%9C%EB%B0%9C%EC%9E%90%EB%A1%9C-%EC%B7%A8%EC%97%85%ED%95%98%EA%B8%B0-%EC%9E%90%EA%B8%B0%EC%86%8C%EA%B0%9C%EC%84%9C-1%ED%8E%B8

 

개발자로 취업하기 - 자기소개서 1편

자기소개서 1편 - 시작하기 안녕하세요. 여태까지는 가볍게 SPEC UP 할 수 있는 자격증, 교육에 대해서 다뤘었는데요. 이번에는 취업의 시작이라고 할 수 있는 자기소개서에 대해서 다뤄보겠습니

nakco.tistory.com

 

모든 개발자가 그런것은 아니지만, 저는 글을 굉장히 못쓰고 써본적도 거의 없습니다... 그래서 처음에 쓸 때 정말 막막했고 많은 사람들의 것을 찾아보며 참고하면서 썼는데, 그러다 보니 너무 평범한 자기소개서가 됐었고, 저의 강점을 잘 나타내지도 못했던 것 같습니다. 따라서 이번 포스팅을 보고 그대로 하려고 하지 말고, 꼭 자신에게 맞게 변형할 수 있는 방법에 대해 생각해보시길 권합니다.

 

자기소개서 2편 - 작성하기

이전 포스팅을 보았다면, 어느정도 무슨 내용을 적을지 구상을 하셨을 것이라고 믿습니다. 그렇다면 해당 내용들을 어떻게 작성해야할까요? 많은 개발자 분들이 사실 글을 쓰는데 익숙치 않을 것이기 때문에, 정말 막막할 수 있습니다. 하지만 거창하게 쓸 필요 없습니다. 있는 그대로, 간결하고 정확하게 필요한 정보만을 넣는 것이 좋은 자기소개서라고 생각합니다. 좋은 자기소개서를 쓰기 위해서는 꼭 해야할 것과, 하지 말아야할 것이 있습니다.

 

꼭 하지 말아야 할 것

1. 추상적인 표현

추상적인 표현을 쓰면 안된다는 것은 여러분 중 대부분이 알고 있을 것입니다. 하지만 다른 사람들의 자기소개서를 보다보면 추상적인 표현이 굉장히 많습니다. 추상적인 표현을 사용하게 되면, 신뢰도가 떨어지고, 자소서의 칸만 차지하여 정작 써야할 내용은 못쓰게 될 수 있습니다. 간단한 예시를 들어보겠습니다.

 

예시) 저는 복학을 한 후, 꾸준히, 남들보다 열심히 공부하여 성적 향상을 이뤄냈습니다.

 

자기소개서를 쓸때 흔히 쓰는 추상적인 표현이 바로 꾸준히, 열심히, 성실히 등입니다. 예시 문장을 보시면 어떤 느낌이 드시나요? 꾸준히, 열심히? 내가 그걸 어떻게 믿지? 뭐 어떻게 했다는거지? 라는 생각이 드시지 않으신가요? 그렇게 느껴지시지 않으시더라도, 위와 같은 표현은 자제하시길 바랍니다. 그렇다면 어떻게 쓰는게 좋을까요? 마찬가지로 간단한 예시를 들어보겠습니다.

 

예시) 저는 복학을 한 후, 전공 지식이 거의 없었기에 진도를 따라가기 조차 버거웠습니다. 하지만 포기하지 않았고, 개발 언어에 대한 지식이 먼저 필요하다고 느껴, 언어책을 사서 먼저 익히고 ~~ , 어떤 방법으로 공부를 하였고 ~~ 성적이 잘 나왔고 ~~ 이를 통해 자신감이 생겨 과 수석까지 했습니다.

 

이런 식으로 추상적인 표현보다는 구체적인 자신의 경험을 토대로 쓰시는 것을 추천드립니다. 

 

2. 뻔한 내용

컴퓨터 공학과를 나왔다면 사실 학교에서 배운 수업, 프로젝트 등의 내용은 거의 비슷할 것입니다. 공모전이나, 대회, 인턴같은것을 하지 않았다면 모두 비슷하겠지만, 그렇다고해서 남들 다 갖고 있는 이런 내용들을 적으면 변별력이 떨어질 것입니다. 비슷한 수업을 들었어도, 비슷한 프로젝트를 했어도 모두 갖고있는 경험은 다를 것입니다. 예시를 통해 보도록 하겠습니다.

 

예시) 저는 프로젝트 수업에서, 팀장을 맡아 ~~를 주제로 프로젝트를 진행했습니다. 팀원들을 잘 이끌어 성공적으로 프로젝트를 마무리했고 좋은 성적을 받았습니다.

 

 저는 동기들이나 취업스터디를 했던 다른 개발자분들의 자소서를 엄청 많이 봤었는데, 대부분의 사람들이 위와같은 내용이 있었습니다. 누구나 다 팀장이였고, 누구나 다 성공적으로 프로젝트를 마쳤습니다. 저보다 훨씬 더 많은 자소서를 본 취업담당자 분들은 해당 내용을 보고 어떤 느낌이 들까요? 지루할 것이고, 또한 신뢰도 가지않고 변별력도 없을 것입니다.  똑같은 경험이더라도, 자신만의 경험을 녹이는 것이 중요하다고 생각합니다.

 

예시) 저는 ~~를 주제로 프로젝트를 진행했습니다.  해당 프로젝트는 어떤 기술을 사용해야했는데 해당 기술에 대한 정보가 거의 없어 난처했습니다. 해당 기술을 파헤치기 위해 하루동안 공식 영문 기술서를 모두 읽어보았고 ~~ 

 

이런식으로 자신의 구체적인 경험을 적어보는 것이 어떨까요?

 

3. 거짓말

네, 물론 어느정도의 과장은 필요하다고 생각합니다. 하지만 지나친 거짓말은 화를 부르게 되어 있습니다. 운이좋게 잘 포장하여 자기소개서를 합격 할 순 있지만, 저희에겐 면접이 남아있습니다. 면접에서 해당 거짓말을 걸리게 되면 어떻게 될까요? 혹은 거짓말한 부분을 답변하기 위해, 안그래도 없는 시간을 쪼개어 준비를해야하고 자신의 강점에 집중할 수 없게 됩니다. 자신이 없는 부분은 과감히 버리길 바랍니다.

 

예시) 저는 시스템프로그래밍 수업을 들으며 어셈블리어를 익혔고, 이러한 경험을 통해 프로그래밍을 좀 더 효율적으로 하는 습관을 갖게 되었습니다.

 

저는 실제로 위의 내용과 비슷하게 자소서에 쓴 적이 있습니다... 내용 자체가 거짓말은 아니였으나, 어셈블리어는 2학년 때 배우고 한번도 접한적이 없었고, 저런 습관도 없었습니다. 면접 전에 갑자기 어셈블리어를 공부하려니 시간이 많이 모자랐고 결국 질문하지 않기를 바라며 대충 공부하고 면접에 참여했습니다. 결국 면접관님이 어셈블리에 대해 물었고, 대답을 못하자 힌트까지 주면서 대답을 요구했지만, 저는 대답하지 못했습니다. 정말 쪽팔렸고, 면접 분위기도 그대로 망쳤습니다. 여러분은 저와같은 실수를 하지 마시고, 면접까지 생각하며 자기소개서를 작성하시길 바랍니다.

 

 

꼭 해야할 것

1. 경험 위주로 작성

 앞에서도 말씀드렸지만, 변별력있는 자소서를 쓰기 위해서는 모든 내용을 자신의 경험을 토대로 작성해야합니다. 그래야 자소서 읽는 분도 재밌게 보고 남들과는 다른 자소서가 탄생할 것 입니다. 모든 내용이 자신의 경험으로 작성되야 신뢰도가 높아집니다. 모든 문항에 자신의 경험을 1~2개 정도 넣어주시길 바랍니다.

 

예시)  회사에 지원한 동기에 대해 기술하세요.

 저는 이 회사에 이 직무에서는 ~~역량이 필요하다고 생각합니다. 학교를 다닐 때 ~ 수업에서 ~를 했던 경험이 있습니다. 이 경험이 이 회사에 제가 지원한 직무에 적합하다고 생각합니다. 해당 경험으로 저는 ~~를 얻었고, 이를 회사에 ~~에 어떻게 사용하여 도움이 되겠습니다.

 

간략하게 적었지만 위와같이 자신의 경험으로 적어야합니다. 이 회사는 어느분야 1등 기업이고~, 요새 ~~를 하고 있고, 뭐 이런것도 쓸 수 있겠지만, 쓰더라도 자신의 경험은 꼭 한두개 넣길 바랍니다.

 

2.  두괄식으로 작성

두괄식이란, 글의 중심 내용을 맨 앞에서 한번 언급해주는 것입니다. 즉 질문에 대한 답변을 먼저 한 후에 이야기를 풀어나가는 것입니다. 위의 질문에서 안좋은 답변을 보여드리겠습니다.

 

나쁜 예시)  회사에 지원한 동기에 대해 기술하세요.

 저는 ~프로젝트를 진행했던 경험이 있습니다. 해당 프로젝트는 ~~였는데 저는 거기서 ~~를 했고 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

이러한 경험이 회사에 도움이 될 것이라 생각합니다.

 

내용 자체는 자신의 경험을 토대로 썼기 때문에 나쁘지 않습니다. 하지만, 읽는 사람 입장에서 생각해보면 '나는 지원 동기를 물었는데 얘는 왜 갑자기 지 프로젝트 얘기를 하고 있어' 라고 생각할 것입니다. 따라서 해당 내용을 적기 전에 앞에서 한문장 정도로 전체 내용을 요약해서 먼저 작성한 후 스토리를 이어나가길 바랍니다.

 

좋은 예시)  회사에 지원한 동기에 대해 기술하세요.

 해당 직무에서는 ~를 하고있는 것으로 알고 있고, 저의 ~프로젝트 경험이 도움이 될 것이라 생각했습니다. . 해당 프로젝트는 ~~였는데 저는 거기서 ~~를 했고 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

이러한 경험을 바탕으로 ~~를 하며 같이 성장해 나가겠습니다.

 

3.  소제목 쓰기

소제목도 두괄식과 비슷한 개념이지만 훨씬 더 어렵습니다. 전체 내용을 요약하면서도, 뻔하면 안되고, 흥미를 유발해야합니다. 인사과 사람들은 많게는 수만장의 자기소개서를 읽어야 할텐데, 소제목이 없거나 딱봐도 지루해보이면 읽기 싫을 것입니다. 따라서 흥미를 유발하는 것이 중요합니다. 

 

나쁜 예시) 회사에 지원한 동기에 대해 기술하세요. 

[한국 1등 기업]

[꾸준한 공부, 지속적인 성적 향상]

[자연어 처리 모델링 구현 경험]

[도전 정신]

.

.

.

 

위의 소제목들을 보고 어떤 생각이 드시나요? '한국 1등 기업', '도전 정신'. 네 물론 해당 소제목을 보고 대충 어떤 내용이겠구나 생각 할 순 있을것입니다. 하지만, 너무 뻔하지 않나요? 흥미롭지가 않습니다. '자연어 처리 모델링 구현 경험' 이건 어떤가요? 인사과분들은 대부분 컴공이 아닐 확률이 큽니다. 그렇다면 저 소제목만 봐도 아주 한숨이 푹푹 쉬어질 것입니다. 흥미가 매우 떨어지겠죠. 그렇다면 어떻게 쓰는 것이 좋을까요?

 

좋은 예시) 회사에 지원한 동기에 대해 기술하세요. 

 

[최고 지향, 목표 달성을 위한 나만의 원칙]  

[꼴등에서 일등으로, 성장하며 배운 것]

[새로운 자연어 처리 모델로 내가 이뤄낸 것]

[한 번의 성공을 위한 네 번의 도전]

 

나쁜 예시와 비교했을 때 호기심을 자극하고, 더 흥미롭다는 것을 느낄 수 있을 것입니다. 저는 본문 쓰는 것보다 소제목 쓰는 것이 훨씬 오래 걸렸었는데, 소제목이 시작이니만큼 중요도를 깊게 고민하고 작성해보시길 바랍니다.

 

마무리

이번 포스팅에서는 크게 꼭 해야할 것과, 하지 말아야할 것에 대해 다뤄봤습니다. 이 외에도 맞춤법 검사, 목표 3분할 (초기 / 중기 / 장기) 등등 여러가지 꿀팁이 많지만 분량 상 여기서 마무리하겠습니다. 저는 취업을 한 후에도 동기나 후배들의 취업을 돕기 위해 자소서 첨삭을 많이 해줬었는데, 제가 정답은 아니지만 그래도 필요하신 분들은 댓글 남겨주시면 최선을 다해 도움드리겠습니다. 개발자, 취준생 여러분 모두 화이팅입니다.

반응형

+ Recent posts