Python 언어는 무엇을 위한 언어인가요? 파이썬을 배울 가치가 있나요? 자동 메모리 관리

프로그램은 실행을 보장하는 일련의 알고리즘입니다. 필요한 조치. 일반적으로 동일한 방법으로 프로그래밍할 수 있습니다. 평범한 사람, 예를 들어 차를 준비할 수 있도록 정확한 명령을 작성합니다. 만약에 최신 버전자연스러운 언어(러시아어, 우크라이나어, 영어, 한국어 등)를 사용하는 경우 컴퓨터에 특수 프로그래밍 언어가 필요합니다. 파이썬은 그 중 하나입니다. 이후 프로그래밍 환경은 명령을 다음으로 변환하고 알고리즘이 생성된 인간의 목표를 달성하게 됩니다. Python에는 자체 구문이 있으며 이에 대해서는 아래에서 설명합니다.

언어의 역사

개발은 1980년대에 시작되어 1991년에 끝났습니다. Python 언어는 Guido van Rossum에 의해 만들어졌습니다. 파이썬의 주요 상징은 뱀이지만 미국 코미디 쇼의 이름을 따서 명명되었습니다.

개발자는 언어를 만들 때 기존 Pascal, C, C++에서 가져온 일부 명령을 사용했습니다. 먼저 온라인에 접속한 후 공식 버전전체 프로그래머 그룹이 개선과 개선에 참여했습니다.

Python이 상당히 유명해지게 된 요인 중 하나는 디자인입니다. 그는 매우 성공한 많은 전문가들로부터 최고 중 한 명으로 인정받고 있습니다.

파이썬의 특징

언어 파이썬 프로그래밍초보자에게 훌륭한 선생님이 될 것입니다. 상당히 간단한 구문을 가지고 있습니다. 보조 요소가 많이 포함되어 있지 않기 때문에 코드를 이해하기 쉬울 것이며, 언어의 특별한 구조를 통해 들여쓰기 방법을 배울 수 있습니다. 물론, 적은 수의 명령으로 잘 설계된 프로그램은 즉시 이해할 수 있습니다.

많은 구문 시스템이 객체 지향 프로그래밍을 사용하여 만들어졌습니다. 파이썬도 예외는 아닙니다. 그는 정확히 왜 태어났나요? 이는 초보자가 배우기를 더 쉽게 만들고 이미 자격을 갖춘 직원이 일부 요소를 기억하는 데 도움이 될 것입니다.

언어 구문

이미 언급했듯이 코드는 매우 쉽고 읽기 쉽습니다. Python에는 실행이 정확한 순차적 명령이 있습니다. 원칙적으로 사용되는 연산자는 초보자에게도 어려워 보이지 않습니다. 이것이 파이썬이 다른 점입니다. 구문은 쉽고 간단합니다.

기존 연산자:

  • 조건을 설정할 때 if-else 구문을 사용해야 합니다. 해당 줄이 너무 많으면 elif 명령을 입력할 수 있습니다.
  • 수업은 수업을 이해하기 위한 것이다.
  • 다음 중 하나 단순 연산자- 통과하다. 아무것도 하지 않으며, 빈 블록에 적합합니다.
  • 순환 명령에는 while과 for가 있습니다.
  • 함수, 메소드 및 생성기는 def 덕분에 정의됩니다.

단일 단어 외에도 Python 프로그래밍 언어를 사용하면 표현식을 연산자로 사용할 수 있습니다. 문자열 체인을 사용하면 별도의 명령과 괄호의 수를 줄일 수 있습니다. 조건에 따라 필요할 때만 수행되는 소위 게으른 계산도 사용됩니다. 여기에는 및 및 또는이 포함됩니다.

프로그램 작성 과정

통역사는 단일 메커니즘으로 작동합니다. 한 줄을 작성하면("Enter" 키를 누름) 즉시 실행되며 사용자는 이미 일부 결과를 볼 수 있습니다. 이는 초보자나 작은 코드 조각을 테스트하려는 사람들에게 유용하고 매우 편리할 것입니다. 컴파일된 환경에서는 먼저 전체 프로그램을 작성한 다음 실행하고 오류를 확인해야 합니다.

수술실의 Python 프로그래밍 언어(초심자에게는 이미 명확해진 바와 같이 이상적임) 리눅스 시스템콘솔 자체에서 직접 작업할 수 있습니다. 다음 주소로 작성해야 합니다. 명령줄파이썬 코드명 영어. 첫 번째 프로그램을 만드는 것은 어렵지 않습니다. 우선, 여기에서는 통역사를 계산기로 사용할 수 있다는 점을 고려해 볼 가치가 있습니다. 젊고 초보 전문가는 구문에 익숙하지 않은 경우가 많으므로 다음과 같이 알고리즘을 작성할 수 있습니다.

각 줄 뒤에는 "Enter"를 입력해야 합니다. 클릭하면 바로 답변이 표시됩니다.

Python에서 사용하는 데이터

컴퓨터(및 프로그래밍 언어)가 사용하는 데이터는 여러 유형으로 제공되며 이는 매우 분명합니다. 숫자는 분수, 정수일 수 있으며, 많은 자릿수로 구성될 수도 있고, 분수 부분으로 인해 상당히 클 수도 있습니다. 통역사가 더 쉽게 작업하고 자신이 다루고 있는 내용을 이해할 수 있도록 하려면 다음을 설정해야 합니다. 특정 유형. 또한, 할당된 메모리 셀에 숫자가 맞아야 합니다.

Python 프로그래밍 언어에서 사용되는 가장 일반적인 데이터 유형은 다음과 같습니다.

  • 정수. 우리는 음수 값과 양수 값을 모두 갖는 정수에 대해 이야기하고 있습니다. 이 유형에는 0도 포함됩니다.
  • 통역사가 작업 중임을 이해하기 위해 분수 부분으로, 설정되어야 합니다 플로트 유형가리키다. 원칙적으로 변하는 점이 있는 숫자를 사용할 때 사용됩니다. 프로그램을 작성할 때 "3.25" 표기법을 준수해야 하며 쉼표 "3.25"를 사용해서는 안 된다는 점을 기억해야 합니다.
  • 문자열을 추가하는 경우 Python 프로그래밍 언어를 사용하면 다음을 추가할 수 있습니다. 문자열을 입력하세요. 종종 단어나 구는 단일 또는

단점과 장점

지난 수십 년 동안 사람들은 데이터를 마스터하는 데 더 많은 시간을 투자하고 컴퓨터에서 데이터를 처리하는 데 더 적은 시간을 투자하는 데 더 많은 관심을 가져왔습니다. 긍정적인 것만이 존재하는 언어는 최고의 코드이다.

Python에는 사실상 단점이 없습니다. 유일한 심각한 단점은 알고리즘 실행 속도가 느리다는 것입니다. 네, "C"나 "Java"와 비교하면 솔직히 말해서 거북이입니다. 이는 다음과 같은 사실로 설명됩니다.

개발자는 Python에 최고의 기능을 추가했습니다. 따라서 사용해보면 흡수가 된 것을 알 수 있습니다. 특장점다른 사람 고급 언어프로그램 작성.

통역사가 구현한 아이디어가 인상적이지 않은 경우 수십 줄을 작성한 후에 거의 즉시 이를 이해할 수 있습니다. 프로그램이 가치가 있다면 중요한 섹션은 언제든지 개선될 수 있습니다.

현재 여러 프로그래머 그룹이 Python을 개선하기 위해 노력하고 있으므로 C++로 작성된 코드가 Python을 사용하여 작성된 코드보다 낫다는 것은 사실이 아닙니다.

어떤 버전으로 작업하는 것이 더 낫습니까?

현재 널리 사용되는 두 가지 버전이 있습니다. 구문 체계, Python 언어와 같습니다. 초보자에게는 둘 중 하나를 선택하는 것이 매우 어려울 것입니다. 3.x는 아직 개발 중이지만(대중에게 출시됨) 2.x는 완전히 완성된 버전입니다. 많은 사람들은 실제로 지연이나 충돌이 발생하지 않는 2.7.8 사용을 권장합니다. 버전 3.x에는 없음 급진적인 변화, 언제든지 업데이트를 통해 코드를 프로그래밍 환경으로 전송할 수 있습니다. 필요한 프로그램을 다운로드하려면 공식 웹사이트로 이동하여 운영 체제다운로드가 완료될 때까지 기다립니다.

Python 프로그래밍 언어를 배울 가치가 있나요? 결국, 이 언어가 죽어가고 있다는 말을 자주 듣게 됩니다. Quora 사용자들은 이 문제에 대해 논의하고 의견을 공유했습니다.

Bill Carven, SQL 개발자, 컨설턴트, 교육자 및 저자

어셈블리 언어는 간결하고 효율적이며 프로젝트에 최적화된 코드를 작성할 수 있는 좋은 기회를 제공합니다. 단지 몇 킬로바이트만 차지하는 이 언어로 작성된 코드로 놀라운 일을 할 수 있습니다. 그러나 어셈블리 언어를 사용하여 달성할 수 있는 효율성 수준은 정당화되지 않습니다. 추가 업무, 추가 시간그리고 그에 필요한 기술.

언어의 인기가 오르락내리락하는 것은 사실입니다. 생산성이 여기에 있습니다 주요 임무프로그래밍에서는 적어도 일부 유형의 작업에 대한 생산성을 높이는 새로운 언어가 때때로 생성됩니다.

오늘날 대부분의 프로그래머는 더 높은 수준의 언어를 사용하므로 생산성이 높아야 합니다. 고급 언어는 다음과 같이 컴파일할 수 있습니다. 기계어 코드(C 또는 C++) 또는 독립적인 아키텍처를 사용하여 바이트코드로 컴파일하여 가상 머신(Java)에서 실행하거나 처리할 수 있습니다(JavaScript, PHP, Ruby, Python, Perl 등).

어셈블리어를 배워야 한다는 것은 오해이다. 파이썬보다 낫다" 이것은 오래된 데이터를 기반으로 한 어리석은 관점입니다.

에너지, 합성유전학 등 분야의 소프트웨어를 담당하는 ICPC의 전무이사인 Bill Poucher

파이썬을 배워보세요. 프로그래밍 경험을 제공하십시오. 이 언어에는 고유한 우아함이 있습니다.

유닉스 머신용 언어인 C를 배우세요. UNIX를 이해하는 것은 비교적 쉽습니다.

Knuth를 이해하려면 MIX를 배우세요.

Java를 배우면 다른 사람과 함께 작업하는 것에 대해 걱정할 필요가 없으며 객체 지향 프로그래밍도 마스터할 수 있습니다.

C++를 배우면 원하는 스타일로 프로그래밍할 수 있습니다. 그 강점은 기본적인 프로그래밍 언어라는 점이다. 이 프로그램의 약점은 프로그램을 작성하려면 해당 스타일을 이해해야 한다는 것입니다.

재귀에 대한 이해를 강화하려면 LISP를 배우십시오.

적어도 뭔가를 배울 가치가 없다고 말했나요? 아니요. 당신이 해야 할 유일한 일은 끊임없이 무언가를 공부하도록 자신을 훈련시키는 것, 특히 발생하는 문제를 어떻게 해결할 수 있는지 연구하는 것입니다.

Shiva Shinde, Python은 코딩하기 쉽지만 읽기는 어렵습니다.

Python 프로그래밍 언어는 사라지지 않고 가장 빠르게 성장하는 언어 중 하나입니다.

  1. 배우기 쉽다
  • 현재 최고 10개 중 8개 미국 프로그램컴퓨팅을 위해 그들은 이 언어를 사용합니다(Philip Guo, CACM)
  • Python 프로그램에는 다른 프로그래밍 언어에서 흔히 볼 수 있는 최소한의 템플릿이 있는 경향이 있습니다. 따라서 문제에 대한 비표준 솔루션을 더 자주 사용할 수 있습니다.
  • 프로그래밍 경험이 있다면, 이 언어가 아니더라도 Python을 빠르게 마스터할 수 있습니다.

2. 전체 기능

  • 이는 단지 통계를 위한 언어가 아닙니다. Python은 데이터 수집 및 정리, 데이터베이스 작업, 고성능 컴퓨팅 등을 위한 모든 기능을 갖추고 있습니다.
  • 이는 수많은 내장 라이브러리가 포함된 일반적으로 허용되는 프로그래밍 언어입니다. 데이터 및 데이터베이스 관리와 작업에 좋습니다. 네트워크 프로그래밍. 엄청난 양의 리소스를 사용할 수 있는 사려 깊은 언어입니다.

3. 진지한 도서관과학적 데이터

  • Python에는 사용할 수 있는 엄청난 양의 데이터가 포함된 중요한 과학 라이브러리가 있습니다.
  • 이러한 연구 라이브러리의 중추는 자체 컨퍼런스를 주최하는 SciPy 생태계입니다.
  • Pandas와 Matplotlib는 SciPy의 구성 요소입니다. 그들은 대부분의 훌륭한 데이터를 제공합니다. 다양한 주제, 머신러닝, 텍스트 마이닝, 네트워크 분석 등이 있습니다.

Hernan Soulages, 실용적인 프로그래머

이 언어는 매우 인기가 있으며 학계에서 그 중요성이 커지고 있습니다. 프로그래밍 언어의 유용성은 해당 언어로 무엇을 하려는지에 달려 있다는 것도 사실입니다.

나는 PHP를 전혀 좋아하지 않지만 PHP의 다재다능함과 강력함, 그리고 배우기 쉬운 언어라는 점을 부인할 만큼 어리석지는 않습니다.
어셈블리 언어 학습의 경우 이 언어는 작업 중인 프로세서에 따라 직접적으로 달라집니다.

작업 방법을 알고 있다면 한동안 프로세서 제품군에서 해당 프로세서를 사용할 수 있을 것입니다. 그러나 시간이 지남에 따라 그들은 또한 약간의 변화를 겪습니다. 이런 의미에서 이 언어는 내구성이 가장 낮은 언어군입니다.

개발자 Magnus Lychka 소프트웨어예테보리의 컨설턴트

많은 사용자가 Python을 좋아합니다. 일부 응용 프로그램의 경우 속도가 너무 느려질 수 있습니다. 예를 들어 어셈블리 언어를 사용하면 더 빠르게 작동하지만 C로 작성된 코드가 모든 플랫폼에서 작동한다는 사실에도 불구하고 이러한 응용 프로그램은 C에서도 빠르게 작동합니다.

많은 스타트업이 Python으로 성공을 거둔 후 일부 프로그램을 Java, C++ 또는 C로 다시 작성해야 했습니다. 그리고 이러한 스타트업이 어셈블리 언어로 작업을 시작했다면 매우 빠르지만 구현하기가 어려웠을 가능성이 높습니다. 읽기 코드가 완료됩니다.

그러나 어셈블리 언어로 작업할 때는 다음 사항뿐만 아니라 다음 사항도 처리해야 합니다. 다양한 아키텍처프로세서뿐 아니라 운영 체제마다 기술적인 세부 사항도 다릅니다.

답변 3개

Python은 빠르게 배우고 사용하고 이해하고 명확하고 일관된 구문을 제공하도록 설계된 동적이며 강력한 형식의 객체 지향 다중 레벨 프로그래밍 언어입니다.

  • 파이썬 동적으로인쇄됨: 이는 변수 이름에 대한 유형(예: "정수")을 선언하지 않고 해당 유형의 항목(및 해당 유형만)을 할당한다는 의미입니다. 대신 변수 이름이 있고 이를 엔터티 자체에 유형이 유지되는 개체에 바인딩합니다. a = 5는 변수 이름을 정수 5에 대한 참조로 만듭니다. 나중에 a = "hello"는 변수 이름 a를 "hello"를 포함하는 문자열에 대한 참조로 만듭니다. 정적 유형 언어는 int a를 선언한 다음 a = 5를 선언할 수 있지만 a = "hello"를 할당하면 컴파일 시간 오류가 발생합니다. 한편으로 이는 모든 것을 더 예측하기 어렵게 만듭니다(a가 무엇을 가리키는지 알 수 없음). 반면에 정적 유형 언어에서는 매우 어려운 일부 결과를 얻는 것은 매우 쉽습니다.
  • 파이썬 강력한 형식의. 이는 a = "5"(값이 "5"인 문자열)인 경우 문자열로 유지되며 컨텍스트에서 요구하는 경우 숫자로 강제 지정되지 않음을 의미합니다. Python의 모든 유형 변환은 명시적으로 수행되어야 합니다. 이는 예를 들어 텍스트 입력이 약하고 "hello" + 5와 같이 작성하여 "hello5"를 얻을 수 있는 Perl 또는 Javascript와는 다릅니다.
  • 파이썬 객체지향, 클래스 기반 상속이 있습니다. 인수로 전달될 수 있고 메서드와 속성 등을 가질 수 있다는 점에서 모든 것은 객체(클래스, 함수, 모듈 등 포함)입니다.
  • 파이썬 다목적: 특정 사용자 목표(예: 통계의 경우 R, 웹 프로그래밍의 경우 PHP)를 전문으로 하지 않습니다. C 프로그래밍 언어에 매우 쉽게 연결되는 모듈과 라이브러리를 통해 확장됩니다.
  • Python은 올바른 것을 제공합니다 들여 쓰기구문을 들여쓰기하여 코드를 작성합니다. Python에는 퀴즈가 없습니다. 중괄호. 코드 블록은 들여쓰기 수준으로 식별됩니다. 많은 프로그래머가 이에 익숙하지 않더라도 매우 일관된 스타일을 제공하고 시각적으로 읽기 좋은 코드를 생성하므로 매우 가치가 있습니다.
  • 코드는 다음과 같이 컴파일됩니다. 바이트 코드그런 다음 가상 머신에서 실행됩니다. 이는 미리 컴파일된 코드가 플랫폼 간에 이식 가능하다는 것을 의미합니다.

