7 minute read

알고리즘

Q1. 코딩테스트를 위한 추가 알고리즘 학습 가이드라인을 제시해주실 수 있나요?

Q2. 기업에서 자주 출제되는 알고리즘 코딩 테스트 유형은 무엇인가요?

  • 희망 기업에 따라 다르지만 대부분 탐색, 문자열 다루기, 시뮬레이션은 포함되어 출제됩니다.

    출처 : 한빛출판네트워크

    출처 : 한빛출판네트워크

  • 일부 기업(은행권, 프로그래머스 등)은 SQL 테스트도 진행되는 경우가 있습니다.

    • https://career.programmers.co.kr/competitions/2561

    Untitled

  • 기업 코딩테스트의 경우 모든 문제를 다 푸는 것이 아니라 합격 커트라인 내의 문제를 풀이 하여야 합니다.

    먼저, 가장 궁금해하실 1차 합격 기준부터 알려드립니다. 1차 합격 기준은 총 7 문제 중 4 문제 이상을 풀이한 분들입니다. 참고로 각 문제는 배점이 동일하므로 어떤 문제를 풀었던지 간에 관계는 없습니다.

    • https://tech.kakao.com/2017/09/27/kakao-blind-recruitment-round-1/

개인 공부

Q1. 혼자 복습 위주로 학습하고 있습니다. 추가 학습을 어떻게 하면 좋을까요?

  • 복습위주로 공부하시는 건 정말 잘하고 있다고 칭찬해드리고 싶습니다.
  • 이 과정을 100% 소화해내는것이 항상 선행되어야 합니다. 과정 중 배운 내용을 온전히 본인 것으로 만들때까지 계속해서 복습을 하셔야 합니다.
  • 지금(파이썬, 알고리즘, SQL)은 기본기를 쌓는 과정입니다.
    • 추가적인 공부가 필요하시다면
      • 코딩 테스트 준비
      • 직무 탐색
      • 자격증 준비(SQLD, 정처기)
      • CS 전공 학습(데이터베이스, 네트워크, 운영체제)
  • 이후 웹, Django 과정을 수강한 이후로는 개인/팀 프로젝트를 별도로 진행 하시면 됩니다. 지금은 기본기를 쌓는 것이 가장 중요하니 이 부분에 집중해주세요!

Q2. 학습할 때 추가 정보를 어떤 방식으로 얻을 수 있을까요?

  • 각자 필요한 정보는 다를 수 밖에 없습니다. 다양하게 탐색하는 시간을 가져보세요.
    • 기업 기술 블로그 & 테크 세미나
    • 개발자/기술커뮤니티 혹은 유튜브
    • 개발자 개인 블로그
    • IT/스타트업/개발 뉴스 : https://news.hada.io
  • 그리고 그 정보를 여러분끼리 더욱 활발히 공유하시는 것이 좋습니다.

Q3. Python / Django 이외 Java / Spring을 공부해야할까요?

  • Python / Django를 먼저 일정 수준 이상 다룰 수 있는 실력을 쌓은 뒤 고민하세요.
  • 대부분의 프로그래밍 언어는 비슷한 구조를 가지고 있기에, 하나의 언어와 기술을 깊게 공부 후 다른 언어나 기술을 접하게되면 빠른 습득이 가능합니다.
  • 다만, Java 및 Spring을 공부하고자 하는 목적이 내가 원해서 공부하는 것이 아닌 남들이 다 공부하니 해야겠다라는 목적이라면 정말로 본인에게 필요한 공부인지 다시 한 번 생각해보시기 바랍니다.
  • 절대 내가 배운 기술스택과 취업하는 회사의 기술스택이 일치하는 것이 아닙니다.
    • 배우지 않은 언어로 취업하는 경우도 있고, 언어는 동일하지만 프레임워크 등이 다를 수 있습니다.
  • 가장 중요한 것은 내가 지금 다루는 도구를 얼마나 잘하는지, 얼마나 빠르게 습득해서 활용할 수 있는지 입니다.

Q4. 처음부터 다시 시작한다면 어떻게 하면 좋을까요?

  • 파이썬 기초 문제 풀이부터 다시 시작해주시기 바랍니다.
  • 기초 문제 풀이가 완료되면 알고리즘도 가장 기초적인 문제부터 시작해주시기 바랍니다.
  • 기초가 탄탄하지 않으면 조금만 어려워도 헤매게되고, 이해가 되지않아 흥미가 떨어지는 악순환에 빠지게 됩니다.
  • 기초부터 다시 진행해주시고 언제든 도움이 필요하시다면 강사님들께 연락주시기 바랍니다.
  • 늦은만큼 더 열심히 해주세요.

