• Проблемы трудоустройства и свободного времени в it, насколько все плохо?

    @Katzuhiro_Akira
    Доброго времени суток. Все вопросы указанные в посте, сами по себе невозможно ответить прямо в абсолюте.

    Сама по себе профессия и специалист строится от отношения к работе и отношению к самому себе.
    Поэтому отвечу из своего опыта.

    Вы говорите о том, что такая работа может приносить удовольствие. Все зависит от точки зрения, кому и что нравится, но не стоит забывать о мире. Как минимум в профессии есть пару очень неприятных трудностей.
    1 - неправильное тз - таким образом не понятно, что от тебя вообще хотят.
    2 - всезнающие заказчики - типичные мозгоеды, которые непонятно чего хотят и не понимают даже принципов вашей работы
    3 - ДЕДЛАЙН`s - по большей части время исполнения ограничено сроками и всем плевать на сложности во время разработки(обычно редко что-то проходит гладко(из разряда: пропустил запятую и 3 часа искал где))
    4 - отношение к профессии - многие относятся к программистам принебрежительно ибо "мы просто нажимаем кнопки", а творческо-технический уклад жизни никого не интересует т к иногда приходится придумывать то, чего до этого вообще не было.

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

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

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

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

    -- Весь ответ это сугубо мое мнение.
    Ответ написан
    Комментировать
  • Как правильно использовать super()?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Django
    Седой и строгий
    1. Зависит от логики вашего кода. В некоторых случаях метод суперкласса можно вообще не вызывать.
    2. Прежде всего надо заметить, что требования передавать класс в вызов super относится только к Python2. В Python3 можно просто super().__init__(*args, **kwargs) Но если класс всё-таки передаётся, то это должен быть тот класс, в методе которого происходит вызов.
    Ответ написан
    1 комментарий
  • Как начать тестировать веб сайт с помощью WebDriver(Selenium) + Ruby, (GitHub Jenkins) технологий?

    @Talik0507
    Работаю, Живу
    В интернете достаточно много инфы по использованию селениум на различных языках.

    https://m.habrahabr.ru/post/247725/
    Как пример. Первая ссылка в гугле.

    Вообще есть тренинги у Алексея
    https://selenium2.ru/trainings.html
    Ответ написан
    Комментировать
  • Как реализовать многопользовательский доступ к проекту QGIS?

    freeExec
    @freeExec
    Участник OpenStreetMap
    Сам проект QGIS это лишь описание какие слои открыть и как их покрасить. Тут не нужен многопользовательский доступ, один раз настроил и всем раздал.
    А многопользовательский доступ нужен к данным, а для этого их нужно разместить в базе данных, PostGIS например.
    Ответ написан
    1 комментарий
  • C# vs Java для удалённой работы за рубежом. Что востребовано?

    saboteur_kiev
    @saboteur_kiev Куратор тега Карьера в IT
    software engineer
    Ориентироваться на зарплаты по языкам программирования - это полный идиотизм.
    Много платят за уровень специалиста, а не за язык.
    Найти опытного специалиста по PHP, который зарабатывает больше среднего специалиста по Java или C# - несложно.

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

    alsolovyev
    @alsolovyev
    Для формы submit Event.preventDefault();
    После отправляем AJAX запрос:

    // this is the id of the form
    $("#idForm").submit(function(e) {
    
    
        var form = $(this);
        var url = form.attr('action');
    
        $.ajax({
               type: "POST",
               url: url,
               data: form.serialize(), // serializes the form's elements.
               success: function(data)
               {
                   alert(data); // show response from the django.
               }
             });
    
        e.preventDefault(); // avoid to execute the actual submit of the form.
    });


    Plain JS: XMLHttpRequest
    var http = new XMLHttpRequest();
    http.open('POST', url, true);
    http.onreadystatechange = function() {
        if(http.readyState == 4 && http.status == 200) {
            console.log(http.responseText);
        }
    }
    http.send(params);


    JQ Ajax
    $.ajax({
      type: "POST",
      url: url,
      data: data,
      success: success,
      dataType: dataType
    });
    Ответ написан
    Комментировать
  • Почему не получается привязать сериализатор к другому сериализатору?

    @IKMOL
    Максим Вы не делали по документации, или делали то что Вам удобней :)
    Связать сериалайзеры можно по первичном ключе. В модели он у вас указан. Но в сериалайзере Вы ссылаетесь на другое поле.

    texts = TextsSerializer(many=True, read_only=True)
    Так будет работать если поле первичного ключа равно назве поле сериалайзера.
    У Вашем случае нужно дописать:
    для 1 елемента:
    texts = TextsSerializer(source='texts_of_page', read_only=True)

    для нескольких в класс Text внести изменение:
    texts_of_page = models.ForeignKey(Page, on_delete=models.CASCADE, related_name='texts')

    в PagesSerializer переписать
    texts = TextsSerializer(many=True, read_only=True)
    если related_name иначе (как Я писал выше) нужно будет добавить параметр source='new_related_name'
    Ответ написан
    1 комментарий
  • Зачем нужен Async Await в C#?

    @none7
    Изначально async/await появились как способ изничтожить лаги окошек при I/O операциях. Раньше для этого требовалось создавать поток или возится с колбеками асинхронных функций и запускать Form.Invoke для доступа к форме. Асинхронные же обработчики событий не вешают основной поток и всегда выполняются в потоке формы.

    Когда код встречает await, то немедленно возвращает поток в ThreadPool. Это позволяет параллельно обрабатывать множество задач нуждающихся в I/O, ограниченным числом потоков. Большое число потоков может выжрать всю виртуальную память, что не есть хорошо. Но есть и жирные минусы, lock не работает, скорость выполнения кода ниже.
    Ответ написан
    Комментировать
  • Как самоуничтожить программу при невыполнении условия?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    любопытно..
    - можно создать процесс в памяти не из файла, и передать ему управление
    - чем вас не устраивает просто отказ от работы? )) .. начнем с того что ни кто не запрещает, не акредитованному пользователю, иметь копию в downloads (и тд) .. закончим тем, что без применения дотфускатора (хотя бы бесплатного) любая школота, с достаточным энтузиазмом, вылечит вашу "защиту"

    ps удалять нет смысла, если оригинал не защищен, хотя бы дотфускатором. если защищен - вряд ли стоит так заморачиваться, достаточно отказаться от работы

    pps тоже думал о привязках - мне больше нравится идея привязки к SID системы или пользователя. гарантировано уникально, зато можно позволить пользователю менять диск на больший или более быстрый.. и даже менять комп.. (в рамках одной сети сама винда начнет визг, при попытке дублирования SID ос, а вот SID юзера... в рамках корпоративного AD - да, может белее чем тиражироваться) (но кто запрещает проверять пару сидов сразу?)
    Ответ написан
    Комментировать
  • Как правильно пользоваться management\commands в Django?

    @deliro
    Из реальных проектов:

    1. init — инициализирует проект после развёртывания. Туда входит наполнение БД фикстурами, парсер .csv файлов (потому что проще положить актуальный csv, чем пересоздавать фикстуры), который создаёт древовидную структуру объектов модели, добавляет разные фильтры и ещё много чего.

    2. warmup_cache — прогревает кэш. Запускается каждую минуту кроном, смотрит на нужные ключи, если их TTL подходит к концу — актуализирует данные и кладёт в кэш. Польза, очевидно, в том, что кэш прогревается не от действий пользователей и юзерам, попавшим на мисс кэша не приходится ждать долго.

    3. order_windows — стартует некие "окна", которые ещё не стартанули, но уже надо. То есть, start_time у них попадает в минуту между текущим запуском команды и предыдущим. Таким же образом закрывает "окна". Запускается каждую минуту. И нет, статус нельзя определить по текущему времени, потому что там происходит много подготовительных работ: создание объектов, рассылки емейлов и т.п.

    4. orders_update_status — закрывает заказ, выкидывая тех пользователей, которые присоединились к заказу, но не подтвердили его. Запускается каждую минуту.

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

    Миграции — это то, что выполняется однажды. Мой пример — init можно было бы сделать миграцией, но по каким-то соображениям, которые я не помню, я так не сделал. Скорее всего оттого, чтобы можно было во время разработки выполнять это несколько раз и не бояться удалять/править данные из "инита". Кстати, логичным было бы впихнуть в 0001_initial миграцию выполнение этой management команды.

    Миграция — это не только перестроение структуры БД. Данные там тоже могут быть. Например, раньше были группы юзеров A, B и C, а сейчас надо добавить D. Вполне себе миграция. Особенно, если это запрещено делать через админку.
    Ответ написан
    1 комментарий
  • Программирование - что для старта выучить ребенку?

    vetero4eg
    @vetero4eg
    Frontend
    Сейчас очень много хороших книг. Для начала хорошо идут книги по Scratch, чтобы понять основы алгоритмики и основные понятия в целом, при этом сразу видеть результат и радоваться достаточно быстрым успехам. Годится, в зависимости от ребенка и степени участия взрослого, лет с 6-8. Есть книги для программирования на python под minecraft. Там уже чуть сложнее, лет с 8-10, с хорошим навыком чтения и способностью хотя бы как-то по своему понимать и читать английские слова. И помимо алгоритмики и простейших базовых понятий будет уже что-то и более полезное. Ну и также огромная серия есть книг Javascript/Python/Swift/Java и тд для детей. Те которые видела - все очень даже, и вполне пойдут лет с 10.

    Если ближе к робототехнике и ребенок "болеет" лего, а также позволяют финансы, очень клевая штука Lego Mindshtorm, позволяет собирать из знакомых блоков и датчиков настоящих роботов, а также кучу всяких интересных роботизированных штук, и самостоятельно программировать их тоже на графическом языке программирования в специальной среде. Уроков и примеров в сети хватает, книжки тоже наверняка есть.
    Ответ написан
    Комментировать
  • Вывод формы в Django?

    @deliro
    Или можно использовать https://github.com/jazzband/django-widget-tweaks
    И не мешать Python-код с CSS и HTML.
    Ответ написан
    1 комментарий
  • Какой язык выбрать инженеру за 40?

    sergeygsd
    @sergeygsd
    врач-терапевт участковый
    Я молодой пенсионер ( 67 лет ) уч. врач все 40 лет. Без цели заработка изучаю информатику давно.
    php не люблю. Питон, Java, С++ Естественно знаком с СУБД, ассемблером, shell Пользуюсь любой ОС (Windows или Linux) Я просто любитель. Труд программиста тяжелый. Лучше учиться с преподавателями, но можно и самому.
    Моя знакомая, ЛОР-врач 35 лет хочет просто сменить профессию на Java-программиста. Человек очень упорный, надеюсь, что получится. Учите Java (по Лафоре, у него и по C++)
    Можно в NetBeans но я в терминале (если Windows это MinGW) - как раз поддерживает python + Java + C++ У Вас уйдет не меньше года, ни у кого быстрее не получилось. ВЭБ очень вряд ли. Хотя я изучал Друпал 7 и 8. Но Друпал 8 с его twig(ом) озадачил. И бросил. Смотрите по вэбу в сторону django. Мой путь с весны 2018 здесь : https://unics-70.livejournal.com/4324.html
    Ответ написан
    Комментировать
  • Зачем нужен Async Await в C#?

    Асинхронность - это про конкурентность исполнения. Многопоточность - про несколько потоков.

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

    Многопоточность - это ты проснулся, пошёл в душ, а твоя девушка поставила чайник.
    Ответ написан
    2 комментария
  • Как добавить несколько миксинов к админке?

    Astrohas
    @Astrohas
    Python/Django Developer
    Механизм такой
    class A:
        def say(self):
            print('Hello')
    
    class B:
        def say(self):
            print('HI')
    
    class C(A, B):
        def say(self):
            A.say(self)
            B.say(self)
    
    с = С()
    c.say() # Hello \n HI

    тоесть в классе потомке делаете как то так:

    def get_actions(self):
       
       Mixin1.get_actions(self)
       Mixin2.get_actions(self)
    Ответ написан
    1 комментарий
  • Django - Как добавить товар в корзину (AJAX)?

    kgb_zor
    @kgb_zor
    I need your traceback.
    Никто не будет копаться в вашем коде , тем более в таком.Ваш вопрос больше смахивает на задание.
    Выводите данные в консоль , чекайте traceback на сервере и кидайте сюда.Задача тривиальная, погуглите в конце концов.
    Ответ написан
    1 комментарий
  • Как лучше и быстрее выучить C#?

    @andoral
    ULEARN.ME
    Ответ написан
    Комментировать
  • Как лучше и быстрее выучить C#?

    @radeonovich
    Попробуйте SoloLearn, это приложение на смартфон с курсами по основам популярным языков программирования. Курсы разделены на блоки и выглядят так: небольшой кусок теории, затем вопрос по нему. Я так врубился в C# и в HTML, хоть он и не язык программирования, но в приложении есть.
    Ответ написан
    Комментировать
  • Стоит ли выносить конфиги Django в ini?

    sim3x
    @sim3x
    Нет

    Секретные переменные нужно вынести в env

    Если требуются корректировать настройки в зависимости от окружения (дев, тест, прод), то файл settings преобразуют в модуль и внутри модуля делают несколько файлов для каждого окружения, которые модифицируют основной конфиг

    settings
    ├── dev.py
    ├── __init__.py
    ├── settings.py
    └── test.py


    внутри __init__.py можно организовать автоматическое определение окружения по переменным окружения
    Ответ написан
    Комментировать