Задать вопрос
  • Как преобразовать ([u'\u041e\u0431\.... в буквы?

    dizballanze
    @dizballanze
    Software developer at Yandex
    >>> s = u'\u041e\u0431'
    >>> print(s)
    Об
    Ответ написан
    Комментировать
  • Как определить наименьшее уникальное значение в словаре?

    adugin
    @adugin Куратор тега Python
    Самое простое и эффективное решение без лишних действий:
    from collections import Counter
    
    def min_unique(dictionary):
        minval, result = float('inf'), None
        counter = Counter(dictionary.itervalues())
        for key, val in dictionary.iteritems():
            if (val < minval) and (counter[val] == 1):
                minval = val
                result = (key, val)
        return result
    
    data = {'a': 23, 'b': 26, 'c': 45, 'd': 23}
    print min_unique(data)

    Или так:
    from operator import itemgetter
    from itertools import ifilter
    
    def min_unique(dictionary):
        inverted = dict()
        for key, value in dictionary.iteritems():
            inverted[value] = None if value in inverted else key
        filtered = ifilter(itemgetter(1), inverted.iteritems())
        try:
            value, key = min(filtered, key=itemgetter(0))
        except ValueError:
            value, key = None, None
        return key, value

    Ещё интересный вариант с итераторами (узкое место - сортировка):
    from operator import itemgetter
    from itertools import groupby
    
    def min_unique(dictionary, ig=itemgetter(1)):
        grouped = groupby(sorted(dictionary.viewitems(), key=ig), key=ig)
        for key, entries in grouped:
            entry = entries.next()
            try:
                entries.next()
            except StopIteration:
                return entry
            else:
                continue
    Ответ написан
    2 комментария
  • Книга по django 1.7.4?

    desperadik
    @desperadik
    Истина где-то рядом.
    Ответ написан
    Комментировать
  • С чего начать карьеру ИТ?

    Мне 30 лет. Начал свою карьеру в ИТ в 27.
    У меня ИТшное высшее образование, но жизнь сложилась так, что во время учебы нашел работу не по специальности, которая сразу начала приносить неплохой доход (производство рекламы: наружка, полиграфия). В один "прекрасный" день, спустя 10 лет работы, я понял, что достигнут потолок и мне совершенно не интересно дальше развиваться в этом направлении. Тогда то я и начал искать чем заняться.
    Я прекрасно понимаю страхи и мысли, которые крутятся в голове у человека уже с семьей.
    "А не поздно ли?", "А с чего начать?", "А как на меня будут смотреть другие люди/друзья/коллеги?", "А на какой доход и через сколько времени можно рассчитывать?", "А откуда взять время на жену/детей и учебу?" и еще куча других...
    В 16-22 все эти вопросы совершенно не волнуют - ты еще юн, свободен от обязательств и в какой-то мере финансово не обременен...

    Немного порассуждаем :)

    Отвечу на самые-самые вопросы:
    А не поздно ли?
    Нет. Никогда не поздно! Звучит банально, но это работает.
    Нужно срочно забыть сколько тебе лет и оперировать только понятием жизненный опыт. А его к 30 уже порядком. Мозги еще не "заржавели", тело еще не барахлит.
    НО нужно сразу условится - любая сфера ИТ требует ПОСТОЯННОГО самосовершенствования и изучение нового материала. ЛЮБАЯ.

    Чем заняться-то?
    Я для начала для себя определил две области ИТ в которых возможен быстрый прогресс за короткий срок и достаточно быстрое трудоустройство. 1С-программирование и веб-программирование.
    Они были выбранные после тщательного анализа локального рынка труда + низкий порог входа + возможность быстрого прогресса. Долго сомневался, читал форумы и статьи, что бы выбрать окончательно, но в итоге победило направление веб-программирования. Решающим стали два критерия: возможность удаленной работы на зарубежных биржах и отсутствие привязки к конкретной узкой технологии. В финансовом плане 1Сники на начальном этапе получаю больше, но со временем Веб вырывается вперед.
    Многие написали выше, что надо учить основы основ. Разложить всю теорию по полочкам. Понять принципы ООП и паттерны проектирования. Это правильно, НО... время+семья+деньги накладывают некоторые свои ограничения. Как мне кажется главная цель - это смена сферы деятельности, т.е. добиться результата. Да, по началу будут жуткие "решения" и "ужасный вырвиглазный лапшевидный говнокод", НО плох тот программист, который не продолжает свое обучение ПОСТОЯННО. Но учиться уже на работе под руководством более опытных товарищей НАМНОГО проще.

    А с чего начать это ваше "веб-программирование"?
    Сразу оговоримся, что есть принципиально два разных направления: "фронт-энд" и "бэк-энд". "Фронт-энд" проще и дружелюбнее для совсем начинающих. Его изучение позволит быстрее прийти к выполнениюглавной цели. Поэтому дальше я буду рассматривать именно это направление.
    Да-да, конечно, потом можно и "бэк-энд" изучить и даже полностью перейти на него. Можно совмещать, обв.
    И еще одно отступление: уровень английского Pre-Intermediate. Это само собой разумеющееся. В любом случае придется читать, слушать и понимать.
    Итак по теме вопроса.
    Рекомендую начинать с: htmlacademy.ru - пожалуй лучший русский ресурс для новичков. Интерактивные задания с самых азов. Все основные курсы бесплатные. Платная подписка открывает доступ к продвинутым курсам - рекомендую покупать эту подписку уже после прохождения всех базовых курсов. Есть два платных месячных "интенсива" - весьма неплохие и стоят своих денег.

    Остальные ресурсы рекомендую проходить параллельно с HTML-академией, начинать где-то после 7 курса:
    www.codecademy.com - на английском. Помимо курса по HTML&CSS можно попробовать JavaScript и jQuery + неплохие ознакомительные курсы по "бэк-энду"
    https://dash.generalassemb.ly - на английском. Интересны тем, что имитируют выполнение реального заказа на фрилансе.
    Есть еще куча ресурсов и курсов, но для начала этого вполне хватит.
    В любом случае придется изучить JavaScript. В этом деле поможет уже упоминаемый выше www.codecademy.com + learn.javascript.ru

    И главное - больше практики. Применяйте свои знания.
    Верстайте псдшники хотя бы ради практики и портфолио. Прикручивайте к ним что-нибудь простенькое на jQuery.

    А откуда взять время на жену/детей и учебу? Как совмещать-то все еще же работа есть...
    Если уделять учебе хотя бы 1 час в день, то можно вполне все успевать.
    Я учился так:
    - на работе была возможность почитать и поделать небольшие занятия в течение дня ( в сумме полчаса)
    - еще часик уже ночью, когда все спят дома.
    - в выходные вставал пораньше и в субботу за два часа пока все спят повторял все сделанное за неделю, а в воскресенье подбивал итоги и планировал следующую неделю.
    Придется пожертвовать сериальчиками и какими-нибудь излишествами нехорошими - всегда есть что-то. Все время дисциплинировать себя первое время. Можно вести блог или поставить цель на смартпрогресе. Главное регулярно заниматься. даже 15 минут в день - это уже большой плюс.
    Еще очень важно, что бы домашние знали к чему вы стремитесь и чем заняты.

    А на какой доход и через сколько времени можно рассчитывать?
    Тут все ОЧЕНЬ индивидуально. Все зависит от усердия и желания.
    Можно грубо прикинуть "скоростное прохождение этого квеста":
    1) материальные вложения: 30-32 т.р. два интенсива(базовый и продвинутый) и помесячная платная подписка на htmlacademy.
    2) временные вложения: 5-7 месяцев на курсы и интенсивы от htmlacademy + 2-3 месяца на основы JavaScript и jQuery

    После этого вполне можно пойти работать верстальщиком с перспективами карьерного роста с окладом от 15 т.р. или попробовать себя на фрилансерских биржах.
    Почему так мало?В моем регионе именно столько получают стажеры-верстальщики в первый месяц, но это уже работа + на реальных проектах прогресс пойдет намного быстрее. А следовательно и вырастет доход.

    А не будет ли мне сложно "работать" в молодом коллективе?
    Возможно первое время будут какие-то сложности, но как мне кажется в любом случае ценятся базовые человеческие качества + профессионализм. А если учесть, что к 30 уже есть достаточно богатый жизненный опыт, то я не думаю, что возникнут проблемы.

    Как-то так :)
    Удачи. И главное помните - все зависит только от вас. От ваших желаний и вашего трудолюбия.
    Ответ написан
    3 комментария
  • С чего начать карьеру ИТ?

    virtyaluk
    @virtyaluk
    Вам еще рано задумываться о каком-то конкретном языке или технологии. Сначала изучите основы. Например, сейчас парадигма ООП применяется практически во всех компилируемых и интерпретируемых языках программирования. По-этому, сначала стоит прочесть пару книг по основным парадигмам ООП, изучить паттерны проектирования, основы алгоритмизации, структуры данных. В общем основы программирования.

    Следовательно, эти знания дадут более-менее четкое представления о технологиях вокруг и применяемых языках программирования. Более того, с этими навыками вам уже будет достаточно изучить один ЯП с С-подобным синтаксисом для того, чтобы, в случае чего, перейти на другой. Также у вас уже сложится хорошее представления для чего используется тот или иной ЯП. И вам уже будет с чего выбрать.

    Собственно, когда вы определились с ЯП, начните изучать его. Но ни в коем случае не налагайте на курсы\видео-уроки типа Специалиста и т.д.(подробнее об этом - читайте дальше). Еще отправной точкой для выбора языка\технологии может стать изучения рынка вакансий. Хотя этот фактор нисколько не отражает действительность.

    Выбрали ЯП? Изучите его до более-менее среднего уровня. Освойте основные технологии\библиотеки\фреймворки применимые для этого языка. Зачем это? Возьмем для примера C#. Знания самого языка не несут такой ценности, как владение фреймворком .NET и навыками работы в том же ASP.NET, WPF\Silvelight и т.д.
    Помните, вы не сможете освоить язык и его технологии на все 146%. Как показывает практика, 20% конкретных знаний достаточно для решения 80% всех задач (Закон Парето).

    Теперь немного об конкретном, а именно о книгах.
    Для начала я бы рекомендовал прочесть "основы основ", например:
    Объектно-ориентированное мышление
    Паттерны проектирования
    Приемы объектно-ориентированного проектирования. П...
    Объектно-ориентированный анализ и проектирование ...
    После этого можно приступать к специфической литературе по конкретному языку\технологии.
    Думаю, с этим списком вы определитесь сами, когда подберете себе что-то.

    Если вы думаете записаться или посмотреть в Интернете курсы, например, того же Специалиста, сразу же БРОСЬТЕ ЭТУ ЗАТЕЮ!
    Приведу пример с моего горького опыта. Дело было в 2011 и я впервые услышал об этом Специалисте и наивно полагал, что там действительно делают "специалистов". Такие уважаемые люди как Борисов и Тарасов, в которых уйма всяких сертификатов, просто внушали доверия и интерес ко всему этому. В итоге я посмотрел 50 часов HTML + CSS. Никакого результата. Эти 50 часов не покрыли даже половин знаний, что я до этого почерпнул с книг. Да ладно, идем дальше. Засел я за 2 уровня JS на 30 часов + 6 часов jQuery. И тут все мои радужные представления об Специалисте моментально разрушились. Будущие специалисты бежали с аудитории после пары непонятных слов, преподаватели путали элементарные понятия, все рассказывалось на тяп-ляп и в каком-либо порядке. В итоге этот курс не покрыл и 20% материала из книги Николаса Закаса по JS. В итоге все эти десятки часов пошли коту под хвост.
    Если вы действительно нуждаетесь в курсах, то лучше воспользуйтесь видео-учебниками Lynda, Tutsplus и т.д. Эти ресурсы за пару часов ознакомят вас с основами сабжа и направят на путь истинный.

    Что же касается книг, то как было верно отмечено пользователем kstyle:
    только 10% молодых человек способны к самообучению (то есть если им предоставить литературу и задачи, то 90 % не справятся). многие - из-за качеств характера.

    То есть, если при чтении первой книги из моего списка у вас возникнут непреодолимые трудности, то это что-то да значит.

    И, конечно же, вы должны быть уверены и настойчивы!
    Ответ написан
    2 комментария
  • Чем так хорош Django?

    dkoldyaev
    @dkoldyaev
    Отличный парень!
    Virtualenv (виртуальное окружение) -- это возможность для каждого сайта подключать свой набор библиотек. Pip -- пакетный менеджер для питона, который позволяет ставить библиотеки в виртуальное окружение.

    Выберите папку, где будет расположен ваш проект. В ней выполняете virtualenv -p python2.7 python

    После этого у вас появится папка python, в который будет находиться ссылка на питон и папка с пакетами. Чтобы в консоли включить окружение, необходимо выполнить source python/bin/activate

    Дальше в этой папке создаете папку project. В неё уже ставите django.

    После этого можно установить нужные пакеты: pip install django и запустить сервер для отладки.

    В сеттингах есть переменная BASE_DIR -- пляшите от неё:
    STATIC_ROOT = os.path.join(BASE_DIR, 'www', 'static').


    Шаблоны я разделяю для каждого app'а: Создаю в парке приложения папку app_name/templates/app_name и для статики приложения app_name/static/

    Вот с этим всем я в свое время намучался. Надеюсь эти советы помогут. Удачи: джанга очень крутая!
    Ответ написан
    Комментировать
  • Можете накидать большую порцию задачек для практики Python-новичка?

    merryjane
    @merryjane
    Системный администратор
    Вот очень клевый сайт, с кучей задач, уровнями, ачивками и неплохим форумом по решению этих задач:
    www.checkio.org
    Ответ написан
    5 комментариев
  • Стоит ли работать и учиться на программиста?

    maaGames
    @maaGames
    Погроммирую программы
    Не стоит. Судя по вопросу, программирование - не твоё.
    Ответ написан
    7 комментариев
  • Какой функциональный язык выбрать в качестве вспомогательного после Python'a?

    @Lol4t0
    Идеологически, проще всего будет переключиться на Erlang, просто потому, что он тоже строго динамически типизирован.
    Ответ написан
    3 комментария
  • Как выложить Python проект на github?

    • Нужно сформулировать setup.py скрипт: https://docs.python.org/3/distutils/setupscript.html
    • Выбрать лицензию, в кратце узнать суть разных лицензий можно на сайте https://tldrlegal.com/
    • Написать информативный README файл, примеров навалом. Желательно в Markdown-разметке.
    • Обязательно нужно написать gitignore файл, чтобы этот самый .exe файл небыл добавлен в репозиторий.

    Когда всё готово, можно залить на GitHub. Об этом ещё можно узнать тут: https://help.github.com/
    Ну и конечно, лучше знать как работать с Git в принципе: www.git-scm.com/documentation
    Ответ написан
    Комментировать
  • Как захостить веб сайт с копа дома?

    @protven
    Ну пропишите у себя в hosts (где найти этот файлик подскажет гугл) строку
    <ip address> <host name>

    Тогда с вашего компьютера адрес сайта будет резолвится в нужный вам ip. И не надо ждать обновления DNS.
    Ответ написан
    1 комментарий
  • Сколько примерно стоит инвайтер?

    gadfi
    @gadfi
    https://gamega.org
    Сколько стоит машина?
    Возьмем цифру немного с потолка, пусть 5 000$. Если столько попросят за запорожец то вы вероятнее всего пошлете такого продавца, с еще большим энтузиазмом вас пошлют при попытки купить лаборджини за такие деньги, хотя и то и то машины.
    Нету внятного ТЗ результат хз © фрилансерское народное творчество
    pam_zak.jpg
    Ответ написан
    Комментировать
  • Как правильно одноразово запустить скрипт после загрузки в CentOS 7?

    RicoX
    @RicoX
    Ушел на http://ru.stackoverflow.com/
    Прописать в
    /etc/rc.local
    Ответ написан
    Комментировать
  • Оцените задачу, которую я даю кандидатам на работу. Не слишком ли я суров?

    @mamkaololosha
    Использовать либу, в которой реализован какой-нибудь Нечеткий поиск. Или самим написать. Это задача довольно комплексная. Возможно свою БД, самописную. Проще какую-нибудь кафедру MIT подключить, чем искать мидла, который вам на коленке Oracle напишет. Одним Расстоянием Левенштейна может и не обойтись.
    habrahabr.ru/post/114997
    algolist.manual.ru/search/fsearch
    Ответ написан
    Комментировать
  • Может ли кто то создать логотип для не коммерческого проекта?

    vaux
    @vaux
    Курящий лыжник
    То, что проект некоммерческий, не значит, что кто-то должен работать на него за бесплатно.
    Ответ написан
    Комментировать
  • Какую ОС поставить на вебсервер?

    might
    @might
    javascript developer
    я за CentOS
    Ответ написан
    Комментировать
  • Python для чайников, где взять материалы?

    insiki
    @insiki
    broken pipe
    Ответ написан
    Комментировать
  • Можно ли установить два Python 2.7 и 3.4 на одной машине?

    @raiboon
    Прочитайте любое руководство по питону. Мне кажется, что любое начинается с объяснения про virtualenv. Используйте.
    Ответ написан
    Комментировать
  • Как отдать ссылку в обмен на email посетителя?

    1) С без валидации email
    Делаете форму. Сделайте input с type=email и name="email", что б вам ввели точно емаил. И кнопку type=submit добавьте. В обработчике формы сделайте услокие if ($_POST["email"]) ...
    2) С валидацией.
    Делаете БД с тремя полями id, email, authkey
    Принимаете email, сохраняете его в БД. Генерируете рандомный authkey, сохраняете. Генерируете ссылку типа
    http:://yourdomain.ru/getCatalog?email=<сохраненный email>&authkey=<сохраненный ключ>. Отправляете эту ссылку на указанный емаил. При переходе по этой ссылке должны быть проверка: существует ли в БД пара email и authkey. Если да - отдаете каталог, если нет - выдаете ошибку.
    Ответ написан
    Комментировать