• Почему Python используют для написания нейронных сетей, а Ruby/Php/Perl нет?

    Stalker_RED
    @Stalker_RED
    Потому, что для питона есть уже довольно большое количество готовых библиотек ориентированных на нейронные сети.
    Ответ написан
    5 комментариев
  • Книга о том как правильно должен работать программист?

    voronkovich
    @voronkovich
    Роберт Мартин "Идеальный программист".
    Ответ написан
    Комментировать
  • Книга о том как правильно должен работать программист?

    sim3x
    @sim3x
    1. Пофиг как - если делает работу
    2. Никак не избегать - принять их как данность и фиксить
    3. Делать оценку перед задачей, делать переоценку во время решения, оценивать реальное время -
    после

    Мифический человекомесяц
    Психбольница в руках пациентов
    Ответ написан
    Комментировать
  • Книга о том как правильно должен работать программист?

    un1t
    @un1t
    Чед Фаулер "Программист фанатик"
    Джоэл Спольски "Джоэл о программировании"
    Роберт Мартин "Идеальный программист"
    Том ДеМарко, "Вальсируя с Медведями: управление рисками в проектах по разработке программного обеспечения"
    Том ДеМарко "Человеческий фактор. Успешные проекты и команды"
    Роберт Гласс "Факты и заблуждения профессионального программирования"
    Игорь Савчук "Отъявленный программист. Лайфхакинг из первых рук"
    Питер Сейбел "Кодеры за работой. Размышления о ремесле программиста"
    Хант Эндрю, Томас Дэвид "Программист прагматик"
    Ответ написан
    1 комментарий
  • Как реализовать такое на Python?

    @fireSparrow
    dct = {
            'Женя': {'Брюнетка', 'Толстая', 'Умная'},
            'Лера': {'Блондинка', 'Худая', 'Глупая'},
            'Даша': {'Блондинка', 'Худая', 'Умная'},
    }
    
    
    def search(string):
      res = set()
      str_set = string.replace(' ', '').split(',')
      for name, features in dct.items():
        if any([f in str_set for f in features]):
          res.add(name)
      return ', '.join(list(res))
    
    
    print(search('Худая, Блондинка'))
    print(search('Умная'))
    Ответ написан
    2 комментария
  • Почему работодатели требуют знания linux?

    @inkvizitor68sl
    Linux-сисадмин с 8 летним стажем.
    Под *nix обычно и имеют в виду Linux (изредка - +FreeBSD).
    Зачем IT-нику знать особенности ОС, на которой крутится 90% серверов в мире, с которыми он взаимодействует? Ну незачем, пишите дырявые сервисы и запускайте их на winserver стоимостью в пару десятков тысяч рублей за лицензию, чего уж там.
    Ответ написан
    36 комментариев
  • Можно ли работать программистом, но не оценивать сроки?

    pletinsky
    @pletinsky
    Ваша проблема довольно типична на самом деле :) Это не какие то индивидуальные особенности, просто многие боятся самому себе в этом признаться.

    Например в рамках классического скрам планирования команда оценивает отдельные фичи или задачи всей командой да еще не в человекочасах, а в абстрактных еденицах, которые переводят в человекочасы опираясь на скорость работы людей до этого. Целая система.

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

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

    В тоже время такие оценки сроков начинают выглядеть как инструменты мотивации людей к работе, подменяя собой традиционные инструменты мотивации: командную работу, премии и т.п. И как инструмент мотивации это действительно работает во многих случаях. Не отменяя конечно побычных эффектов, вредных для вас и проекта в целом.

    Что посоветовать - вопрос непростой. Ну, работать в серьезных проектах конечно, с профессиональными людьми. Там таких проблем поменьше.
    Ну и конечно учиться оценивать. Ведь ваши беспокойства вызваны неопределенностью. Вы просто не знаете как сказать правильную цифру. Конечно на самом деле никто не знает, некоторые лишь пытаются убедить себя, что знают. Однако вы можете приблизиться к реальности.

    • Ведите статистику по тому, сколько времени занимают сделанные вами задачи, или используйте существующую.
    • Разбивайте задачи на подзадачи и оценивайте их отдельно, а потом складывайте результат.
    • Сравнивайте задачи с теми, что вы уже делали.


    Системный подход решает многое.
    Ну и конечно классический финт ушами: закладывание рисков. Просто учтите риски, добавив время, проявив храбрость, чтобы сказать большую цифру. И если на самом деле сделаете быстрее, считайте, что учтенные вами риски попросту не случились. Это вашему руководителю будет очень понятно.
    Ответ написан
    Комментировать
  • Учебник по математике, при почти нулевых знаниях?

    @SeptiM
    Мне кажется, то, с чего нужно начинать, это дискретная математика. Можно сказать, это азбука для программиста. Я ниже приложил некоторый список книг. Стоит, правда, понять, хотите вы самостоятельно изучать предмет или иметь менторов и готовую программу...

    Дискретная математика

    Есть здоровская книжка Андерсона "Дискретная математика и комбинаторика". Она довольно толстая, но главы можно читать почти в случайном порядке. Некоторые математики жалуются, что она не очень строгая и много воды, но для начала самое то.

    По дискретной математике есть русский онлайн-курс на Stepic-е.

    Если идти чуть глубже, есть неплохая книжка Кнута и др. "Конкретная математика".

    Алгоритмы и структуры данных

    Кормен "Алгоритмы: построение и анализ" в переводе А. Шеня. Осилить первые две главы, потом можно идти почти в случайном порядке. Написано достаточно просто и понятно.

    Дасгупта, Пападимитриу, Вазирани "Алгоритмы".

    Онлайн-курс по алгоритмам.

    О математике

    МЦНМО свободно распространяет много интересных книг: www.mccme.ru/free-books
    Посмотрите там в первую очередь Шеня и Арнольда. Например, В. И. Арнольд. Задачи для детей от 5 до 15 лет.

    И разумеется не упустите замечательного писателя Мартина Гарднера "Математические головоломки и развлечения".

    Задачники

    Попрактиковаться в решении с проверкой можно здесь.

    www.braingames.ru -- по математике
    https://projecteuler.net/ -- среднее, ближе к программированию
    acm.timus.ru -- по программированию

    Очные программы

    Умение самоорганизоваться -- это хорошо, но иногда нужен ментор и готовая программа.
    Если вы живете в Москве или Петербурге, попытайте счастье в этих двух организациях:
    https://yandexdataschool.ru/
    https://compscicenter.ru/
    Если нет, но есть возможность на два года уйти в учебу, попробуйте поступить в магистратуру СПбАУ на SE-направление:
    mit.spbau.ru

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

    Удачи!
    Ответ написан
    3 комментария
  • Работа без высшего образования, это реально?

    serjikz
    @serjikz
    web-developer
    Пробовал учиться в 2х вузах. Ушёл из них (не потому что не вытянул нагрузки, поступил по результатам ЕГЭ везде, куда не подавал по стране и почти из каждого инста звонили и обещали золотые горы). Система образования ужасно отстаёт от сегодняшнего времени и не даётся того, что необходимо.
    Разговоров по поводу того, что учиться надо, без корочки ты никто, институт закладывает понимание процесса самообучения и прочей ереси наслушался капец просто.
    Уделал препода по web на 1 семестре, автоматы были даже при условии 2х посещений за семестр некоторых предметов (просто правильно поставить себя перед преподавателем и всё). Итог - пока все сокурсники занимались зубрёжкой непонятно чего непонятно зачем - просто занимался любимым делом - web. Замечу, первый инст был МИЭМ в Москве (бюджет, ушёл с 1 курса, инст не понравился), 2 инст - РГСУ в Москве (бюджет, ушёл с начала 3 курса, достало и преподы требуют всё же посещаемости, а сидеть ежедневно по 8 часов не делая ничего для себя - пустая трата времени).

    Женился. Работаю удалённо. Ежемесячные траты солидные, но работы всё больше и больше. Открываю с товарищем хостел, скоро переезжаем в Италию. И это при условии, что специализируюсь я только на web-сфере.

    P.S. Родители не помогают вообще ничем, всё своими усилиями.
    Ответ написан
    14 комментариев
  • Что такое машина Тьюринга и какое отношение она имеет к программированию?

    Mrrl
    @Mrrl
    Заводчик кардиганов
    В первую очередь - это формальное определение алгоритма. Задача считается алгоритмически разрешимой тогда и только тогда, когда её решение можно запрограммировать на машине Тьюринга (или каким-нибудь другим эквивалентным способом). Это определение даёт, например, возможность предъявить алгоритмически неразрешимые задачи. Позволяет ввести понятие "Тьюринг-полного" языка - если на языке можно реализовать машину Тьюринга, то на нём можно написать любой алгоритм (язык С таким не является, а C# - является).
    В общем, МТ - способ определить некоторый класс алгоритмов:
    - некоторые задачи можно решить конечным автоматом;
    - для некоторых потребуется конечный автомат со стековой памятью;
    - для других достаточно машины Тьюринга;
    - для остальных требуется божественное откровение или другие неалгоритмизируемые методы.
    Ответ написан
    7 комментариев
  • Как настроить запуск нескольких приложений django на связке nginx + uwsgi + django?

    un1t
    @un1t
    Какие порты? Лучше unix-сокеты и использовать конфиг.
    Для каждого приложения создаешь свой конфиг в /etc/uwsgi/apps-enabled/
    [uwsgi]
    plugins=python27
    vhost=true
    virtualenv=/home/ubuntu/myproject/python
    module=project.wsgi
    callable=application
    pythonpath=/home/ubuntu/myproject
    chdir=/home/ubuntu/myproject
    processes=1


    По умолчнию сокет создается тут
    /var/run/uwsgi/app/myproject/socket
    но можно указать свой путь опцией socket

    Ну и конфиг nginx соответственно:
    server {
        listen 80;
        server_name  example.ru;
    
        location / {
            uwsgi_pass      unix:/var/run/uwsgi/app/myproject/socket;
            include         uwsgi_params;
        }
    Ответ написан
    2 комментария
  • Почему дискретная математика называеться дискретной?

    bobrovskyserg
    @bobrovskyserg
    Детей до 6 лет иногда называют "почемучками", а дальше они уже научаются читать самостоятельно.
    Ответ написан
    4 комментария
  • Не работает Django Debug Toolbar?

    crazyzubr
    @crazyzubr
    Python backend-developer
    Скорее всего дело в параметре INTERNAL_IPS, на сервере нужно добавить нужный IP. И у вас ошибка, этот параметр должен быть кортежем, то есть не так

    INTERNAL_IPS = ('127.0.0.1')

    а так

    INTERNAL_IPS = ('127.0.0.1', )
    Ответ написан
    Комментировать
  • Почему form.cleaned_data пуст, хотя form.data имеет два ключа?

    form.is_valid()
    если все норм, то появится form.cleaned_data
    Пруф: https://docs.djangoproject.com/en/1.7/topics/forms...
    "A Form instance has an is_valid() method, which runs validation routines for all its fields. When this method is called, if all fields contain valid data, it will:
    return True
    place the form’s data in its cleaned_data attribute."
    UDP:
    не заметил, что уже is_valid вызывается. Но лучше делать иначе
    if form.is_valid():
      date_min = form.cleaned_data['date_min']
      date_max = form.cleaned_data['date_max']
    else:
      # что-то делать, если данные невалидны
    Ответ написан
    2 комментария
  • Что вы думаете по поводу учебника "Дискретная математика и комбинаторика" Джеймс Андерсон?

    vladislav23
    @vladislav23
    Студент, люблю программирование
    Не слышал об ошибках в этом учебнике. Могу сказать, что информация в учебнике отличается от той, что пишут советские/постсоветские авторы. Для универа читал именно книги последних.
    Могу сказать, что Теорию графов я читал именно у Андерсона. Расписана хорошо, ошибок каких-то не заметил. На счет остальных разделов книги определённое что-то сказать не могу.
    Ответ написан
    1 комментарий
  • Почему не отображаются объекты в django админке?

    Такое бывает, если вывод какого-либо из полей таблицы выкидывает исключение. Вы сами отметили, что при выводе одного лишь id в списке list_display всё нормально. Нужно добавлять по одному поля в list_display и понять, какое из полей даёт ошибку.

    У меня такое было при использовании вычисляемых полей, то есть имён функций в list_display, если эти функции выкидывали исключение. У вас вроде таковых нет. Так что сие лишь предположение.
    Ответ написан
    Комментировать