강의

Q1. 교육 과정 중 커리큘럼과 연계하여 취득할 수 있을만한 자격증이 있을까요?

  • DB 수업 시간을 활용하여 SQLD 자격증을 취득하면 좋습니다.
  • 정보처리기사도 취득하면 도움이 됩니다.

Q2. 웹 관련 프레임워크 및 라이브러리 관련 추가 자료가 있을까요?

  • Python을 활용한 Web 서버 개발은 Django 과정을 기대해주세요.
  • 프론트앤드 프레임워크는 javascript 기반 프레임워크 중 대중적으로 많이 사용되는 react 혹은 Vue.js를 추천드립니다. 이는 별도로 수업에서 다루지는 않지만, 마지막 프로젝트 기간에 충분히 학습해보시는 것을 추천드립니다.
  • 추가로, 데이터 분석에 관심이 있으시다면 python 라이브러리인 pandas와 numpy 학습하고 머신러닝 분석 등으로 확장해나가시면 됩니다.

Q3. 현재 배운 내용들이 현업에서 어떻게 사용되는지 조금 더 구체적으로 알려주실 수 있을까요?

  • 메신저(디스코드)를 활용한 커뮤니케이션, 코드 리뷰, 페어프로그래밍 등은 현업에서도 활용하는 가장 기본적인 모습입니다.
  • Git/Github에서 PR이라 불렀던 pull-request 기능은 코드 협업의 기본입니다. 어떠한 기능 개발을 해야할 때 어떠한 작업이 끝나야만 다른 작업이 진행된다면 진행이 너무 더디겠죠? 그래서 git을 활용하여 개별 작업을 하게되고, 이후 기능을 모두 완성하면 PR을 생성하여 내가 만든 기능에 대해 확인받고 최종적으로 합치는 작업을 거치게됩니다. 이는 최종 프로젝트에서 활용하시게 됩니다.
  • Python은 프로그래밍 언어로 가장 기본입니다. 최근 함께 공부한 ORM을 통해 DB를 조작할 수 있는데 자유자재로 활용하기 위해선 Python에 우선 익숙해야겠죠?
    • DB의 경우 데이터베이스에서 원하는 데이터를 불러와 일련의 작업을 거쳐 유의미한 결과를 도출할 때 사용하게 되는데, 이 때 알고리즘적 사고와 함께 효율적인 작업이 가능하게 됩니다. 짧다면 짧고, 길다면 긴 2개월이라는 시간동안 정말 알차게 배우셨다고 생각합니다.
      • 비개발자들도 SQL 배웁니다. https://wonny.space/writing/work/make-data-team

취업

Q1. 취업 준비는 어떻게 하면 좋을까요?

  • 포트폴리오, 코딩테스트, 서류 및 면접 3가지 부분을 준비해주시면 됩니다.
  • 취업을 희망하는 회사를 탐색하고, 그 회사가 원하는 수준이 어느정도인지 확인하여 맞춤형 준비를 하시는것이 좋습니다.
    • 일반적으로 대기업 및 은행권은 프로젝트보다는 서류의 비중이 높습니다.
    • 일반적으로 IT기업 및 스타트업은 프로젝트의 비중이 높습니다.
  • 목표로 하는 기업에 따라 나의 현 상황에 따라 시간의 배분을 적절하게 해야합니다.
    • 예)
      • 스타트업 프론트엔드 개발자 목표, 백준 골드5
        • 코딩 테스트는 꾸준히 1문제정도 풀이를 하며 프론트엔드 개발 및 토이프로젝트에 많은 시간을 할애하는 것이 좋습니다.
        • 서류 지원, 면접 등의 시점에 따라 잠시 취업 준비의 비중을 높여나갈 수 있습니다.
      • 은행권 개발자 목표, 백준 실버 4
        • 코딩 테스트 준비의 비중을 가장 크게 가져가야 합니다. 알고리즘 문제 풀이 능력을 최소 커트라인까지 높여야 합니다.

