이 책의 저자 코리 알트호프는 처음부터 프로그래밍을 배운 사람이 아니었습니다. 정치학을 전공했다가, 프로그래밍에 흥미를 느껴서 독학으로 공부하고 이베이를 비롯한 여러 회사에서 프로그래머로 일하게 됐습니다. 저자는 자신의 그런 경험을 살려서 프로그래밍을 어떻게 공부해야 할지부터 시작해 프로그래머로 취업하려면 어떻게 해야 하는지까지 설명하고 있습니다.
어떤 독자를 위한 책인가?
-. 프로그래밍을 전혀 경험해보지 못한 비전공자 (중/고등학생, 대학생, 일반인)
-. 독학으로 프로그래머가 되고 싶은 사람
-. 더 나은 개발자로 성장하기 위해 고민하는 초급 프로그래머
나도 프로그래머가 되고 싶다!
그런데, 어디서부터 시작해야 할지 모르겠다.
"이제 뭘 하지? 난, 아직 프로그래머도 아니고 다음에 뭘 배워야 할지도 모르겠어."
프로그래밍 입문서를 읽은 비전공자의 반응은 대부분 이렇습니다.
이 책은 프로그래머가 되려는 사람들이 무엇을 배워야 하는지 짚어주기 위해 만들었습니다.
효율적인 학습을 위해 일단 프로그램을 만드는 법을 먼저 배우고 원리가 궁금해지는 단계에서 이론을 배우는 방식으로 구성했습니다.
예제는 프로그래밍을 처음 배우는 사람이 쉽게 배울 수 있는 파이썬을 사용했습니다.
이 책의 목표는 독자 여러분에게 지도를 그려주는 것입니다. 그 지도를 따라가다 보면 전문적인 프로그래머가 되기 위해 무엇을 배워야 할지 알게 될 것입니다.
가장 마음에 와 닿았던 것은 이 분야를 전공하지 않은 저자가 어떻게 이 분야에 적응하게 되었는지, 그리고 어떻게 개발자로서 역량을 키워왔는지에 대한 부분이었습니다. 이 점만 보더라도 프로그래밍과 관련하여 처음 시작하는 독자들에게 큰 배움이 될 것이라 생각합니다.
- 김종욱, 카이스트 CALAB -
코리 알트호프는 독학으로 프로그래밍을 배운 프로그래머이자 작가이다. 코리는 클렘슨 대학에서 정치학을 전공했지만, 이베이를 비롯해 실리콘밸리의 여러 스타트업에서 소프트웨어 엔지니어로 일했다. 프로그램을 만들지 않을 때는 독서와 여행으로 시간을 보내며, 현재 오리건의 포틀랜드에 살고 있다.
Chapter 1. 프로그래밍 소개
01 시작하기
__프로그래밍이란?
__파이썬이란?
__파이썬 설치하기
__문제가 생겼을 때
__대화형 셸
__프로그램 저장하기
__예제 프로그램 실행하기
02 프로그래밍 소개
__예제
__주석
__출력하기
__행
__키워드
__공백
__데이터 타입
__상수와 변수
__문법
__에러와 예외
__산술 연산자
__비교 연산자
__논리 연산자
__조건문
__문
03 함수
__개념 표현
__함수
__함수 정의
__내장 함수
__함수 재사용
__필수 매개변수와 옵션 매개변수
__스코프
__예외 처리
__독스트링
__변수는 필요할 때만 사용하십시오
04 컨테이너
__메서드
__리스트
__튜플
__딕셔너리
__컨테이너 안의 컨테이너
05 문자열 조작
__3중 따옴표
__인덱스
__문자열은 불변입니다
__병합
__문자열 곱셈
__대소문자 바꾸기
__format
__split
__join
__공백 없애기
__replace
__인덱스 찾기
__in
__문자열 이스케이프
__줄바꿈
__슬라이스
06 루프
__for 루프
__range 함수
__while 루프
__break 문
__continue 문
__중첩된 루프
07 모듈
__내장 모듈 불러오기
__다른 모듈 불러오기
08 파일
__파일에 쓰기
__자동으로 파일 닫기
__파일 읽기
__CSV 파일
09 이 장을 마치며
__행맨
10 연습하기
Chapter 2. 객체 지향 프로그래밍
11 프로그래밍 패러다임
__상태
__절차적 프로그래밍
__함수형 프로그래밍
__객체 지향 프로그래밍
12 객체 지향 프로그래밍의 네 가지 기둥
__캡슐화
__추상화
__다형성
__상속
__합성
13 객체 지향 프로그래밍 심화
__클래스 변수와 인스턴스 변수
__매직 메서드
__is
14 이 장을 마치며
__카드
__덱
__플레이어
__게임
__War
Chapter 3. 프로그래밍 도구
15 배시
__따라하기
__배시 찾기
__명령어
__최근 명령어
__상대 경로와 절대 경로
__이동
__플래그
__히든 파일
__파이프
__환경 변수
__사용자
__더 알아보기
16 정규 표현식
__준비
__단순 일치
__처음과 끝에 일치
__여러 문자에 일치
__숫자 찾기
__반복
__이스케이프
__정규 표현식 도구
17 패키지 매니저
__패키지
__pip
__가상 환경
18 버전 컨트롤
__저장소
__시작하기
__푸시와 풀
__푸시 예제
__풀 예제
__버전 복구하기
__diff
__다음 단계
19 웹 스크래퍼 만들기
__HTML
__구글 뉴스 스크랩
Chapter 4. 컴퓨터 공학
20 자료구조
__자료구조
__스택
__스택으로 문자열 뒤집기
__큐
__영화표 큐
21 알고리즘
__피즈버즈
__순차 검색
__회문
__애너그램
__글자 세기
__재귀
Chapter 5. 훌륭한 프로그래머가 되는 방법
22 프로그래밍 모범 사례
__코드 작성은 최후의 수단입니다
__DRY
__독립성
__데이터에는 한 가지 표현만 존재해야 합니다
__함수는 한 가지 일만 해야 합니다
__너무 오래 걸린다면 실수한 것일 수 있습니다
__처음부터 최선을 다하십시오
__관례를 따르십시오
__좋은 IDE를 사용하십시오
__로그
__테스트
__코드 리뷰
__보안
23 프로그래머가 되려면
__진로를 정하십시오
__초기 경험 쌓기
__면접 응시하기
__면접
__컨닝
24 팀에서 일하기
__기본을 마스터하십시오
__검색할 수 있는 것을 묻지 마십시오
__코드 변경
__가면 증후군
25 더 배울 것들
__고전
__온라인 클래스
__해커 뉴스
26 다음 단계
__멘토를 찾으십시오
__더 깊이 들어가십시오
__다른 조언
Appendix A 파이썬으로 만드는 스크래퍼
계획 세우기
일정한 형식으로 통일하기
전체 루프 만들기
예제 부분의 리스트 만들기
리스트를 순회하면서 URL 찾기
URL에 방문해서 파일 이름 찾기
찾은 파일 읽기
예제 파일을 절에 따라 구분하기