프로그래밍에 50 세의 문맹 컴퓨터를 소개하는 방법 [닫기]


10

다른 날 아빠는 내가 그에게 결코 기대하지 않았을 것이라는 질문을했다.

"C ++을 어떻게 배울 수 있습니까?"

아빠는 올해 56 세가되었고 컴퓨터는 그에게 먼 개념입니다. 그는 전화 번호 (단축 다이얼이나 연락처 없음) 외에 전화를 잘 사용하는 방법을 모른다. 그는 컴퓨터를 조금 더 잘 배우기 시작했지만 (Windows에서) 인터넷을 열고 탐색하는 방법을 알고 있다는 점까지 (그리고 자신의 온라인에서 여러 직무 응용 프로그램을 성공적으로 완료했으며, 그 직책도 제공했습니다) ). 그러나 여전히 이것들은 너무 좁아서 경험이 많기 때문에 실제로 의미합니다.

아버지는 배경 지식이 없지만 아빠는 읽는 법을 알고 계십니다. 그리고 나는 능력이 아니라 기술로 읽는 것을 의미합니다. 그는 대학 교육 (재무 문제, 가족 등)이 거의 없거나 전혀 없으며 고등학교를 마치기에는 충분히 운이 좋았지 만 여전히 마스터 전기 기술자가되는 것을 가르치고 거의 30 년 동안 하나였습니다. 그는 기타와 마찬가지로 매우 전문적인 수준에서 연주하는 법을 배웠으며 그의 기술력에 찬사를 받았습니다. 고등학교에서 그는 역도 서를 집어 들었으며 당시 국가 표준에 따라 공식적으로 "선수"자격을 갖춘 유일한 사람이었습니다.

모든 경우에, 그는 단지 읽을 것이 필요했습니다. 그를 가르 칠 것. 그는 스펀지와 같은 정보를 흡수합니다.

아빠의 동기 나 능력에 대해서는 의심의 여지가 없습니다. 따라서 일반적인 목표는 다음과 같습니다.

아빠를 컴퓨터의 세계로 데려가 프로그래밍으로 나아가십시오.

나는 일단 그가 기본을 익히 게되면, 그의 운전 기술과 독서 기술이 그를 계속 이끌게 될 것이라고 강력히 믿는다.

그래서 나는 당신에게 모두 묻고 있습니다.이 모든 것부터 시작해야합니까? 그리고 가장 좋은 자원은 무엇입니까? Windows 대신 Linux를 시작하도록해야합니까? C ++은 나쁜 생각입니까?

그는 컴퓨터를 먼저 배우고 (IMO) 프로그래밍에 대한 첫 번째 이해 ( "Hello world"경험)를 얻어야한다는 것을 기억하십시오.

돈을 위해 그리고 가장 선호하는 경우, 나는 그가 읽을 수있는 무료 온라인 자료를 원하지만, 인쇄 나 온라인 지불에 대한 좋은 제안은 환영합니다 (나중에 구매를 위해 나중에 볼 수 있음).

또한 C ++ (Python, Java 등 없음)로 시작하려고합니다. 왜냐하면 그것이 가장 잘 알고 코드로 그를 도울 수 있기 때문입니다. (지금은 다른 언어로 최소한의 지식을 가지고 있습니다).

편집 : 파이썬을 사용하기 위해 많은 지속적인 제안을 받고 있습니다. 내가 C ++을하고 싶었던 유일한 이유는 내가 알고 있고 아빠가 도움이 필요할 때있을 수 있기 때문입니다. 프로그래밍에 대한 나의 첫 노출은 Java였습니다. 나는 자바를 배웠고, 잘했다. 다른 제안을 열었지만 제안을 효과적으로 적용하십시오.

편집 # 2 : 내 접근법 / 사고 / 지식이 부족할 수 있음을 이해합니다. 저는 2 학년 학사 CS 전공입니다. 내 게시물의 내용에 동의하지 않으면 아이디어, 정보를 제공하는 이유를 알려주십시오. 이것이 내가 처음에 묻는 이유입니다. 일반적인 목표를 도달 가능한 특정 목표로 좁히기 위해.