Q2. 비슷한 과정을 거치고 취업한 선배의 꿀팁을 전수 받을 수 있을까요?

  • 선배와의 대화 시간을 마련할 예정입니다.
  • 항상 공통적으로 선배들이 하는 이야기가 있습니다.
    • 함께 하세요.
      • 먼저 입사한 친구가 추천하여 입사하는 경우도 많고, 이직을 하는 과정에서도 서로 정보를 많이 주고 받습니다.
    • 내가 투자한 시간은 절대 배신하지 않습니다. 흔적을 남기세요.
    • 멘탈 관리를 잘하세요.
      • 새로운 도전을 하신만큼 쉽지 않은 것은 당연합니다.
      • 앞으로 서류 지원 등을 하게 되면 원하는 결과가 나오지 않는 경우가 있습니다.
      • 내가 준비를 잘 하고 있다면 단순히 그 회사와 맞지 않았던 것이라고 생각하고 부족한 부분을 알게 되었다면 더 준비해서 다음 회사로 계속 도전을 했습니다.
      • 멘탈 관리에는 함께 하는 것이 도움될 때가 많습니다.
    • 본인이 어느 부분을 어필하면 좋을지에 대해 고민해보시면 좋을거 같습니다.
      • 기업 입장에서는 어떤 사람을 뽑고 싶을까요.
      • 신입에게 대단한 기술력을 요구하기보단 ‘새로운 기술을 스펀지처럼 빠르게 습득해본 경험이 있는 사람’을 뽑고자 하는 경우가 많습니다.
    • 회사에 지원할 때 회사의 배경과 위치를 미리 파악하시면 좋습니다.
      • 회사가 어떤 업무를 하고있고, 그 업무가 나한테 맡는 업무인지 고려해보는것은 정말 중요합니다.
      • 애견회사라면 애견과 관련된 데이터를 다루고, 금융권 이라면 금융과 관련된 데이터를 다루니 본인이 좋아하는 분야라면 재미있게 일할 수 있고 이는 빠른 커리어적 성장을 이룰 수 있는 발판이 됩니다.

Q3. 백엔드와 프론트엔드 중 나는 어느 분야가 잘 맞는건지 판단 기준이 궁금합니다.

  • 우선, 이제 우리 과정이 2달차에 접어들고 있는데 아직 프론트엔드 및 백엔드 관련 과정을 경험해보지 못하셨기 때문에 어느 분야가 잘 맞는건지 모르시는건 당연합니다.
  • 기준을 정해드리기보다는 추후 과정에서 직접 경험해보시며 내가 원하는 분야를 정하시는 걸 추천드립니다.
  • 사실 어떤 면에서는 굳이 지금 선택을 하기 위한 노력을 하실 필요는 없을 수 있다고 생각합니다. 가능한 많은 분야를 직접 경험해보시고 선택하시는 것이 중요합니다.
  • 과정이 끝나도 어떤 분야가 맞는지 정확하게 아는 경우가 더 적습니다. 혹은 프론트엔드를 희망해서 준비했던 학생이 백엔드 개발을 하기도 합니다. 꾸준히 개발을 학습하고 프로젝트를 하는 것이 중요하고 선택에 압박을 받지 마세요.
    • https://wonny.space/writing/work/to-backend-engineer

Q4. 코딩 공부 외 어떤 부분을 준비해야 하나요?

  • 공부 외 준비하시면 좋을 부분은 개인적으로 진행하는 토이 프로젝트가 도움이 많이 됩니다.
    • 토이 프로젝트는 완성을 최우선으로 생각해주시기 바랍니다.
    • 미완성된 프로젝트는 큰 의미가 없습니다.
    • 그리고 세상에 없는 프로젝트는 없습니다.
    • 그리고 협업으로 결과물을 만드는 것이 더 좋습니다.
  • CS 공부도 같이 병행해주시면 좋습니다.
    • 면접에서도 요긴하게 사용될 수 있으니 최소한 CS 기출 문제들은 검색 후 대답할 수 있을 정도로 공부하시길 바랍니다.

Q5. 직무 별 실제 어떤 업무가 진행되는지 궁금합니다.

  • 수업을 듣고 직접 경험하실 수 있습니다.
    • 백엔드 : API를 만들고, 프론트엔드와 주고받는 Data 형식을 정의하고, 서버 관리를 합니다.
    • 프론트엔드 : 백엔드에서 받은 Data를 어떻게 보여줄지 고민하고, 사용자 편의성(UI/UX)을 고려한 웹 페이지 개선을 진행합니다.

