|
| 1 | +### Языки программирования |
| 2 | + |
| 3 | +Есть анлийский язык. На нём общаются люди. А ещё – на немецком, филиппинском, испанском, греческом и прорве других. |
| 4 | + |
| 5 | +А есть Питон (голос зануды про правильное название). Это язык, на котором человек общается с компьютером. |
| 6 | +С компьютером можно общаться на куче языков: |
| 7 | +Си, Паскаль, Хаскель, Го, Свифт, Руби, ПХП, Бейсик, Эрланг, Эр и много других. |
| 8 | + |
| 9 | + |
| 10 | +### Особенности Питона |
| 11 | + |
| 12 | +Мы тут будем учить именно Питон. Начнём с короткого обзора того, чем он отличается от остальных языков. |
| 13 | +Делать ничего не надо: прочитал, запомнил пару пунктов и всё, можно хвастаться всем, что ты в теме (не надо так). |
| 14 | + |
| 15 | + |
| 16 | +### Лаконичность |
| 17 | + |
| 18 | +У Питона такое сообщество, что оно не приветствует разброда в использовании языка. Стандарт написания кода – это часть |
| 19 | +языка. Философия написания кода – тоже часть языка. Поэтому два хороших программиста напишут очень похожий код: |
| 20 | + не надо тратить время на "блин, а что он тут имел в виду?...". |
| 21 | + |
| 22 | +У Питона такой синтаксис, что он помогает писать код очень коротко. |
| 23 | +Нет лишних скобок, длинных ключевых слов, сложных трюков и всякого такого. |
| 24 | +Описать логику, перевести на английский, разбавить отступами и синтаксисом – всё, программа готова. |
| 25 | + |
| 26 | +У Питона такая стандартная библиотека, что она помогает выполнять кучу рутинных операций. |
| 27 | +Она поможет отправить емейл, закодировать строку, поднять веб-сервер, узнать время, удалить файл, посчитать дисперсию, |
| 28 | +заархивировать файл, вытащить данные из базы данных и ещё прорву всего всего парой строк. |
| 29 | + |
| 30 | +У Питона такое количество сторонних модулей, что можно сэкономить тысячи человеко-часов работы. Нужно написать сайт? |
| 31 | +Научить нейронную сеть разгадывать капчу? Скачать аудио из "Вконтакте"? Узнавать людей на фотографиях? |
| 32 | +Смоделировать полёт ракеты? Написать бота? Для всего этого есть готовые модули, их надо только установить и воспользоваться. |
| 33 | + |
| 34 | +Всё это делает процесс написания кода очень быстрым. |
| 35 | + |
| 36 | + |
| 37 | +### Крутая документация |
| 38 | + |
| 39 | +Попробуйте загуглить [python function], [python parse json] или, например [python create process]. |
| 40 | +В первых результатах будет ссылка на https://docs.python.org – сайт официальной документации. |
| 41 | + |
| 42 | +Это потому что документация очень подробная: в ней есть материалы для новичков, доки к каждому модулю, рекомендации |
| 43 | +по использованию, подводные камни и дальнейшее чтение. И это всё – для каждой версии языка. |
| 44 | +Такой удобной и подробной документации нет ни у кого. |
| 45 | + |
| 46 | +А ещё есть http://stackoverflow.com/ – сайт, на котором одни программисты отвечают |
| 47 | +другим программистам на вопросы о программировании. За время его существования там были заданы все возможные вопросы. |
| 48 | +Серьёзно: любой вопрос в духе "как это сделать на Питоне" или "почему этот код не работает" |
| 49 | +уже был задан, просмотрен и отвечен. |
| 50 | + |
| 51 | +Всё это делает процесс изучения и написания кода быстрым: вся нужная информация находится на расстоянии одного |
| 52 | +удачного поискового запроса. |
| 53 | + |
| 54 | +[q Какого из этих вопросов нет в официальных FAQ официальной документации?] |
| 55 | + |
| 56 | +*o Why am I getting strange results with simple arithmetic operations? |
| 57 | +*o Why is Python installed on my machine? |
| 58 | +*o [ok] How can I implement base abstract factory class in Python? |
| 59 | +*o Writing C is hard; are there any alternatives? |
| 60 | + |
| 61 | + |
| 62 | +### Строгая динамическая типизация |
| 63 | + |
| 64 | +_Динамическая типизация_ – значит, в одной и той же переменной в разное время могут храниться значения |
| 65 | +разных типов. Сейчас – число, потом – строка, и всё – в одной переменной. |
| 66 | + |
| 67 | +Во многих языках так нельзя: создал, мол, целочисленную переменную, вот и храни в ней целые числа. |
| 68 | +Это удобно для компьютера, но не всегда удобно для программиста. |
| 69 | + |
| 70 | +_Строгая типизация_ – значит, нельзя просто так производить действия с объектами разных типов. Например, строку с |
| 71 | +числом сложить не получится: сначала надо превратить строку в число, а только потом – сложить. Сам Питон |
| 72 | +такое преобразование делать не будет. |
| 73 | + |
| 74 | +Может показаться, что это неудобно, но на самом деле это защищает от прорвы ошибок. Чтобы понять о чём |
| 75 | +речь, достаточно посмотреть на Яваскрипт, язык со слабой типизацией: |
| 76 | + |
| 77 | + |
| 78 | + |
| 79 | + |
| 80 | +### Автоматическое управление памятью |
| 81 | + |
| 82 | +Управление памятью – это когда для каждой кучки данных в программе нужно руками выделить место в оперативной памяти. |
| 83 | +Следить, чтобы данные не вышли за пределы этого места. Не забыть освободить это место после того, как данные не нужны. |
| 84 | +В общем, адский геморрой. |
| 85 | + |
| 86 | +В Питоне об этом думать не надо: язык программирования всё сделает за программиста. Правда, сделает неидеально: |
| 87 | +о том, как Питон работает с памятью, надо знать. |
| 88 | + |
| 89 | + |
| 90 | +### И ещё много всякого |
| 91 | + |
| 92 | +Помимо перечисленного, Питон знаменит много чем ещё: отступами, интроспекцией, |
| 93 | +дзеном, портируемостью, GIL-ом, названием. |
| 94 | + |
0 commit comments