1. 독서 개요 및 서평
국비(부트캠프) 수료 후 취업을 준비하며 도서관에서 빌린 책. 취업을 준비하며 이력서-포트폴리오-면접에 길잡이가 필요해서 빌리게 됐다.
이 책은 전반적으로 '개발자'라는 직업에 초점을 맞추고, 개발자의 정의와 종류 - 공부방법 - 취업방법과 같은 큰 틀로 나누었고(1부~3부), 저자의 팁과 조언을 담았다.(4부~5부)
이 책의 주요 독자는 두가지로 나뉠 수 있을 것 같다.
첫째는 개발자에 관심이 있어 직업탐색을 하려는 사람이다. 이 책을 통해서 개발자라는 직업은 어떨까? 어떤 분야가 있을까? 개발은 어떻게 공부해야할까? 개발자로 취직은 어떻게?하는 가에 대한 궁금증을 해결할 수 있다.
둘째는 개발자 취업준비생이다. 개발자를 하기로 결심하고 공부(부트캠프, 국비 등)를 하고있거나 하려는 사람, 그리고 부트캠프를 마치고 취업준비를 하는사람들이 되겠다. 공부방법, 취업방법을 얻는 데에 도움이 된다.
개발과 관련된 용어가 나오기는 하지만 개발 용어에 대해서 다루는 책은 아니다. 따라서 직업탐색에 있어 정보나 팁을 얻는 책이지 '공부'를 할 수 있는 책은 아니다. 몰라도 맥락을 통해 읽을 수는 있지만 몇몇 용어는 개발자에 대해 알아보는 사람에게는 어려울 수 있을 것 같다.(ex. 객체지향 ...)
따라서 '개발자를 해볼까?'하는 사람이라면 이보다 쉽고 다양한 개발영역을 다루는 책(예: 비전공자이지만 개발자로 먹고삽니다(반병현), 오늘부터 개발자(김병욱)을 읽고 이 책을 읽으면 더 큰 도움이 될것이다. 그리고 개발자를 준비하는 사람(특히 본격적으로 공부하기 전 단계의 사람)이라면 이 책의 모든 내용이 도움이 될 것이다. 필자의 경우 부트캠프를 수료한 이후인지라, 이 책의 3부,4부를 특히 유심히 읽었다. 앞으로의 공부방법을 정립하고 취업 준비에 있어 길잡이를 하는 데에 큰 도움이 되었다.
요약을 하면서 읽는데 3-4시간 정도가 걸릴 정도로 얇은 책(260p)이다. 생소한 내용이 많다면 더 오래걸릴 것.
=========================================
2.책 내용 요약
*필자에게 도움이 되는 부분만 정리했기 때문에, 많은 내용이 생략되어 있습니다.
1부 개발자 전망과 개발 분야 소개
1장 개발자가 되어야 하는 이유
산업변화 – 기계와 로봇이 대체하는 산업변화와 일자리 변화, 세상의 변화.
개인적 이유 – 전문적이라서, 수요가 많고 이직의 기회가 많다, 선택지가 다양해서(취업, 창업, 프리랜서, 해외취업 등...)
적성에 안맞으면? - 슈퍼 개발자가 될 게 아니면, 타고나지 않아도된다. 논리적 사고력만 있으면 누구나 가능.
학벌 중요하지않나? - 학벌 외에도 코드라는 객관적인 기준을 통해 평가 받을 수 있다. 마찬가지 이유로 나이, 공백, 자격증 등 중요하지 않다.
인공지능에 의해 대체? - 생산성, 효율성은 높아지는 게 사실. but 개발은 그렇게 단순하지 않다. 의사결정영역에서 인공지능이 대체할 수 없다. 깊이있는 설계와 판단 능력의 중요성이 대두될 것.
2장 개발분야 선택하기 – 이전에 읽은 책과 중복되는 정보성 내용의 정리는 생략
2부 개발자가 되는 과정과 공부 방법
3장 공부방법 선택하기 – 독학, 부트캠프, 국비 개요와 장단점...(생략)
4장 학원 6개월 경험 및 팁 (저자)
부트캠프를 다닌 저자의 경험의 공유와 조언, 그리고 학원을 잘 다닐 수 있는 방법론적인 이야기가 주류. 이미 국비를 수료한 터라 공감되는 부분은 많지만 이미 지나왔다. 일반적인 공부방법론에 대한 부분만 정리.
1. 문법 공부방법 : 암기가 필요하다. 초반에 절대적으로 많은 양을 학습해야함.
2. 프레임워크 공부방법 : 왜 사용하는지만 이해하면 외울 필요는 없고, 암기보다는 ‘사용할 줄’만 알면 된다. 문법에 비해 이론적인 부분을 덜 공부해도 괜찮다.
3부 개발자 취업을 위한 이력서, 포트폴리오, 면접 준비 방법
5장 신입 개발자 취업과정
사실 이 책을 읽게 된 이유. 다른 ‘개발자’에 대한 입문/ 소개 책에 비해 취업에 대한 내용이 다수 있을 것 같았고 그것이 지금 원하는 정보이기 때문.
회사가 원하는 최소한의 기준? 네트워크 통신을 활용한 프로젝트 경험.
신입 개발자 채용 공고를 자주 확인하고 지원해보자.
: 회사는 어떤 기술을 원하고 어떤 자격과 능력을 요구하는지. 그리고 지원하고 면접을 보는 과정을 통해서 어떤 부분을 추가로 더 공부해야할지를 알 수 있다.
입사지원 팁
경력직 공고에 서류를 넣어보자.
꼭 들어가고 싶은 회사라면, 공고가 없어도 이력서를 넣어보자.
채용정보 사이트
1. 개발자 전용 : 원티드, 점핏, 랠릿, 프로그래머스,
2. 스타트업 : 로켓펀치
3. 일반 채용 : 잡코리아, 사람인
알고리즘(코테)
자료구조와 알고리즘의 이론적인 내용을 공부하면 코테문제를 바라보는 관점이 넓어진다.이런 능력을 평가하기 위해 코테를 보는 것.
but, 빨리 취업하는 것이 목적이라면... 특히 비전공자라면 권하지 않는다 – 흥미를 잃을 수 있음, 취업이 늦어짐..(상위 10~15% 정도만 코테를 치르고 있기 때문) 차라리 흥미와 경력을 얻는게 낮다. 개발자가 된 후에 해도 괜찮다.
알고리즘 공부 방법
자료구조와 알고리즘과같은 이론적인 내용 공부
꾸준히 문제풀기. 프로그래머스 기준 레벨3이면 충분히 잘하고 레벨 4면 상당히 잘하는 수준.
스터디 하기 – 정해진 개수의 문제 강ㅌ이 풀기, 풀이법 공유 등
6장 이력서 포트폴리오 작성 방법
노션 or 웹 이력서처럼 웹 페이지로 작성 -> 링크로 제출
한글, 워드 문서로 작성 -> PDF 파일로 제출.
이력서
프로필(이름, 이메일, 연락처, 각종 링크(블로그, 깃허브 등) / 자기소개(성향, 관심사, 장단점 등) / 기술스택(다룰 수 있는, 다뤄 본 기술)
기술스택 작성법
나쁜 예 1. 단순 나열(java, spring....)
나쁜 예 2. 구체적이지 않은 나열( java : ~할 수 있습니다. spring: ~할 수 있습니다.
좋은 예. 자세하게 기술(java: ~ 할 수 있습니다, ~알고 있습니다 *5. 구체적으로, 자세하게 내가 어디까지 다룰 수 있는지.!)
포트폴리오
내가 수행해온 프로젝트를 소개하는 문서.
프로젝트 목적, 사용 기술, 결과화면, 배운점, 문제해결, 협업방법 및 담당 역할 기술.
문제해결 작성법
단순 소개 및 요약이 아닌, 문제해결 관점에서 서술.
~문제가 있었고, ~이유로 ~어떻게 해결했음.
솔직히 신입 개발자 포트폴리오 고만고만하다. 이런 부분에서 차별점을 둘 수 있다.
예시
신입 노션 이력서 :https://bit.ly/developer_portfolio_1
신입 노션 포트폴리오 : https://bit.ly/developer_portfolio_2
경력 노션 포트폴리오 : https://bit.ly/developer_portfolio_3
신입 웹사이트 이력서&포트폴리오 : https://bit.ly/developer_portfolio_4
7장 프로젝트
직접 기획한 프로젝트 만들기
-기능과 페이지를 최소한으로 구현 – FE, BE 둘다 하는게 쉽지 않다.
-게시판, to-do list, 날씨정보, 개봉영화소개사이트 정도 추천.
-기획을 명확히 하고 문서를 작성한다.
-디자인 시 참고할 수 있는 사이트 : 비핸스, 드리블, 핀터레스트
but 기획자, 디자이너가 되는건 아니니까 기획과 디자인에는 최소한의 자원만 투입.
공공데이터, 카카오, 네이버, 구글 등이 제공하는 오픈 API를 활용.(날씨, 번역, 내비, 공유, 결제, 검색, 캘린더, 뮤직 등등...)
팀프로젝트 만들기
기획, 디자인, 개발분야등을 분업. 개발자커뮤니티(OKKY)나, 개발동아리(넥스터스, 디프만, 디앤디, 매쉬업, 메이커스, 얍, 디디디) 해커톤(이벤터스, 온오프믹스)
클론코딩 하기
아이디어, 기획, 디자인에 큰 시간과 노력을 쏟지 않아도 됨.
노마드코더, 유데미 등 강의 제공함. 강의를 보건들 단순히 코드만 베껴적지 말고 코드에 담긴 내용들을 내재화하고 그를 기록,문서화 할 것.
8장 면접 준비
보통 1차 기술 면접, 2차 인성/임원면접. 요새는 같이 일하게 되는 젊은 상사 분들이 직접 면접에 참여하기도 함.
기술면접
준비 시기 및 방법
포폴 작성할 때부터 기술면접을 준비. 면접 질문 리스트를 찾고, 이를 분야별로 나눠 정리.
예를들어 언어의 이론적인 부분 및 문법, 객체지향 이해, 메모리, 프레임워크, CS, 네트워크, 운영체제, 자료구조.
잘 정리한 내용을 자신의 방식대로 답변할 수 있어야 함. 달달 외운걸 말해봤자 티난다. 공부한 내용은 심층적인 질문으로 이어지는 경우가 많으니 가능한 완벽하게 파악하고 이해해야함.
면접스터디 추천. 여러사람과 의견을 나누고 설명하는 것.
태도
: 질문에 제대로 답을 못하더라도 평정심을 유지하고 다음 질문에 잘 답변할 것을 고민
능동적으로 임해도 좋다. 겸손하고 열린 마음이되 때로는 자기 관점을 말할 줄 아는 능동적이고 적극적인 사람이 될 것.
적절한 면접 태도
자기확신,, 열정, 간절한 의지, 긍정적인 마음, 겸손한 말투와 태도
인생 목표나 꿈과 관련한 질문을 받는다면 솔직하면서 담백하게. 대신 앞으로 개발자의 길을 갈거라는 의지는 꼭 있어야 함.
4부 시작하기전에 알았더라면
9장 시행착오를 줄이는 개발 공부 방법
개발 공부 9계명
개발 공부의 속성을 이해하자
1. 일반적인 공부방법은 이론 -> 문제 -> 숙달이다. 하지만 개발의 핵심은 결과물을 만들어내는 것이다. 이론에 대한 집착보다는 무작정 만들어 보는 것도 중요. 그 후에 이론적인 내용을 공부해도 충분하다. 학자형 개발자보다 야생형 개발자가 낫다. 많이 알아도 못만들면 소용없다. 따라서 일단 코드를 써보기(자기가 쓰든, 가져다 쓰든) -> 이것저것 바꿔보기 -> 이론학습의 순으로 하면 좋다.
2. 모든 코드를 직접 만들지 않아도 된다. 모든걸 알고 있지 않아도 된다. 개발은 오픈북이다.
3.처음부터 못한다고 한계짓지 말기. 막히면 검색해서 해결하면된다. 마음가짐에 달려있는 문제임.
직접 쳐보고, 그려보고, 찾아보자
4.문법을 익힐때는 빈 파일에 직접 코드 쳐보기.
손으로 외우는거다. 영어를 생각해보면 된다. 문법을 알아도 회화는 못한다. 코딩은 그러면 안된다. 눈과 손 모두에 익숙해져야한다.
5.모르는 영어단어는 반드시 찾아보고 외우기.
모르는 단어가 있다면 의미를 찾아보자. 그래야 오래 기억하고, 미묘한 느낌까지도 쉽게 이해할 수 있다.
6. 동작 방식은 손으로 그려보기.
코드는 도구이지 코드가 본질이 아니다. 본질은 ‘동작 방식’이다. 문제를 풀어나가는 동작 방식을 머릿속으로, 그리고 도표나 다이어그램 등으로 표현하고 코드로 옮겨보자.
7.위와 비슷한 부분인데, 동작 방식을 단계별로 쪼개서 생각하자는 것. 덩어리는 어려워도 쪼개서 차근차근 해보면 할 수 있다.
흔들리지 않는 마음을 갖자.
8.사소한 것에 영향받지 말고 멘탈관리 하기.
저자가 보았을 때 수백명의 지망생 중 개발자가 된 사람? 포기하지 않고 꾸준한 사람. 기본기가 탄탄하면 언제든 취업할 수 있다는 믿을을 갖고 우직하게 나가야한다.
9.목표를 높게 잡지 말고 재미에 집중하기
목표를 너무 높게잡으면 좌절하기 쉽다. 개발에 재미가 붙어야 지속해서 공부할 수 있고 그래야 꾸준히 성장할 수 있다.
10장 학습자료 소개
인프런 : 대표적인 강의 플랫폼.
유데미 : 해외 코딩 강의 사이트 중 가장 큰 규모. 크롬확장기능 -> 한국어자막
코딩애플 : 프론트엔드. 초심자를 위해 쉽게 가르침
드림코딩 : 프론트엔드 특화. 기초과정 이후에 좋음
노마드코더 : 풀스택. 클론코딩이 많음
에드위드 : 네이버 재단에서 운영하는 오픈 강의 플랫폼. 우수대학강의 등.
부스트코스 : 마찬가지로 네이버, 비영리. AI, BE, 모바일 등 모두 있지만 인공지능, 데이터사이언스 관련 강의가 무료라서 차별점.
Youtube
노마드코더, 드림코딩, 코딩애플
얄팍한 코딩사전(그림/도식 활용), 나도코딩(C,Python 무료강의), 코딩하는 거니(C무료강의, 코딩과 실생활 연결)
CS참고자료
크래시코스 : 컴퓨터 동작원리, 프로그래밍 기본원리 등을 배우기 좋음.
모두를 위한 컴퓨터 과학(CS50) : 하버드 CS과정. 한국어자막 가능.(네이버 부스트코스)
KOCW에서 반효경 교수.(운영체제)
도서
클린코드 : 사전처럼 활용하면 좋을 것.
리팩터링 : 유지보수가 쉽고 지속가능한 코드 개선에 도움.
객체지향의 사실과 오해 / 오브젝트 (조영호) : 객체지향 패러다임과 철학
깃허브
BE : 한정수(https://github.com/Integerous/goQuality-dev-contents) 여러 고퀄 컨텐츠 링크를 모아서 공유중.
BE : 김남윤(https://github.com/cheese10yun/TIL) java,spring! 방향 길잡이에 큰 도움.
FE : 진유림(https://github.com/milooy/TIL)
5부 마지막으로 당부의 말
11장 취업 전후 업무, 경력 관리
지속해서 성장할 수 있는 회사 찾기
-선임이 있는가?
-새로운 기술과 새로운 사업을 시도하는 회사인가?
-IT기술을 근간으로 하는가?
-코드리뷰 등 회사 나름의 개발 문화를 가지고 있는가?
취업 후 업무태도
안된다고 말하지 않기
개발을 통해 해결하지 못하는 문제는 없다. 그냥 안된다가 아니라, 해결하지 못하는 이유를 구체적으로 설명. 개발에서 해결이 안되는 문제는 없다. 개발자는 문제를 해결하는 사람이다.
프로의식 갖기
워라밸을 핑계로 책임을 버리지말자. 개발자는 이직의 기회가 잦다. 프로의식이 없으면 성공하지 못한다. 1-3년차 동안 여러 일을 경험하면 웬만한 일을 거의 해결할 수 있다. 이 시기에 정말 일과 공부를 열심히해 성장해야한다.
더 넓은 시야 갖기
개발자라고 개발만 해서 되는 것은 아니다. 마케팅, 기획 등 다른 부서의 니즈와 그 핵심을 파악해야한다. 실제로 연관성도 높아지고 있다. 개발자만큼 사업하기 쉬운 사람이 없다. 나중에 큰 자산이 될 것.
취업 후 자기계발
항상 왜?를 생각하기.
- 새로운 기술 학습
-리팩토링 고민
-배포과정 단순화
-재사용성/유지보수성 높은 아키텍처 도입
-나 자신의 성장.
성장하려는 의지와 행동이 없는 개발자는 실력이 늘지 않는다. 확신이 없다. 연차가 높아도 마찬가지다. 이런 악순환을 끊으려면, 항상 ‘왜’ 그런 것인지 고민하는 것부터 출발해야 한다. 왜 이렇게 동작하는지, 구조와 원리를 이해해야한다. 객체지향은 왜 생겨났는지, 왜 중요한지, 등등.. 근본적으로 왜 그런 차이가 있는지에 대한 자문과 답변.
기본기에 충실하기
이론과 동작원리를 이해하는 사람이 처음에는 느려 보일지 몰라도 시간이 지나면 훨씬 발전되어있다. 개발자로서 문제해결자가 되어야한다. 문제를 정확하게 분석하고 해결 관점을 제시할 줄 알아야한다.
이런 해결자가 되려면, 기본기가 중요하다. 문법, 프레임워크의 기본 내용과 동작 원리, 구조, CS...... 정확한 지식이 있어야 정확한 해결책을 제시할 수 있다.
'About Dev. > Book' 카테고리의 다른 글
기술 면접 대비 CS전공 핵심요약집, 이수진, 2023. 08 (1) | 2024.01.14 |
---|---|
오늘부터 개발자, 김병욱, 2021.11 (1) | 2024.01.02 |
Do it! 첫 코딩 with 자바 (0) | 2023.07.03 |
비전공이지만 개발자로 먹고삽니다, 반병현, 이효석, 2023.01 (1) | 2023.05.14 |