>  기사  >  백엔드 개발  >  Python 언어를 체계적으로 가르치는 방법

Python 언어를 체계적으로 가르치는 방법

伊谢尔伦
伊谢尔伦원래의
2016-12-02 11:58:461094검색

기본 지식이 없다면 언어를 배워서 자신을 풍요롭게 하세요. Python은 간단하고 아름답고 사용하기 쉽기 때문에 좋은 선택입니다. 그렇다면 체계적으로 Python을 스스로 가르치는 방법은 무엇입니까?

다행스럽게도 Python은 초보자에게 친숙한 프로그래밍 언어이므로 완전히 익히기 위해 너무 많은 시간과 에너지를 소비할 필요가 없습니다.

Python의 디자인 철학 중 하나는 간단하고 배우기 쉽다는 것인데, 이는 두 가지 측면에서 반영됩니다.

구문은 간결하고 명확합니다. Ruby 및 Perl에 비해 구문 기능은 너무 많지도 적지도 않으며, 대부분은 매우 단순하고 직접적이며 형이상학이 없습니다.

많은 진입점이 있습니다. Python을 사용하면 과학 컴퓨팅 및 데이터 분석, 크롤러, 웹 사이트, 게임, 명령줄 유틸리티 등을 포함한 많은 작업을 수행할 수 있습니다. 항상 관심이 있고 의향이 있는 항목이 있습니다. 시간을 투자합니다.

더 이상 고민하지 않고 언어를 배우는 지름길은 하나뿐입니다: 시작하기

1. 시작 단계

모든 프로그래밍 언어에는 하드웨어 지식과 소프트 지식이라는 두 부분이 있습니다. , 초기 단계의 주요 임무는 어려운 지식을 습득하는 것입니다. 모든 프로그래밍 언어에는 하드 지식과 소프트 지식이라는 두 부분이 포함됩니다. 초기 단계의 주요 작업은 하드 지식을 습득하는 것입니다.

1. 하드 지식

"하드 지식"이란 프로그래밍 언어, 프로그래밍 패러다임 등의 구문, 알고리즘 및 데이터 구조를 말합니다. : 변수 및 유형, 루프 문, 분기, 함수, 클래스. 이 부분의 지식도 보편적이다. 일종의 문법을 터득한 것처럼 보이지만 사실은 일종의 사고방식을 확립한 것이다. 예를 들어, Java 프로그래머가 Python을 배우라고 하면 Java에서 배운 객체지향 지식을 Python에 빠르게 매핑하여 Python의 객체지향 기능을 빠르게 마스터할 수 있습니다.
프로그래밍을 처음 배우는 경우 믿을 수 있는 문법책이 매우 중요합니다. 지루해 보일 수도 있지만 견고한 프로그래밍 사고방식을 구축하는 데 필수적입니다.

다음은 초보자에게 적합한 몇 가지 교재 목록입니다.


❖ "Python을 어렵게 배우세요": http://learnpythonthehardway.org/book/
이 책은 Python에 대해 설명합니다. 문법 구성 요소에 이르기까지 많은 실제 예도 함께 제공되므로 빠르게 시작하는 데 매우 적합합니다.

木「파이썬을 향한 히치하이커를 위한 가이드!」:파이썬을 향한 히치하이커를 위한 가이드!
이 가이드는 파이썬 전문가이든 초보자이든 관계없이 큰 이점을 얻을 수 있습니다. . 돕다.

❖「Python 공식 문서」: 우리의 문서
실제로 발생하는 대부분의 질문은 공식 문서에서 답변할 수 있습니다.

❖ 보조 도구: Python Tutor
그래픽을 사용하여 Python의 다양한 개념을 이해하는 데 도움을 주는 Python 객체 시각화 프로젝트입니다.

Python의 철학:

한 가지 작업을 수행하려면 한 가지 방법, 가급적이면 한 가지 방법만 사용하세요.

공부도 마찬가지다. 다양한 학습자료를 추천하지만, 실제로 공부할 때는 그중 하나만 선택해서 꾸준히 공부하는 것이 가장 좋다.

필요할 경우 데이터 구조와 알고리즘을 설명하는 책을 읽어야 할 수도 있습니다. 이러한 지식은 Python의 객체 모델을 이해하고 사용하는 데 큰 도움이 됩니다.


2. 소프트 지식
"소프트 지식"이란 특정 언어 환경에서의 문법 능력, 클래스 라이브러리 사용, IDE 선택 등을 의미합니다. 이 부분을 전혀 이해하지 못하고 사용하지 못하더라도 프로그래밍에 방해가 되지는 않지만, 작성하는 프로그램은 약간 "바보"처럼 보일 것입니다.

