티스토리 뷰

개발공부

커리어 스킬 #1

진고월드 2023. 3. 2. 23:47

리액트 쿼리 익히기도 바쁜 마당에 타입스크립트까지 케찹을 계속 뿌려대는 탓에 프로젝트 개발 진행 속도가 현저히 느려지고 말았다. 꾸역 꾸역 쑤셔 넣은 옷가지 마냥 내 머릿 속에서 뒤죽박죽 엉켜 버린 느낌이다. 나는 잘 개서 넣고 싶은데, 잘 개는 방법 배우는 게 쉽지 않다. 여기서 쉽지 않은 건 절대적 시간의 부족함을 말한다. 결국 프로그래밍 언어도 말 그대로 언어인지라 계속 익히고 써먹어야 익숙해지지, 생전 처음 보는 언어를 원어민 처럼 쓸 수는 없는 노릇 아닌가. 결국 늦게 시작한만큼 제대로 내 실력을 늘리려면 절대적 공부량을 늘리는 게 첫 째, 공부의 밀도를 높이는 게 둘 째가 되겠다. 그 시간동안 얼마나 영리하게 공부하고, 계획을 잘 짜고, 헛 짓거리 안하는지는 내 의지와 노력에 좌우되겠지.

그래서 머리도 식힐 겸, 부트캠프 기간 동안 읽었던 '커리어 스킬'을 다시 꺼내 읽었다. 좋은 책과 문장은 다시 볼 때 마다 의미가 새롭다고 했던가. 그런 의미에서 이 책은 좋은 책임에는 틀림없다. 다만 고객 타깃층이 모든 프로그래밍 직군을 대상으로 광역기를 썼기 때문에 나에게 불필요한 내용이 있는 편이지만, 그럼에도 불구하고 좋은 내용들이 많다고 생각한다.

 


 

책의 방향성은 명확하다. 개발자의 역량을 끌어 올리는 것이다. 그렇기에 대상층이 다양해질 수 밖에 없다. 부트캠프를 진행하며 기술 서적들과 병행하여 읽다 보니 완독보단 전략적인 독서가 필요했다. 그래서 나에게 제일 필요하다 생각되는 부분부터 내용을 정리해보았다.

 

목록

1부. 소프트웨어 개발자로 입문하기
2부. 일자리 구하기
3부. 소프트웨어 개발에 대해 알아야 할 것
4부. 개발자로 일하기
5부. 경력 발전시키기

 


 

1부. 소프트웨어 개발자로 입문하기

 

2장. 입문하기

운동선수가 되는게 목표라면 어떻게 준비를 할까? 개발자가 되는게 목표라면? 다를 바 없다.

  1. 우선 종목을 골라라.
  2. 어떤 훈련이 필요한지 알 수 있다.
  3. 무엇을 배울지 집중하라. 순서를 정해라.
  4. 첫 직장을 구하기 위해 필요한 걸 찾아라.

 

구체적인 사례는 늘 도움이 되니 스스로 목표를 세분화 하는 연습을 하자.

  • 목표: 여행업계의 새로운 페러다임, 체계화된 글로벌 서비스
  • 세부 목표
    • 출근이 자유롭다.
    • 해외 여러 나라에 근무해본다.
    • 나, 가족이 충분히 풍족 할만큼의 수입
    • 내가 재밌어야 한다.
    • 프론트 앤드 개발자 > 인터렉티브 디벨로퍼(디자인 UX를 같이 다루는 개발자) > 풀스택 개발자(백앤드까지 자유롭게 넘나드는 능력자)
    • 나의 강의 및 채널 운영
  • 햇병아리 계획
    • 학습
      • 자바스크립트
      • 타입스크립트
      • HTML, CSS
      • Node.js 기초
      • 컴퓨터 공학
      • 알고리즘
      • React
    • 취업준비
      • 사이드 프로젝트
      • 포트폴리오
      • 이력서
      • 기술 면접
      • 스터디
    • 취업
      • 외국계 여행, 트레킹, 지도 관련 업체
      • 성장할 조건이 충분한 곳

 

3장. 당신이 배워야 하는 기술

가장 큰 도움이 될 핵심 기술

  • 프로그래밍 언어 한 가지 익히기: 하나 익히면 나머지 배우기는 쉽다. 비슷하기 때문에.
  • 코드를 구조화하는 법: 언어부터 익힌 후 코드 구조화 하는 법을 익힌다. 처음 배울 때 깔끔하게 작성하는 습관을 익혀두는 게 좋다.
  • 객체지향 설계: 업계에서 가장 인기 있다.
  • 알고리즘과 데이터 구조: 잘 모르면 기존의 해결책도 활용할 수 없고, 잘하면 문제 해결 능력에 큰 도움이 된다. 특히 면접에 가장 중요하게 요구된다.
  • 개발 플랫폼과 관련 기술: 적어도 플랫폼 하나와 관련 기술, 프레임 워크를 능숙하게 써야 한다. 회사가 개발자를 고용하는 기준이 된다.
  • 프레임워크와 스택: 프레임워크는 라이브러리 세트, 스택은 기술 세트. 이들을 통해 앱 개발이 쉬워지고 회사들은 이를 활용할줄 아는 개발자를 원한다.
  • 데이터베이스 관련 기본 지식: 기초적인 이해 정도는 갖춰야 한다. 관련 전문 팀을 두지 않는 회사도 있기 때문에 내가 맡게 될 수도 있다. 더구나 데이터베이스와 연동되는 코드를 작성할 일이 생각보다 많다.
  • 소스 제어: 모든 개발에 반드시 필요하다. 깃, 깃헙 등.
  • 빌드와 배포: 요즘 개발 프로젝트에는 자동 빌드, 배포 시스템이 쓰이지만 기본적인 작동 방법과 과정은 이해해야 한다.
  • 테스트: 좋은 개발자는 자신이 쓴 코드를 다른 사람에게 넘기기 전에 테스트해본다. 타협의 여지가 없다.
  • 디버깅: 개발자가 되면 일하는 시간의 90%는 왜 코드가 작동하지 않는지 고민하다가 지나갈 것이다. 어떻게든 자신이나 다른 사람이 작성한 코드를 디버깅할 방법을 배워야만 한다. 어차피 해야 하니 효과적으로 해낼 방법을 배우는 게 낫다.
  • 방법론: 애자일 개발이 대표적이지만 팀마다 다르니 팀의 방법론을 따른다.

 