1
이 질문은 전문 소프트웨어 개발과 관련이 없습니다. 우리는 하루 중 다른 사람, 기술 및 비 기술적 인 사람들과 상호 작용하고 때로는 가르쳐야하지만, 전문 교사 나 강사는 아니며 누군가를 가장 잘 가르치는 방법에 대한 조언을 제공 할 수 없습니다. 이에 대해 더 자세히 논의하고 싶다면 메타 사이트 에서 질문을 제기 할 수 있습니다 .
Thomas Owens

@Thomas 커뮤니티에 전문 교사 나 강사가 없다는 것을 어떻게 알 수 있습니까? 덜 볼 수있는 메타가 실제로 어디로 가야합니까? 나는 그것에 줄 수 있다고 생각합니다 (여기서 머물기를 정말로 원하지만), 나를 위해 마이그레이션하십시오. SO / Programmers 커뮤니티에서이 질문을 더 잘 보이도록하기 위해 할 수있는 일이 있으면 도와주세요.
skippr

1
내가 아는 한,이 질문을 받아 들일 수있는 사이트는 없습니다. 방금 목록을 살펴 보았는데 보이지 않았습니다. 이에 대해 더 자세히 논의하려면 Meta에 대한 질문을 제기하십시오 .
Thomas Owens

@ThomasOwens 글쎄, 나는 울거나 트롤하기 위해 여기에 없기 때문에 최선을 다할 것입니다. 감사합니다
skippr

댓글에 내 대답을 몰래 ... 아래 답변과 달리 C ++은 실제로 훌륭한 첫 번째 언어라고 생각합니다. 특히 초보자에게 적합합니다. 사소한 콘솔 IO로 시작하면 C ++은 Java 또는 C #보다 초보자에게 훨씬 친숙합니다. 그를 혼란스럽게하는 보일러 판 코드가 적습니다. 혼란을 유발하는 고급 기능이 있지만 몇 가지 기본 기능으로 제한 할 수 있습니다.
Lord Tydus

답변:


13

먼저, C ++을 개인적으로 잘 알고 있더라도 초보자에게는 끔찍하고 끔찍한 모국어이며 코드 작성을 배우고 싶다면 가능한 한 멀리 떨어져 있어야 할 것을 강력히 추천 할 수는 없습니다. 학습 프로그래밍은 언어에 관한 것이 아니라 형식적인 논리로 추상적 요구 사항을 표현하는 것을 배우는 것에 관한 것 입니다. C ++은 언어 별 문제를 끊임없이 넘어 가기 때문에 집중하기가 어렵습니다.

공식적인 논리로 아이디어를 표현하는 법을 배우고 싶다면 그것을 간단하게 만드는 무언가를 찾으십시오. Pascal (응용 프로그램 수준 개발 용) 또는 Python (스크립트 수준 작업용)은 모두 직관적이고 배우기 쉬운 핵심 우선 순위로 설계되었으므로 선택해야합니다. 실제로 코드 작성 방법의 원리를 알고 나면 C ++에 특히 관심이 있다면 코드를 가져올 수 있습니다.

같은 이유로 Windows 대신 Linux에서 시작하지 마십시오. Linux 학습과 코딩 학습에 동시에 집중해야 할 두 가지 문제가 있습니다! 방해 요소를 최소화하십시오.

실제 프로그래밍 리소스에 관해서는 온라인으로 자습서를 쉽게 찾을 수 있지만 프로그래밍을 배우는 가장 좋은 방법은 프로그래밍에 의한 것임을 알았습니다. 하고 싶은 것을 찾은 다음 어떻게해야하는지 알아 내기 시작하십시오.

몇 년 전, 나는 게임을보고 "나는 이것을 할 수 있고 더 잘 할 수있다"고 생각했다. 그래서 델파이를 시작하고 관련된 원칙을 파악하기 시작했습니다. 나는 여전히 그 개인 프로젝트에서 새로운 것을 배우고 있으며, 그 과정에서 나는 정말 좋은 코더가되었습니다! 그러니 시도해보십시오. 아빠가 프로그램을 할 수 있다면 무엇을하고 싶은지 물어보십시오. 아직 경험이 없기 때문에 가능하고 범위가 작다는 것을 확인한 다음, 그와 함께 앉아서 그와 함께하는 방법을 알아 내기 시작하십시오. 그것.

