왜 저는 코딩을 배우고 있는가? (그 다음은 무엇인가?)
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
개발 툴
대상자
- 초보 프로그래머 및 자기계발 중심의 학습자
- 난이도: 기초 수준 (초보자에게 추천, 추상화 개념 이해에 초점)
핵심 요약
- C/C++ 학습의 목적: 추상화를 넘어 시스템 레벨 개념(예:
stdout
, 포인터)을 깊이 이해하기 위해 선택 - 프로젝트 기반 학습: UNIX 쉘 구현을 통해 실무 경험 확보
- 자원 추천: FreeCodeCamp 및 Stephen Brennan의 쉘 개발 튜토리얼 활용
섹션별 세부 요약
1. 학습 동기 및 언어 선택
- 추상화의 단점: 자바스크립트, 파이썬 등 고수준 언어는
print("hello")
와 같은 추상화로 저수준 동작(예:stdout
)을 숨기는 문제 - C/C++의 장점: 포인터, 메모리 관리 등 핵심 개념을 직접 학습 가능
- 목표: 시스템 레벨 프로그래밍 이해 및 GPU/게임 개발으로의 전환 준비
2. 학습 자원 및 프로젝트 계획
- 자원:
- 프로젝트: UNIX 쉘 구현 (C 언어로 작성, 실무적 구조 이해)
- 다음 단계: C++ 학습 후 GPU 프로그래밍 또는 게임 개발 탐색
3. 환경 및 추천
- 운영체제: Linux (Arch) 사용 권장 (Windows 의존성 없음)
- 추천: Linux 전환 또는 듀얼부팅 고려 (소프트웨어 호환성 문제 해결)
- 장기 목표: 자율적인 개발자 커뮤니티 구축을 위한 지속적인 학습과 공유
결론
- 초보자에게 C/C++ 학습을 추천하며, 실제 프로젝트(예: UNIX 쉘)를 통해 시스템 레벨 개념을 체계적으로 습득해야 함.
- Linux 환경에서의 개발은 성능 최적화 및 자원 관리 능력 향상에 도움.
- 프로젝트 기반 학습과 커뮤니티 공유는 기술 습득과 동기 유지에 효과적.