1. programming을 처음 접해본 사람들에게

Post on 13-Apr-2017

150 views 3 download

Transcript of 1. programming을 처음 접해본 사람들에게

"개발자와 컴퓨터의 대화"

“그런데 개발자가 일방적으로 모든 것을 명령하는 대화”

“문제는 컴퓨터가 사람이 아니라는 것”

명령만으로 상대와 대화한다는 것.

“무척 힘들고 정확해야하며 예측 외의 상황이 발생한다”

2> 왜 어려울까?

“컴퓨터 입장에서 할 수 있는 것만 명령해야 한다”→ 컴퓨터는 알아서 해주는 존재가 아니다.

결국, 한국어를 모르는 사람에게 전주 비빔밥 만들라고 명령하는 것과 같다.

하나도 빠짐없이 모든 것을 알려주고(선언, 정의), 상세하게 지시(로직구현)를 해야한다.

그래도 결과는 예상치 못한 일(버그)들만 발생한다.

→ this is programming 이다.

3> 명령어와 언어란?

“명령어를 구현하는 문법체계가 언어(Programming language)이다”“인간 입장에서 컴퓨터와 소통하는 언어는 많다.”“그리고 어떤 프로그램을 만들 것이냐에 따라 선택할 수 있는 언어는 달라진다”

그런데 문제가 있다. 컴퓨터(H/W)는 언어따위는 모른다는 것이다?! 컴퓨터는 특정 메모리에 0 or 1의 값이 있는 가에만 관심있다

그러면 개발자가 만든 프로그래밍 언어는 도대체 어떻게 컴퓨터가 이해하는 것일까?

“좀 읽을 것이 많지만, 읽어주시면 좋을 듯 합니다. ^^”

결국 많은 언어는 OS가 이해할 수 있는 코드로 다시 번역되고 컴퓨터(H/W)와의 대화는 OS(드라이버)가 알아서 한다.

Application Programming은 개발자가 “Language”와 “Tool(SDK)”를 가지고OS(Windows, linux, Mac OS)가 이해하는 실행파일(.exe or etc)을 만드는 행위이다.

javaC++C#

Python …

1.Text file

3. binary file(executable)

2. compile & build

4> Programming 오해

Q1> 프로그래밍은 명령어나 함수를 모두 알아야 가능한 것이 아닌가?

A1> 당신은 한국어를 모두 알고 사람들과 이야기 하는 가? 멋진 대화를 위해 필요로 하

는 단어들은 생각보다 몇 개 안된다. 프로그래밍도 사용하는 자신에게 필요한 명령어와 함수만 사용하게 된다.

Q2> 프로그래밍은 원리를 이해하는 것이 최우선인가?

A2> 인생의 모든 원리를 이해하고 사는 사람은 없다. 당신이 물리와 역학을 이해한 상

태로 자동차를 운전하는 것은 아니지 않는가? 설마 스타크래프트 테란의 황제 임요환이 UDP와 TPC/IP 아키텍쳐를 이해하고 놀라운 유닛컨트롤을 하는 것은 아니지않는가? 원리라는 것은 이해할 필요가 있을 때 이해하는 것이 현명하다. 대부분은 원리의 이해보다 “How To Use”가 중요하다.

Q3> 책보고 했다. 그런데 왜 안되는 것일까?

A3> 당신 지능의 문제가 아니다. 프로그래밍 환경의 문제다.

책에서 보여준 PC환경과 당신의 PC 환경은 결코 같지 않다. 그리고 수많은 버그와의 싸움이다. 프로그래밍 개발툴이 완벽하다거나 알아서 다 해준다는 생각을 하는 것부터 머리 속에서 지워야 한다. 마지막으로 프로그래밍은 스포츠와 같은 부분이 있다. coding이 몸에 배어야 책 내용을 오류없이 만들고 실행할 수 있다.

“골프를 책만 보고 재대로 칠 수는 없는 법이다”

5> 어디까지 이해할 것인가?

정답은 없다.효율적인 방법은 아마도 ...

“몰라도 만들 수 있는 범위”만큼만 이해하는 것이다.

6> Programming 언어로 개발툴과 대화부터 시작하라

당신이 영어를 못하는 이유는 읽을 줄 몰라서가 아니다. “질문”하고 “대화”한 적이 없기 때문이다.-박모씨-

“백독이불여일타”Programming은 말로 하는 것이 아니다.Coding(Typing)이 몸에 배어야만 생각(Logic)이 만들어진다.

AlwaysCoding!!Typing isvery very very difficult!!

1.tool(SDK)에 익숙해지면서

2.Coding!!하며

3.tool이 주는 메시지와 대화한다.

7> 당황하지말아라

Typing조차 재대로 못하는 당신.

a. 간단한 예제를 구한다.b. 따라서 타이핑한다.c. 예제를 저장하고 관리하고 분석한다.d. 예제에 내가 원하는 기능을 짧게 추가해본다.e. 다른 이름으로 저장하고 관리한다.

code of conduct(행동수칙)

개발툴(IDE: Integrated Development Environment )

개발툴은... syntax highlighting과Code Complete 기능으로자동차 Navigation처럼 개발자의 coding을올바른 길로 인도한다

- 위의 화면은 java 개발툴인 IntelliJ의 한장면...

8> 당부의 말

지금부터 시작입니다.

【속담】 느린 것을 두려워하지 말고, 중도에서 그만두는 것을 두려워하라.- china -

Programming은 즐길 줄만 안다면 80%는 해결됩니다. 조급해 하지 마세요. 재미만 있다면 시간이 해결해 줍니다.