초보자에게 프로그래밍을 가르치는 가장 좋은 방법은 무엇입니까?[닫은]

StackOverflow https://stackoverflow.com/questions/3088

  •  08-06-2019
  •  | 
  •  

문제

원래 질문

저는 현재 동생에게 프로그램을 가르치는 일을 하고 있습니다.그는 완전 초보자이지만 매우 똑똑합니다.(그리고 그는 실제로 배우고 싶어합니다).나는 우리 세션 중 일부가 사소한 세부 사항에서 수렁에 빠졌다는 것을 알았고, 내가 그다지 체계적이지 못했다고 생각합니다.(하지만 이 게시물에 대한 답변이 많은 도움이 되었습니다.)

아이를 효과적으로 가르치려면 어떻게 해야 할까요?개념별로 실행하는 데 사용할 수 있는 논리적 순서가 있습니까?나중까지 피해야 할 복잡성이 있습니까?

우리가 사용하는 언어는 파이썬, 그러나 어떤 언어로든 조언을 환영합니다.


돕는 방법

좋은 내용이 있으면 답변에 다음을 추가하십시오.

  • 초보자 연습 및 프로젝트 아이디어
  • 초보자 교육을 위한 리소스
  • 스크린캐스트/블로그 게시물/무료 전자책
  • 초보자에게 좋은 책을 인쇄하세요

리소스를 설명해주세요. 그것에 대한 링크와 함께 그래서 좀 볼 수 있어요.나는 이러한 아이디어 중 일부를 확실히 사용하고 있다는 것을 모든 사람들이 알았으면 합니다.귀하의 제출 내용은 이 게시물에 집계됩니다.


온라인 리소스 초보자 교육용:


추천 인쇄본 초보자를 가르치기 위해

올바른 솔루션이 없습니다

다른 팁

나는 여러 명의 초보(코드 한 줄도 작성하지 않은) 프로그래머들과 함께 일해야 했고 올 가을에는 고등학생들과 방과 후 워크샵을 할 예정입니다.이것이 내가 문서에 가장 가까운 것입니다.아직 진행 중인 작업이지만 도움이 되기를 바랍니다.

1) 피즈버즈. 명령줄 프로그램으로 시작하십시오.재미있는 게임이나 도구를 매우 빠르게 작성할 수 있으며, GUI 도구를 먼저 배울 필요 없이 모든 언어 기능을 매우 빠르게 배울 수 있습니다.이러한 초기 앱은 작동하기 위해 실제 디버깅 도구를 사용할 필요가 없을 정도로 간단해야 합니다.

FizzBuzz와 같은 것 외에는 좋은 프로젝트가 없습니다.처음 몇 개의 앱은 DB, 파일 시스템, 구성 등을 처리할 필요가 없습니다.이는 대부분의 사람들을 혼란스럽게 하는 개념이며, 구문과 기본 프레임워크 기능만 배우는 경우에는 더 이상 복잡할 필요가 없습니다.

일부 프로젝트:

  • 안녕하세요 월드!
  • 내가 태어난 연도를 가지고 내 나이를 계산합니다. (지금부터 그때까지) 월 수정은 하지 않습니다. (간단한 수학, 입력, 출력)
  • 방향(위, 아래, 왼쪽, 오른쪽)을 묻고 사용자에게 운명(구멍에 빠지거나 케이크 찾기 등)을 알려줍니다. (부울 논리)
  • FizzBuzz, 하지만 매초마다 한 번씩 계산됩니다. (루프, 타이머 및 기타 로직)
  • 나이에 따라 어떤 사람들은 일정 간격으로 사용자를 무작위로 모욕하는 앱을 정말 좋아합니다. (간격을 무작위로 설정한 경우 루프, 배열, 타이머 및 무작위)

2) 간단한 프로젝트 언어 기능을 잘 이해하고 나면 프로젝트를 시작할 수 있습니다(간단하고 재미있는 게임이 좋습니다.).첫 번째 프로젝트를 6~12시간 이내에 완료할 수 있도록 노력해야 합니다.초기에 설계하는 데 시간을 낭비하지 마십시오.형편없더라도 디자인하게 놔두세요.그것이 무너지면 무슨 일이 일어났고 왜 실패했는지 이야기한 다음 다른 주제를 선택하고 다시 시작하세요.