Q6. 포트폴리오는 어떻게 준비해야 하나요?

  • 프로젝트의 목표와 기간을 명확하게 하여 완결성 있는 프로젝트를 해야합니다.
  • 포트폴리오는 어떤 하나의 프로젝트를 완성하며 결정했던 것들이 모인 의사결정의 집합이라고 생각해주세요. 어떤 언어를, 어떤 프레임워크를 왜 사용했고 특정 기능을 구현하기 위해 얼만큼 고민을 했고 어떤 문제가 있었으며 어떻게 해결했는지와 같은 내용들이 들어갑니다.
    • 프로젝트 관리는 어떻게 하였는지
    • 프로젝트에서 내가 기여한 업무와 비중이 어떻게 되었는지
    • 내가 기능 구현에 어떠한 고민을 거쳐 어떠한 의사 결정을 했는지
    • 팀으로 같이 프로젝트를 개발함에 있어 팀웍과 관련된 에피소드가 있는지
    • 협업을 위해 개발 도구를 얼마나 잘 활용했는지(Git, 브랜치 전략, 코드 리뷰 등등)
    • README.md 또는 Wiki를 이용해서 문서화 작업을 해보았는지
    • 자동화에 대한 부분은 고려하였는지
    • 최소한 배포하여 사용자들의 일정 피드백(또는 VoC)을 받고 개선하였는지
  • 추가로 내가 풀었던 문제나 매일 공부했던 내용들은 프로젝트 외 따로 링크로 공유하오니 평소 Github 관리를 열심히 해주시기 바랍니다.
  • 신입으로써 어필하기 가장 좋은건 성장에 대한 의지입니다.

Q7. 개발자 면접에 대한 팁을 알고 싶습니다.

  • 면접은 코딩테스트 / 과제테스트 / 1차 면접 / 2차 면접 등으로 나눌 수 있습니다.
    • 코딩테스트 : SWEA D4 등급 이상 / 프로그래머스 level 3 이상 / 백준 골드 3 이상 등 대부분의 기업 코딩테스트에 통과할 수 있는 대략적인 기준 이상의 공부가 필요합니다.
    • 과제테스트 : 어떠한 기능을 구현하라고 과제를 내주는 경우로, 해당 프레임워크에 대한 깊은 공부와 여러 프로젝트를 진행해본 경험이 있으면 도움이 많이 됩니다.
    • 1차 면접 : 주로 기술 면접이 진행되며 자신이 사용한 언어와 프레임워크에 대한 지식, 그리고 CS에 대해 물어봅니다. 얼마나 알고 있는지 개념적인 부분을 확인하는 면접입니다.
    • 2차 면접 : 임원 면접으로, 해당 기업에 얼마나 잘 맞는 사람인지 보는 면접입니다. 해당 기업의 문화 혹은 업무 분위기가 어떠한지 미리 파악하고 준비하는 것이 중요합니다.
  • 많은 정보를 찾아보시고, 서로 공유 해주세요.

스터디 / 모각코

Q1. 스터디 가이드라인이 있을까요?

  • 스터디는 어떠한 스터디를 진행하느냐에 따라 운영 방법이 조금 달라질 수 있습니다.
    • 코딩테스트 스터디
      • 이론
        • 주제별 발제 형식으로 내용 정리
        • 이론에 해당하는 필수 문제 풀이
      • 문제 풀이
        • 모의 고사 & 코드 리뷰
        • 정해진 기간에 공통 문제 풀이 & 코드 리뷰
    • CS 전공 지식 스터디
      • 모의 면접
      • 주제별 발제 형식으로 내용 정리
    • 자격증 스터디 : 문제집 정해져있고, 기간이 짧고, 목표가 명확합니다.
      • 정해진 문제 풀이
      • 주제별 발제 형식으로 내용 정리
      • 모의 평가 진행
    • 추후에는 토이 프로젝트, 새로운 기술스택 학습 등을 할 수 있습니다. (지금은 때가 아닙니다.)

Q2. 모각코 가이드라인이 있을까요?

  • 모각코는 디스코드에 만들어드린 채널들을 자유롭게 이용하시기 바랍니다.
    • 내가 모각코를 시작한다면 화면공유on / 마이크off / 스피커on 상태로 시작해주세요.
    • 언제든 들어와서 질문, 이야기가 가능하도록 셋팅하고 진행해주시면 됩니다.

Updated: