ㅎㅇ 코딩 입문자들이 종종 보여서 써보는 글임
나도 허접이지만 조금이나마 입문자에게 도움이 됐으면 해서 씀
주의할 점으로 나는 게임 개발쪽이고 C#, 유니티가 메인이라 그 외 지식들이 틀렸을 수도 있음


0. 뭐부터 배워야함?

우선 하고 싶은 분야를 말해줘야함

Stackoverflow 2022 인기있는 언어 설문조사
위 사진처럼 사용되는 프로그래밍 언어는 다양한 편임. 왜냐하면 언어마다 특화된 분야와 성능이 다르기 때문
즉 분야나 진로를 정하지 않았다면 무엇을 해야할지 조언해주는게 불가능함
반면에 저 게임 개발 하고 싶은데 뭘 배우는게(어떻게 시작해야) 좋을까요? 이런 질문이면 바로 (C#/Unity), (C++/Unreal) 댓글 달리고 서로 편하고 효율적임
언어/분야 관련 내용
가장 유명하고 들어봤을 Python, Java Script(JS)와 다른 언어들을 가볍게 설명해 보자면
- Python - 배우기 쉽고 뭔가 할 수 있는게 많음. 웹 스크랩핑, AI, 자동화, 백엔드 등
- JS - 프론트엔드 개발 필수 언어. 다른 것도 가능
- Java - 백엔드 (국내), 게임 등
- C/C++ - 빠른 성능. 임베디드 개발 등 C++은 게임 개발에 많이 쓰임
- C# - 유니티 게임 개발, 웹개발 (해외) 등
이와 같이 언어마다 특화된 분야가 다름. 그러니 분야를 먼저 정하고 언어를 선택해 배우고 특화하는게 매우 효율적임
구글에 [게임 / 웹 / 서버 / 보안 / AI / 임베디드] 에 사용되는 언어 검색하면 바로 나옴. 이 외에도 더욱 많은 종류, 세부적인 개발 종류가 나뉘어짐… 그래서 여기에 담기엔 너무 방대해져서 직접 검색해보는게 나음
https://arca.live/b/programmer/70524056
막막하다면 읽어보면 좋을 글
개발로 먹고 살고 싶은데 아직 분야를 못정했다면 Python, JS 로 시작해서 프로그래밍 기본 개념을 익히는걸 추천
1. 어떻게 배움?
책, 유튜브, 인터넷 강의
책과 유튜브의 공통적인 장점은 이렇게 생각함
- 한국어
- 정보가 정제됐다
- 난이도에 따라 순서가 배치됐다
유튜브 검색은 “[언어] 강의” 치면 많이 나오고
책은 "[언어]" 치면 엄청 나옴
둘 중 하나를 추천하자면 나는 책을 더 선호하긴 하는데, 무료와 폰과 컴퓨터로 볼 수 있는 접근성 때문에 유튜브도 매우 훌륭한 방법이라고 생각함
책은 가만히 멈춘 상태로 코드와 설명하는 글을 번갈아 보기 좋고, 책 특성상 출판하고 수정할려면 새로 책을 찍어야 하니 저자와 검수팀이 가독성을 위해 오지게 수정한 결과물이기 때문에 대부분 퀄리티가 좋을 수 밖에 없음. 다만 돈이 좀 나가고 보관해야하고 E-Book이 아니면 접근성에 제한이 좀 있음
서점에서 견본 한 번 쭉 훑어보고 사거나, 사람들한테 [언어] 책 추천좀 혹은 구글에 검색해서 좋게 얘기하는 책 구매 ㄱㄱ
개인적인 입문자 책 추천 리스트
혼자 공부하는 시리즈
Do it! 시리즈
몇개는 위키독스에 무료로 풀어주시기 까지 했음
C++
C#
유튜브는 위에서도 말했듯 무료이면서 접근성이 좋다는 장점이 있음. 수익과 관련되기 때문에 퀄리티가 높은 영상들이 많음. 개인적으로 느끼는 단점은 코드 휘리릭 설명 휘리릭 영상이 계속 진행되다 보니 정신없고 이해가 잘 안되는 부분이 생기기도 함
능력만 된다면 가장 추천하는건 공식 문서 읽는 거긴 한데 영어인게 많음. 나중에 얘기긴 한데 영어가 어느정도 되고 프로그래밍 개념이 익혀지면 공식 문서 읽는게 가장 추천되고 이해도 쉬울거임
유튜브는 위에서도 말했듯 무료이면서 접근성이 좋다는 장점이 있음. 수익과 관련되기 때문에 퀄리티가 높은 영상들이 많음. 개인적으로 느끼는 단점은 코드 휘리릭 설명 휘리릭 영상이 계속 진행되다 보니 정신없고 이해가 잘 안되는 부분이 생기기도 함
(그 외 인터넷 강의 사이트 글 정리 링크 예정)
코딩도장의 C언어, 파이썬 강의도 추천함
2. 어디까지 배워야 함?

적어도 한 언어의 기초/고급 문법을 마스터 해야한다고 생각함. 그래야 다른 언어로 넘어가게 되더라도 금방 배우게 됨
보통 어떤 방식이던지 그 강의를 전부 끝 마치면 됨. 언어마다 기준이 다르긴 한데 내가 생각하는 조건을 적어보자면…
- 변수, 함수 개념을 이해하고 자유자재로 작성하고 활용할 수 있다
- 클래스 상속과 상속 문법을 활용할 수 있다
- 텍스트 RPG, 자판기, 은행 같은 프로그램을 내 생각대로 구현해볼 수 있다
- 이 외에 책이나 강의에 나오는 고급 문법
3. 문법 다함 이제 뭐함?
사실 언어만 알아서는 한계가 있음. 라이브러리, 프레임워크를 써야함. 이제 그 언어로 뭔가 할 수 있도록 도와주는 걸 써야 됨. 이것들도 특정 분야에 특화된게 있음
간단한 설명으로 게임을 예시로 그래픽 출력, 물리, 수학, 빛 반사 등을 우리가 직접 구현할 필요 없이 훌륭하신 분들이 이미 짜놓은 코드를 우린 가져다 쓰기만 하면 되는 것
대표적인 프레임워크 목록
- Django, Flask - Python 기반 백엔드
- Spring - Java 기반 백엔드
- Vue.js - JS 기반 프론트엔드
- ASP.NET - C# 기반 백엔드
- Unity - C# 기반 게임 엔진
- Unreal - C++ 기반 게임 엔진
프레임워크가 아닌 React (웹, JS), Node.JS (JS 실행환경) 등 엄청 많음
이제 자기 분야에 따라 프레임워크, 라이브러리 등을 파고, 그 기술을 익히면 됨. 하다보면 자신이 어느 부분이 부족하고 약한지 알게되고 그 부분을 공부하면서 실력을 키워나가면 됨 (취업이 목표라면 해당 회사가 무슨 기술을 요구하는지)
사실 여기까지 도달했다면 분야마다 천지차이라 커뮤나 현직자에게 무엇이 막히고 무엇을 해야할지 조언을 구하는게 좋을 것 같음

부족한 글 봐주셔서 감사합니다
피드백 환영