프로그래밍 공부하기!

cuckoo·2022년 9월 28일
0

난 어떤 공부를 해야 할까?

  • 어떤 분야를 선택하는게 좋을까요? ⇒ 웹개발 또는 데이터사이언스 중에 추천!!
    • 웹개발
      • 수요가 가장 많은 분야인데 계속해서 커지는 중
      • 적성과 흥미
        • 무언가를 만드는 것에 관심이 있다.
        • 유저들이 사용하는 서비스를 직접 만들고 싶다.
      • 프론트엔드
        • 시각적인 것에 관심이 많다
        • 눈에 보이는 결과물이 있어야 동기부여가 잘 된다.
      • 백엔드
        • 데이터를 다루는 게 좋다
        • 복잡한 시스템을 설계하는 게 좋다
        • 추천 공부 방향: Python(언어), Django(프레임워크), SQL(데이터베이스)
        • Node.js: JS언어로 백엔드코드를 작성할 수 있게 해주는 프레임워크, 백엔드에서 Node.js를 쓰면 프론트엔드와 백엔드 한언어 JS로 통일 할 수 있어서 생산성이 높아진다.
        • Express.js
        • SQL이 필수이고 NoSQL(mongoDB)은 선택
        • 백엔드 초보자에게 추천: Python, Django, JS, Node.js
    • 데이터사이언스
      • 아직 뜨는 분야
      • 갈수록 회사들이 데이터를 잘 활용하고 싶어하고 AI에 투자하는 회사들이 많아지면서 데이터 애널리스트나 데이터 사이언티스트 포지션들이 뜨고 있음.
      • 적성과 흥미
        • 다양한 각도에서 데이터를 파악하는 것이 좋다.
        • 수학적 기법을 활용하고 싶다.
        • 인사이트를 도출하는게 끌린다.
      • 데이터 애널리스트 or 데이터 사이언티스트
        • Python, R 주요 프로그래밍 언어로 사용
        • NumPy, pandas, seaborn, PyTorch, TensorFlow
        • SQL

비개발자는 코딩을 어디에 쓸까?

  • 아이디어 구현 개발자를 구하지 안혹 원하는 것을 직접 구현해볼 수 있다.
  • 업무에 활용하는 데이터 분석
    • 직장에서 엑셀로 분석하는 것이 당연하듯이 파이썬 같은 언어를 사용하여 데이터를 분석하는 게 당연해지는 날이 올 것이다.
    • 앞으로 의사결정을 할 떄 데이터 분석을 하지 않는다면 경쟁력을 잃게 된다.
    • AB테스트를 진행
  • 업무 자동화 매일 여러 엑셀 파일을 다운받아 하나의 엑셀 파일로 합치고 이메일 전송하는 업무 파이썬의 셀레니움 기능으로 웹사이트에 접속해서 로그인해서 특정 버튼들을 클릭하여 크롤링 진행 → 엑셀을 다루기 위한 파이썬 패키지를 쓰면 원하는 형태로 엑셀을 정리 가능 → 파이썬으로 컴퓨터 내에서 정리를 하거나 이메일을 전송하는 것을 자동화 할 수 있다.
  • 개발 협업에 도움 본업이 소프트웨어가 아닌 회사에서도 개발자와 협업하기 위해서는 코딩 지식을 알아야한다.
    • 회사내 포지션
      • 프로덕트 매니저
      • 개발자
      • UX/UI 디자이너
      • 디지털 마케터
      • 세일즈 매니저
      • CX 매니터
      • 데이터 사이언티스트
      • 피플팀 매니저
      • QA 매니터

이제 뭘 하면 되나요?

  • 기본기를 쌓아라 언어의 기본적인 개념과 문법을 학습할 것
  • 직접 만들어보기: 문제해결능력
    1. 라이브러리나 프레임워크 개발 도구를 사용할 수 있는 수준이 되었기 때문에 원하는 분야를 고르고 그 분야에서 쓰이는 기술을 골라서 만들어 보기
    2. 막히는 부분, 해결해야할 문제들을 겪으면서 실력을 쌓기
      1. 코드 오류 찾기
      2. 원하는 코드 구글링으로 찾기
      3. 실행 오류 원인 찾기
    3. 문제해결능력이 길러진다면 만들 수 있는 능력은 자연스럽게 따라온다.
  • 퀄리티 높은 코드를 작성하기
    1. 안정성
      1. 많은 유저가 동시에 들어올 경우
      2. 많은 클릭을 할 경우
      3. 이메일 입력란에 긴 내용이 들어온 경우
      4. 예상치 못한 경우 발생한 문제를 대처 할 수 있어야 한다.
    2. 확장성
      1. 이미 있는 것을 바꿔야 하는 경우
      2. 바꾸고 싶을 때 일정 부분을 바꿀 수 있게 코드를 짜야한다
      3. 기능을 추가 했을 때 예상치 못한 문제가 발생하지 않게 만들어야 한다.
    3. 성능
      1. 코드가 어떻게 짜여 있는지에 따라 성능이 달라진다.
      2. 사고력을 길러주는 자료구조와 알고리즘 등을 활용하면 프로그램의 성능을 높일 수 있다.
    4. 이해가 잘 되는 코드
      1. 소프트웨어는 여러사람이 헙업해서 만드는 경우가 많다.
      2. 쓴 사람에게 물어보지 않고 의도를 파악할 수 있어야 좋은 코드다.
      3. 단순해서 눈에 잘 들어오는 코드가 좋다.
profile
ENTJ 데이터 분석가 준비중입니다:)

0개의 댓글