• Как изучить Python после C++?

    aRegius
    @aRegius
    Python Enthusiast
    Nexeon, я тоже хотел бы помочь вам с рекомендацией. Одно но... Я, в силу своей природы, лучше всего воспринимаю материал в виде книг (печать либо pdf). Ни видеокурсы, ни онлайн tutorial (скомпанованные в виде справочной информации, в коем ключе я их и использую) мне не "идут". Поэтому, ни первого, ни второго я посоветовать не могу, ибо не знаю/не пользовался (справочный характер использования официального Python-tutorial не в счет).

    Но по книгам подскажу:

    1. Для быстрого "погружения" - Think Python (2-издание 2016 год)
    2. Для основательного - Learning Python (5-издание 2013 год)

    P.S. В скобках я специально пометил издание/год. На это нужно всегда обращать внимание, поскольку книга может переиздаваться и, логично, выбирать стоит более свежую версию. Первая книга на русский не переведена, вторая - переведено издание 2009 года.
    Конечно, лучше читайте в оригинале. Обе, погуглите, были в открытом доступе.

    P.S. Информация для всех: недавно вышла отличная книга Fluent Python (2015 год). (Nexeon, с нее, думаю, начинать не стоит). Так вот, я-то начал ее читать сразу в оригинале, потом, узнав, что вышел русскоязычный перевод (что большая редкость для такой оперативности), я, любопытства ради, пролистал... Мне настолько нечего сказать по этому поводу, что просто в тысячный раз отмечу уже избитую истину - английский, это наше всё. Кстати, для сравнения, и справедливости ради, Learning Python ("Изучаем Python") 2009 года переведен отлично.
    Ответ написан
    2 комментария
  • Как улучшить теоретическую базу в программировании?

    aRegius
    @aRegius
    Python Enthusiast
    Артем, приветствую!
    Я далеко не гуру программирования, и тоже, кстати, программист-самоучка, однако мой жизненный опыт и здравый смысл в подобной ситуации продиктовал бы мне несколько иной подход к решению вопроса.

    1. Самое очевидное, простое и правильное (при условии, что для вас этот вопрос все еще актуален и насущен) - связаться с этими людьми повторно и уточнить лично у них, о каких именно знаниях идет речь. Как калька: "Добрый день! Меня зовут Артем, тогда-то я был у вас на собеседовании, мне отказали, сославшись на нехватку теоретических знаний. Вы не могли бы мне помочь советом, каких именно знаний мне не хватает? Эта информация помогла бы мне их приобрести...." Ну как-то так...

    2. На будущее, при возникновении подобных ситуаций, задавайте такие вопросы прямо на собеседовании. Иначе потом снова будут эти "гадания на кофейной гуще".

    3. По каким критериям вы собираетесь выбирать источник знаний, предложенный вам мнением людей, каждый из которых представляет собой уникальную смесь возраста, знаний и опыта, а, соответственно, свое видение ситуации?

    4. Обучения для себя, обучение в ВУЗе, и обучение для конкретной работы - суть разные вещи. Вам нужно третье, насколько я понял. Для этого нужно четко понимать, что нужно работодателю. И вариантов хорошего результата собеседования есть два - вас взяли на работу; вас не взяли на работу, но вы знаете, что конкретно вам еще нужно сделать (чего вам не хватило), чтобы вас взяли.

    Смоделируем ситуацию:
    Вы пришли на собеседование. Вам отказали: "У вас недостаточно теоретических знаний". Вы сказали "Ок" и ушли. Задали вопрос на Тостере, вам предложили 15 вариантов ответа - надо учить такие-то алгоритмы, такие-то паттерны и прочее... Вы перезваниваете рекрутеру, задаете вопрос, а вам отвечают, что вам не хватает теоретических знаний о протоколах передачи данных... Ну к примеру...

    Итого.
    Нужны знания для себя, для общего образования, так сказать - опытные ребята вам уже набросали инфо.
    Нужны знания под конкретную работу/работодателя - спрашивайте лично у них, что им нужно от вас.

    Такова моя точка зрения. Удачи!

    P. S. Немножко юмора, касательно знаний, заказчиков и инструментария для решения конкретной задачи.
    Ответ написан
    1 комментарий
  • Какими знаниями о http/https должен обладать web-разработчик?

    aRegius
    @aRegius
    Python Enthusiast
    На мой взгляд, категория "обязательно должен знать" довольно субъективна. Есть конкретный работодатель - есть конкретные требования к требуемому набору инструментов. Т.е. типовые "обязалки" нужно, наверное, смотреть в инфо о вакансиях.

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

    Конечно, рекомендовать я могу лишь то, чем пользовался сам - вот эта книга.

    Когда я только начинал изучать программирование (я выбрал back-end), мне нужна была подобная информация для того, чтобы чувствовать себя более-менее комфортно в этой теме (т.е. я хотел сам в ней разобраться, понимая, что это и нужно, и интересно). И моим мотивом, в данном случае, был вовсе не тот факт, что кто-то, или что-то "обязало" меня это выучить.

    Посмотрите, она была в открытом доступе. Полагаю, ознакомившись с оглавлением (там конкретно разбито по главам, о чем там речь, какие темы... ) вы сами поймете, то ли это, что вам нужно и определитесь с тем, в каком объеме вам это нужно, чтобы чувствовать себя комфортно. Это, повторюсь, все довольно субъективно. (Я например, когда читал оглавление, сходу для себя отмечал: "О, это мне нужно... О, здорово, это тоже пригодиться... Это, пока, пропущу..." и т.п. В сухом остатке понял, что это то, что мне нужно.)

    P.S. Я еще новичок по меркам IT, поэтому копнуть глубже (если, конечно, вам нужно глубже) не в моей компетенции. Чем смог, как говорится. Успехов!
    Ответ написан
    1 комментарий
  • Как удалить все нулевые элементы из словаря?

    aRegius
    @aRegius
    Python Enthusiast
    Это можно сделать, используя самые базовые инструменты Python (по умолчанию,
    присвоим словарь переменной d):

    d1 = {}
    
    for value in d.values():
        d1.update(value)
    
    for key in d:
        for key1 in d1:
            if d[key][key1] == 0:
                del d[key][key1]


    Пользуйтесь на здоровье.
    Ответ написан
    Комментировать
  • Странное поведение встроенной функции. Не правда ли?

    aRegius
    @aRegius
    Python Enthusiast
    Функция all() использует оператор and, что, в свою очередь, соответствует математическому символу умножения ' * '. Функция any() - оператор or (математический символ сложения ' + ')

    Любое что-то можно разбить на составляющие: Что-то и Ничто. Например, 5 = 5 + 0

    Так вот, допустим, функция all() принимает аргументом Что-то (какое-либо True). Помня о том, что all() работает
    с ' * ', мы можем разбить это True на True * 1. Т.е. в случае c функцией all() Ничто, получается, принимает значение 1/True.

    Сооответственно, помня о том, что any() работает с ' + ', мы можем разбить это True на True + 0. Т.е. в случае c функцией any() Ничто, получается, принимает значение 0/False.
    Ответ написан
    Комментировать
  • Python. От теории к практике?

    aRegius
    @aRegius
    Python Enthusiast
    Если тянет в сторону веба - значит Django/Flask вам в руки (что касается лично меня, я работаю с Django). И оптимальный вариант своего собственного, первого, интересного, полноценного и актуального проекта - свой сайт/блог.

    Для того, чтобы нагрузить себя максимально полезно и сделать все это с нуля, более-менее презентабельно, но без готовых шаблонов а-ля Wordpress, рекомендую дополнительно изучить HTML и CSS.

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

    Книги:
    1. Django. Подробное руководство Адриан Головатый, Джейкоб Каплан-Мосс
    Да, книга реально 2009 года издания (оригинал). Но пусть вас это не смущает. Ее ценность превышает факт устаревания некоторой информации, в ней изложенной. Тем более, она написана непосредственными создателями Django - информация из первых рук.
    2. Django Girls Tutorial Django Girls non-profit organization
    Можно читать онлайн, можно скачать PDF.
    3. HTML5. Недостающее руководство Мэтью Мак-Дональд
    4. Большая книга CSS3 Дэвид Макфарланд

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

    Книга 1 познакомит вас с Django.
    Книга 2 покажет, step-by-step, как с помощью Django создать свой блог/сайт.
    Книги 3 и 4 нужны для того, чтобы привести внешний вид ресурса в более-менее благородный вид.

    Для начала вполне достаточно. В качестве оперативного справочника используйте официальное руководство (или djbook.ru - если с английским пока никак).

    P.S.
    Если ваш выбор Flask - не подскажу.
    Если вы владеете английским на уровне чтения литературы - обратите внимание на эту книгу (после первой, вместо второй).
    Ответ написан
    Комментировать