여기에서 도구의 디버깅 기능을 소개하기 시작합니다.코드를 읽어 문제를 알 수 있더라도 도구 사용 방법을 가르쳐야 하며 문제를 볼 수 있는 방법을 보여주어야 합니다.이는 디버깅 도구를 가르치는 것과 도구 없이 오류를 식별하는 방법을 가르치는 두 가지 목적을 제공합니다.

프로젝트가 기능하게 되면 이를 사용하여 리팩토링 도구를 도입할 수 있습니다.계획하지 않은 몇 가지 간단한 기능으로 프로젝트를 확장할 수 있다면 좋습니다.이는 일반적으로 리팩토링과 중요한 디버깅을 의미합니다. 처음으로 괜찮은 코드를 절반도 작성하는 사람은 거의 없기 때문입니다.

일부 프로젝트:

3) 실제 프로젝트 시간이 좀 걸릴 수 있는 실제 프로젝트를 시작하십시오.적절한 소스 제어를 사용하고 일정을 세우십시오.이 프로젝트를 실제 프로젝트처럼 실행하세요. 도구를 다루면서 좋은 경험을 해보세요.

당연히 사람마다 조정해야 합니다.제가 찾은 가장 중요한 것은 첫 번째 간단한 앱이라도 그 사람이 관심을 갖고 있는 것에 적용할 수 있게 만드는 것입니다.

일부 프로젝트:

  • 테트리스
  • 텍스트 파일 기반 블로그 엔진
  • 더욱 발전된 로봇공학 작업

당신은 사용해 볼 수 있습니다 앨리스.입문 프로그래밍 수업에서 사용하도록 설계된 3D 프로그램입니다.

새로운 프로그래머에게 가장 큰 두 가지 장애물은 다음과 같습니다.

  • 구문 오류
  • 동기부여(인위적인 글이 아닌 의미 있고 재미있는 글을 쓰는 것)

Alice는 구문 오류 가능성을 피하기 위해 프로그램 구성에 끌어서 놓기 인터페이스를 사용합니다.Alice를 사용하면 3D 세계를 구성하고 코드로 (간단한) 3D 캐릭터와 애니메이션을 제어할 수 있습니다. 이는 일반적으로 연결 목록을 구현하는 것보다 훨씬 더 흥미롭습니다.

숙련된 프로그래머는 앨리스를 장난감으로 여기고 코드 줄을 끌어다 놓는 것을 비웃을 수도 있지만, 연구 이 접근법이 효과가 있음을 보여줍니다.

부인 성명:나는 앨리스에서 일했습니다.

기본 개념을 이해하려면 로고(일명 거북이)를 추천합니다.즉각적인 그래픽 피드백이 포함된 좋은 샌드박스를 제공하며 루프, 변수, 함수, 조건 등을 시연할 수 있습니다. 이 페이지 훌륭한 튜토리얼을 제공합니다.

로고 다음에는 Python 또는 Ruby로 이동하세요.저는 프로그래밍을 가르치기 위해 고안된 ABC를 기반으로 한 Python을 추천합니다.

프로그래밍을 가르칠 때 나는 EHaskins의 간단한 프로젝트와 복잡한 프로젝트에 대한 제안을 두 번째로 고려해야 합니다.학습을 위한 가장 좋은 방법은 명확한 결과와 측정 가능한 이정표를 가지고 시작하는 것입니다.이를 통해 수업에 집중할 수 있고, 학생이 기술을 쌓고 그 기술을 토대로 발전할 수 있으며, 학생이 친구들에게 자랑할 만한 것을 제공할 수 있습니다.자신의 작업에 대해 보여줄 것이 있다는 것의 힘을 과소평가하지 마십시오.

이론적으로 Python은 거의 모든 것을 할 수 있으므로 Python을 계속 사용할 수 있습니다.객체 지향 프로그래밍과 (대부분의) 알고리즘을 가르치는 데 좋은 수단입니다.명령줄과 같은 대화형 모드에서 Python을 실행하여 작동 방식을 살펴보거나 전체 스크립트를 한 번에 실행할 수 있습니다.해석된 스크립트를 즉시 실행하거나 바이너리로 컴파일할 수 있습니다.기능을 확장하기 위한 수천 개의 모듈이 있습니다.Windows에 번들로 제공되는 것과 같은 그래픽 계산기를 만들 수도 있고, IRC 클라이언트 등을 만들 수도 있습니다.

