Рубрики
Без рубрики

Почему Новички Должны Изучать Python

Автор оригинала: Scott Robinson.

Почему Новички Должны Изучать Python

Из некоторых других моих постов вы, вероятно, заметили, что я большой поклонник Node.js. Хотя это правда и уже некоторое время является моим любимым языком, я не всегда рекомендую его всем.

Просто начать заниматься программированием и информатикой может быть немного сложно. Какой язык выбрать? Какую IDE вы должны использовать? И что еще более важно, почему ?

На мой взгляд, самое главное, что вы должны сделать при программировании, – это выбрать правильный инструмент для работы. Во-вторых, самое главное-выбрать инструмент, который вам наиболее удобен. Если бы я сказал вам, что вы должны использовать C++, так как это один из самых быстрых языков в мире, это может быть не очень хороший совет, если вам никогда не приходилось иметь дело с управлением памятью или писать свои собственные структуры данных. Вы, вероятно, будете бороться с этим и иметь плохой опыт.

Python, с другой стороны, решает многие из этих проблем для вас. Он работает намного медленнее, чем C++, но и писать его гораздо проще. И как новичку вам, вероятно, все равно, насколько быстро это происходит, вы просто хотите сделать что-то крутое и изучить основные понятия.

Итак, первое решение, которое вы должны принять, – это какой язык вы хотите выучить. Из сотен существующих языков, почему новички должны изучать Python? Ну, есть несколько причин…

Простой синтаксис

Часть основной философии языка (в обобщенном виде PEP 20 , “Дзен питона”) включает в себя следующее:

  • Красивое лучше, чем уродливое
  • Простое лучше сложного
  • Считываемость имеет значение

Итак, как вы можете видеть, Python был разработан с самого начала с учетом простоты. Это был глоток свежего воздуха во время его создания, поскольку некоторые из наиболее доминирующих языков в то время были C и C++, которые не очень удобны для пользователя.

Давайте сравним синтаксис Python с C++, используя простой пример “Hello, World”:

C++:

#include stdout
 
int main() {
	std::cout << "Hello, world!\n";
}

Питон:

print('Hello, world!')

Там есть довольно большая разница, и все, что мы сделали, это напечатали строку на консоли. Для хорошей меры давайте сделаем еще одно сравнение синтаксиса, но на этот раз с PHP:

Питон:

x=1
while x <=5:
    print 'x is less than 5:' + str(x)
    x += 1

PHP:


Python действительно пытается избавиться от “пуха” и требует только того, что действительно необходимо, что является большой причиной, почему он был разработан для использования без фигурных скобок и точек с запятой в конце строки. Взгляните на разницу, которую он делает (последнее сравнение синтаксиса, я обещаю):

Питон

def foo(x):
    if x == 0:
        bar()
        baz()
    else:
        qux(x)
        foo(x - 1)

С:

void foo(int x)
{
    if (x == 0) {
        bar();
        baz();
    } else {
        qux(x);
        foo(x - 1);
    }
}

Я действительно не пытаюсь колотить здесь по другим языкам. Все эти другие упомянутые языки действительно великолепны и имеют тонны применений, но они просто не очень хороши для начинающих.

С такими ключевыми словами, как is , not и with , хорошо написанный скрипт Python можно читать почти как простой английский. Это особенно верно для условий оператора if , которые могут быть трудно читаемы, если они становятся достаточно большими:

a = None
b = None

if a is not None and b is not None:
    print 'Foo!'
else:
    print 'Bar!'

Условное выражение выше намного чище, чем типичное if ((a) && (b)) .

Простота настройки и запуска

Многие новички, пытающиеся выучить язык, терпят неудачу, даже не написав ни одной строки кода. С некоторыми языками, такими как Java, вы должны установить и настроить сложные каталоги проектов, а затем скомпилировать свой код.

С Python все, что вам нужно сделать , чтобы начать работу, это загрузить и запустить установщик , а также запустить python .py . Нет сложной структуры каталогов для создания или компиляции.

Хотя это становится все более редким явлением в современных языках, компиляция вашего кода может быть намного сложнее, чем вы думаете (хотя это является необходимым злом). Просто взгляните на этот небольшой makefile для C:

CC = gcc
CFLAGS  = -g -Wall

TARGET = myprog

all: $(TARGET)

$(TARGET): $(TARGET).c
	$(CC) $(CFLAGS) -o $(TARGET) $(TARGET).c

clean:
	$(RM) $(TARGET)

И я считаю, что это простой makefile. Я бы предпочел Питона этому в любой день.

Python позволяет вам сначала изучить концепции программирования, прежде чем вдаваться в грязные детали того, как высокоуровневый код переводится в код машинного уровня, который вы абсолютно должны изучить, только не тогда, когда вы только начинаете.