이 지식의 학습은 해결하려는 문제의 영역과 깊이에 따라 달라집니다. 초보자의 경우 초기 단계에서 길을 잃기 쉽고, 파이썬 버전을 선택할 때 망설이거나, 2.7을 잠시 보다가 3.0으로 전환하거나, 클래스 라이브러리의 바다에서 방황하거나, 할 수 없는 일이 일어나기 쉽습니다. Scrapy, Numpy 및 Django를 포함하여 스스로를 구출하려면 시도해 보거나 편집자 지하드, 중괄호 들여 쓰기 탐색, 운영 체제 토론 대회 또는 하루 종일 무릎을 꿇고 구문 설탕을 핥는 등 의미없는 활동에 참여하고 항상 모든 것을 얻는 방법을 생각하십시오. 한 줄의 코드로 완료하거나 성능, 보안, 다양성 및 견고성 측면에서 완벽한 점수를 받은 솔루션을 구상합니다.

많은 "대형"이 초보자에게 이것저것을 사용하라고 경고하고 우회를 피하도록 합니다.
초보자에게 학습은 우회하고 버그를 만드는 과정이라고 말하는 것이 좋습니다. 기적은 없고 똥만 있을 뿐입니다.

더러워지고 보기 흉하고 더 이상 걸을 수 없더라도 먼저 한 방향을 선택하고 더 나은 해결책이 있는지 살펴보세요.

우회해야만 그렇게 하는 것의 이점을 알게 되고, 일치하는 상태 기계를 손으로 작성할 수 있지만 정규 표현식을 만들어야 하는 이유, 프로세스 지향 솔루션은 해결할 수 있지만 객체 지향적인 이유를 이해하게 됩니다. , 모든 포인터를 조작할 수 있지만 메모리를 자동으로 관리해야 하는 이유 콜백을 중첩할 수 있는데 왜 Promise를 사용해야 합니까...

더 중요한 것은 상위 수준 솔루션이 모든 올바른 저수준 캡슐화가 모든 상황에서 가장 효과적이고 적절한 것은 아닙니다.

기술의 유입은 파도와 같아서 오랫동안 저장되어 있던 오래된 기술은 사라질 것이고 조만간 다시 돌아올 것입니다. 현재 모바일 애플리케이션, 모바일 게임, HTML5의 인기처럼 과거 PC의 역사를 반복하는 측면도 있지 않을까?

그러므로 잘못된 길을 가고 있고 인생을 놓칠 것이라고 걱정하지 마십시오. 끈기와 진보가 올바른 길입니다.

초기 핵심과제는 단단한 지식을 익히고, 부드러운 지식을 올바로 이해하는 것입니다. 뿌리가 튼튼하고 가지가 튼튼해야 무성한 잎이 자랄 수 있고, 달콤한 열매를 맺을 수 있습니다.

2. 발달 단계

기초 지식 학습을 마친 후에는 이 문법 지식이 정말 도움이 될지 의심스럽고 공허함을 느낄 것입니다.
예, 귀하의 의심은 절대적으로 정확합니다. Python이 그 가치를 발휘하려면 물론 구문 수준에서 멈출 수는 없습니다.
개발단계의 핵심과제는 '파이썬을 벗어나 세상을 품는 것'이다.
당신 앞에는 과학적 컴퓨팅과 데이터 분석, 크롤러, 웹사이트, 게임, 명령줄 유틸리티 등 여러 분야가 있을 것입니다. 이는 Python 구문을 아는 것만으로는 해결할 수 있는 문제가 아닙니다.
크롤러를 예로 들어보겠습니다. 컴퓨터 네트워크, HTTP 프로토콜, HTML, 텍스트 인코딩 및 JSON에 대해 전혀 모른다면 이 작업을 잘 수행할 수 있습니까? 그리고 초기 단계의 기본 지식도 마찬가지로 중요합니다. 루프 및 재귀 작성 방법에 대한 문서를 확인해야 하고 BFS 구현 방법도 모른다면 장인이 돌 벤치를 만드는 것과 같습니다. 망치를 들어올릴 때마다 망치를 어떻게 사용할지 고민하는 것도 마찬가지다. 매우 비효율적이다.
이 단계에서는 수많은 학급 도서관을 접하고 많은 책을 읽는 것이 불가피합니다.

°1 클래스 라이브러리
"Awesome Python 프로젝트": vinta/awesome-python · GitHub
다음은 다양한 실제 문제를 해결하려고 할 때 Python 커뮤니티에서 이미 사용하고 있는 도구 목록입니다. 클래스 라이브러리는 아래 그림과 같습니다.