XKCD Python의 성능을 좀 더 잘 설명합니다."You're flying! How?" "Python!"

그 후에는 C#이나 Java로 이동할 수 있지만 Python이 아직 제공하지 않는 기능은 많지 않습니다.이들의 이점은 많은(대부분이라고 감히 말할 수 있습니까?) 언어가 사용하는 C 스타일 구문을 사용한다는 것입니다.아직 메모리 관리에 대해 걱정할 필요는 없지만 언어 해석기에서 좀 더 자유로워지고 손을 덜 쓰는 데 익숙해질 수 있습니다.Python은 공백과 들여쓰기를 시행하는데, 이는 대부분의 경우에는 좋지만 항상 그런 것은 아닙니다.C# 및 Java를 사용하면 강력한 형식을 유지하면서 자체 공백을 관리할 수 있습니다.

여기서부터 표준은 C 또는 C++입니다.이러한 언어의 자유는 거의 실존적입니다.이제 당신은 자신의 메모리 관리를 담당하게 되었습니다.당신을 도울 가비지 수집이 없습니다.여기에서는 병합 정렬 및 퀵 정렬과 같은 고급 알고리즘을 가르치는 곳입니다.여기에서 "분할 오류"가 저주적인 단어인 이유를 배울 수 있습니다.이곳은 Linux 커널의 소스 코드를 다운로드하고 Abyss를 살펴보는 곳입니다.문자열 조작을 위한 순환 버퍼와 스택을 작성하는 것부터 시작하세요.그런 다음 작업하십시오.

좋은 Python 강좌는 MIT의 강좌입니다. Python을 사용한 프로그래밍에 대한 간단한 소개.이 모든 내용은 온라인에서 무료로 제공되며, 이를 이해하기 위해 MIT 초등학생이 될 필요는 없습니다.

편집하다 [저스틴 스탠다드]

이 과정에서는 다음 무료 온라인 도서를 사용합니다. 컴퓨터 과학자처럼 생각하는 방법
나는 그것이 꽤 유용하다고 생각합니다.

파이썬 패키지 VPython -- 평범한 인간을 위한 3D 프로그래밍(비디오 튜토리얼).

코드 예:

from visual import *

floor = box (pos=(0,0,0), length=4, height=0.5, width=4, color=color.blue)
ball = sphere (pos=(0,4,0), radius=1, color=color.red)
ball.velocity = vector(0,-1,0)
dt = 0.01

while 1:
    rate (100)
    ball.pos = ball.pos + ball.velocity*dt
    if ball.y < ball.radius:
        ball.velocity.y = -ball.velocity.y
    else:
        ball.velocity.y = ball.velocity.y - 9.8*dt

VPython 튀는 공 http://vpython.org/bounce.gif

Python의 Turtle 그래픽으로 시작하세요.

저는 Python에 표준으로 제공되는 거북이 그래픽을 사용하겠습니다.시각적이고 단순하며 이 환경을 사용하여 구문에 너무 깊이 들어가기 전에 반복 및 프로시저 호출과 같은 많은 프로그래밍 개념을 도입할 수 있습니다.Python에서 다음 대화형 세션을 고려하세요.

>>> from turtle import *
>>> setup()
>>> title("turtle test")
>>> clear()
>>>
>>> #DRAW A SQUARE
>>> down()        #pen down
>>> forward(50)   #move forward 50 units
>>> right(90)     #turn right 90 degrees
>>> forward(50)
>>> right(90)
>>> forward(50)
>>> right(90)
>>> forward(50)
>>>
>>> #INTRODUCE ITERATION TO SIMPLIFY SQUARE CODE
>>> clear()
>>> for i in range(4):
        forward(50)
        right(90)
>>>
>>> #INTRODUCE PROCEDURES   
>>> def square(length):
        down()
        for i in range(4):
            forward(length)
            right(90)
