• Есть ли на Upwork неоплачиваемый испытательный срок?

    @Stalinko
    PHP'шник и фрилансер до мозга костей
    Официально на Upwork такого нет. Считается, что всё почасовое время должно быть оплачено.
    Но вы в праве удалить залогированные часы. Клиент не в праве вас к этому принуждать, но чисто по-человечески вы можете об этом договориться.

    Вопрос - стоит ли браться за такое? Я могу неделю проработать фулл-тайм, а потом - ни работы, ни денег, ни отзыва (в лучшем случае, а то и негативный). Хотя проект интересный, и у меня пока нет отзывов.


    Может и стоит, раз вы пока новичок. Очень важно, чтобы клиент выглядел надёжно: не индус/пакистанец/нигериец/т.п., чтобы у него оценка была нормальная (4.5 и выше).
    И лучше на берегу отказаться от формулировки "понравится моя работа" - это слишком субъективная оценка.
    Формулировка должна быть такой: если задача выполнена в полном объёме и всё работает, то вы никакие часы не удаляете. Удаляете только в случае, если вы реально не справились с задачей, или потратили на это слишком много времени (в этом случае удаляете только лишние часы).
    Ну и доверяйте своим чувствам - на Upwork куча клиентов-мудаков, которые хотят много и за дёшево (а лучше бесплатно), которые готовы шантажировать плохим отзывом или вообще чарджбеком. Если вы чувствуете, что клиент неадекват в самом начале, то бегите от него, всё равно вы ничего хорошего с ним не заработаете.
    Ответ написан
    Комментировать
  • Зачем нужен Async Await в C#?

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

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

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

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Да, можно. Примерно так.
    ...
    location /images/ {
        try_files $uri @mysite;
    }
    ...
    location @mysite {
    ...
       proxy_pass http://localhost:8080;
    ...
    }

    Если не будет картинки в /images, то сработает проксирование на localhost:8080
    Ответ написан
    1 комментарий
  • Как сбросить настройки microsoft visual studio?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    правильнее так:

    1 wpJzYZG.png

    2 - DrtJdF7.png
    Ответ написан
    Комментировать
  • Чему научиться кроме HTML, CSS, JS для фриланса на upwork?

    @Ravenio
    Доброго времени суток.
    Отвечая на вопрос.
    По количеству заказов, на данный момент, по апворку у заказчиков популярны PHP/Wordpress/Laravel, WP вне конкуренции.
    В сторону JS есть много заказов по React/Angular/Node.JS, меньше по Vue.
    Если же говорить про то, что необходимо, то начиная с самых низов от WP сейчас никуда не деться, просто навыками HTML/CSS на апворке да и вообще уже никого не удивить.
    На JS/React/Node.js заказы выше уровнем, без опыта и хорошего портфолио их брать сложнее чем на том же WP.
    Ну и общее.
    Про идеальный английский - неправда. Знать его конечно необходимо, но уровня intermediate вполне.
    По поводу маленьких ставок и быть первым - тоже, не совсем:
    • Во-первых это не всем известная помойка. Да, заказчики бывают разные, но основаная масса желает платить специалисту, не равняйте менталитет заказчика из США с нашим, у него не укладывается, что специалист ставит 5-8$ за час. В среднем, все начинают в диапазоне 12-15$, хотите можете и с 5$ начинать, но лучше сразу привыкать ценить свой труд. И вас ценить будут в ответ. Пример из опыта заказ на установку WP, и темы без кастомизации и прочего ушел за 35$/час, на вопрос почему, заказчик сказал, потому что я вижу что вы сделаете за час, а человек будет за 7$ ставить мне его неделю, может заказчик и не прав, но такой ход мысли у многих. Повторюсь есть и иные случаи, но потом часто можно в Job feed увидеть - "даю апворку последний шанс, чтобы сделать мою работу, предыдущий фрилансер не справился".

    • Во вторых, там необходимо ответить в течении определенного времени, обычно окно составляет около 10 минут. Ваш cover letter выстраивается у заказчика релевантно вашим скилам, портфолио, последним выполненым работам, но никак не зависит от того вы ответите первая или десятая.

    Ни в коем случае, не при каких обстоятельствах не работайте за отзыв и за очень маленькую ставку, мошенников и сволочей большое количество. Случаев работы за 5$ два месяца - масса. Начиналось все с небольшой правки, и обещаний оставить хороший отзыв, а потом в процессе узнаешь что такое JSS, что такое скрытые отзывы. И так люди работали.
    Старайтесь избегать заказчиков из Пакистана, Индии. Русскоязычных старайтесь тоже избегать, вообщем ищите заказы в странах от Германии и западнее.

    В любом случае, как раз где-то через 6-8 месяцев обучения, вы уже сами будете отвечать на этот вопрос другим. Удачи вам, Марина!
    Ответ написан
    2 комментария
  • Что Вы думаете о данном гайде по изучению Fron-end разработки?

    BBmike
    @BBmike
    По первой части не забивай себе голову разными ненужными на данном этапе подробностями в планировании (которому ты всё равно никогда не будешь следовать ) и ступай на htmlacademy.ru
    купи там платный курс (он там 300 р/мес что ли стоит), а потом честно и тщательно пройди его.

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

    Vlad_IT
    @Vlad_IT Куратор тега Вёрстка
    Front-end разработчик
    Использую vscode+webpack+pug+scss+бэм. Из физических инструментов, основной моник: lg ultrawide 29um69g, рядом прикручен моник от ноутбука повешенный вертикально, подключенный через универсальный скаллер.

    0) Запускаю Spotify :-)

    1) Произвожу установку всех необходимых модулей для сборки. В моем случае у меня набор конфигураций для webpack (отдельные файлы для pug, scss, static и.т.д., выбираю что нужно).

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

    3) Запускаю VS Code, открываю нужную папку.

    4) Пишу размету на Pug. Пишу с БЭМ, если встречаю повторяющийся блок, то открываю файл _mixins.pug, в который пишу миксины для повторяющихся блоков, например товаров, пунктов меню, каких-то блоков и.т.д. Pug умеет делать циклы, это ускоряет сильно.

    5) Когда HTML готов, начинаю делать каркас. Если дизайн сделан по сетке, определяю контейнеры, колонки, строки в свои классы (не пишу в html тучи классов аля col-md-6, а пишу в SCSS инклуды в нужные мне блоки, типа @include make-col(2) и.т.д.).

    6) Экспортирую картинки из Avocode. Очень делается просто, указываю папку и просто кликаю экспорт и ввожу название файла и расширения. Преимущественно для иконок использую svg, если нет svg, то ищу эту иконку в интернете (дизайнеры редко рисуют иконки сами, но зато любят вставлять их не в векторе). Если иконка простая, могу сам ее в inkscape обвести, ну и если нет, то экспортирую png в размере (благо авокод это позволяет, если конечно дизайнер не вставил в исходном маленьком размере). Когда есть контакт с дизайнером, трясу его, ибо растр это плохо для иконок.

    7) Пишу стили блоков из страницы. На этом этапе можно на втором монике параллельно смотреть футураму или
    Арчера :-) Но чаще на широком монике слева браузер, справа VS Code, а на втором монике Avocode (может меняться местами с браузером). Мысленно нарезаю страницу на блоки. Для каждого блока (БЭМ) создаю отдельный scss файл (кто-то даже для элемента создает, но мне лень), из него сразу выписываю все селекторы. Иногда могу сначала выписать все селекторы со страницы (но так лучше не делать, т.к. во время работы может потребоваться изменить что-то в разметке), но чаще для одного блока выполняю этот пункт и за ним сразу выполняю пункт 8, потом для нового блока опять 7 и 8 и.т.д.

    8) Пишу css код вместе с Avocode, у него беру нужные мне параметры (а он уже подставил в них переменные), и вставляю в мой код. И параллельно сверяю со скрином макета используя вот это расширение https://chrome.google.com/webstore/detail/perfectp...

    9) Пишу адаптив. Я не могу привыкнуть к методологии mobile-first, поэтому пишу всегда сначала полную версию сайта. Я понимаю, что это чревато всякими проблемами и это типа не модно, но мне норм.

    10) Медиа-запросы пишу прямо в блоках, для каждого блока/элемента/модификатора может быть отдельный медиа-запрос. Но для начала определяю breakpoint'ы для разных экранов (чтобы их не было сотни разных), если использую Bootstrap, то беру его breakpoint'ы.

    11) Добавляю анимашки. Даже если заказчик не просил отдельно (и если не указал отдельно, что нельзя), он все равно будет доволен, а с animate.css+onscreen.js это вообще работа 10 минут. Сложные анимации обговариваю отдельно, чтобы не сделать ненужную работу.

    11) Все снова сверяю, пишу скрипты где надо. Для слайдеров в 99% случаев подходит slick (с доработками конечно, но там хорошее API), для других случаев могу написать свой.

    12) Сдаю заказчику и жду ответа сидя на тостере/пикабу.

    Это чисто мой опыт, опыт фрилансера, не знаю, как делают другие и не могу на 100% утверждать что это 100% правильный способ. Я так и не смог заставить свой конфиг webpack правильно вставлять спрайты svg.
    Надеюсь чем-то поможет мой ответ.
    Ответ написан
    7 комментариев
  • Инструмент автоматизации для Continuous Delivery / Integration в .net, Azure проектах?

    AlexanderYudakov
    @AlexanderYudakov
    C#, 1С, Android, TypeScript
    MSBuild + custom task-и, написанные под него.
    Ответ написан
    Комментировать
  • Скажите кто пробовал сдавать MCSA сертификат Microsoft?

    myjcom
    @myjcom
    Можно ли подсмотреть

    Нет.

    Стоит ли сдавать?

    в этом случае
    Легко ли найти дампы на них?

    Не стоит. Лучше нормально подготовиться.
    Дампы всегда успеете.

    Сильно ли сложно их сдать?

    Если курсы подготовки на английском освоите - не сложно, там половина ответов в самих вопросах.

    У Вас цель какая? Просто бумажка или планируете стать MCSE и т.д.

    Как проходит сам экзамен?

    https://www.microsoft.com/ru-ru/learning/certifica...

    https://habr.com/post/262707/
    Ответ написан
    3 комментария
  • Где можно скачать(просмотреть код) приложение выполненное профессионалом?

    Начните с просмотра вот этих двух проектов с примерами на всевозможных языках
    todomvc.com
    и поинтереснее https://github.com/gothinkster/realworld
    А в целом, обычно, в каждом фреймворке есть codestyle guide, бутстрап-библиотеки для старта и вообще всевозможные генераторы.
    Ответ написан
    Комментировать
  • Блокировка DigitalOcean?

    @ynblpb_spb
    дятел php
    Тоже попал под блокировку в DO

    Выход простой
    Топаете в любого отечественного хостера, покупаете самую дешевую VDS с хорошим каналом и настраиваете reverse proxy на nginx приблизительно с таким конфигом:

    server {
            listen                  80;
            server_name             domain.ru;
            
            location / {
                    proxy_pass http://111.111.111.111:80;
                    proxy_connect_timeout                           60;
                    proxy_send_timeout                                      60;
                    proxy_read_timeout                                      60;
                    proxy_redirect                                          off;
                    proxy_buffer_size                                       4k;
                    proxy_buffers                                           4 32k;
                    proxy_busy_buffers_size                         64k;
                    proxy_temp_file_write_size                      10m;
                    proxy_set_header        Host                    $host;
                    proxy_set_header        X-Real-IP               $remote_addr;
                    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
            }
    }

    где 111.111.111.111 это IP адрес вашего дроплета в DO

    и для https сайтов

    server {
            listen                  443;
            ssl                     on;
            server_name             domain.ru;
            ssl_certificate      /etc/nginx/ssl/domain.ru.crt;
            ssl_certificate_key  /etc/nginx/ssl/domain.ru.key;
            ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
            ssl_ciphers  "RC4:HIGH:!aNULL:!MD5:!kEDH";
    
            location / {
                    proxy_pass https://111.111.111:443;
                    proxy_connect_timeout                           60;
                    proxy_send_timeout                                      60;
                    proxy_read_timeout                                      60;
                    proxy_redirect                                          off;
                    proxy_buffer_size                                       4k;
                    proxy_buffers                                           4 32k;
                    proxy_busy_buffers_size                         64k;
                    proxy_temp_file_write_size                      10m;
                    proxy_set_header        Host                    $host;
                    proxy_set_header        X-Real-IP               $remote_addr;
                    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
            }
    
    }


    такая вот у нас замечательная, страна, конечно...
    Ответ написан
    11 комментариев
  • 44 года можно ли еще стать востребованным специалистом в IT?

    Начал программировать лет 8 назад. В этом году мне будет 60.
    Работаю удаленно. Предложений работы больше, чем я могу взять.
    Не сразу, но научился зарабатывать достаточно. Ключевой момент: переход к удаленной работе вместо выполнения разовых заказов.
    Ответ написан
    13 комментариев
  • Бан за безактивность на upwork?

    syschel
    @syschel
    freelance/python/django/backend
    Да, вы верно слышали. Это защита от спама и гулпых фрилансеров, которые шлют однотипные шаблонные предложения на вроде "найми меня".

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

    З.Ы. Во время когда ищу новый заказ, мне 60 бесплатных "коннектов" (по 2 на заявку) очень много, так как очень скурпулёзно выбираю к кому отправить предложение о работе. То задача размытая или не интересная, то цены не те, то условия подозрительные, то клиент какой-то не благонадёжный, то уже наняли. Но некоторые, особенно новички(при регистрации дают 90 коннектов на первый месяц), все эти поинты умудряются прогулять за пару часов в первый день. Рассылая всем подряд предложения. Вот и выходит, что с такими система борется. Повышая качество. Так как не крути, но нас фрилансверов там со всего мира миллионы, а вот работодателей с деньгами всего лишь тысячи.
    Ответ написан
    2 комментария
  • Каков сценарий использования git для одного разработчика?

    gobananas
    @gobananas
    finishhim.ru
    Делаете ветку master, ветку dev и отдельные ветки под отдельные фичи.
    Делаете 2 сайта - один сам проект (основной) - на него выкатываете master, второй сайт тестовый - на него выкатываете ветку dev. Остальные ветки разрабатываете, сливаете с dev выкатываете на тест, если там всё нормально то dev сливаете с мастером. За ноут просто когда садитесь если мастер новый есть делаете git pull и стягиваете новую версию
    Ответ написан
    11 комментариев
  • Как заменить switch case паттерном стратегия?

    lexxpavlov
    @lexxpavlov
    Программист, преподаватель
    Switch
    public enum DamageType { Melee, Range, Magic }
    public class Monster
    {
        public double Health { get; private set; }
        public double MeleeDamage { get; private set; }
        public double RangeDamage { get; private set; }
        public double MagicDamage { get; private set; }
        public DamageType FavoriteDamageType { get; private set; }
    
        public Monster(double health, double meleeDamage, double rangeDamage, double magicDamage, DamageType favoriteDamageType)
        {
            Health = health;
            MeleeDamage = meleeDamage;
            RangeDamage = rangeDamage;
            MagicDamage = magicDamage;
            FavoriteDamageType = favoriteDamageType;
        }
    
        public void AttackTo(Monster monster, DamageType damageType)
        {
            switch (damageType) // используется switch
            {
                case MonsterType.Melee: monster.Health -= MeleeDamage; break;
                case MonsterType.Range: monster.Health -= RangeDamage; break;
                case MonsterType.Magic: monster.Health -= MagicDamage; break;
            }
        }
    
        public void AttackTo(Monster monster)
        {
            AttackTo(monster, FavoriteDamageType);
        }
    }


    То же самое, но со стратегией
    public class Monster
    {
        public double Health { get; set; }
        public double MeleeDamage { get; private set; }
        public double RangeDamage { get; private set; }
        public double MagicDamage { get; private set; }
        public IDamageStrategy FavoriteDamageStrategy { get; private set; }
    
        public Monster(double health, double meleeDamage, double rangeDamage, double magicDamage, IDamageStrategy favoriteDamageStrategy)
        {
            Health = health;
            MeleeDamage = meleeDamage;
            RangeDamage = rangeDamage;
            MagicDamage = magicDamage;
            FavoriteDamageStrategy = favoriteDamageStrategy;
        }
    
        public void AttackTo(Monster monster, IDamageStrategy damageStrategy)
        {
            damageStrategy.Attack(this, monster); // не используется switch
        }
    
        public void AttackTo(Monster monster)
        {
            AttackTo(monster, FavoriteDamageStrategy);
        }
    }
    
    
    public interface IDamageStrategy
    {
        void Attack(Monster attacker, Monster defender);
    }
    public class MeleeDamageStrategy : IDamageStrategy 
    {
        public void Attack(Monster attacker, Monster defender)
        {
            defender.Health -= attacker.MeleeDamage;
        }
    }
    public class RangeDamageStrategy : IDamageStrategy 
    {
        public void Attack(Monster attacker, Monster defender)
        {
            defender.Health -= attacker.RangeDamage;
        }
    }
    public class MagicDamageStrategy : IDamageStrategy 
    {
        public void Attack(Monster attacker, Monster defender)
        {
            defender.Health -= attacker.MagicDamage;
        }
    }

    Отличие класса Monster только в коде первого метода AttackTo. Ну и свойства FavoriteDamageType или FavoriteDamageStrategy.

    Стратегия может быть полезна, если код атаки, в зависимости от типа, сильно отличается, используя внешние данные (не из класса монстра), например, день или ночь, ясно/дождь и пр. Использование стратегии переносит часть кода из класса монстра (и так сложного класса) в несколько простых классов.
    Ответ написан
    1 комментарий
  • Какие курсы по сss/js лучше смотреть на youtube?

    tema_sun
    @tema_sun
    Никакие. Поставьте себе реальную задачу и решите ее. Никакие ролики не заменят вам практического применения знаний.
    Ответ написан
    Комментировать
  • Как вы создаете себе обстановку для программирования?

    @Unit11
    Есть секрет ) . У тебя должен быть план, когда садишься писать код. И не просто план сделать программу, а конкретно, что сегодня реализовать, что до обеда, что после. Надо думать о программе в нерабочее время, и когда ты начнёшь писать, тебе уже ничто не помешает и не отвлечёт, ты просто пишешь что запланировал. Если не знаешь как что-то написать, то узнать как это тоже часть плана, ну и т.д. К этому серьёзно не относятся, но план очень организует и дисциплинирует, необходимо очень серьёзно к этому относится.
    Ответ написан
    Комментировать
  • Как найти удаленную работу в команде?

    IDriuk
    @IDriuk Автор вопроса
    программист
    Поработаю пока с вот этим https://github.com/lukasz-madon/awesome-remote-job... нашел где-то тут на Тостере.

    Исследовал ситуацию дальше, понял , что без портфолио не стоит рыпаться.
    Нашел список типовых проектов, по которому можно делать портфолио: https://goo.gl/UPx4Sn
    Еще хочу добавить , что сейчас никто не будет слушать: "я что-то немного знаю и что-то делал, а вы меня доучите, дайте попробовать, я буду стараться", сейчас правильно общаться вот так: https://goo.gl/8RNNJY , то есть в ответ на "ищем программиста на такой-то проект на том-то" надо отвечать "о круто у меня уже есть такой проект в портфолио, вот ссылка, надо только текст и фотки ваши вставить" :)

    Что касается javascript, то оптимальным выбором, чтобы позиционировать себя как javascript или frontend программист, выглядит сконцентрироваться на react.js . У ангуляра больше своих специфических особенностей, vue слишком новый, к jquery в нагрузку будет идти какой-нибудь wordpress или будет только верстка, node.js для серьезного бекенда довольно ненадежный (например сервер на ерланге может лет десять без перезагрузок проработать, имеет крутую асинхронность и параллельность, есть серьезная система перезапуска падающих частей через супервайзеров), хотя в качестве сервера-заглушки для реакта подойдет вполне :) .
    Ответ написан
    Комментировать
  • Есть ли преимущество Java над Python для веб-приложения?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Главное преимущество и проклятие скриптовых языков - их динамическая природа. С одной стороны это даёт быстрый цикл разработки, а с другой утяжеляет поддержку крупных проектов. В строготипизорванной Java большая часть ошибок, особенно глупых, уходит на этапе компиляции. С другой стороны, чтобы запустить простой проект на Java придётся выполнить много лишних телодвижений. Ну и всем известная смешная картинка
    java-stack.jpg

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