Python은 GUI 프로그래밍부터 웹 프로그래밍까지 모든 프로그래밍 작업에 사용할 수 있습니다. 이것은 매우 효과적이기 때문에 대부분의활동은 C 수준에서 수행됩니다. Python은 C 위에 있는 계층일 뿐입니다. 게임 프로그래밍, OpenGL, GUI, 웹 프레임워크, 의미 네트워크, 과학 컴퓨팅 등 생각할 수 있는 모든 것을 위한 라이브러리가 있습니다.

Python은 프로그래밍의 세계로 한 발짝 다가가는 기회를 제공합니다. Python 프로그래밍 언어는 나온 지 25년이 지났지만 여전히 인기가 높아지고 있습니다. Python의 가장 큰 장점 중 일부는 다음과 같습니다.

  • 읽기 쉽고 배우기 쉽습니다.
  • 매우 생산적이거나 소규모이며 또한 주요 프로젝트
  • 많은 것을 위한 대규모 도서관

Python 프로그래밍 언어는 무엇에 사용됩니까?

프로그래밍 언어처럼 범용파이썬은 여러 가지 용도로 사용될 수 있습니다. Python은 소규모, 대규모, 온라인 및 오프라인 프로젝트에 쉽게 사용할 수 있습니다. 최선의 선택 Python에는 웹 개발, 간단한 스크립팅 및 데이터 분석이 포함됩니다. 다음은 Python을 통해 수행할 수 있는 작업에 대한 몇 가지 예입니다.

웹 개발:

Python을 사용하면 다양한 수준의 복잡성으로 웹 애플리케이션을 만들 수 있습니다. Pyramid, Django, Flask 등 훌륭한 Python 웹 프레임워크가 많이 있습니다.

데이터 분석:

Python은 많은 연구 과학자들이 가장 선호하는 언어입니다. Python은 다음을 포함한 뛰어난 라이브러리로 인해 이 분야에서 인기를 얻었습니다. NumPy 및 Pandas와 Matplotlib 및 Seaborn과 같은 훌륭한 데이터 시각화 라이브러리.

기계 학습:

고객 만족도를 예측하거나, 어떤 요인이 가계 가격에 영향을 미칠지 분석하거나, 지난 몇 년간의 데이터를 기반으로 향후 며칠 동안의 주식을 예측할 수 있다면 어떨까요? 알고리즘을 구현하는 훌륭한 라이브러리가 많이 있습니다. 기계 학습, Scikit-Learn, NLTK 및 TensorFlow와 같은.

컴퓨터 시각 인식:

얼굴 감지, 색상 감지 등 다양한 멋진 작업을 수행할 수 있습니다. Opencv를 사용하여그리고 파이썬.

Raspberry Pi에 대한 인터넷 정보:

라즈베리 파이(Raspberry Pi)는 교육용으로 설계된 매우 작고 저렴한 컴퓨터로, 수제 하드웨어와 자동화를 통해 애호가들 사이에서 엄청난 인기를 얻었습니다. 로봇을 만들고 집 전체를 자동화할 수도 있습니다. Raspberry Pi는 로봇의 두뇌로 사용될 수 있습니다. 다양한 액션및/또는 응답 환경. Raspberry Pi에서 코딩은 다음과 같이 수행할 수 있습니다. 파이썬을 사용하여. 가능성은 무궁무진합니다!

게임 개발:

Pygame 모듈을 사용하여 비디오 게임을 만듭니다. 기본적으로 Python을 사용하여 게임 로직을 작성합니다. PyGame 애플리케이션은 Android 장치에서 실행될 수 있습니다.

웹 스크레이퍼:

웹사이트에서 데이터를 가져와야 하는데 사이트에 데이터를 게시할 API가 없는 경우 Python을 사용하여 데이터를 긁어냅니다.

스크립트 작성:

수동으로 작업하고 다음과 같은 반복적인 작업을 자동화하려는 경우 이메일, 언어의 기본 사항을 알면 자동화하는 것이 어렵지 않습니다.

브라우저 자동화:

브라우저를 열고 Facebook 상태를 게시하는 등의 깔끔한 작업을 수행하세요. Python과 Selenium을 사용하면 이 작업을 수행할 수 있습니다.

그래픽 인터페이스 개발:

만들다 그래픽 응용 (데스크탑 애플리케이션), 지원을 위해 Python Tkinter, PyQt 모듈을 사용합니다.

신속한 프로토 타입:

Python에는 거의 모든 것을 위한 라이브러리가 있습니다. 다음 용도로 사용하세요. 빠른 생성(더 낮고, 종종 덜 강력한) 프로토타입. Python은 기존 회사 및 스타트업의 아이디어나 제품을 테스트하는 데에도 적합합니다.

Python은 다양한 프로젝트에서 사용될 수 있습니다. 당신이 프로그래머를 찾고 있다면 새로운 언어, 당신은 그것이 대중화되기를 원합니다. 프로그래밍 초보자에게 Python은 빠르고 쉽게 배울 수 있는 완벽한 선택입니다.

