• Как бывшему C++ разработчику сделать портфолио backend разработчика?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Релокация - это конечно круто, но вы должны были понимать риски, особенно учитывая визу, если я правильно понимаю - она учебная. Но думать о резюме как бы раньше надо было.

    Вы сейчас кстати делаете еще одну ошибку: у вас нет времени учить новое. Даунгрейд без страховки - это очень мягко говоря сложно. Веду к тому, что:
    1. Вам придется перекроить мозг, что бы работать бэкендщиком.
    2. Даже если на пыхе напишите несколько сайтиков - первое на что вам следуют надеяться - это fullstack разработка. Угадайте на какой CMS больше всего заказов? Но у вас по прежнему не будет строчки про backend, будет про wp например.
    3. Основной профиль вы начнете забывать, а нового еще не получите.

    ---

    Что это может быть? Блог? Магазин?

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

    В начале 2000х можно было сделать форум или гостевуху, а что котируется сейчас?

    Чатики, Социальные медиа, Стриминг, Эл.Магазины, всякие webosckets, мобильные приложения и т.д.

    Что делать с фронтендом?

    Где брать дизайн?

    Покупаем на той же бирже фриланса.

    На какие примеры ориентироваться?

    Это вопрос к заказчику и ТЗ.

    ---

    В общем ситуация у вас конечно полное уг, но я бы на вашем месте делал следующее:
    1. Взял язык с самым низким стартом - да, тот самый богомерзкий php и за счет него фрилансил. Цель - проживание.
    2. Мне тоже нравится Golang, но проекты на нем сейчас в основном внутренние во многих компаниях. Что бы получить работу по удаленке нужен реально крутой опыт, если он есть - круто надо размещать резюме, если нет - оставить эту затею. В крайнем случае, если будет время - делал бы открытые проекты на github для получения опыта и для строчек в резюме.
    3. Активно искал бы работу по основному профилю.

    Этот план не эффективен то точки зрения карьерного роста (он очень медленный), но с точки зрения стабилизации жизнеобеспечения - годится.
    Ответ написан
    4 комментария
  • Нужен совет по направлению развития начинающего программиста?

    @dmitryKovalskiy
    программист средней руки
    За полтора месяца я выучил свой первый язык – Python
    А я выучил C++ за 21 день
    Но так, как я не планирую оставаться фронтенд разработчиком, то дальше хочу изучить javascript
    Вообще противоречите сами себе.
    По сути вопроса - очередной вопрос "Что делать дальше?". Выучите 1 платформу хорошо. Знаете Python? Доучите Django и разберитесь с вебом. Если будете хреново знать Python и PHP - не нужны будете никому. Если хорошо разберетесь с одним стеком технологий - надежды появятся. У вас только ни слова про математическую и алгоритмическую базу. Разберитесь с архитектурой программных продуктов, паттернами. SQL и нормальными формами базы данных. Чтобы пойти стажером - вы должны уметь красиво протащить данные от БД до клиента и красиво отрисовать их.
    Ответ написан
    Комментировать
  • Как анализировать вакансии front/-backend разработчиков?

    DevMan
    @DevMan
    не стоит удивляться: в таких вакансиях расставляют требования точно так же как и вы теги к своему вопросу.
    Ответ написан
    24 комментария
  • Как анализировать вакансии front/-backend разработчиков?

    @rsi
    software engineer
    Типичная ситуация на рынке вакансий. Работодатель запрашивает ненужные знания и предлагает вымышленную зарплату, на вакансию откликаются люди которые якобы знают все эти технологии. По факту работу получает человек который дай бог знает половину из того что он наговорил, а работодатель хорошо если платит половину от тех денег которые обещал.
    Ответ написан
    16 комментариев
  • Как анализировать вакансии front/-backend разработчиков?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    Как правило, это пишет "специалист" из отдела кадров, который понятия не имеет об используемых терминах.
    Просто напишите резюме, в котором будет как можно больше слов из описания вакансии.
    Я понимаю, что сложно заявить о знании Oracle Pl/SQL не использовав его, но можно написать "SQL, MySQL". Такое резюме имеет хорошие шансы пройти первичный отбор, а уж затем можно пообщаться с кем-то более вменяемым.
    Иногда в небольших компаниях начальство и отдел кадров понятия не имеют, что используется на производстве, поэтому и пишется отсебятина. Очень важно пройти первичный отсев и выйти на уровень реально связанный с используемыми технологиями. Даже если потом выяснится, что вы не подходите, вы можете спокойно развернуться и уйти, а можете и подучиться. SVN и GIT не так уж сложны. Да и освоить Oracle после MySQL тоже будет несложно. Подавайте смелее, а на месте уже разберетесь.
    Ответ написан
    2 комментария
  • Как определить Permission в модели для поля?

    @deliro
    Как и все остальные права
    if user.has_perm('your_app.can_edit_meta'):
        # good mojo
    else:
        # bad mojo
    Ответ написан
    1 комментарий
  • Как быстро разрабатывать в PyCharm?

    @deliro
    1) Логичнее и правильней использовать refactor -> rename
    2) Есть функция автодеплоя и по FTP, и SFTP.
    3) Да
    4) Минимум две (тёмная и светлая) отличные темы. Кажется, их даже можно кастомизировать.

    P.S. Может, сперва стоит читать документацию?
    P.S.S. "Мыши кололись, плакали, но продолжали есть кактус"
    Ответ написан
    2 комментария
  • Что нужно первично выучить для джуниора по JS/Node?

    @Elizavetta
    Matroid: gamedev/js-разработка
    Покажите компанию/вакансию, уровень требований может быть разный.

    Что бы мне надо изначально заиметь, чтобы в итоге выйти к node и нормальному с этого профиту?

    Не очень понятно, вам работу найти или речь о прибыли другими способами.

    Сначала просто JS, как выше написали. Для трудоустройства очень важно бережно коллекционировать проекты и задачи, которые выполняли, коммитить на github. быть готовым проходить технические интервью, и оперативно выполнять тестовые задания (если потребуется).
    Подробнее могу рассказать в скайпе.
    Ответ написан
    Комментировать
  • Что нужно первично выучить для джуниора по JS/Node?

    @NicoBurno
    Разработчик-прокрастинатор
    Просто начните писать настоящий код на настоящих проектах. Говорю из своего опыта...
    Если сможете самостоятельно написать БЕЗ ПЛАГИНОВ(но хотя бы с jQuery) простейший функционал в виде каруселей, модальных окон, анимации, отправку AJAX-запросов, в общем все то что необходимо для сайтов уровня "лендинг" - то вы уже не Code Monkey, а полноценный Junior способный самостоятельно выполнять простейшие проекты.

    После этого можете отказаться от jQuery в целях обучения. Как только будете комфортно себя чувствовать на нативном JS - можете приступать к node.js
    Ответ написан
    Комментировать
  • CodePen/JSFiddle альтернатива на своем сервере?

    copist
    @copist
    Empower people to give
    JSFiddle и Codepen используют онлайн редактор кода с подсветкой синтаксиса CodeMirror.
    Cloud9 используют Ace.

    Нужно приделать авторизацию, храненение кусков кода и отображение результата.
    База подойдёт NoSQL, а можно в файликах хранить
    Интерфейс можно написать на AngularJS + NodeJS + Meteor, а можно на PHP + jQuery собрать

    Репо CodeMirror https://github.com/codemirror/codemirror
    Репо Ace https://github.com/ajaxorg/ace

    Есть навороченный, но не такой красивый как Codepen проект JSBin https://github.com/jsbin/jsbin/

    А тебе зачем?
    Ответ написан
    4 комментария
  • Где находить хороших разработчиков ПО?

    @Elizavetta
    Matroid: gamedev/js-разработка
    Виталий, это шутка или серьезно такая вакансия?

    Из минусов ,как это выглядит для разработчиков, могу выделить следующее:
    - низкая оплата
    - навыки перечислены таким образом, что как будто 1 человек будет работать фуллстек, что не очень хорошо
    - чужой код
    - разворачивать и поддерживать, видимо, тоже все ему
    - у PHP-разработчиков не часто хорошо с потоковым видео и сетевым взаимодействием
    Ответ написан
    Комментировать
  • Где находить хороших разработчиков ПО?

    platotel
    @platotel
    IT Product Manager
    Специалистов с опытом лучше искать на LinkedIn. Там студентов очень мало, но те, что есть, обычно очень продвинуты. Знают английский, закончили ведущие ВУЗы, имеют сертификаты. Тех, кто постарше, уже большинство. Это чаще всего уже состоявшиеся специалисты, с рекомендациями, отзывами. Попробуйте там тоже искать людей.

    Ну и расширяйте сеть знакомых. Чем больше людей из отрасли знаете, тем больше вероятность, что через них найдёте кандидатов. Ходите на конференции, выступайте, рассказывайте о компании, делайте технологические доклады, хотя бы просто просто ходите на мероприятия и знакомьтесь, добавляйте знакомых в LinkedIn (это именно профессиональная социальная сеть) и в другие соцсети, чтоб следить за их новостями. Это всё - работа по маркетингу. Увеличение заметности компании, обеспечение интереса к её вакансиям. Тогда уже не Вам нужно будет искать людей, а они будут интересоваться компанией.
    Ответ написан
    Комментировать
  • Где находить хороших разработчиков ПО?

    opium
    @opium
    Просто люблю качественно работать
    Вообще на рынке почти нет хороших и свободных программистов за не супер деньги, так как универы не выпускают программистов
    Из моей будущей статьи про найм фрилансеров

    www.free-lance.ru - ныне уже fl.ru самая крупная фриланс биржа рунета. Недавно отметилась кражей исходного кода биржи, до этого несколько раз отмечалась потерей персональных данных фрилансеров, а ещё ранее дикой монетизацией и закрытием контактов. Здесь я нанимал больше всего фрилансеров и у меня там висит 182 проекта. Больше всего на этой бирже меня раздражает то, что для работы и найма надо держать два аккаунта.
    https://freelance.ru/ - к сожалению не было опыта найма на этой бирже, только пару раз брал интересные проекты с неё, в целом в то время она мне показалась очень похожей на fl.ru.
    Weblancer.net - это биржа из начала двухтысячных. Только что зашел и увидел что они все таки выкатили свежий дизайн и все таки эволюционируют. Тут у меня 87 проектов, биржа радовала возможность нанимать и работать с одного аккаунта. Особенно меня порадовало знакомство на хабре с тимлидом разработчиков этой биржи и он по моим просьбам исправил несколько юзабилити вещей и этой биржей стало приятно пользоваться.
    freelansim.ru - проект от хабрахабра, к сожалению на мой взгляд пока что кактится в никуда. Интересен тем что работы показываются в блоке на хабре. Использую только для найма крайне специфичных спецов, которых на других биржах найти не смог.
    На этом можно сказать рынок фриланса для разработчиков поделен этими проектами, есть ещё небольшая кучка мелких фриланс бирж, но я не вижу смысла работодателю идти на них. Есть несколько специфичных проектов к примеру:
    work-zilla.com - биржа для мелких проектов с небольшой оплатой. К примеру запостить обьявления, поправить форму на сайте, сделать дизайн визитки.
    fixber.com - биржа тестеров. Если вам надо тестировать много и часто то вам сюда.
    1clancer.ru - биржа 1с программистов.
    Ну и другие биржи, если кому то будет интересно, могу позже добавить в список ещё бирж. Есть ещё биржи для копирайтеров, юристов, стартаперов, строителей, дизайнеров, фотографов, студентов и др.
    Ответ написан
    3 комментария
  • Какие задачи нужно уметь выполнять на JS начинающему?

    copist
    @copist
    Empower people to give
    Какие задачи нужно уметь решать на чистом JS, перед тем как переходить к изучению библиотек и фреймворков?


    Кроме синтаксических конструкций, математических и логических выражений, нужно знать:
    • Область видимости переменных
    • Замыкания
    • Объектно-ориентированное программирование, в частности наследование через прототипы
    • Шаблон проектирования "модуль"
    • Операции над DOM
    • Понимание принципов событийно-ориентированного программирования
    Важно - нужно знать, откуда копипастить.
    Тебе нужно быть очень хорошо знакомым с одной-двумя-тремя популярными библиотеками на JavaScript. В идеале ты должен иметь представление о том, что определённый класс задач может быть решен с помощью определённых библиотек, хотя бы одной, но такие знания приходят с практикой. Вообще ты должен быть знаком с ними так близко, чтобы помнить, в какой части мануала по библиотеке можно найти описание форматов входных данных нужной тебе функции и какой будет результат, чтобы скопировать и вставить в свой код, а потом поправить, чтобы работало.

    Важно - инструменты программиста JavaScript
    У тебя должен быть удобный инструмент для разработки (IDE, Integrated Development Environment), чтобы он тебе подсвечивал код (syntax highlight) и подсказывал о синтаксических ошибках (syntax check), о формальных параметрах функций (type hinting), о стиле кодирования (code style), помогал писать код (live templates).
    Ты должен знать, как отлаживать скрипты в популярных браузерах (Firebug, Chrome Developer Tools и другое). Что такое точки останова, как управлять исполнением во время останова, как посмотреть и поменять содержимое переменных, как настроить останов по условию.

    Хотелось бы узнать что это за задачи(упомянутые вами 80%)


    Реальные задачи джунов:
    1. Возьми из сборника задач по javascript любой скрипт случайно и вслух расскажи, что он делает.
      Важно - читать и понимать чужой код намного важнее, чем писать свой. И на работе тебе это приддётся делать чаще, чем ты думаешь. Чтобы подключить к своему проекту чужую JS либу, нужно понимать что она делает, как она конфигурируется, как управлять её поведением. Скажу точно, что написать свой скрипт, который строит графики, намного сложнее, чем понять, как настраивается highcharts.

    2. Напиши скрипт на JS, который в заданном тексте удалит один или два символа, выбранных случайно
      1. Усложнение: удалять можно только буквы в словах, а знаки пунктуации и цифры удалять нельзя
      2. Усложнение: принять, что этот текст является программной на Javascript, удалить одну-две команды JS, но только если они не в строковых литерах (break как команду удалить можно, а в строке "break my heart" нельзя)
      3. Усложнение: воспользуйся этим скриптом и "попорти" код какого-нибудь другого скрипта на Javascript, а потом отладь, найди ошибку и восстанови работоспособность
      Важно - этим обычно все и занимаются - ищут баги. Только в реальной жизни они и без этого скрипта появляются. И не по одному, а прям пачками.

    3. На страницу HTML нужно встроить график курса доллара по отношению к рублю. Формат входного массива значений курса определи сам, исходя из своего скрипта для построения графиков.
      1. Усложнение: на одном графике должны быть два курса, по разным шкалам. Наприме, курс доллара к евро и курс юаня к рублю
      2. Усложнение: первоначально график вывести в детализации по месяцам, но чтобы можно было "приблизить" (drilldown) детализацию до дней
      3. Усложнение: первоначально график вывести текущем месяце, но чтобы можно было загрузить данные для предыдущего месяца без перезагрузки страницы (AJAX)

    4. При клике по картинкам, вставленным в текст HTML, показывать всплывающее окно для просмотра увеличенной картинки.
      1. Усложнение: в всплывающем окне сделать навигацию по картинкам, вперёд/назад и к нужной картинке
      2. Усложнение: в всплывающем окне вместо картинки показать видео-ролик с Youtube
      3. Усложнение: в всплывающем окне показать текст HTML

    5. По клику на кнопку "Click me" показать всплывающую форму.
      1. Усложнение: реализовать проверку данных на корректность перед отправкой формы (непустое значение, минимальное количество символов, максимальное количество символов, минимальное числовое значение, максимальное числовое значение)
      2. Усложнение: если в значении текстового поля встретилась гиперссылка, то считать её за 22 символа при любой длине этой ссылки (как в твитере)
      3. Усложнение: реализовать отправку формы на сервер через AJAX, без перезагрузки страницы
      4. Усложнение: саму форму в виде HTML загрузить с сервера через AJAX, в момент клика по кнопке "Click me", правила проверок данных должны как-нибудь "извлечься" из самой загруженной формы, например из аттрибутов полей ввода

    6. К форме ввода данных на поле ввода даты "навешать" всплывающий календарь для выбора даты.
      1. Усложнение: сделать форму календаря мультиязычной. Хотя бы через настройки на том же JavaScript
      2. Усложнение: сделать так, чтобы с помощью календаря можно было выбрать диапазон дат, чтобы она была привязана к двум полям формы "дата начала" и "дата окончания", и чтобы значение в поле "дата начала" обязательно была меньше чем в поле "дата окончания"
      3. Усложнение: сделать так, чтобы с помощью в календаре можно было видно визуально этот диапазон
      4. Усложнение: диапазон может быть открытым, но не пустым, то есть пользователь должен задать хотя бы дату начала или дату окончания.

    7. Сделать пред-просмотр веб-страницы HTML с разными темами. Тему страницы выбирать через селектор на javascript, а показывать в фрейме.
      1. Усложнение: сделать селектор "тип устройства", чтобы менять размер фрейма (например, "iPhone 5c 1136x640") и "чекбокс" для смены ориентации страницы "горизонтальная" или "вертикальная" (соответственно 1136x640 или 640x1136)
      2. Усложнение: в селекторе тем предусмотреть поиск тем по подстроке, и аналогично поиск устройств по части названия (авто-дополнение, auto-complete)
      3. Усложнение: тема страницы должна меняться без перезагрузки фрейма



    Задачи повышенной сложности, исходя из личного интереса
    1. Реализовать форму для многошагового мастера: форма должна состоять из нескольких страниц (шагов), пользователь может переключать страницы через какие-нибудь элементы управления "вперёд/назад" или "перейти на страницу".
      1. Усложнение: реализовать функциональную связь значений, когда некоторые данные зависят друг от друга (ввёл число в поле "количество" и в поле "сумма" значение пересчиталось)
      2. Усложение: доступность некоторых полей ввода должна зависеть от данных (например, если указал "есть личный самолёт", то значит можно ввести "марка самолёта")
      3. Усложение: видимость некоторых страниц должна зависеть от данных из предыдущих страниц (например, если указал "есть личный самолёт", значит появилась страница "ТТХ самолёта"; иначе страница должна скрыться)

    2. Реализовать однопользовательскую браузерную игру "змейка", "тетрис", "найди пару"
    3. Реализовать многопользовательскую браузерную игру "крестики-нолики", "морской бой" на два игрока в режиме "hot seat"
      1. Усложнение: два игрока на разных компьютерах, ходы передаются по websocket
      2. Усложнение: ограничение на ожидания окончания хода 15 секунд, по окончании ожидания автоматически делается случайный ход

    4. Реализовать todo-list. Пользователь вводит список, затем он превращается в строки с "чек-боксами". Когда "чекбокс" включен, строка зачёркивается.
      1. Усложнение: пользователь может переименовывать, удалять, добавлять строки
      2. Усложнение: список хранить в localStorage браузера, чтобы при перезагрузке страницы он восстанавливался
      3. Усложнение: пользователь может иметь несколько независимых списков todo

    5. Реализовать простой графический редактор. Пусть рисуется точка в месте, где пользователь кликнул.
      1. Усложнение: добавить переключатель режимов "точка"/"линия", в режиме "линия" рисуются линии между двумя последовательно кликнутыми точками
      2. Усложнение: можно менять толщину, цвет линий, размер точек
      3. Усложнение: последовательность кликов можно воспроизвести ещё раз с самого начала, равномерно или с реальной задержкой между кликами, с обычной скоростью или ускоренно
      4. Усложнение: можно выгрузить получившийся рисунок в формате PNG или SVG, причём SVG c анимацией воспроизведения



    Можно использовать любую существующую библиотеку.
    Например,
    для построения графиков www.highcharts.com
    для загрузки и передачи данных через AJAX: jquery.com + что-нибудь на сервере
    для всплывающих диалогов с картиками, видео и формами: fancyapps.com/fancybox и https://jqueryui.com/dialog/
    для валидации форм rickharrison.github.io/validate.js
    для календаря https://jqueryui.com/datepicker/
    для автодополнения https://jqueryui.com/autocomplete/
    для передачи данных между несколькими пользователями socket.io или обычный AJAX
    Ответ написан
    16 комментариев
  • Как правильней сделать быстрое выкатывание в продакшн?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    конфликты мерджей очень сильно тормозят

    1) Дробите задачи, делайте ветки короткоживущими
    2) Хорошая идея делать ребейз принятых веток
    3) Попробуйте адаптировать под себя git-flow, как альтернатива хорошо себя показывает feature-toggles вместо feature-branches

    Да и бд экспорт/импорт постоянно приходится делать.

    1) Миграции
    2) Старайтесь делать миграции так, что бы они не ломали предыдущие релизы. Ну мол если вам надо добавить колонку, хорошей мыслью будет в первом релизе сделать ее nullable что бы старая версия приложения еще могла работать с новой версией базы, и потом уже следующим релизом добивать этот кусок. Основная идея - желательно что бы две последние версии приложеньки могли работать с последней версией базы данных. Если у вас база нормализована нормально, то проблем с этим быть не должно.

    Если второй пункт соблюдается то вакатка новых релизов будет происходить по такому алгоритму:

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

    При таком сценарии даунтайм будет минимальным.

    вопрос с выкатыванием новых релизов

    Вот вам варианты в порядке сложности и мощности (от простого к сложному).
    - capistrano/capifony
    - ansible/puppet/chief/etc
    - docker + docker-machines + docker-compose

    Ну и да, тесты тесты тесты. Все самое критичное должно быть покрыто хотя бы интеграционными/функциональными тестами. В идеале же вся бизнес логика должна быть покрыта быстрыми юнит тестами и UI/инфраструктура функциональными (читать про пирамиду тестирования).
    Ответ написан
    5 комментариев
  • Какие задачи нужно уметь выполнять на JS начинающему?

    sivabur
    @sivabur
    Заблокировали просто так!
    1. Валидация форм и отправка аяком на сервер+получения ответа
    2. Погрузка данных через аякс при выборе какого то пункта
    3. Слайдер както сделать.
    4. Интерфейс жосткий чтоб там заежало там выезжало со всеми свистопеределками.

    2 уровень
    писать плагины для джеквери по стандарту
    изучить какойто из фрамиворвков и на нем писать
    Ответ написан
    2 комментария
  • Есть ли уроки разработки мобайл на Qt?

    Zifix
    @Zifix Куратор тега Qt
    Barbatum
    На самом деле специфика разработки под мобильники заключается в двух вещах: во-первых правильная работа с разными DPI у экранов и расширение функционала нативным для платформы кодом (например для работы с push уведомлениями). В остальном никакой разницы при разработке на QML под любую платформу нет.

    Вот неплохой набор для старта под Android.

    Upd 2016: https://habrahabr.ru/post/282505/
    Ответ написан
    1 комментарий
  • MongoDB как вторая СУБД?

    @protven
    А зачем вообще логи хранить в БД ? Запихните их в HDFS/ElasticSearch+Kibana. В общем более предназначенные для этого места.
    Ответ написан
    Комментировать
  • Deploy django do?

    sim3x
    @sim3x
    scp local/dir user@DO:/remote/absolute/path/dir
    Ответ написан
    3 комментария
  • Почему не работает auto_now_add в модели Django?

    dar6k6night
    @dar6k6night
    Веб разработка, скрипты
    auto_now_add это добавление текущей даты при вставки записи в таблицу, при всех последующих обновлениях записи эта дата не будет меняться. Если надо что бы поле обновлялось при каждом изменении записи, нужно ставить флаг auto_now=True
    Ответ написан
    1 комментарий