4장. 기술을 발전시키는 방법

두꺼운 기술 서적을 독파하는 게 별 도움이 되지는 않는다.

  • 추천 학습법
    • 목표를 세워라. 얼마나 배웠는지 측정할 기준을 세워라. 목표 달성 여부를 확인할 방법까지 생각해두는 사람은 극소수다.
    • 실습에 돌입할 수 있을 정도의 내용을 공부하라. 실습하며 떠오르는 질문에 대한 답을 찾아라.
    • 배운 내용을 남에게 가르쳐라.
  • 책을 읽거나 튜토리얼 동영상을 보는 것만으로 기술을 배운다는 건 어불성설이다. 책을 읽는데서 멈추지 않는 것이 핵심. 공부한 부분은 반드시 실습해보자.
  • 기술을 가르치는 방법
    • 큰그림을 그려주자.
      그 기술로 무엇을 할 수 있는지에 대한 개요부터.
      도구의 사용법까지는 몰라도 된다. 하지만 도구의 존재조차 모른다면 매우 불리하게 시작한다.
    • 시작하는 방법을 알려주자.
    • 자주 사용하는 기술부터 알려주자.
    • 기술 발전에 도움이 될 전문 블로그를 알려주자.
      프로그래밍 언어의 문법이나 프레임워크의 작동 방식을 이해하는 것과 그 기술의 관용적인 쓰임새를 이해하는 건 다른 문제다.
    • 연습하라.

 

5장. 프로그래밍 언어 고르기

어떤 언어든 한 개에 집중하라. 첫 번째 언어를 배울 때가 가장 어렵다. 나머지는 비슷하다.

  • 언어의 장래를 고려하자.
  • 흥미가 가는 기술을 고르자.
  • 난이도를 고려하자.
  • 참고 자료의 양을 파악하자.

한 언어를 깊이 있게 아는 것이 프로그래머가 갖춰야 할 최고의 덕목이었지만, 오늘날 프로그래밍은 조금 더 높은 수준으로 이루어진다. 언어 자체의 기능보다 라이브러리와 프레임워크를 어떻게 활용하느냐가 중요하다.

 

6장. 첫 번째 프로그래밍 언어 배우기

  • 이상적인 방법
    • 잘 작동하는 애플리케이션 살펴보기
      오픈 소스 애플리케이션을 하나 골라서(인기있는 것 추천) 소스 코드를 살펴보자. 아무것도 이해 되지 않을 수도 있다. 고대 문명이 남긴 글을 이해하려는 고고학자가 되었다고 생각하라. 자신이 배울 프로그래밍 언어가 어떻게 생겼는지조차 모르는 대부분의 프로그래머들보다 훨씬 유리한 출발점을 선점하는 것이다.
    • 몇 가지 참고 자료 훑어보기
      지형을 파악하는 게 핵심이다. 자료들을 처음부터 끝까지 꼼꼼히 읽지 말자. 훑어보자.
    • 실습하자.
      빨리 시작할수록 좋다. 기본 툴을 익히고 테스트하는 단계.
    • 기본 문법을 배우고 실제 문제로 테스트해보기
      대부분의 언어는 다음 기능들을 공통적으로 가지고 있다.
      (출력하는 방법 /수학 기능 /변수에 정보를 저장하는 법 /함수, 메서드, 모듈로 코드를 정리하는 법 /함수, 메서드 호출 불 논리 평가 수행 /조건문 /반복문)
      자신이 무엇을 공부하는지, 배운 내용이 어떻게 적용되는지 항상 이해하도록 노력하자.
    • 기능과 라이브러리 구분하기
      최근 등장한 언어들은 둘을 구별하는게 헷갈리곤 한다. 해당 언어의 범위가 어디까지이고, 라이브러리의 범위는 어디까지인지 세심하게 확인하는 게 좋다.
      오늘날 프로그래밍에서는 그 언어를 완벽하게 통달하느냐보다 라이브러리와 프레임워크 사용법을 아느냐가 중요하다.
    • 기존 코드 리뷰하고 한 줄씩 이해하기
      많은 초보 프로그래머가 좀처럼 진도를 나가지 못해서 좌절감을 느끼는 단계다. 코드를 한 줄씩 살펴보면서 각 줄과 문장이 그 코드에서 어떤 역할을 하는지 정확히 파악하자.
    • 무엇이든 만들어보기
      소소한 프로젝트 아이디어를 몇 개 골라서 애플리케이션 제작에 돌입하라.
      자신이 배운 프로그래밍 언어와 표준 라이브러리를 활용하는 데 중점을 둔 단순한 애플리케이션을 만드는 데 집중하라.
    • 프로그래밍 언어를 특정 기술이나 플랫폼에 적용해보기
      유용한 프로그램을 만드려면 배운 능력을 특정 기술이나 플랫폼에 응용할 줄 알아야 한다. 배운 언어를 바탕으로 취업하는 데 유용한 전문 기술을 발전시켜 나갈 단계다.
    • 어려운 알고리즘 문제 해결해보기
댓글