"먼저 선택할 프로그래밍 언어"라는 질문에 대한 답을 찾고 있다면 모든 경우의 약 90%에서 가장 배우기 쉬운 언어인 Python이 제공됩니다. 그리고 이전에 프로그래밍을 배운 적이 없는 특정 수의 사람들이 이러한 권장 사항 때문에 Python을 선택할 것이라는 것은 분명합니다. 그리고 여기에 문제가 있는데, 이에 대해서는 아래에서 논의하겠습니다. 물론, 내가 어떻게 이 삶을 살게 되었는지에 대한 설명과 함께.

나에 대해서

학생 시절에도 나는 내 전문 분야가 18세 때 생각했던 것만큼 장밋빛이 아니라는 것을 깨달았습니다. 그래서 어떻게 하면 돈을 제대로 벌 수 있을지 고민하기 시작했어요. 그리고 그 당시 1C에서 내 사촌이 미친 돈을 받았다는 이야기를 듣고 나도 내 삶을 IT와 연결하기로 결정했습니다.

처음에는 웹 사이트 빌더와 WordPress를 사용하는 템플릿 사이트였습니다. 그러다가 SEO에 참여하게 되었고 어느 ​​순간 Habr을 알게 되었고 그 후 본격적인 프로그래머가 되기로 결정했습니다. 저는 수학에 대한 높은 지식이 없었기 때문에 수학이 필요하지 않은 분야인 웹 개발을 선택하기로 결정했습니다.

나는 분명한 질문이 있었습니다: 어떤 언어를 선택할 것인가 - php/python/ruby. Habré에 대한 기사를 충분히 본 후 Yandex에서 몇 가지 동기 부여 비디오를 본 후 PHP에 대한 증오심을 읽었습니다. 저는 파이썬을 선택했습니다. 언어의 장점을 아셨으면 좋겠습니다. 그러니 그것에 대해서는 이야기하지 않겠습니다.

기본 어학연수

저는 언어 학습과 본업을 병행하여 저녁에는 책을 읽고, 튜토리얼을 시청하고, 작은 프로젝트를 진행했습니다. 일반적으로 나는 1년 안에

1) 공부한 책:

  • 마크 루츠 - Python 학습
  • Mark Lutz - Python 프로그래밍
  • 채드 파울러(Chad Fowler) – 프로그래머 광팬
  • Bill Lubanovich - 간단한 Python
2) 우크라이나/부르주아 작가들의 Django 관련 동영상을 많이 연구했습니다.
3) 코드아카데미 과정을 이수한 자
4) PyCharm을 마스터했습니다

첫 번째 프로젝트

그러다가 Python + Django에 대한 지식을 통합하기 위해 매우 특정한 주제에 대한 작은 서비스에 대한 아이디어가 생겼습니다.

나는 사이트를 만들면서

1) 공부한 책:

  • 존 더켓(John Duckett) - HTML 및 CSS. 웹사이트 개발 및 디자인
  • 데이비드 플래너건(David Flanagan) - 자바스크립트. 상세안내
  • Ben Forta - 스스로 SQL을 배워보세요.
2) 나는 내 작업을 위해 Django 문서를 공부했습니다.
3) Django Gunicorn + nginx + centOS에서 프로젝트 배포를 연구했습니다.

나의 첫 번째 일반 프로젝트

첫 번째 적절한 웹 사이트가 실패한 후 가치 있는 것을 만들기로 결정하고 아이디어를 선택하고 구현 계획을 선택하고 3개월 만에 저녁에 완료했습니다.

이 프로젝트는 실행 가능성을 보여주었습니다(현재까지 이 프로젝트로 인해 약간의 돈을 벌 수 있어 매우 기쁩니다). 그리고 나는 그것을 더 잘 펌핑하기로 결정했습니다.

"Percival H. - Test-Driven Development with Python"이라는 책을 읽은 후 Django 구성 요소를 기반으로 먼저 테스트를 작성하기로 결정한 다음 Selenium 문서를 찾아보고 이미 외부 테스트를 수행했습니다.

멋있어지고 싶어

Python-Django 개발자를 위한 공석을 개설한 후 저는 그러한 공석에 일반적으로 필요한 것이 무엇인지 살펴보았습니다.
  • Django Rest 프레임워크
  • 셀러리
  • Tornado/Twisted/asyncio (하나 선택)
  • 클래스 기반 뷰 Django
  • Angular/React (하나 선택)
이러한 것들을 알아보고 시도하는 데 3개월을 보냈습니다. 또한 제기 표준 라이브러리 Python + 외부 구문 분석 라이브러리 beautifulSoup.

C/C++ 없이는 작업할 수 없습니다.

C/C++에 대한 지식이 없으면 프로그래머는 자신을 프로그래머라고 부를 수 없다는 의견이 있습니다. 그래서 내가 가졌을 때 자유 시간, 나는 책에 대해 알게되었습니다.
  • Brian Kernighan – C 프로그래밍 언어
  • Stanley B Lippman – C++ 프로그래밍 언어. 기본과정
나는 책을 읽고, 코드를 수정하고, 편집본을 보고, 코드 예제를 보았습니다. 일반적으로 이제는 참조, 포인터, 정렬, OOP 및 다양한 배열에 대한 언급을 크게 눈여겨보지 않았습니다. 다른 속도로위치에 따라 요소를 처리합니다.

나는 싸울 준비가 되어있습니다!

그리고 여기서 우리는 가장 중요한 점에 도달합니다. 위에서 언급한 웹 프로그래밍의 모든 요소를 ​​배우는 데 총 2년을 보냈습니다. 저는 Python 웹 개발자 자리에 지원하기에 충분히 준비가 되었다고 생각했습니다. 물론 잘 모르는 것도 있고, 피상적으로 아는 것도 있고, 전혀 모르는 것도 있었지만(예를 들어 Flask) 일반적인 이해그리고 실력도 꽤 괜찮았어요.

그리고 여기에서 사람들이 가장 자주 집중하지 않는 Python의 문제가 시작되었습니다. 즉, 중급/중급 수준의 Python 개발자를 위한 비즈니스 수요에 관한 것입니다.