>>>
>>> #HAVE STUDENTS PREDICT WHAT THIS WILL DRAW
>>> for i in range(50):
        up()
        left(90)
        forward(25)
        square(i)
>>>
>>> #NOW HAVE THE STUDENTS WRITE CODE TO DRAW
>>> #A SQUARE 'TUNNEL' (I.E. CONCENTRIC SQUARES
>>> #GETTING SMALLER AND SMALLER).
>>>
>>> #AFTER THAT, MAKE THE TUNNEL ROTATE BY HAVING
>>> #EACH SUCCESSIVE SQUARE TILTED

마지막 두 과제를 수행하는 과정에서 많은 시도가 실패하게 되지만 실패는 시각적으로 흥미로울 것이며 예상한 결과가 나오지 않은 이유를 알아내려고 노력하면서 빨리 배울 것입니다.

중요한 것은 문제의 사람이 해결하고 싶은 문제가 있어야 한다는 것입니다.작성하고 싶은 프로그램(그리고 "다음 Quake를 작성하고 싶습니다!"가 아닌 합리적이고 잘 정의된 프로그램)이 없다면 프로그래밍을 배울 수 없습니다. 동기를 부여할 것이 없기 때문입니다. .내 말은, 책을 읽고 언어의 구문과 의미를 대략적으로 이해할 수는 있지만, 당신이 작성하고 싶은 프로그램 당신은 결코 쐐기풀을 잡지 못할 것입니다.

그러한 추진력이 존재한다면 다른 모든 것은 단지 사소한 세부 사항일 뿐입니다.

아직 여기에 언급한 사람이 있는지는 모르겠지만 확인해 보세요. 제드 쇼'에스 Python을 어렵게 배우세요

도움이 되었기를 바랍니다

http://tryruby.hobix.com/">Ruby를 사용해 보세요(브라우저에서)

이것은 내 동생들이 배우곤 했던 환상적인 책입니다.

http://pine.fm/LearnToProgram/

물론 가장 중요한 것은 책을 다 읽은 후 즉시 실제적이고 유용한 프로그램을 시작하는 것입니다.

그 사람이 관심이 있다면 사소한 부분도 좋은 부분이 아닐까요?Python을 사용하면 이미 GUI를 잘라서 혼란이 사라졌습니다.프로젝트, 게임 등을 선택하여 구현해 보는 것은 어떨까요?고전적인 hi-lo 숫자 추측 게임은 명령줄에서 20~30줄의 코드(물론 언어에 따라 다름)로 간단하게 구현될 수 있으며 변수, 조건, 루프 및 사용자 입력을 제공합니다.

나는 그에게 엄청난 양의 코드를 작성하게 했을 뿐입니다.당신이 하는 모든 일을 그에게 맡기고 질문에 대답할 수 있도록 하세요.

믿거나 말거나, 몇 달 동안 수많은 형편없는 코드를 작성한 후에 그는 아이디어를 얻고 더 나은 프로그램을 작성하기 시작할 것입니다.그 시점에서는 세부 사항(메모리 등)에 얽매일 수 있고 일반적인 디자인 원칙에 대해서도 이야기할 수 있습니다.

위대한 예술가와 평범한 예술가를 구별하는 것은 그들이 연습할 때마다 아무리 작은 것이라도 뭔가가 향상된다는 것이라고 들었습니다.동생이 연습하게 하면 키보드 앞에 앉을 때마다 실력이 향상될 것입니다.

편집하다:[저스틴 스탠다드]

에스테반, 최근 일이 생각나네요 코딩 호러 포스트, 그리고 나 하다 당신이 옳다고 생각하세요.하지만 아직은 방법을 찾는 것이 가치 있다고 생각합니다. 가이드 그의 연습.의심의 여지가 없습니다. 나는 그가 자신이 아는 만큼 많은 코드를 작성하길 바랍니다.이것이 제가 샘플 프로젝트를 요청하는 이유 중 하나입니다.

우선, 다른 사람들처럼 시작하세요.와 안녕하세요 세계 프로그램.이는 간단하며 프로그램 레이아웃에 대한 기본적인 느낌을 줍니다.처음 프로그래밍을 했을 때를 기억하고 일부 개념이 얼마나 어려웠는지 기억해 보세요. 간단하게 시작하세요.

