• Как разрешить спортивный семейный IT спор?

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

    "В первую очередь стоит выбор языка. " А ты точно программист? Любой программист знает, что выбор языка стоит в самую последнюю очередь. Ну, если ты занимаешься разработкой мобильных приложений вот его и разрабатывай.
    Ответ написан
    2 комментария
  • Как зайти в интерактивный режим Python?

    @deliro
    При установке ты не отметил галочкой пункт, чтобы питон добавился в PATH. Удали и установи заново с галкой.
    Ответ написан
    1 комментарий
  • Какой побитовый оператор используется в Golang для операции Not (~ PHP)?

    Чтобы сделать битовую операцию NOT на переменой b, нужно написать
    ^b

    https://play.golang.org/p/Y9SrDSgNmf
    Ответ написан
    Комментировать
  • Photoshop, notepad++ и бочка кофе в придачу, что ещё поможет верстать сайты быстрее и с меньшими затратами нервов?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    1. Пользуюсь includeHTML для шаблонов и SPA.
    2. Для обновления реалтайм в браузере на ПК (и на Андроид/iPhone, можно и синхронно!) юзаю: Phongap Desktop (на папку проекта он поднимает веб-сокет)
    3. Редактирую в FAR Manager 3 с плагином авто-подсказки ввода: AutoCompletion и разметкой кода FarColorer и плагином консольной эмуляции ConEmu со всеми фишками (screenshots)!
    ConEmuAero.png
    При сохранении кода по F2 - сразу видны изменения во всех браузерах, включая и мобилу.
    PS: еще прям в браузере Chrome и FF можно полноценно править код и видеть
    результат сразу.

    UPD: Brackets
    (установлено, но не пользуюсь, т.к. еще пока есть баги в нём)
    1. удобно редактировать стили в CSS, содержащиеся в другом файле в inline-режиме
    2. "деревья" проектных папок и файлов - всегда под рукой.
    3. реал-тайм отладка
    (на gif-ке: live-редактирование страницы, открытой в браузере FireFox через Brackets: Ctrl+Alt+P)
    0b320ee6b0df44cfbe63748efe7c47d4.gif
    Ответ написан
  • Существует ли "карта программиста"? Что и за чем учить?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Нет одинаково эффективного пути для всех и каждого.

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

    Тут главное - настолько сильно хотеть достичь результата, чтобы любые препятствия только добавляли азарта. Чтобы ночами спать не мог и думал о задаче. Это ключевой момент обучения. Все остальное - декорации, способы, инструменты...

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

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

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

    На первых порах, тестирование будет занимать до 99% времени и сил. Заодно подтягивается синтаксис используемых языков (вообще не важно каких), вырабатывается внимательность, концентрация, тренируется память и пр.

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

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

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

    Обрати внимание, самое главное качество во всем этом многабукафф - упорство на грани фантастики. Любой, кто не дойдет до конца, не треснет себя по лбу в соты раз с воплем, так вот же она где, эта запятая, пропущена - сломается в самый неподходящий момент на боевом проекте...

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

    Ах да, обложись справочниками по любому инструменту и научись быстро вникать и подхватывать необходимый минимум. Обычно достаточно на 20% владеть инструментом, чтобы решать 80% задач.

    В любом случае я за критерий истины держу платежеспособный спрос.
    Ответ написан
    3 комментария
  • Как составить алгоритм выбора наиболее эффективной команды героев?

    Если команда противника уже определена, а размеры команд такие, какие Вы описали (скажем до 5-6 персонажей), то полным перебором. (Вы кстати не рассказали о правилах ведения боя - один на один один бой или выживший может помогать другим "коллегам" и т.п.)

    Если команда противника еще не определена, то теория игр и минимаксный подход.
    Ответ написан
    1 комментарий
  • Как через консоль узнать свежая ли ветка?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    git fetch
    Ответ написан
    Комментировать
  • Управления временем в Python?

    Avernial
    @Avernial
    Разрабатываю научное ПО на языке Python.
    Как и сказал Sergey6661313 вам нужно использовать QTimer. Класс QTimer испускает сигнал timeout спустя заданное время.

    Вот пример использования QTimer с QProgressBar. Таймер испускает сигнал timeout каждую секунду, по сигналу вызывается метод on_timer в котором происходит инкрементирование QProgressBar, после заполнения прогресса таймер останавливается.

    from PyQt4 import QtGui
    from PyQt4 import QtCore
    
    class Widget(QtGui.QWidget):
        
        def __init__(self, parent=None):
            super(Widget, self).__init__()
            layout = QtGui.QVBoxLayout(self)
            self.pb = QtGui.QProgressBar()
            self.pb.setMaximum(100)
            self.pb.setMinimum(0)
            self.pb.setValue(0)
            layout.addWidget(self.pb)
            self.timer = QtCore.QTimer()
            self.timer.timeout.connect(self.on_timer)
            self.timer.start(1000)
    
        def on_timer(self):
            current_value = self.pb.value() + 1
            self.pb.setValue(current_value)
            if current_value == 100:
                self.timer.stop()
    
    if __name__ == '__main__':
        app = QtGui.QApplication([])
        w = Widget()
        w.show()
        app.exec()
    Ответ написан
    Комментировать
  • Большой проект на С. Как строить работу чтобы не завалило кодом?

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

    Это потянет за собой новые проблемы и необходимость содержать системного архитектора, но рано или поздно все равно потребуется при таком объеме кода.
    Ответ написан
    Комментировать
  • Как повысить свои навыки программирования на С/С++?

    abyrkov
    @abyrkov
    JavaScripter
    Ну что же... итак.
    1. Узнайте больше о кодстайлах
    Кодстайл(codestyle) - это, в буквальном смысле, стиль кода. Если вы будете писать по кодстайлу, то проблем явно станет меньше. Код станет читабельнее, его станет легче читать и сопровождать. А тот код, что написан с явными нарушениями очевидных правил... это такой же вырвиглаз как пробелы перед знаками препинания и ???.
    2. Научитесь пользоваться дебаггером
    Действительно. Дебаггер это, в буквальном смысле, антибаг. Багом, если вы еще не в курсе, называют именно логические ошибки. Ну, я думаю, освоив этот инструмент вы станете гораздо успешным охотником за покемо... жуками-багами.
    3. Перейдите на IDE
    Многие IDE или продвинутые редакторы имеют кучу плюшек, которые облегчат вам жизнь до того, что создание кода превратиться в чистое наслаждение. Оно того стоит.
    4. Анализируйте ошибки
    Все делают ошибки. Но если мы будем узнавать и запоминать в чем тогда была ошибка выше шанс, что мы ее не сделаем в следующий, и, если мы ее все-таки сделаем, то куда быстрее ее найдем.
    5. Учите и используйте библиотеки
    Люди давно уже поняли, что можно использовать один и тот же код несколько раз, а особо универсальный код - собственно библиотеку - можно использовать во многих проектах. Правильно подобранная библиотека позволит вам намного ускорить разработку типичных вещей.
    6. Сначала думай, потом делай
    Ты, наверно, думаешь, что как только крутым кодерам приходит в голову гениальная идея, они сразу же садятся и пишут код? Нет, они сначала придумывают структуру этой вещи, что они для нее будут использовать, алгоритм... словом, кучу вещей и только убедившись, что все предусмотрели, садятся, и пишут код.
    7. Практика + Google
    И, напоследок, запомни две простых вещи:
    В теории, теория и практика неразделимы. На практике это не так.
    и
    Профессионалы тоже пользуются гуглом. Может, даже чаще, чем новички.

    Удачных проектов тебе!
    Ответ написан
    5 комментариев
  • Падение http при установке пакетов?

    GavriKos
    @GavriKos
    Итак, что нужно сделать для избавления от этих мук?

    Поставить нормальные никсы и не мучаться.
    Ответ написан
    7 комментариев
  • Неправильная работа кода, почему всегда срабатывает "else"?

    @Mercury13
    Программист на «си с крестами» и не только
    Return Value
    On success, a non-negative value is returned.
    On error, the function returns EOF and sets the error indicator (ferror).

    Так что норма.

    Надо писать
    if (name_bytes >= 0 && bday_bytes >= 0) {
    Ответ написан
    5 комментариев
  • Как разрешить вводить только цифры?

    Смотрите в сторону модуля - re

    И если не знаете полистайте что такое регулярные выражения.

    Можно ещё использовать конструкцию try/except.
    Ответ написан
    4 комментария
  • Остановка программы на Python 3.5?

    Лично мне видится более верным решение с скриптом (раз уж винда - .bat-м).

    @echo off
    python3 script.py
    pause
    Ответ написан
    Комментировать
  • Программирование с ноля. Не студенческий возраст. С чего начать?

    Antonchik
    @Antonchik
    Программирую на HTML
    Python будет крутым выбором для первого языка программирования, на нем легко будет выучить основы программирования, а дальше можно уже брать c# если вы хотите писать оконные приложения под windows
    Ответ написан
    3 комментария
  • Программирование с ноля. Не студенческий возраст. С чего начать?

    eugene_leshchinskiy
    @eugene_leshchinskiy
    Если для себя и для души, то я бы посоветовал Python. Писать на нем легко и быстро, учить тоже. Хоть используется в основном в вебе, для пк тоже можно что-то набросать. Java и C# - это энтерпрайз, сложные и большие системы, много учить и в одиночку такие системы не обслуживаются.
    ----------
    Внимание, мой ответ основан на небольшом знакомстве с языками, не принимайте его как единственно верный. Хотя я думаю, другие окажутся похожими.
    Ответ написан
    Комментировать
  • Как вывести строку, содержащую максимально большое число, из списка?

    JRazor
    @JRazor
    Senior StarkOverFlow Programmer
    Вот ключ для поиска: lambda x: int(re.search(r'\d+', x).group(0))

    import re
    
    a = ['maz/2/arini', 'ya/16/streb', 'lovel/5/as']
    key = lambda x: int(re.search(r'\d+', x).group(0))
    
    print min(a, key=key)  # Минимальное число
    print max(a,  key=key)  # Максимальное число
    print sorted(a,  key=key)  # Сортировка
    Ответ написан
    1 комментарий
  • Базовые знания алгоритмов для работы стажером-разработчиком?

    gbg
    @gbg
    Любые ответы на любые вопросы
    В первую очередь, не ляпните на собеседовании "теория вероятностИ", засмеют. Дисциплина называется "теория вероятностей"

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

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

    Программирование - скорее ремесло. Без практики мало что получится. Так что Eat -> Code -> Sleep -> Repeat
    Ответ написан
    Комментировать
  • Как быстро сравнить два url?

    @Gokudera
    java developer
    tutunak И каждый из них я должен сравнить с 100 000 предыдущих (+ этот же файл будет увеличиваться с каждым появлением новых уникальных url).
    Так-то в базах данных есть индексирование, они умеют строить деревья который оптимизируют поиск...
    >>Появилась мысль, что можно сравнивать хеши этих строк.
    Зачем писать велосипед если базы за вас это делают?
    Ответ написан
    1 комментарий