Python 언어를 체계적으로 가르치는 방법

실제 필요에 따라 필요한 클래스 라이브러리를 찾을 수 있습니다.
관련 클래스 라이브러리를 활용하는 방법에 있어서 숙달해야 할 기술은 문서를 읽는 것입니다. 오픈소스 커뮤니티의 문서는 대부분 영어로 작성되어 있기 때문에 영어를 잘 못하는 학생들은 이를 보완해야 합니다.


°2권
여기에는 도움이 된다고 생각되는 몇 권의 책만 나열되어 있습니다. 자세한 내용은 Douban의 서평을 참조하세요.
과학 및 데이터 분석:
❖ "집단 스마트 프로그래밍" : 집단지성 프로그래밍
✽ "수학의 아름다움": 수학의 아름다움
agin "통계적 학습 방법": 통계적 학습 방법
agin "패턴 인식과 기계 학습": 패턴 인식과 기계 학습
oy"실제 데이터 과학": 실제 데이터 과학
❖"데이터 검색 소개": 정보 검색 소개
크롤러:
❖"HTTP 권위 있는 가이드": HTTP 권위 있는 가이드
웹 웹사이트:
oy「HTML & CSS 디자인 및 웹사이트 구축」: HTML & CSS 디자인 및 웹사이트 구축

...

여기서 목록을 계속할 필요는 없습니다.
당신이 똑똑하다면 위의 책 대부분이 Python에 관한 것이 아니라 전문 지식에 관한 것이라는 것을 확실히 알게 될 것입니다.
사실 여기서 소위 말하는 '파이썬에서 벗어나 세계를 포용한다'는 것은 실제로 파이썬과 전문지식의 결합이 많은 실무적 문제를 해결할 수 있다는 뜻이다. 이 단계에서 얼마나 멀리 갈 수 있는지는 자신의 전문 지식에 달려 있습니다.

3. 심층단계

이 단계에서는 Python에 대한 거의 모든 것을 알고 나면 Python이 C 언어로 구현된다는 것을 알아야 합니다.

그런데 자동 메모리 관리 기능도 없는 상대적으로 낮은 수준의 C 언어를 사용하여 Python 개체의 "동적 기능"을 어떻게 구현합니까? 이제 우리는 더 이상 표면에 머물 수 없습니다. Python의 블랙박스를 과감히 열고, 언어에 깊이 들어가 역사를 살펴보고, 소스 코드를 읽어야 Python의 디자인 아이디어를 진정으로 이해할 수 있습니다.

추천 도서는 다음과 같습니다.
"Python Source Code Analysis": Python Source Code Analysis
이 책은 Python 소스 코드의 핵심 부분을 자세히 설명하지만 이 책을 읽으려면 C 언어 메모리 모델과 포인터에 대한 좋은 이해.

또한 Python 자체는 C의 절차적 프로그래밍, Schema 및 Haskell과 같은 함수형 프로그래밍, 클래스 기반 객체지향 프로그래밍에 비해 여러 패러다임을 결합한 동적 언어입니다. Java에서는 둘 다 충분히 순수하지 않습니다. 즉, 프로그래밍 언어의 "도교"는 Python에서는 제한된 범위에서만 이해할 수 있습니다. 특정 프로그래밍 패러다임을 배울 때, 이 패러다임에 더 순수한 언어부터 시작하면 Python 언어의 뿌리에 대한 더 깊은 이해와 이해로 이어질 수 있습니다.

추천 오픈 강좌는 여기
"Programming Paradigm": 스탠포드 대학 오픈 강좌: 프로그래밍 패러다임
강사는 다양한 언어의 대표 언어부터 시작하여 수준 높은 조언을 제공합니다. 프로그래밍 패러다임을 제시하고 각 프로그래밍 패러다임의 핵심 아이디어를 제공합니다.

이 강좌에는 C 언어 패러다임, 메모리 관리 등 C 언어에 대한 매우 심층적인 설명이 포함되어 있다는 점을 언급할 가치가 있습니다. 이 지식은 Python 소스 코드를 읽는 데도 매우 유용합니다.

Python의 모범 사례 중 다수는 Django, Tornado 등과 같은 잘 알려진 프레임워크 및 라이브러리에 숨겨져 있습니다. 소스 코드에서 금을 찾아보는 것도 좋은 선택입니다.

¶마무리말
프로그래밍을 배우는 길은 사람마다 다릅니다. 사실 대부분 같은 목적지에 도달하는 길은 다릅니다. 길을 잃은 사람은 없고, 버틸 수 없는 사람뿐입니다. 약간 닭고기 수프처럼 들리지만 사실입니다.


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.