Hello World 이후에는 몇 가지 기본 변수 생성, 산술, 부울 논리 및 if/else 문으로 넘어갑니다.오래된 프로그래밍 교과서 중 하나가 있다면 초기 예제 중 일부를 확인하고 그 내용을 살펴보도록 하십시오.한 번에 너무 많은 것을 소개하려고 하지 마세요. 그렇지 않으면 부담스럽고 ​​혼란스러울 것입니다.

동생에게 프로그래밍을 가르칠 때 주의해야 할 점은 동생이 당신에게 너무 의존하지 않도록 하는 것입니다.종종 내가 다른 사람들을 돕고 있는 것을 발견하면 그들은 나를 그들의 모든 질문에 대한 답안집으로 생각하기 시작하고 답을 찾기 위해 실험하는 대신 단순히 나에게 묻습니다.종종 최고의 교사는 실험이며, 동생이 "내가 끈에 2를 추가하면 어떻게 될까요?"와 같은 질문이있을 때마다마다. 당신은 그에게 그것을 시도하고 스스로 보라고 말해야합니다.또한 누군가에게 개념을 전달할 수 없을 때 각 부분을 개별적으로 살펴보고 하나씩 설명할 수 있는 샘플 코드를 보는 것이 도움이 된다는 것을 알게 되었습니다.참고로 프로그래밍을 처음 접하는 사람들은 종종 객체 지향 프로그래밍의 개념에 어려움을 겪습니다. 그들은 객체 지향 프로그래밍을 가르칠 때 이해한다고 말하지만 실제로 구현하기 전까지는 명확한 개념을 얻지 못할 것입니다.

나는 프로그래밍을 가르쳤는데 당신의 형제는 그가 배우고 싶어하는 대부분의 학생들보다 한 가지 주요 이점을 가지고 있습니다 :)

C로 가기로 결정했다면 친구가 사이트를 가지고 있어요 그것은 나이든 세대가 사용하는 일종의 프로그램을 기본 입력으로 기억하는 것입니다.더 복잡한 것은 ncurses를 사용하여 교육 보조 수단으로 사용하는 것을 어느 정도 부정하지만 그 중 일부는 아주 작은 것이므로 배우지 않고도 많은 것을 배울 수 있습니다.

개인적으로 저는 Python과 Ruby가 훌륭한 첫 번째 언어를 만들 것이라고 생각합니다.

편집하다:초보자 프로그래밍 과제 목록 하룻밤 사이에 나타난 것이 바로 당신이 찾고 있는 것일 수도 있습니다.

그것은 실제로 형제의 학습 스타일에 달려 있습니다.많은 사람들이 손을 더럽히고 직접 뛰어들어 개념과 큰 그림을 구체화하고 지식을 쌓음으로써 더 빨리 배웁니다.

저는 큰 그림부터 시작하여 세부적인 부분까지 자세히 살펴보는 것을 선호합니다.내가 가장 먼저 알고 싶었던 것은 이 모든 것이 어떻게 조화를 이루는지, 그 다음에는 객체지향의 gobbledygook, 그 다음에는 클래스와 인스턴스 등에 관한 것이었습니다.나는 구문을 배우기 전에 기본 개념과 약간의 이론을 알고 싶습니다.20년 전에 BASIC으로 몇 가지 게임을 작성했기 때문에 약간의 이점이 있었지만 그 이후에는 별 일이 없었습니다.

아마도 전체 사명 선언문, 계획 및/또는 순서도부터 시작하여 실제로 코드를 작성하기 전에 일부 의사 코드(최종적으로 사용할 구문에 맞춰)를 자세히 설명하여 생산 프로세스를 그림자화하는 것이 유용할 수 있습니다.

여기서 황금률은 학생의 기울어지는 스타일을 파악하는 것입니다.

귀하의 형제가 iTunes에 접속할 수 있다면 뉴사우스웨일스 대학의 Richard Buckland가 진행하는 컴퓨터 과학 입문 과정의 비디오 강의를 다운로드할 수 있습니다.그는 매력적인 강사이며 컴퓨팅과 C 언어의 기초를 다루고 있습니다.다른 것이 없다면 형제에게 배경에서 동영상을 재생하라고 말하면 삼투 현상을 통해 일부 개념이 흡수될 수 있습니다.:)

COMP1917 고등 컴퓨팅 - 2008 세션 1 http://deimos3.apple.com/WebObjects/Core.woa/Browse/unsw.edu.au.1504975442.01504975444

링크가 작동하지 않으면 다음 경로를 따르세요.

홈 -> iTunes U --> 엔지니어링 --> COMP1917 고등 컴퓨팅 - 2008 세션 1

거기에 파이썬을 배우기에 꽤 좋은 위키북.

다른 언어의 위키북이 어떤지는 모르겠지만, 2007년 2월에 위키북에서 개인적으로 파이썬을 배웠습니다.

ps - 혹시 모르신다면 위키북, 기본적으로 책 저작의 위키피디아 버전입니다.설명하기가 좀 어렵지만 거기에 있는 책 몇 권을 확인해 보면 그것이 어떻게 작동하는지 알게 될 것입니다.

저는 Python이 좋은 아이디어라고 생각합니다.나는 그에게 스스로 할 수 있는 몇 가지 기본 과제를 주고 그가 막다른 골목에 도달하면 아마도 Google을 방문하여 해결할 수 있다고 말할 것입니다.적어도 나에게는 문제를 스스로 해결하는 것이 누군가 나에게 해결책을 알려주는 것보다 항상 더 잘 붙는다.

몇 가지 가능한 프로젝트(특정 순서 없음):

  • 동전 뒤집기 시뮬레이터.사용자가 원하는 동전 뒤집기 시도 횟수를 입력하게 합니다.이를 실행하고 앞면 또는 뒷면의 백분율과 함께 결과를 표시합니다.

  • 사용자가 원하는 변환 종류를 선택하기 위해 사용자 입력을 받는 메뉴가 있는 온도 변환기를 만드세요.변환을 선택하고 수행한 후에는 기본 메뉴로 돌아가야 합니다.

    다음은 동일한 아이디어를 가진 확장 변환기의 예입니다. http://pastebin.org/6541

  • 숫자를 입력받아 문자 등급을 표시하는 프로그램을 만드세요.결국 입력이 맞는 위치를 찾기 위해 if 및 elif 문에 대해 입력을 평가하게 됩니다.

  • 여러 선택지를 통과하는 간단한 퀴즈를 만들거나 빈 질문을 채우세요.마지막에는 사용자가 어떻게 했는지 표시됩니다.그는 원하는 질문을 선택할 수 있습니다.

  • 일부(아마도 큰) 수의 동전을 입력하고 이를 더 큰 단위로 변환합니다.예를 들어 149페니 = 1달러, 1쿼터, 2다임, 4페니입니다.

  • 간단한 목록 관리자를 만듭니다.목록을 추가/삭제하고 해당 목록에 항목을 추가/삭제할 수 있습니다.다음은 크리스마스 목록 관리자의 예입니다. http://pastebin.org/6543

  • 입력한 숫자가 마방진(2D 배열 포함)을 형성하는지 테스트한 후 테스트하는 프로그램을 만듭니다.다음은 몇 가지 샘플 코드입니다. 하지만 사각형을 만드는 측면에서 사용자가 어디에 있는지 보여주기 위해 실제로 각 단계에서 사각형을 인쇄해야 합니다. http://pastebin.org/6544

또한 xTurtle이나 다른 그래픽 모듈을 사용하여 작업을 혼합하고 지루해지지 않도록 하는 것이 좋습니다.물론 이것은 많은 사람들이 Python을 실제로 사용하는 스크립팅이 아니라 프로그래밍 연습에 불과합니다. 하지만 제가 제공한 예제는 제가 Python을 통해 학습할 때 직접 가져온 것이며 제게는 매우 효과적이었습니다.행운을 빌어요!

그냥 재미있게 만들어보세요!

놀랍게도 Scala가 시도해 보면 가장 쉬울 수 있습니다. 고조

동생이 퍼즐을 좋아한다면 추천하고 싶습니다 파이썬 챌린지.1:1 튜토리얼에서 정식 교육 도구로 사용하지는 않겠지만, 여러분이 함께 있지 않을 때 자신에게 도전하고 재미있게 놀 수 있는 일입니다.

몇 가지 무료 전자책을 살펴본 후 프로그래밍 학습에 가장 적합한 책은 O'Reily Press에서 출판한 Head First 프로그래밍이라는 것을 알았습니다.Python을 언어로 사용하고 처음부터 작업할 수 있는 프로그램을 제공합니다.모두 'Hello World'보다 더 흥미롭습니다.내가 쓴 돈만큼 가치가 있고, 나온 지 꽤 되었기 때문에 Ebay나 Amazon에서 더 저렴한 중고 제품을 찾을 수도 있습니다.

언어에 구애받지 않고 프로그래밍의 기본을 가르치고 싶다면 다음과 같은 애플리케이션이 있습니다. 할퀴다 MIT에서 만든 것입니다.사람들이 프로그래밍 기술을 개발할 수 있도록 설계되었습니다.사용자는 스크래치 프로젝트를 만들면서 조건, 루프 등을 만드는 방법을 배웁니다.프로젝트를 다운로드할 수 있는 형태의 스크래치 프로젝트 커뮤니티도 있습니다. 이를 통해 다른 사람의 프로그램을 탐색하고 해당 프로그램이 어떻게 구축되었는지 확인할 수 있습니다.

나는 그가 기본 사항(변수, 루프 등)을 알고 나면 그가 관심 있는 특정 항목을 찾도록 돕고 이를 실현하는 데 필요한 사항을 배우도록 도와야 한다고 생각합니다.나는 그것이 나에게 관심이 있다면 무엇인가를 하려는 경향이 훨씬 더 강하고 의욕이 있다는 것을 알고 있습니다.또한 그가 더 어려운 문제를 헤쳐나갈 수 있도록 해주세요. 스스로 문제를 해결하는 순간보다 더 만족스러운 것은 없습니다.

순서도와 언어에 구애받지 않는 방식으로 문제를 해결하는 방법을 배우면서 배웠습니다. PDL (프로그램 설계 언어).그로부터 몇 주 후에 나는 내가 작성한 PDL을 언어로 변환하는 방법을 배웠습니다.나는 언어에 얽매이지 않고 문제를 해결하면서 프로그래밍을 하며 대부분의 시간을 보냈기 때문에 그런 식으로 배웠다는 것이 기쁘다.내가 사용하는 언어는 항상 구현 세부 사항이지 디자인의 일부가 아닙니다.

문제를 기본 단계로 나누어 문제를 해결하는 것이 핵심 기술입니다.저는 이것이 프로그래밍을 할 수 있는 사람과 할 수 없는 사람을 구분하는 요소 중 하나라고 생각합니다.

언어의 개념 순서를 다루는 방법에 있어서 가장 쉬운 방법은 프로젝트를 염두에 두고 필요에 따라 개념을 다루는 것이라고 결정하는 것입니다.이렇게 하면 관심 있는 일에 필요할 때 적용할 수 있습니다.언어를 배울 때 몇 가지 간단한 프로젝트와 점점 더 복잡해지는 몇 가지 프로젝트를 염두에 두는 것이 좋습니다.이를 결정하면 필요한 개념과 순서를 파악하는 데 도움이 됩니다.

일부 스크린캐스트도 시청하는 것이 좋습니다. 일반적으로 언어가 아닌 특정 기술의 맥락에서 생성되지만 Python 코드가 표시되면 그렇게 됩니다 :).요점은 - 그것들은 몇몇 훌륭한 프로그래머들에 의해 만들어졌고, 좋은 프로그래머들이 프로그램하는 것이 얼마나 좋은 것인지 지켜보고 있다는 것입니다.당신과 당신의 형제도 동료 프로그래밍을 할 수 있습니다. 그게 훨씬 더 좋은 생각일 수도 있습니다.왜 당신이 이런 식으로 행동하고 저 방식으로 행동하지 않는지 설명하는 것을 잊지 마십시오.프로그래밍을 배우는 가장 좋은 방법은 좋은 예를 통해 배우고 나쁜 예도 보지 않으려고 노력하는 것이라고 생각합니다.

Robert Read는 유용한 가이드를 작성했습니다. 프로그래머가 되는 방법, 초보자에게 도움이 될 만한 광범위한 프로그래밍 문제를 다루고 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top