My 468-Day 경험: The Odin Project - Ruby 섹션 완료
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
개발 툴
대상자
- 소프트웨어 개발 초보자 및 중급자
- JavaScript에서 Ruby로 전환을 고려하는 개발자
- 프로젝트 기반 학습과 실무 경험을 얻고자 하는 학습자
- 난이도: 중간 수준 (Ruby 문법, OOP, 알고리즘 분석 포함)
핵심 요약
- 686시간(468일) 동안 Ruby 학습
- JavaScript에서 Ruby로 전환하며 Enumerables와 OOP 등 핵심 개념을 습득
- Knight Travails 프로젝트는 알고리즘 최적화와 추상적 사고에 큰 도움
- Ruby 문서와 RSpec 테스트 도구 활용
- 문서에서 gem과 one-liner 활용으로 코드 품질 향상
- 프로젝트 기반 학습의 효과
- Caesar Cipher, Stock Picker, Tic Tac Toe, Chess 게임 등 다양한 프로젝트 통해 실전 개발 경험
섹션별 세부 요약
1. 학습 기간 및 루틴 변화
- 468일(686시간) 동안 Ruby 섹션 완료
- 아침 30분~1시간 추가 학습 및 90분 이른 아침 학습으로 집중력 향상
- Techno 음악 수용으로 장문의 문서 학습 시 집중력 유지
2. Ruby 학습 과정의 어려움
- Variables, Hashes, Arrays 등 기본 문법 학습
- Loops와 복잡한 로직 처리 시 어려움 경험
- Debugging 기법이 JavaScript와 차이 있어 초기 어려움
- Enumerables 학습 후 JavaScript 대비 10줄 → 1줄로 코드 간결화 가능
3. 프로젝트 기반 학습
- Caesar Cipher: Z 이후 알파벳 이동 처리가 가장 어려웠음
- Substrings: 'reduce' 메서드 사용으로 복잡도 줄임
- Stock Picker: 가격 배열과 매수/매도 날짜 매칭으로 최대 수익 계산
- Bubble Sort: 추가 자료 조사와 영상 강의로 이해 가능
4. OOP 섹션
- Tic Tac Toe 및 Mastermind 게임 개발로 OOP 개념 익힘
- Car Engine 비유로 객체 간 의존성 이해
- Debugging vs. 차량 수리 비교를 통한 실무적 통찰
5. TTY 및 알고리즘 분석
- TTY(terminal devices) 처리가 복잡해 추가 강의 작성
- RAM 작동 원리와 알고리즘 속도 계산 포함
- Knight Travails: 유일한 알고리즘 접근 방식으로 Mental Effort 요구
6. Git 및 테스트 도구
- Git과 GitHub의 복잡성 해결
- RSpec 학습: 테스트 코드 작성과 실제 코드 개발 순서 조정
- Chess 게임: 테스트 코드 미리 작성 어려움, 점진적 개선
결론
- Ruby 문서는 초기 단계는 무리하지만, 깊어질수록 gem과 one-liner 활용으로 생산성 향상
- Enumerables 및 OOP 프로젝트는 실무 개발에 직접적으로 적용 가능
- The Odin Project의 프로젝트 기반 학습은 개념 습득과 문제 해결 능력 향상에 효과적
- Knight Travails처럼 복잡한 알고리즘 문제는 문제 분석과 알고리즘 선택 능력 향상에 유리