나는 이 질문을 가지고 시장에 입문했다.

언뜻 보기에 Python에는 빈 공간이 꽤 많은 것처럼 보이지만 세부 사항이 시작되면 모든 것이 극적으로 변합니다.

1. Python이 전적으로 보조 언어인 공석에 대한 대규모 심사가 즉시 이루어집니다. 대부분 이러한 직책은 Java 개발자, 시스템 관리자, QA 자동화입니다. 또한, 수학 교육 + R 언어가 필요한 데이터 학습에서 큰 탈락자가 발생하고 있습니다. Python만으로는 이러한 빈자리를 찾을 수 없습니다.

2. 우리 도시에는 Python을 위한 공석이 전혀 없다는 것이 밝혀졌습니다. 문자 그대로 전혀 없습니다. 검색을 지역 전체로 확장해 보았지만 만족스럽지 못한 결과를 얻었습니다. Python이 장점이었던 PHP에 몇 가지 공석이 있었습니다. 지난 3년간 필터를 열어보니 Python에 빈자리가 전혀 없다는 것도 알게 되었습니다. 저것들. 지방의 기업은 Python보다 더 간단하고 대중적인 기술을 선택하는 경우가 가장 많습니다.

3. 일반 검색 엔진에서 Python 공석을 열면서 다음과 같은 추세를 발견했습니다.

  • 공석의 90% 이상이 모스크바나 상트페테르부르크에 있습니다.
  • 공석 중 90% 이상이 중급 이상/고급 수준 필요
  • 모스크바 또는 상트페테르부르크의 주니어 직위에 대한 ~100% 공석(대부분 거대 기업에서)
즉, 모스크바, 상트 페테르부르크에 살지 않고 그들을 "정복"하러 가지 않을 경우 첫 번째 직업을 얻을 곳이 거의 없다는 상황이 밝혀졌습니다.

물론 카잔과 같이 Python이 여전히 사용되는 곳이 몇 군데 있습니다. 그러나 대부분 이것은 공석이 매우 중간 + / 고위급인 하나의 회사입니다.

4. 현재 수준에서 원격 근무를 모색하는 옵션은 고용주가 그러한 위험을 감수할 준비가 되어 있지 않음을 보여줍니다. 약간의 경험 + 원격 근무 = 일종의 환상입니다.
그럼에도 불구하고 나는 여전히 몇 가지 옵션을 찾을 수 있었지만 초기 인터뷰에서 이미 다음과 같은 말도 안되는 일이라는 것이 분명해졌습니다. 도." 최선의 선택은 아닙니다.

5. HR 담당자 몇 명과 이야기를 나눴습니다. 대기업, 그들은 이러한 경향을 표현했습니다. “우리는 일반적으로 최소 1년의 Python 경험과 다른 언어 경험(3년 이상)을 가진 사람들을 채용합니다. 대부분 php/Java입니다." 즉, Python만 사용하는 사람을 채용하는 것은 전혀 고려하지 않았습니다.

6. 전문 포럼의 사람들과 이야기를 나눈 후 이것이 매우 일반적인 상황이라는 것이 분명해졌습니다. 그들의 이야기에서 사람들은 쓸데없는 검색 끝에 PHP/1c 작업을 하러 갔거나 어떻게든 업워크/자체 프로젝트/테스트 자동화를 통해 올라갔다는 것이 분명해졌습니다.
그러나 다시, 경우에 따라.

일반적으로 Python은 강력한 프로젝트를 만들 수 있는 탁월한 언어인 것으로 나타났습니다. 그리고 그들의 집중이 수도에 집중되는 일이 일어났습니다. 그리고 이것은 복잡한 프로젝트이기 때문에 중간+ 수준의 직원이 필요합니다. 방금 Python을 배운 사람이 그러한 공석을 얻을 준비가 되었습니까? 어려운!

하지만 다른 방법이 있습니다!

안에 현재우리 도시에만 다양한 수준의 PHP에 대한 공석이 24개 있습니다. 소규모 회사, 현재 사이트를 유지해야하며 지속적인 기능 확장을 제공하는 전자 상거래 거대 기업으로 끝납니다). 그리고 1C에 대한 공석 수는 거의 같습니다. 그리고 이들 공석 중 약 절반 정도는 최소한 프로그래밍에 대해 알고 있는 사람을 고용할 준비가 되어 있습니다. 아마도 이것들은 대부분이 아닙니다 최고의 장소, 그러나 이것은 이미 공식적으로 HR의 숙련된 프로그래머가 될 첫 번째 직업입니다.

그래서 결국

멋진 프로그래밍 언어 Python을 배우고 거리에 머물 수 있다는 것이 밝혀졌습니다. 아니면 "미워하는" php/1c를 배우고 취업할 수도 있습니다. 물론 이 작업의 품질은 많은 질문을 남깁니다. 그러나 이것은 이미 경험입니다.

나는 내 상황(모스크바/상트페테르부르크에 가지 않음)으로 인해 현재 내 언어에서만 요구되는 언어를 배우는 데 실제로 시간을 보냈습니다. 자신의 프로젝트. 로컬이나 원격으로 일자리를 찾을 수 없었습니다. 이제는 단순히 작업이 있기 때문에 PHP로 이동하고 있습니다.

따라서 모스크바, 상트 페테르부르크에 거주하지 않거나 기술 대학의 학생이 아닌 경우 Python을 모국어로 배우라고 조언하지 않습니다. PHP에 주목하세요. 항상 PHP를 사용할 수 있는 장소가 있고, 일이 있고, 경험이 있습니다. ㅏ 추가 경로개발은 이미 뒤쳐져 있습니다.

추신내 친구가 말했듯이 Ruby에서도 상황은 거의 동일합니다. 하지만 여기서는 더 이상 자신있게 말할 수 없습니다.

