Какие знания нужны для Python Junior-а?
=========================================

 Составляю план на год. Начал изучать Python.  

Что ещё понадобиться, что бы удаленно работать без запинки уже.  
  

Python - ясное дело. А с чем он тесно связан и без чего точно не обойтись Python-программисту? 

 Мне когда-то на подобный вопрос дали развернутый ответ (еще раз спасибо этому человеку). Я не смог найти ссылку на тот форум, но сам ответ у меня был сохранен:   

> Вот список знаний, которыми должен обладать потенциальный Junior Python developer:  
>   
> 
> Уметь самообучаться, находить нужную информацию.  
>   
> 
> Иметь общие представления о том, что такое ОС и зачем она появилась.  
> 
> Понимать что такое процесс и как он “живёт” в ОС.  
> 
> Понимать что такое поток.  
> 
> Понимать что такое сокеты и зачем они нужны.  
> 
> Иметь представление о том, как устроен стек протоколов TCP/IP.  
>   
> 
> Понимать что такое Linux.  
> 
> Уметь работать в sh.  
> 
> Понимать что такое виртуализация и знать какие бывают типы.  
> 
> Уметь настраивать виртуальные машины через vagrant или подобные инструменты.  
> 
> Уметь работать с GIT(создавать ветки, разрешать конфликты, etc)  
>   
> 
> Понимать что такое ООП, на чём он основан и почему им удобно пользоваться.  
> 
> Понимать что такое императивный и декларативный стиль.  
> 
> Понимать что такое MVC  
> 
> Понимать что такое декоратор(стандартный вопрос на собеседовании) и зачем он нужен.  
> 
> Понимать что такое замыкание.  
> 
> Понимать что такое интроскпекция.  
> 
> Понимать асинхронную концепцию программирования.  
>   
> 
> Уметь работать с БД(хотя бы CRUD, join)  
> 
> Уметь работать с nginx(хотя бы проксирование настроить)  
>   
> 
> (можно просто написать - “прочитать Лутца”, но выделю пару вопросов)  
> 
> Знать чем отличаются new style классы от old style.  
> 
> Знать чем отличаются Python2 от Python3  
> 
> Знать чем отличается str от unicode и почему в программе нужно работать с unicode.  
> 
> Понимать алгоритм импорта модулей в Python.  
> 
> Понимать что такое генераторы и итераторы.  
> 
> Понимать что такое дескрипторы.  
> 
> Понимать что такое GIL и зачем он нужен.  
> 
> Понимать что такое WSGI и зачем он появился.  
>   
> 
> + Уметь писать тесты, понимать зачем это нужно.  
> 
> + Практические и теоритические основы по framework.  
>   
> 
> + выполнить норматив по ГТО  
> 
> + не пить и не курить.  
>   
> 
> Так же можешь потренироваться по заданиям Юры Юревича.

  

Заданиям Юры Юревича - [тыц](http://pyobject.ru/blog/2010/02/04/python-quiz/). 

 Если хотите заниматься web-разработкой (и не только) на Python:  
* Реляционные БД (PostreSQL и/или MySQL)
* Linux (работа в консоли, основы администрирования, nginx) - т.к. каждый разработчик должен уметь настроить рабочее окружение
* IDE или редактор кода (Sublime Text 2, VIM, EMACS)
* Git
* Django, так как один из самых популярных web-фреймворков на Python

  
  

Прямо это все досконально не нужно знать, но будет плюсом при поиске работы. А вообще можно поискать где-то вакансии стажера, там вам помогут в обучении и при этом может даже платить будут что-то :) 

 Изучение любого языка начинается с базового синтаксиса, далее изучаюся библиотеки и фрэймворки. Областей применения пайтона много. Поэтому надо выбрать то что востребовано в конкретных облостях.  
  

По вэбу можно Django поизучать, sqlalchimy для работы с бд, jinja2 для темплейтов, tornado асинхронное програмирование.