Огромная Стандартная Библиотека

Одной из самых расхваливаемых сильных сторон Python является его стандартная библиотека, и не зря. Он поставляется с более чем 300 модули (в версии 3.5), начиная от минимального HTTP – сервера ( BaseHTTPServer ) и заканчивая базами данных ( sqlite3 ) и библиотеками сжатия ( gzip ).

Подавляющее большинство вещей, которые вы захотите сделать с Python, обычно уже сделано для вас в этих стандартных библиотеках. Таким образом, вы можете начать создавать классные вещи без особых усилий, например приложения с машинным обучением .

Время от времени мне придется напоминать себе, что нужно просмотреть модули и посмотреть, что все доступно, чтобы избежать переписывания кода самому.

Поэтому, прежде чем вы уйдете и попытаетесь написать библиотеку url parsing , сначала проверьте, существует ли она уже!

Одна из лучших частей того, что вам не нужно писать весь этот код самостоятельно,-это знание того, что он был тщательно протестирован и не содержит ошибок. Большая часть этого кода существует уже некоторое время и используется в ведущих компаниях (о чем мы поговорим позже), так что вы знаете, что он прошел через звонок.

Сообщество

Большое, активное сообщество означает две вещи:

  • Множество сторонних библиотек
  • Много людей, чтобы помочь вам

Эти моменты, возможно, являются одними из самых важных причин, по которым вы должны использовать Python, независимо от вашего уровня квалификации. Это означает, что у вас будет гораздо больше документации, учебных пособий и кода, чтобы лучше изучить язык.

Python неизменно занимает высокое место в качестве топового языка программирования по различным источникам, таким как Redmonk (#4) и Tiobe (#5).

Еще более важным, чем популярность языка, является спрос со стороны работодателей. Из приведенного ниже графика (по Indeed ) видно, что Python является вторым наиболее востребованным языком работодателей, а это означает, что у вас больше шансов использовать свои навыки программирования в качестве карьеры.

Спрос на языковую работу

Легко отлаживается

Для новичка одним из самых сложных навыков является отладка. Именно здесь вы действительно узнаете язык и его внутреннюю работу. Иногда у вас будут простые ошибки, которые являются просто синтаксическими ошибками, а иногда у вас будут действительно труднодоступные ошибки, которые появляются только 1 из 100 раз, когда вы запускаете свою программу.

Именно здесь вы действительно познакомитесь со своим отладчиком и распространенными ошибками в языке.

К счастью для вас, Python имеет очень хорошую обработку ошибок и отчетность, в то время как многие другие языки этого не делают.

Например, в C++, если что-то пойдет не так (например, разыменование недопустимого указателя, доступ к элементу массива вне границ и т. Д.), Вам повезет, если программа выйдет из строя. Таким образом, вы знаете, что где-то в вашей программе есть проблема, но, скорее всего, не будете знать, где именно (а отладчики не всегда прямолинейны для новичка). Если вам не повезет, программа не будет сбой (или просто сбой в случайное время), а вместо этого даст вам неясные ошибки, которые не очень очевидны.

Что Такое Python Отстой

Ладно, я не думаю, что было бы правильно написать эту блестящую статью о Python и не говорить о его недостатках. Как и любой другой язык, он далек от совершенства, есть много вещей, для которых вы не должны использовать его.

Как я уже несколько раз упоминал, Python работает медленно. Например, действительно медленно по сравнению с компилируемыми языками, такими как C/C++ или Go. Это происходит потому, что у него есть довольно много функций, которые замедляют его работу, например динамическая типизация и сбор мусора.

Это означает, что вы не должны использовать чистый Python для обработки большого количества данных, но вместо этого вам придется добавить крючки C++ (о которых мы поговорим в другой раз).

И благодаря сборке мусора Python вы не можете использовать его для систем реального времени. Это происходит потому, что сборка мусора заставляет код работать в недетерминированном промежутке времени, поэтому вы не будете знать, займет ли ваша функция 1 мс или 100 мс для запуска. Просто слишком много неизвестного. Вместо этого для этих программ реального времени вам обычно придется использовать язык с ручным управлением памятью, такой как C или C++.

В том же духе, поскольку Python полагается на очень много системных ресурсов и имеет интерпретатор, вы обычно можете (я говорю “обычно”, потому что есть другие варианты ) запускать код Python только поверх системы с операционной системой (то есть без микроконтроллеров или других встроенных систем).

Вывод

Это лишь некоторые из причин, почему Python отлично подходит для начинающих. В наши дни существует так много ресурсов для начала работы, что это будет небольшая инвестиция времени, чтобы начать программировать на Python.

Какой язык вы выучили первым и почему? Дайте нам знать в комментариях!