Python으로 어떤 프로그램이 작성되나요?

일반 사람들을 위한 응용 소프트웨어

먼저 그들이 사용하는 프로그램을 살펴보겠습니다. 보통 사람들정보 기술 분야의 전문가가 아닌 사람.

비트토렌트

이 토렌트 클라이언트의 최대 6개 버전은 모두 Python으로 작성되었습니다. 버전 6은 C++로 다시 작성되었습니다.

우분투 소프트웨어 센터

Wikipedia에서 인용:
우분투 애플리케이션 센터(영어) 우분투 소프트웨어 센터)는 Ubuntu Linux 시스템에서 패키지를 찾고, 설치하고, 제거하기 위한 무료 소프트웨어입니다. 최신 버전에서는 Linux 및 Ubuntu에 관한 잡지를 구입할 수 있으며, 유료 게임 및 소프트웨어도 구입할 수 있습니다. 이 애플리케이션은 GTK+ 라이브러리를 사용하여 Python + Vala로 개발되었으며 고급 패키징 도구용 그래픽 셸입니다.

블렌더

Wikipedia에서 인용:
블렌더- 3차원 제작을 위한 무료 전문 패키지 컴퓨터 그래픽에는 모델링, 애니메이션, 렌더링, 비디오 후처리 및 제작을 위한 도구가 포함되어 있습니다. 대화형 게임. 현재는 전문 개발팀의 지원을 받아 빠르고 안정적인 개발로 인해 무료 3D 편집자들 사이에서 가장 인기가 높습니다.

Python은 도구 및 프로토타입, 게임의 논리 시스템을 만드는 도구, 파일 가져오기/내보내기(예: COLLADA) 및 작업 자동화 수단으로 사용됩니다.

다음은 일부 문서 페이지입니다.

Wikipedia에서 인용:
Python을 사용하여 작성합니다. 추가 모듈, 예를 들어 필터.
다음은 주제에 대해 더 자세히 설명하는 몇 가지 페이지입니다.

계략

문명 IV

대부분의 게임은 Python()으로 작성되었습니다.

배틀필드 2

변화를 위한 많은 교과서와 간단한 요리법이 인터넷에 있습니다. 다양한 물건그리고 그들의 행동.

탱크의 세계

"World of Tanks 게임의 GUI" 기사에서 인용:
Python은 프로젝트의 스크립팅 언어로 사용됩니다. 우리가 Flash로 만든 모든 아름다움은 게임에 연결되고, 데이터로 채워지고, 사용자 입력을 처리하고 변환해야 합니다. 실제 행동게임에서. 이 모든 작업은 Python에서 수행됩니다.
전체 목록 Python을 사용하는 게임은 Wikipedia 및 Python 설명서에서 찾을 수 있습니다.

어떤 회사에서 Python을 사용하나요?

Python을 사용하는 회사 목록은 길다. 그 중에는 구글이 있고, 페이스북, 야후 , NASA , 레드햇 , IBM , 인스 타 그램 , Dropbox, Pinterest, Quora, Yandex, Mail.Ru.

얀덱스

여기 "Yandex.Disk의 핵심에 있는 Python" 보고서가 있습니다. 세르게이 이바쉬첸코(연사):
Yandex.Disk에서 Python을 사용하는 방법, 사용하는 라이브러리와 프레임워크, 해결하는 작업 및 직면하는 문제에 대해 이야기하겠습니다. 또한 비동기 작업 로깅 및 처리에 대한 주제도 다루겠습니다.
Yandex 채널의 동영상 중 하나에서 직원들은 자신이 가장 좋아하는 언어에 대해 이야기했습니다.

그리고 Yandex 회사 블로그에는 2014년 3월 19일자 "Yandex에 작성된 프로그래밍 언어"라는 항목이 있습니다. 따라서 Yandex 직원의 13%는 대부분의 업무 시간을 Python으로 작성합니다.

Mail.ru

Mail.ru 직원도 Python을 사용합니다. 안에 공식 블로그 Habré의 Mail.ru에는 Python에 관한 여러 기사가 있습니다.

Google

Google은 창립 이래 Python을 광범위하게 사용해 왔습니다. 대부분의 YouTube와 구글 드라이브 Python으로 작성되었습니다. Google은 전체를 개발했습니다. 클라우드 플랫폼 구글 앱개발자가 Python 코드를 실행할 수 있는 엔진 구글 클라우드. 많은 언어 개발자가 Google에서 일해왔고 현재 일하고 있습니다.

드롭 박스

이 서비스는 Python으로 개발되었습니다. Python 언어의 저자인 Guido van Rossum이 DropBox에서 일하는 것은 우연이 아닙니다.

다른 회사

Python을 사용하는 조직

Python은 어떤 분야에 사용되나요?

웹 개발

이에 파이썬 영역, 아마도 가장 많이 사용되는 것 같습니다. Django 웹 프레임워크는 계속해서 추진력을 얻어 팬층을 확대하고 있습니다. 많은 초보 프로그래머는 Python이 다른 곳에서는 사용되지 않는다고 생각합니다. 하지만 다른 많은 웹 프레임워크는 Python으로 작성되었습니다. 터보기어 , CherryPy, Flask, Pyramid 등. 더 완전한 목록을 찾을 수 있습니다.
Django를 기반으로 한 CMS도 있는데 DjangoCMS라고 합니다.
웹사이트 파서는 Python으로 작성되는 경우가 많습니다. 일반적으로 요청, aiohttp, BeautifulSoup, html5lib가 이를 위해 사용됩니다. 웹사이트 구문 분석을 위한 더 높은 수준의 도구도 있습니다. 긁어 모으기.

시스템 관리

