• Как попасть в backend-разработку?

    Кто виноват понятно, а вот что делать? Как стартовать в моем положении?

    Стартовать в PHP что бы понять с чем работает большинство, поверхностно Apache, Nginx. Да можно в сисадминистрирование податься тогда nginx глубоко и тюнинг серверов, ОСи Debian CentOS, панели управления.
    Насколько критично знание фреймворков при устройстве на работу, насколько глубоко, и какие обязательны?

    На обычной работе сейчас все требуют фреймворки, ООП, но если вы метите именно в HiLoad то вам надо копать больше в сторону опять серверов и баз данных и их тонкой настройки. Настоящего хайлоада нет нигде, круг проектов в которых он есть ооочень ограничен и там есть свои разработчики с опытом.
    Существуют ли альтернативы web-backend'у, позволяющие не терять накопленный опыт в сетях (разработка каких-либо сетевых сервисов и т.п.)?

    Пишите свой софт для управления сетями, сбора статистики, анализа обработки, т.е. решайте проблемы которые в этой области ещё не закрыты.
    Ответ написан
    4 комментария
  • Как попасть в backend-разработку?

    @IvanOne
    Я Вам советую пройти курсы по html, css, js пригодиться в работе или нет, не известно, но плюсик будет в резюме что есть представление о фронтенде, лучше изучить еще jquery, так как он используется очень во многих конторах. Далее читайте доки по django и пишите тестовое приложение которое там представлена. Ваш опыт плюс эти знания сделают из вас уверенного джуниора, а может даже выше. Основная проблема это конечно зп, ищите условия допустим на подработку, если деньги не главное то можете устроится джуниором, прикладывая усилия за год можно вырасти очень прилично. Конечно это руководство к действию, можно не заниматься фронтендом но тогда и шансы ниже, да и стремиться надо я думаю Full-stack.
    Если начнется изучать фронтенд советую сильно не углубляться, там можно глубоко завязнуть. Потом с опытом придут и более глубинные познания. Не бойтесь писать свои приложения и выложить на гитхаб, это тоже плюс в резюме. Не помешает знание MVC, и хорошее понимание ООП.

    ссылки: https://htmlacademy.ru/ https://www.codecademy.com https://www.codeschool.com/ www.wisdomweb.ru htmlbook.ru

    Ну и желаю удачи)
    Ответ написан
    4 комментария
  • Как попасть в backend-разработку?

    > Кто виноват понятно, а вот что делать? Как стартовать в моем положении? Куда податься?
    Я бы на вашем месте доучил Джангу, и написал бы себе блог на ней (минимум JS, можно вообще без него, некоторое количество кода на серверной стороне, немножко с базой поработаете). Неплохой вариант, чтобы показать свою самостоятельность. На фирмах бывают мелкие проекты, которые хочется отдать одному-двум разработчикам на полную поддержку (от верстки до деплоя на сервер).

    > Насколько критично знание фреймворков при устройстве на работу, насколько глубоко, и какие обязательны?
    Ну вот таки доучите Django, раз начали. Конечно от совсем начинающего этого требовать не должны, но такие вакансии будут называться "стажер". Если вы доучите, то будете Junior-ом.

    > Существуют ли альтернативы web-backend'у, позволяющие не терять накопленный опыт в сетях (разработка каких-либо сетевых сервисов и т.п.)?
    На мой вкус и ваши требования идеальная альтернатива такая: https://moikrug.ru/vacancies/1000014166 . Еще интереснее вакансии в совсем крупных фирмах, например у Близзов - там часто требуются именно сетевые программисты для разработки большого числа нагруженных сервисов, которые у них есть. Например, вот, прям по вашему описанию (protobuf, wireshark), но на такие позиции конечно нужен конкретный опыт, потому что берут лучших. Возможно стоит подтянуть и C++ в пару к Питону - раз вы работаете с сетями, то низкоуровневых вещей бояться не должны)
    Ответ написан
    1 комментарий
  • Где найти проекты на разработку в сша?

    @DAlex
    Правильно написали про Крейг лист и linked in. Ещё есть всякие сайты типa dice, monster - обычно через них работу находят
    Ответ написан
    1 комментарий
  • Где найти проекты на разработку в сша?

    @BEaStia
    AS3/RoR разработчик
    careers.stackoverflow.com/jobs - некоторые компании отсюда предлагают Visa sponsorship с переездом, можете здесь поискать
    Ответ написан
    1 комментарий
  • Где найти проекты на разработку в сша?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    Покопайтесь на newyork.craigslist.org
    Порассылайте резюме, там иногда попадаются стартапы, которые готовы платить цену ниже рыночной, но дают некоторую свободу в плане посещения офиса и т.д.
    Один важный момент - ваша виза должна разрешать работу в США, если у вас туристическая, то никто вас никуда не возьмет.
    Ответ написан
    4 комментария
  • Какое средство реализации Электронного Справочника Технической Документации посоветуете?

    @aleksei4 Автор вопроса
    Еще раз большое Спасибо Всем респондентам, за советы и аргументы.
    Хочу отписаться о результате изучения предложенных тем и советов (извиняюсь что время спустя т.к. был в отъезде).
    Тема NoSQL оказалась очень интересной, и изучение её не прошло даром, но на данном этапе реализации описанного электронного справочника было решено делать реляционную БД.
    Причины:
    1. От разработки структуры данных все равно не убежишь, будь это таблицы или объекты.
    2. Решили "распараллелить" разработку справочника и наполнение данными, для ускорения выявления дополнений к структуре данных и сокращения срока реализации.
    3. Вопрос по поводу конечного средства реализации справочника пока остается открыт, хочется оставить возможность объединить в перспективе с базой предприятия, хотя заказчик в лице отдела пока не видит таких перспектив.
    4. Импорт данных из БД жесткой структуры в целевую среду (какой бы она не была) будет всегда лаконичнее.
    5. NoSQL как альтернативное средство всегда поддержит переход от реляции, если же идти в обратном направлении, проблем может быть больше.
    6. Характерные для NoSQL задачи гибкого поиска и масштабирования пока не выявлены в требованиях к справочнику. Однако внедрение в качестве поисковой системы очень даже интересно на перспективу.


    Для скорейшего перехода от реализации БД к наполнению данными выбрали простейшее СУБД Access (да не оч. серьезно, но простота в разработке, знакомость пользователям и наличие пакета Office берут свое). Для снижения объемов "двойной работы" в будущем при переходе к "конечному" средству реализации разработку вели с использованием средства автоматизации проектирования ERwin, что позволит в дальнейшем передать готовую схему данных в целевую среду, а Access использовать как источник данных для одноразового импорта.

    Логическая схема данных в ERwin:
    dc47ea1efd4142c29f61ab4d8d254095.JPG

    Схема данных в среде Microsoft Access после добавления таблиц под перечисляемые типы данных:2f31d37dbdb0426cb72270dd5c53acc9.JPG
    Ответ написан
    1 комментарий
  • Почему приложение x64 в два раза медленнее x86?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Хотелось бы понять в общих чертах откуда такая разница.

    Обычно ответ на этот вопрос проще всего получить с помощью профилирования, которое укажет вам где программа проводит время. Вам останется лишь понять, почему именно там.
    При использовании gcc это делается добавлением опции -pg к командам компиляции и линковки, запуску приложения и запуску gprof потом. Для VS наверняка тоже есть профайлер.
    Ответ написан
    Комментировать
  • Почему приложение x64 в два раза медленнее x86?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Отвечать на этот вопрос без какой-либо дополнительной информации - это как гадать на кофейной гуще. Какой CPU - если это древний Pentium D с допотопным конвейером и глупыми регистрами - одно дело, а если это новейший Core i7 на Haswell - другое. Что до настроек - вот честно, "стандартные" вообще ни о чём не говорит. Я уже не говорю, что было бы не плохо указать количество опытов с максимальным и минимальным - вполне возможно глупые ОС с планировщиком как-то неудачно распределяют время. Любой ответ, который можно тут указать может быть техническим грамотным, но совершенно не соответствующий истине.

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

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

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

    Ну да ладно, ясное дело, сложение реализовано за 1 такт. Скорее всего. Конечно, здесь вопрос процессора, но даже узнав модель будет сложно узнать наверняка, разве только синтетическим тестом (много раз обращаться по адресу - сумме двух случайных чисел). Да и Windows 8.1 никогда не был стандартом производительности (скорее с точностью наоборот), и VC++ никогда не был лучшим компилятором.

    Попробуйте gcc (меня разве только интересует откуда на Windows взялся gcc) с флагом -O3. И посмотрите машинный код для 64 бита и 32 бита (можно пользоваться objdump из binutils или посмотреть машинный код в IDE Visual Studio - точно расположение кнопки не помню, но можно поискать в менюшках). Скорее всего причина не одна, их множество. Так, вызов функции сопровождается сохранением контекста, тогда как в x64 регистров больше, больше и контекст. Собираем такие моменты по крупицам... Вот и получаем.

    P.S. Давным давно, разговаривал с преподавателем. Простая перекомпиляция под 64 бита ускорила код на 30%. Это был колхозный кодек, немного похожий на libx264 (от туда была сдёрнута часть кода). Естественно, проект собирался со всеми оптимизациями, со всем расширениями инструкций - со всем, чем можно. И сборка под платформу x86-64 (с SSE, MMX, FMA и прочие). Жутко наукоёмкий разношёрстный код (писали все - от зелёных аспирантов, до ровесников Страуструпа и профессоров университета) - туева хуча функций, структур, объединений и очень, очень много параметров, многие из которых передают в аргументы функций. Ну и целевая платформа - жутко порезанный и переделанный Windows Embedded - там просто не чего было планировать.
    Ответ написан
    Комментировать
  • Как командно разрабатывать php проект?

    copist
    @copist
    Empower people to give
    Инфраструктура
    * Создайте репозиторий на Bitbucket или GitHub.
    * Создайте себе локально копию репозитория и локально поднимите базу данных с одинаковой структурой
    * Если в базе требуются изменения, создавайте "миграции", которые обновят структуру данных или сами данные.
    * Свои изменения по коду, так же как и миграции, отправляйте в репозиторий

    Ещё есть возможность создания виртуальных серверов для разработки или использование online IDE. Решает кучу проблем, если интернет быстрый.
    * https://compilr.com/ Полноценная среда разработки
    * https://koding.com/ Среда разработки с предустановленным веб-сервером и элементами социальной сети
    * online-php.com Online IDE
    * https://codeanywhere.com/ Среда разработки. Код можно хранить в облаке, а также в Dropbox, Google Drive, FTP, github.
    Другие тулзы для совместной работы в online

    Промежуточные версии
    Если вы географически недалеко друг от друга, то просто периодически показывайте, что у вас получается.
    Если нет, пользуйтесь Skype Shared Screen, Join.me и другие аналогичные продукты, чтобы вместе смотреть и обсуждать голосом. А лучше TeamViewer, чтобы можно было вместе и посмотреть, и поправить.

    Обновление сервера
    Изменения на сервер устанавливайте из того-же репозитория. Не забудьте про миграции. Озаботьтесь вопросами безопасности. Хотя бы так: скрыть файлы .git
    Ответ написан
    Комментировать
  • Python/Django-кидди, SQL-мартышка, Web-негр — что перспективнее (Ага, «Pre-Junior»)?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Если у вас нету реального опыта над "боевыми" сайтами и подобными вещами, то одназначно 1 вариант. Можно сколько угодно читать книжки и заниматься самообразованием, но без старта в офисе под присмотром более опытных коллег, результаты будут плачевными скорее всего. Это просто аксиома, надо поработать вначале 4-12 месяцев в офисе, пиля живые сайты/проекты и впитывая знания от "старших", а дальше будет намного проще.
    2 вариант подходит только если вас действительно к этому тянет.
    3 вариант звучит крайне сомнительно, ибо опыта для полноценного фриланса у вас по сути дела нет. С проектом то вы может и справитесь, но что вы будете делать после его окончания? Этот же заказчик вряд ли завалит вас новой работой, а скиллами для эффективного фриланса за 1 проект вы точно не обзаведетесь. Есть риск после этого погрязнуть в болоте под названием "русские фриланс биржи", где вы с большой вероятностью будете биться на смерть со школьниками за самые примитивные и убогие задачи, типа "сверстайте 10 страниц и натяните их на вордпресс за 5к рублей".
    Вначале надо выбирать такую работу, где собственно будет много этой самой работы и развития (не без помощи более опытных коллег). А после получения стартового буста сориентироваться будет намного проще.
    Ах да, если вы действительно хотите работать 5-7 лет в Краснодаре, то это эээ... весьма мрачное виденье своего будущего. Через 1.5-3+ года (зависит от области) можно будет без проблем начинать думать о фрилансе в валюте (при учете интенсивного развития).
    Ответ написан
    4 комментария
  • Эффект одинокой обезьяны: как он правильно зовётся?

    MIkola35
    @MIkola35
    Team Lead UX/UI Designer
    Если проект не укладывается в сроки, значит:
    а) Надо резать функционал, который запланировали
    б) Плохо спланировали работу, недостаточно раздробили задачу и лучше снова собраться и перепланировать.
    --
    PS: Можно почитать про SCRUM, там увидите, что малые команды могут быть эффективны, если не берут на себя слишком много в единицу времени.
    Ответ написан
    Комментировать
  • Как лучше организовать два потока исполнения внутри Flask?

    svfat
    @svfat
    ☺Нужен VPS? Два месяца бесплатно. Смотри профиль☺
    Думаю правильнее и полезнее всего использовать асинхронную очередь заданий, типа Celery (github) или RQ (github).
    Во-первых, не придется изобретать велосипед. Во-вторых: ознакомитесь с работой передовых инструментов в этой сфере.

    Вот статья от гуру Flask по использованию Celery.
    Ответ написан
    2 комментария
  • Gitflow мёртв? Какие есть альтернативы?

    Наверное он умер. Как слишком сложная концепция для такой простой вещи как Git.
    А, вот, почитайте еще про Trunk Based Developmentтут), чтобы еще больше усомниться в полезности GitFlow.
    Ответ написан
    3 комментария
  • Gitflow мёртв? Какие есть альтернативы?

    evnuh
    @evnuh
    Поиск Гугл помог мне, впусти и ты его в свой дом
    https://guides.github.com/introduction/flow/
    И никаких расширений не надо
    Ответ написан
    Комментировать
  • Почему все хотят django?

    un1t
    @un1t
    "Легкость и гибкость" на деле оборачиваются тем, что он ничего не умеет и очень мало сторонних библиотек. Ну и легкость видимо заключается в том, что по нему меньше документации. На деле разницы в производительности нет, а отсуствие библиотек становится каждодневной проблемой. Производительность разработки страдает, приходится элементарные вещи писать самому. Можно пойти дальше и самому написать веб сервер на чистом питоне. Будет еще "легче и гибче", а фласковские проблемы усугубятся.
    Ответ написан
  • Для чего используется каррирование (карринг) в реальных задачах?

    suguby
    @suguby
    программист, python, django, mysql, git, hg, linux
    Предположим есть функция, которая берет много параметров, а первый параметр - имя класса формы (в джанго)
    def cool_staff(form_class, inits, defaults, user, other_param):
        # много строчек кода

    и вы вдруг обнаруживаете что в вашем коде куча вызовов, у которых первый параметр одинаков.
    ...
    res = cool_staff(form_class=MainForm, inits={a:1, b:3}, defaults=[1,2,3], ...)
    ...
    res = cool_staff(form_class=MainForm, inits={a:100500, b:42}, defaults=[3,2,1], ...)
    ...

    Тогда делаете так:
    main_cool_staff = lambda **kwargs: cool_staff(form_class=MainForm, **kwargs)

    и ваши вызовы упрощаются
    ...
    res = main_cool_staff(inits={a:1, b:3}, defaults=[1,2,3], ...)
    ...
    res = main_cool_staff(inits={a:100500, b:42}, defaults=[3,2,1], ...)
    ...

    было в реальном проекте.
    UPD. Такая форма карринга не сработает для неименованных параметров
    main_cool_staff = lambda *args, **kwargs: cool_staff(form_class=MainForm, *args, **kwargs)

    поэтому используйте всегда именованные параметры, это хороший стиль.

    UPD2. Еще подсказали вариант
    import functools
    main_cool_staff = functools.partial(cool_staff, MainForm)

    работает и с неименованными параметрами. Спасибо Андрей Дугин
    Ответ написан
    6 комментариев
  • Интересные блоги/источники информации по архитектурам Web приложений?

    @dronnix
    - highscalability.com - классика
    - www.insight-it.ru - неплохая подборка от Ивана Блинкова
    - vimeo.com/ontico - Бесплатные видеозаписи от Онтико (конференции Highload++ и РИТ++)
    Ответ написан
    Комментировать
  • Так ли хорош Python в сравнении с R для data mining?

    @polyhedron
    Data Analyst | Data Scientist
    Я использую оба языка, и, признаться, R мне нравится больше. И вы правы, что там есть пакеты абсолютно для всего. Но Python обладает рядом преимуществ, главным из которых является развитая экосистема языка. Преимущества Python очень хорошо описаны тут. Вообще, в этом блоге есть много интересных статей как по Python, так и по R. Что касается deep learning, то для Python есть замечательная библиотека Theano.
    Я бы порекомендовал сосредоточиться на Python, но R также не забывать на случай если понадобятся методы, не реализованные в Python, или будете работать с людьми, знающими только R.
    Ответ написан
    Комментировать
  • Какие существуют удобные и не перегруженные SSH клиенты под Windows?

    @krekerov
    Fullstack ninja
    XShell
    Ответ написан
    Комментировать