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개월을 보냈습니다. 기준도 높였습니다 파이썬 라이브러리+ 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의 숙련된 프로그래머가 될 첫 번째 직업입니다.

    그래서 결국

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

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

    따라서 모스크바, 상트 페테르부르크에 거주하지 않거나 기술 대학의 학생이 아닌 경우 가르치는 것을 권하지 않습니다. 파이썬 먼저혀. PHP에 주목하세요. 항상 PHP를 사용할 수 있는 장소가 있고, 일이 있고, 경험이 있습니다. ㅏ 더 나아가는 길개발은 이미 뒤쳐져 있습니다.

    추신내 친구가 말했듯이 Ruby에서도 상황은 거의 동일합니다. 그러나 여기서는 더 이상 확실하게 말할 수 없습니다.

    특정 프로그래밍 언어를 배우기 전에 사람들은 일반적으로 자신의 지식과 기술을 실제로 어떻게 적용할 수 있는지 생각합니다. Python의 경우 이 언어는 범용다양한 분야에서 유용합니다. 스타트업 CS Dojo의 개발자이자 설립자 엑 수기세 가지에 대해 가장 많이 이야기했습니다. 자주 가는 길파이썬을 사용하여.

    1. 웹 개발

    다음과 같은 Python 기반 프레임워크 장고그리고 플라스크, V 최근에웹 개발자들 사이에서 큰 인기를 얻었습니다. 이러한 프레임워크를 사용하면 Python에서 실행되는 프런트엔드 코드와 달리 서버에서 실행되는 Python의 서버측 코드(백엔드 코드)를 생성할 수 있습니다. 사용자 장치그리고 브라우저에서.

    웹 프레임워크는 무엇을 위한 것인가요?

    웹 프레임워크는 URL 처리, 데이터베이스 액세스, 사용자가 브라우저에서 볼 수 있는 HTML 파일 생성 등 서버 측 논리 개발을 단순화합니다.

    웹 개발에 가장 적합한 프레임워크는 무엇입니까?

    Python에서 가장 널리 사용되는 두 가지 웹 프레임워크는 Django와 Flask입니다. 초보 개발자에게 권장됩니다.

    장고와 플라스크의 차이점은 무엇입니까

    이 질문에 대한 답변으로 훌륭한 기사를 준비했습니다. 가레스 드와이어.

    주요 차이점:

    • Flask는 매우 간단하고 유연한 프레임워크입니다. 세부 설정. 사용자는 특정 기능을 구현하는 방법을 스스로 결정할 수 있습니다.
    • Django는 기본 제공 관리 인터페이스, 액세스 API애플리케이션과 프로젝트를 위한 데이터베이스, ORM, 디렉터리 구조에 적용됩니다.

    다음을 사용하는 것이 더 좋습니다:

    • 개발자의 목표가 경험과 학습 기회인 경우 또는 사용할 구성 요소(예: 사용할 데이터베이스 또는 상호 작용 방법)를 독립적으로 선택해야 하는 경우 플라스크를 사용하세요.
    • Django, 가장 중요한 것은 최종 제품입니다. 특히 뉴스 사이트, 온라인 상점, 블로그 등 사용자가 쉽게 탐색할 수 있는 직관적인 애플리케이션을 구축해야 하는 경우에는 더욱 그렇습니다.

    따라서 Flask는 초보자뿐만 아니라 자신의 재량에 따라 사용자 정의할 수 있는 기능을 중요하게 생각하는 사람들에게도 사용하는 것이 좋습니다. 또한 유연성으로 인해 Flask는 Django보다 REST API 개발에 더 적합합니다. 반면, 간단한 제품을 만들어야 한다면 Django를 사용하는 것이 더 빠릅니다.

    2. 데이터 처리(머신러닝, 데이터 분석, 시각화 포함)

    머신러닝이란?

    머신러닝은 다음에서 더 잘 설명됩니다. 명확한 예. 그림에 묘사된 물체를 자동으로 인식하는 프로그램을 개발해야 한다고 가정해 보겠습니다. 첫 번째 그림에서 프로그램은 개를 식별해야 합니다.

    두 번째로, 그녀는 테이블을 인식해야 합니다.

    첫 번째 방법은 이것을 작성하는 것입니다. 특수 코드. 예를 들어, 사진에 연한 갈색 픽셀이 많으면 그 안에 개가 있다는 의미입니다. 또는 물체의 경계를 인식하는 방법을 찾을 수 있습니다. 그림에 직선이 많으면 이것이 테이블입니다.

    예를 들어, 갈색 털이 전혀 없는 밝은 색의 개나 다리가 없는 둥근 테이블 상판만 보이는 경우에는 이 솔루션은 쓸모가 없습니다. 이곳이 미래가 열리는 곳이다 기계 학습.

    기계 학습은 일반적으로 입력 데이터에서 특정 패턴을 자동으로 검색하는 알고리즘을 사용합니다. 예를 들어, 수천 개의 개 사진과 수천 개의 테이블을 입력할 수 있습니다. 다음으로, 기계 학습 알고리즘은 개와 테이블의 차이를 식별합니다. 알고리즘이 개나 테이블의 새로운 이미지를 수신하면 해당 개체를 식별할 수 있습니다.

    즉, 시스템은 다음과 같이 학습됩니다. 구체적인 예: 그녀는 이것저것의 개별 기호를 보여주지 않고 많은 이미지를 보여주며 그 모든 것에 이 사물이 그려져 있다고 말한다. 같은 방식으로 훈련

    가장 널리 알려진 알고리즘기계 학습:

    • 신경망,
    • 딥러닝,
    • 지원 벡터 머신,
    • "랜덤 포레스트".

    이러한 알고리즘 중 하나를 사용하여 위의 이미지 라벨링 문제를 해결할 수 있습니다.

    머신러닝을 위한 Python

    Python용으로 널리 사용되는 기계 학습 라이브러리와 프레임워크가 있습니다. 그 중 가장 큰 두 가지는 scikit-learn그리고 텐서플로우. scikit-learn에는 위에서 설명한 일부 잘 알려진 기계 학습 알고리즘이 내장되어 있습니다. TensorFlow는 사용자 정의 알고리즘을 구축할 수 있는 하위 수준 라이브러리입니다.

    기계 학습을 배우는 방법

    이 기술의 기본 사항을 배우려면 Stanford University 또는 그러나 일부 자료를 이해하려면 다음이 필요합니다. 기본 지식미적분학 및 선형 대수학.

    다음으로, 수신된 정보를 Kaggle 웹사이트에 고정해야 합니다. 여기에서 다른 개발자와 경쟁하여 만들 수 있습니다. 최고의 알고리즘머신러닝 다양한 업무. 이 사이트는 초보자를 위한 유용한 튜토리얼도 제공합니다.

    데이터 분석 및 데이터 시각화

    예를 들어 인터넷을 통해 상품을 판매하는 가상 회사의 데이터 분석가를 예로 들 수 있습니다. 분석가는 판매 결과를 막대 차트로 표시할 수 있습니다.

    차트는 특정 일요일에 남성 쇼핑객이 400개 이상의 제품을 구매했고, 여성 쇼핑객은 약 350개를 구매했음을 보여줍니다. 전문가는 이러한 격차가 발생한 이유에 대해 여러 가지 추측을 할 수 있습니다.

    한 가지 분명한 설명은 이 제품이 여성보다 남성 사이에서 더 수요가 많다는 것입니다. 다른 가능한 이유— 표본이 충분히 크지 않으며 그 차이는 우연에 기인할 수 있습니다. 세 번째 옵션은 어떤 이유로 남성이 이 제품을 일요일에만 더 많이 구매하는 경향이 있다는 것입니다. 어떤 설명이 사실인지 이해하기 위해 다른 다이어그램을 그릴 수 있습니다.

    일요일뿐만 아니라 일주일 내내 판매 통계를 고려해야합니다. 다이어그램에서 볼 수 있듯이 이러한 역학은 하루 종일 추적할 수 있습니다. 이 간단한 분석을 통해 매출 차이의 가장 그럴듯한 이유는 해당 제품이 여성보다 남성에게 더 인기가 있기 때문이라는 것을 알 수 있습니다.

    하지만 다이어그램이 다음과 같다면

    어떤 이유로든 남성은 일요일에만 이 제품을 구매하는 데 더 적극적이라고 결론을 내릴 수 있습니다.

    이것은 데이터 분석의 매우 간단한 예입니다. 그리고 이를 위해 기업에서는 숫자 파이썬, 데이터 시각화를 위한 Matplotlib 라이브러리.

    Python의 데이터 분석 및 시각화

    Matplotlib은 데이터 시각화를 위한 가장 일반적인 라이브러리 중 하나입니다. 간단하고 seaborn과 같은 일부 다른 라이브러리도 이를 기반으로 하기 때문에 시작하는 것이 가장 좋습니다. 따라서 Matplotlib에 대한 지식은 나중에 이를 마스터하는 데 도움이 될 것입니다.

    Python에서 데이터 분석 및 시각화를 배우는 방법

    우선, 기본을 배워야 합니다. Ek Sugi는 YouTube에서 Python 및 Matplotlib의 데이터 분석 및 시각화에 대한 자신의 소개 비디오를 제공할 뿐만 아니라 10일 구독 시 무료로 제공되는 Pluralsight 교육 플랫폼에 대한 전체 실습 과정을 제공합니다. 평가판 기간온라인. 그런 다음 Coursera 및 Khan Academy와 같은 통계의 기초를 공부하는 것이 유용합니다.

    3. 스크립트 작성

    스크립팅이란 무엇입니까?

    이는 일반적으로 생성으로 이해됩니다. 작은 프로그램자동화를 위한 간단한 작업. 예를 들어, 회사에서는 다음을 사용합니다. 다양한 시스템고객 지원 이메일. 수신된 메시지를 분석하려면 기업은 메시지 중 특정 키워드가 몇 개나 포함되어 있는지 계산해야 합니다.

    이 작업은 수동으로 수행할 수도 있고 간단한 프로그램(스크립트)을 작성할 수도 있습니다. 자동 처리메시지. Python은 상대적으로 간단한 구문과 소규모 프로젝트를 쉽고 빠르게 작성하고 테스트할 수 있기 때문에 이와 같은 작업에 적합합니다.

    Python 및 임베디드 애플리케이션

    Raspberry Pi 및 기타 하드웨어의 많은 개발자는 이 언어를 사용하여 프로그래밍합니다.

    파이썬과 컴퓨터 게임

    게임을 개발하려면 PyGame 라이브러리를 사용할 수 있지만 더 널리 사용되는 라이브러리도 있습니다. 게임 엔진. 아마추어 프로젝트를 만들 수도 있지만 진지한 게임을 개발하려면 더 나은 것을 찾아야 합니다.

    예를 들어, C#에서 Unity로 시작할 수 있습니다. 이는 가장 잘 알려진 개발 환경 중 하나입니다. 컴퓨터 게임. 이를 통해 Windows, Mac, iOS 및 Android용 크로스 플랫폼 게임을 만들 수 있습니다.

    Python 및 데스크톱 애플리케이션

    데스크톱 응용 프로그램은 Tkinter를 사용하여 Python으로 개발할 수 있지만 이것이 가장 큰 장점은 아닙니다. 빈번한 선택: PC 앱 개발자가 선호하는 것 자바 언어, C# 및 C++. 최근 일부 회사에서는 이를 위해 JavaScript를 사용하기 시작했습니다. 예를 들어 Slack 데스크톱 애플리케이션은 JavaScript를 사용하는 Electron 프레임워크에 구축되었습니다. 이 언어를 사용하면 가능한 경우 웹 버전 애플리케이션의 코드를 재사용할 수 있습니다.

    파이썬 3 또는 파이썬 2

    Python 3을 선택하는 것이 더 좋습니다. 오늘날 Python 3은 더 현대적이고 대중적인 언어 버전이기 때문입니다.

    "먼저 선택할 프로그래밍 언어"라는 질문에 대한 답을 찾고 있다면 모든 경우의 약 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은 영국의 유명한 코미디 TV 쇼 "Python"의 이름을 딴 널리 사용되는 고급 프로그래밍 언어입니다. 몬티 파이튼의 플라잉 서커스" Python 언어는 구조가 단순하지만 놀라울 정도로 유연하고 강력합니다. 고려해 보면 파이썬 코드읽기 쉽고 구문이 너무 엄격하지 않아 많은 사람들이 최고의 입문 프로그래밍 언어로 간주합니다.

    Python - 주어진 언어에 대한 설명 Foundation은 Python을 설명합니다.:

    Python은 해석되고 대화형이며 객체 지향 프로그래밍 언어입니다. 여기에는 모듈, 예외, 동적 타이핑, 높은 레벨 동적 유형데이터와 클래스. Python은 뛰어난 성능과 명확한 구문을 결합합니다. 많은 인터페이스를 구현합니다. 시스템 호출라이브러리는 물론 다양한 윈도우 시스템까지 갖추고 있으며 C, C++로 확장이 가능합니다. Python은 다음이 필요한 응용 프로그램의 확장 언어로 사용됩니다. 소프트웨어 인터페이스. 마지막으로 Python은 크로스 플랫폼 언어입니다. 유닉스 버전, Mac 및 실행 중인 컴퓨터에서 MS-DOS 제어, 윈도우, 윈도우 NT 및 OS/2.

    어떤 프로그래밍 언어를 먼저 배워야 할까요?

    Python 프로그래밍 언어 학습을 시작할 수 있습니다. Python이 다른 입문 언어와 어떻게 다른지 설명하려면 십대 시절을 떠올려보세요.

    프로그래밍을 배우세요 파이썬을 사용하여부모님의 미니밴을 운전하는 것과 비슷합니다. 주차장에서 몇 번 운전해 보면 차를 다루는 방법을 이해하기 시작할 것입니다.

    C를 사용하여 프로그래밍을 배우려고 합니다( 아니면 어셈블러라도) 마치 부모님의 미니밴을 조립해서 운전을 배우는 것과 같습니다. 당신은 몇 년 동안 차고에 갇혀서 부품을 조립하게 될 것이며, 자동차가 어떻게 작동하는지 완전히 이해하고 미래의 문제를 해결하고 예측할 수 있을 때쯤에는 차를 뒤처지기 전에 지쳐버릴 것입니다. 바퀴.

    파이썬의 장점

    Python은 초보자를 위한 범용 언어입니다. Python을 사용하여 워크플로를 자동화하고, 웹 사이트를 만들고, 데스크톱 애플리케이션과 게임을 만들 수 있습니다. 그런데 Python 개발자에 대한 수요는 ( PostgreSQL, OOP, 플라스크, 장고)는 Instagram, Reddit, Tumblr, YouTube 및 Pinterest와 같은 회사에서 지난 몇 년 동안 극적으로 성장했습니다.

    고급 범용 언어

    파이썬은 다음을 가리킨다. 고급 언어프로그램 작성. 이를 사용하면 거의 모든 유형의 소프트웨어를 만들 수 있습니다. 이러한 다재다능함은 언어의 구문에 대해 걱정하는 잡초에 갇히지 않고 관심 분야를 대상으로 하는 프로그램과 솔루션을 개발할 때 관심을 유지합니다.

    통역된 언어

    초보자를 위한 Python 프로그래밍 언어가 해석되므로 코드를 컴파일하는 방법을 알 필요가 없습니다. 컴파일 단계가 없기 때문에 생산성이 향상되고 편집, 테스트 및 디버깅 시간이 크게 단축됩니다. IDE를 다운로드하세요( IDE), 코드를 작성하고 "실행"( 달리다).

    코드 가독성이 핵심입니다

    Python의 간단하고 배우기 쉬운 구문은 가독성을 강조하고 좋은 스타일프로그램 작성. Python을 사용하면 더 적은 줄의 코드로 개념을 표현할 수 있습니다. 이 언어는 또한 프로그램 논리와 알고리즘에 대해 생각하게 만듭니다. 이 때문에 스크립팅 언어나 통합 언어로 자주 사용됩니다( 접착제 언어) 기존 구성 요소를 함께 연결하고 짧은 시간 내에 쉽게 읽을 수 있고 실행 가능한 대량의 코드를 작성합니다.

    그냥 재미있어요

    유머 감각 없이는 프로그래밍 언어의 이름을 Monty Python의 이름으로 부를 수 없습니다. 또한 작성에 소요되는 시간을 비교하기 위해 테스트를 수행했습니다. 간단한 스크립트~에 다양한 언어 (파이썬, 자바, C, J, 베이직):

    ...Python은 목표를 달성하는 데 더 적은 시간, 더 적은 코드 줄, 더 적은 개념이 필요합니다... 그리고 무엇보다도 Python 프로그래밍은 재미있습니다! 재미있고 빈번한 성공을 거두면 학생들은 자신감과 관심을 갖게 되며 Python을 계속 배울 준비가 더 잘 됩니다.

    “왜 Python을 배워야 하는가?” 기사 번역 "는 친절한 프로젝트팀이 준비했습니다.

    좋다 나쁘다

    답변 3개

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

    • 파이썬 동적으로 Printed: 이는 변수 이름에 대해 유형(예: "정수")을 선언하지 않고 해당 유형의 항목(및 해당 유형만)을 할당한다는 의미입니다. 대신 변수 이름이 있고 이를 엔터티 자체에 유형이 유지되는 개체에 바인딩합니다. 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에서 코딩은 다음과 같이 수행할 수 있습니다. 파이썬을 사용하여. 가능성은 무궁무진합니다!

    게임 개발:

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

    웹 스크레이퍼:

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

    스크립트 작성:

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

    브라우저 자동화:

    브라우저 열기 및 게시와 같은 깔끔한 작업 수행 페이스북 상태 Python과 함께 Selenium을 사용하면 이 작업을 수행할 수 있습니다.

    그래픽 인터페이스 개발:

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

    신속한 프로토 타입:

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

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



    질문이 있으신가요?

    오타 신고

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