질문이 있으시면 StackOverflow 계정을 만드십시오. :)


4

나는 C ++에있는 당신의 아버지의 관심은 확실히 생각 깔끔한 하지만 첫 번째 프로그래밍 언어에 대한 내 선택이 아닐 것 - 그가하지 않는 한 매우 그는 회의에 관심이되는 특정 요구 사항을. ( 다른 언어를 배우고 나서 C ++ 배우는 것이 훨씬 쉬울 수 있습니다.)

프로그래밍에 중요한 몇 가지 사항이 있습니다.

  • 추상적 문제를 해결하는 능력
  • 문제를 해결하기 위해 문제를 충분히 작은 조각으로 분해하는 기능
  • 진보를 가능하게하는 반복적이고 작은 조각으로 솔루션을 구축하는 능력
  • 특정 언어의 구문과 의미.

여러면에서 특정 언어의 구문과 의미는 프로그래밍에 필요한 기술 의 끝 부분 에 가깝습니다 . 결국, 당신이 오른쪽에 가까이 있다면, 대부분의 컴파일러는 당신이 저지른 실수를 말해 줄 것입니다.

따라서 아버지는 루비, 파이썬, C, C #, 하스켈 등 훨씬 간단한 프로그래밍 언어를 다루는 것이 좋습니다. 완전한 초보자가 같은 "물 밖으로 물고기"느낌을 겪고 있는지 궁금합니다.)

더 간단한 언어를 고수한다는 것은 아빠가 더 일찍 성공할 수 있고 "놀이"가 더 쉽다는 것을 의미합니다. 많은 언어의 대화식 REPL 루프는 배우기 좋은 곳입니다.

아빠가 함수, 클래스, 객체, 메소드에 익숙해지면 C ++의 미세한 부분과 뉘앙스가 압도적으로 느껴지지 않습니다. C로 시작하는 것이 더 쉬울 것입니다. 용서 하지는 않지만 걱정할 혼란스러운 기능이 적습니다.

Linux와 Windows가 궁금합니다. 나는 구별이 중요하다는 것을 확신하지 못한다. 그가 이미 하나 또는 다른 환경에 익숙하다면 전환은 또 다른 장애물입니다. 그가 아는 ​​사람이 없다면 리눅스를 제안 하겠지만, 주로 좋은 툴을 설치하는 것은 엄청나게 쉽다 : apt-get install <foo>대부분의 배포판에서 작동하고 지원하지 않는 배포판은 apt종종 비슷한 것을 제공한다. 1 분 후 깔끔한 새 패키지가 설치되는데, 트로이 목마가 아닌 사전 컴파일 된 Windows 바이너리의 안정적인 다운로드 소스를 찾는 데 걸리는 것보다 훨씬 빠릅니다.


아빠는 분명히 프로그래머에게 매우 중요한 "생각 능력"을 가지고 있습니다. 나는 그가하는 일에서 그의 상식과 지능을보고, 그것을 프로그래밍에 적용 할 수 있다는 것을 안다. 학습을위한 최적의 후보자가 있다고 가정 해 봅시다. 내 질문은 : 어떻게 거기에 도착합니까?
skippr

Hrm, 나는 기술을 다른 범주로 분류하여 구문과 의미에 얽매여 다른 기술의 발달을 흐리게 할 수 있다는 점을 강조했다. 그 점을 잘 언급하지 않은 것 같습니다.
sarnold

1
제안 된 언어 중 필자는 Python을 선호합니다. 그러나 아빠가 시각적으로 기울어지면 프로세싱 (www.processing.org 참조)은 흥미로운 소개가 될 수 있습니다.
James Youngman

@James : heh, 나는 이전에 PDF 출력을 사용한 대화 형 프로그램 이라는 문구를 본 적이 없다고 생각 합니다. :)
sarnold
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.