빠른 머리말
행함으로써 배우기 : 지식과 노하우
지식과 노하우에는 큰 차이가 있습니다. 새로운 학습자가 프로그램을 읽을 때 "이해"할 수 있기 때문에 프로그램이 작성된 그대로의 추론을 실제로 이해한다고 생각하는 것은 흔한 실수입니다.
그리고 그 두 번째 부분에 도달하는 유일한 방법은 연습하는 것입니다. 앉아서 텍스트 편집기, 명령 행을 열고 내려 오십시오.
이 단계에서 여러 복잡한 소프트웨어 구성 요소가 서로 상호 작용하는 방식을 이해하는 능력이 제한적일 수 있습니다. 그리고 그것은 기본적으로 시작하도록 강요하기 때문에 실제로 좋은 것입니다. 건을 뛰어 넘고 올바른 속도로 움직이지 마십시오. 작은 작업을위한 작은 운동으로 시작하십시오.
솔직히 말해서 Java로 프로그래밍을 배우기 시작하는 것이 갈 길이라는 것을 결코 확신하지 못했습니다. 시작하기에는 너무 복잡하기 때문에 대부분의 Java 서적은 상당히 어려워 보일 것입니다. 그럼에도 불구하고, 단계별 학습을 제한하는 한, 적어도 프로그래머가 기대하는 글로벌 지식의 일부 영역에 대해서는 반드시 수행 할 수 있습니다.
서적
Java를 설정하고 괜찮은 Java 책이 필요하면 다음을 권장합니다.
- 자바로 생각하기 . 이제 조금 구식이지만 괜찮습니다.
- 자바 튜토리얼 . 그것은 최고의 학습자의 동반자가 아니라 모든 기본 사항을 다루고 예제를 제공하므로 계속 지켜야 할 훌륭한 참고 자료입니다. 학습 자바 언어 트레일은 내가 처음에 이해하기 어려울 수 있습니다 개념을 소개로이 완료 초보자를위한 발굴 할 수 있다고 생각 것하지만 아마도, 읽기 목록에 있어야합니다.
- 효과적인 자바 . 이 책은 학습을위한 훌륭한 책은 아니지만 나중에 참고해야 할 훌륭한 참고 자료입니다. 한 번에 읽지 말고 한 입 크기의 덩어리로 읽으십시오.
수업에서 무엇을 사용하는지 모르기 때문에 이것을 언급하고 있습니다. 다른 많은 책들이 있습니다. 일부는 좋습니다. 일부는 몇 년 동안 학생들을 괴롭힐 것입니다.
학습 과정
기본 워크 플로우
이제부터는 수업에서 본 모든 연습과 코드 샘플에 대해이 2 단계 프로세스를 따르는 것이 좋습니다.
- 읽고 공부
- 연습을 읽으십시오
- 당신이 그들을 이해했는지 확인하십시오
- 암호
- 책을 닫다
- 코드 편집기와 명령 줄을 사용하여 컴퓨터 앞에 앉아
- 직접 프로그램을 다시 작성하십시오
실패의 경우
당신이 실패하고 책을 엿볼 필요가 있다고 느끼면, 당신의 실패는 다음 중 하나 일 것입니다.
- (대부분) 실제로 솔루션을 이해하지 못했을 것입니다.
- (아마도) 당신은 솔루션의 특정 비트가 어떻게 생겼는지 잊어 버렸습니다 : 구문, API 사용, ...
첫 번째 원인은 가장 자주 직면하는 것입니다. 두 번째는 일화입니다. 둘 다 반복 연습으로 해결됩니다.
이 초기 예제 중 하나를 구현하지 못하면 매번 책을 다시보고 닫으십시오. 책을 보면서 코딩하지 마십시오. 전체 솔루션 을 삭제 하고 다시 시작하는 것이 좋습니다. 반복은 학습 과정에서 성가 시지만 중요한 부분입니다.
가볍게 가져 가지 마십시오. "예, 알겠습니다. 알고 있습니다 "또는 "저는 90 % 정도입니다. 거의 다 끝났습니다." 라고 말하고 싶은 충동을 느낄 때마다 다른 섹션으로 건너 뛰고 싶은 충동을 다시 시작하고 다시 시작하십시오. 개념을 완전히 이해하지 못했다는 것을 정직하게 인정하기는 매우 어렵습니다.
참고 : 저는 대부분의 학교 프로그램이 너무 많은 것을 멍청하게하고 학생들에게 너무 진보 된 툴링을 제공함으로써 프로그래밍 과정을 "킥 스타트"하려고 시도하는 것이 대단한 장애라고 생각합니다. 목표는 당신의 인생을 비참하게 만들거나 너무 배워서는 안됩니다 나중에 경력에있는 것들이 도구에 의해 자동화되고 때로는 간신히 기억할 것입니다. 떠 다니는 모든 비트를 가르쳐줍니다.
성공의 경우 : 저쪽에!
운동을 성공적으로 완수했다면 반드시 다음 운동으로 바로 넘어 가지 마십시오. 개선하기 위해 무엇을 할 수 있는지보십시오. 요청한 출력을 변경할 수 있습니까? 작은 기능을 추가 하시겠습니까? 옵션? 당신이 지금 당신이 주된 어려움을 겪고있는 펀존에있는 것처럼, 시도해보십시오. 이러한 자급 자족 된 작은 요구 사항들은 당신의 정신을 조금 위로 유지시킬 가능성이 높습니다.
너무 멀리 가지 마십시오. 알파벳을 인쇄하고 뒤집어서 갑자기 색상의 그라데이션으로 화면의 대각선에 표시되도록하지 마십시오. 작은 조치를 취하십시오. 학습은 길고 반복적 인 과정이므로 난이도가 점점 높아지는 문제에 접근해야합니다 (예를 들어, 일반적으로 재귀 를 설명 하는 방법 참조 ).
그것은 단지 학습입니다-비교
문제는 실제로 프로그래밍과 전혀 관련이 없습니다. 수학을 배우려고 할 때 수천 명의 사람들이 겪는 것과 같은 문제입니다.
당신이 그들에게 문제를 주면, 그들은 해결책을 찾는 방법을 보지 못합니다. 그러나, 당신이 그들에 대한 해결책을 적어두면, 대부분은 그것을 이해하고 "아무것도 너무 간단했습니다!"라고 생각할 것입니다. 그러나 당신은 그들에게 다른 척도들과 가설들과 비슷한 문제를 겪게 될 것이고 그것들은 그것을 풀지 못할 것입니다 : 그들은 그 뒤에있는 논리를 이해하지 못했고, 스스로 그것을 할 수있는 연습이 필요합니다.
이것은 수학의 일반적인 문제이지만, 제 생각에는 학습 학, 언어 문법, 물리학 등 몇 가지 논리가 필요한 다른 분야에서 볼 수 있습니다. "자연적인"능력이 아닙니다. 이러한 것들을 이해하기 위해서 : 그것은 단지 연습을하게됩니다 (해당 분야 나 개인이이 분야의 개념을 더 쉽게 이해하도록 이끌어주는 분야).
코드 작성을 배울 수없는 이유는 없습니다. "ah AH!"에 도달 할 때까지 계속 노력해야합니다. / 유레카 순간. 그런 다음 더 어려운 다음 문제로 넘어갑니다.
이것들도 도움이 될 수 있습니다 (나중에) :