Python은 시스템 관리자의 작업을 자동화하는 데 탁월한 언어입니다. 모든 Linux 서버에 기본적으로 설치됩니다. 그것은 간단하고 이해하기 쉽습니다. Python 코드는 읽기 쉽습니다. 어떤 사람들은 Perl을 좋아하고 나도 좋아해요 편안한 일와 함께 정규 표현식하지만 나는 구문 때문에 Perl을 싫어합니다. Bash는 상대적으로 중소 규모의 스크립트에 유용하지만 Python이 더 강력하고 어떤 경우에는 훨씬 적은 양의 코드를 작성할 수 있습니다.
내가 아는 유일한 패키지는 Fabric입니다. 아마도 다른 것이 있을 수도 있으니 아시는 분은 댓글로 적어주세요.

추가 정보

시스템 관리자를 위한 Python(IBM DeveloperWorks)
패브릭 문서. 시스템 관리.

임베디드 시스템

Python은 임베디드 시스템 프로그래밍에 매우 자주 사용됩니다. Python을 사용하는 가장 유명한 프로젝트는 Raspberry Pi입니다. 그러나 그는 유일한 사람이 아닙니다.
임베디드 파이썬
라즈베리 파이
Python 임베디드 도구
올빼미 임베디드 Python 시스템

게임을 포함한 응용 소프트웨어 개발

파이썬은 다음과 같이 자주 사용됩니다. 보조 언어응용 소프트웨어를 개발할 때. 위에서 이미 예를 들었으므로 반복하지 않겠습니다.

과학적 연구

물리학자와 수학자들은 단순성 때문에 Python을 좋아합니다. 또한 과학자의 삶을 더 쉽게 만들어 주는 수많은 Python용 라이브러리가 있습니다. 예를 들어:
  1. 사이파이- 이것 열린 도서관 Python 프로그래밍 언어를 위한 고품질 과학 도구입니다. SciPy에는 최적화, 통합, 특수 기능, 신호 처리, 이미지 처리, 유전 알고리즘, 상미분 방정식 풀기, 과학 및 공학에서 일반적으로 해결되는 기타 문제를 위한 모듈이 포함되어 있습니다.
  2. Matplotlib- 2차원(2D) 그래픽(3D 그래픽도 지원됨)으로 데이터를 시각화하기 위한 Python 프로그래밍 언어의 라이브러리입니다. 결과 이미지는 출판물의 일러스트레이션으로 사용될 수 있습니다.
  3. 넘파이대규모 지원을 추가하는 Python 언어의 확장입니다. 다차원 배열그리고 고급 수준의 대규모 라이브러리와 함께 수학 함수이러한 배열 작업을 위해.
Python의 과학 컴퓨팅 라이브러리에 대한 보다 포괄적인 목록은 Wikipedia에서 찾을 수 있습니다.

교육

Python은 종종 첫 번째 프로그래밍 언어로 권장됩니다.
일부 러시아 학교는 학생들에게 Python 프로그래밍을 성공적으로 가르친 경험이 있습니다.
그런데 Guido van Rossum은 Python을 작성할 때 ABC 언어에 깊은 인상을 받았습니다. 그리고 ABC 언어는 훈련과 프로토타입 제작을 위해 만들어졌습니다.

Python 언어에 대한 비판

Python은 가장 느린 프로그래밍 언어 중 하나입니다.

인터넷에서는 다음 언어로 작성된 프로그램에 대한 다양한 속도 테스트를 찾을 수 있습니다. 다른 언어들프로그램 작성. Python은 일반적으로 목록의 끝에 있습니다.
일반적으로 Python은 언어의 참조 구현인 CPython을 나타냅니다. PyPy와 같은 Python 언어의 다른 구현이 있습니다. PyPy는 CPython 및 기타 많은 스크립팅 프로그래밍 언어보다 빠르며 속도 면에서 Java와 매우 유사합니다. 그러나 한 가지 문제가 있습니다. PyPy는 Python 언어를 완전히 구현하지 않습니다. 이로 인해 많은 Python 프로그램이 Python에서 작동하지 않습니다.
많은 프로그래머들은 작업 속도를 높이기 위해 C/C++로 삽입을 작성합니다. 병목 현상. Python은 다음을 대상으로 하지 않습니다. 컴퓨팅 작업, 많은 메모리(메모리 바인딩) 등이 필요한 작업에 사용됩니다. 직면한 작업에 적합한 도구를 선택할 수 있어야 합니다. Guido van Rossum은 인터뷰에서 이에 대해 이야기합니다.

GIL은 여러 스레드가 동시에 실행되는 것을 방지합니다.

전역 통역사 잠금은 여러 Python 스레드가 동시에 실행되는 것을 방지합니다. 이것이 CPython의 기능입니다. 하지만 이것이 단점일까요? 모든 것이 작업에 달려 있다는 것을 이해해야 합니다. 작업이 I/O 속도(IO 바운드 작업)에 따라 달라지는 경우 다음에서 작동하는 여러 프로세스를 사용하는 것이 더 효율적입니다. 비동기 모드외부 자원으로. 공유 메모리 스레드는 컴퓨팅 작업(CPU 바인딩)에 적합합니다. 그러나 스레드로 작업해야 하는 경우에도 잠시 동안 GIL을 비활성화할 수 있습니다. 수학 패키지 NumPy.

좋은 배포 도구가 없습니다

불행하게도 코드는 Python에 있으며 Python에 대한 의존성이 많습니다. 시스템 라이브러리, 다른 시스템으로 전송하기가 어렵습니다. 이 문제는 virtualenv를 사용하여 해결됩니다. 하지만 이 도구는 시스템 관리자로부터 많은 비판을 받았습니다.

추가 정보

Python 성공 사례
Python을 사용하여 무엇을 작성하셨나요?
Python은 무엇에 사용되나요?
그것이 "파이썬"의 세계이고 우리가 그 안에 살고 있다는 더 많은 증거
Python이 필요한 직업의 평균 급여
Python 소프트웨어 목록


질문이 있으신가요?

오타 신고

편집자에게 전송될 텍스트: