• Дизайн интерфейсов. Правда ли, что это перспектива в будущем?

    @o_f
    Веб-аналитик, SEO, контекстная реклама
    В моде UX/UI. Это правда. Сейчас бум таких вакансий. Посмотрите на том же хх, их становится все больше. Раньше это направление входило в обязанности обычного проект-менеджера в веб-студии или разработке ПО. Сейчас же компании (крупные) хотят разделять продажи/общение с клиентами/разработка интерфейсов. и тд. Сомневаюсь, что через два года они изживут себя. Потому что клиент всегда хочет, чтобы к его проекту подходили индивидуально, думали только о его клиентах, а не давали готовые прототипы (ну адекватный клиент опять-таки). Если вы сейчас занимаетесь чем-то похожим на дизайн сайтов/веб-приложений, конечно можете смело подаваться в эту область. Материалов навалом, отдавайте предпочтение англоязычным. При этом прокачивать скиллов не так уж и много надо. Прототипирование на каком-нибудь Axure, пару книжек по психологии пользователя, и книжки по самому дизайну. Таких полно.
    НО, одно большое НО. На фрилансе нет никакого отдельного UI/UX, как правило. Так же как и нет практически отдельного js, а только связка с css, html,
    Здесь развиваться только в высоком направлении UI или UX - не получится. Тут универсалы-бойцы нужны.
    Ответ написан
    1 комментарий
  • Перспективы у языка GO?

    mututunus
    @mututunus
    Backend developer (Python, Golang)
    Заказов на фрилансе по Go практически нет, как, собственно, и вакансий чистого Go разработчика, в основном требуется связка Python/Go. Судя по тому, что такие крупные компании как Яндекс и Mail.ru активно его используют, перспективы у языка определенно есть.
    Ответ написан
    5 комментариев
  • Помощь в изучении Python. Что дальше?

    @LeonidShifrin
    Разработчик, Wolfram Research Inc. PhD, Physics
    Учиться по книгам можно бесконечно. Судя по Вашим словам, Вы вполне подготовлены, чтобы начать работу над несложным проектом / задачей.

    Изучите какой-нибудь web framework на Python (Django, Flask, ... - лично я предпочитаю Django, но он довольно тяжелый как framework, хотя освоить его на начальном уровне нетрудно), и поднимите на нем простое web-приложение для личного использование (ну скажем, календарь, или планировщик задач, или учет личных финансов). Развивать можно бесконечно, и в процессе сможете самые разные задачи порешать. Чтобы не возиться с сервером дома, очень рекомендую сервис

    https://www.pythonanywhere.com/

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

    Ну и еще несколько советов:

    1. Ползуйтесь хорошим IDE (я использую PyCharm Pro, но в принципе и бесплатный PyCharm community edition прекрасно подойдет). Там можно настроить Python консоль, так что интерактивность не пострадает.
    2. Если возьметесь за что-либо, что можно назвать проектом, пользуйтесь системой контроля версий. Это не так страшно как кажется. Я бы советовал Git. Можно из командной строки (для изучения предпочтительна, лично я предпочитаю и для работы), либо UI клиент (я пользуюсь SourceTree). Изучить Git на начальном этапе можно за полдня. Вот хорошая книжка:

    https://git-scm.com/book/en/v2

    достаточно первые пару глав прочесть для начала

    3. Храните код в каком-нибудь распределенном репозитории (Github, Bitbucket). Если готовы его открыть для всех, то я бы советовал Github, если нет - BitBucket позволяет создавать бесплатно закрытые репозитории.

    4. При разработке в Python, пользуйтесь virtualenv. Это нужно для того, чтобы не замусоривать ваш основной дистрибутив Python установленными сторонними модулями и библиотеками.

    5. Это вопрос личного вкуса и удобства, но лично мне в работе сильно помогают системы project management. Я пользуюсь Blossom.io, но он платный. Из бесплатных, могу порекомендовать Trello.

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

    Собственно по Python, очень рекомендую вот это:

    docs.python-guide.org/en/latest

    куча реально полезной информации. По всем конкретным вопросам нет ничего лучше StackOverflow.

    Ну и уже когда практического опыта на реальном проекте поднаберетесь, вот тогда делайте upgrade, читайте еще книжки, код других проектов, участвуйте в других open source проектах, и т.д. В итоге гораздо быстрее все освоите, чем если прямолинейным чтением книг / прохождением курсов будете заниматься.
    Ответ написан
    4 комментария
  • Как правильно подготовиться до уровня Junior PHP?

    zualex
    @zualex
    Senior Software Engineer
    Для начала PHP: Правильный путь - очень много полезной информации как для начинающего, так и для опытного программиста.
    А потом уже фреймворки, да без них сейчас никуда
    Ответ написан
    Комментировать
  • Как правильно подготовиться до уровня Junior PHP?

    Boolean_Type
    @Boolean_Type
    Вы можете подумать над курсами: наряду с теорией будут рассмотрены и задачи. Здесь нужно подойти ответственно, почитать отзывы, ибо не любые курсы в итоге оказываются полезными)
    Вам посоветовали сразу учить фреймворки. Не уверен, что надо вот так, в омут с головой. Я сначала осваивал HTML+CSS, потом JS, затем php, потом - фреймворки и CMS. По правде говоря, я и сам новичок, но могу заявить, что учить Yii2/Symfony 2 без PHP - это НЕ то же самое, что учить jQuery без JS (как делают многие, кто потом величает себя jQuery-программистами), серьёзно.
    Если на курсы нет возможности пойти, можете изучать сами, начните с JS. Наверняка знаете отличный сайт Ильи Кантора, где всё разжевано и с примерами.
    php после этого будет учить ГОРАЗДО легче, во всяком случае, теор. базу. Но, изучив её, сможете перейти к фреймворкам. Ещё популярны CMS-ки, можно начать с наиболее популярной и простой - WordPress; не забывайте поглядывать и разбирать ядро изучаемого Вами фреймворка/CMS, дабы понимать, как оно там всё устроено.
    Ответ написан
    Комментировать
  • Как лучше получить базовые знания по программированию?

    @LeonidShifrin
    Разработчик, Wolfram Research Inc. PhD, Physics
    Изучите один из функциональных языков. Проще всего начать со Scheme. Это поставит Вам мышление правильно, и даст общее понимание принципов программирования. Вам уже советовали SICP, я еще от себя добавлю HTDP (How to design programs) - как раз рассчитана на начинающих. Порешайте на нем алгоритмические задачи. Хороший источник - Project Euler. По более общим задачам посмотрите Rosetta Code. Не ставьте задачу сразу начать применять это к Вашим приложениям, просто спокойно развивайтесь.
    На первом этапе постарайтесь по минимуму использовать готовые библиотеки - разве что для проверки.

    Постепенно переходите к более сложным задачам. Не зацикливайтесь на чисто алгоритмических задачах - они хорошо ставят мышление, но в реальной жизни лишь часть кода полностью алгоритмизуется, и дизайн кода занимает большее место чем именно алгоритмы (если не брать более специализированные области вроде ML). Если не брать математические задачи, то хорошие задачи возникают в областях работы с текстами, преобразования данных. Скажем, упрощенный вариант HTML или XML парсера, или задачи по анализу текстов, или например перевод данных из одного формата в другой. Напишите пару простых интерпретаторов. Реализуйте парсер для какого-нибудь языка (возможно, его упрощенного варианта). Не стесняйтесь находить ресурсы с тем, что близко в Вашим задачам, и читать чужой код (это необходимо!) - но и не работайте по принципу copy - paste.

    Неплохой задачей будет например реализовать парсер и интерпретатор для какого-нибудь trading - языка, вроде metastock, с парой десятков основных финансовых индикаторов. И к нему в довесок - собственный упрощенный парсер скажем CSV формата - так что Вы сможете загружать данные по стокам и прогонять торговые стратегии целиком на собственном коде. Ну и например, генератор HTML - отчета с графиком и точками входа и выхода для данной стратегии, плюс отчетом о доходности. Можете потом поднять простое web-приложение, которое будет гонять торговые стратегии на исторических данных, хранящихся скажем как CSV файлы - и все это на Scheme. Потом можете перейти на использование реальной БД. Это уже будет в совокупности неплохой проект. Чем меньше будете использовать готовых библиотек - тем лучше, цель здесь - учеба, а не максимальная эффективность.

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

    После этого, Вам станет понятным многое из того, что при другом подходе придется просто запоминать и брать на веру, в более распространенных языках типа Java или Python. Вы будете в состоянии отличить действительно важные черты языка от чисто утилитарных. В том числе, Вы сможете увидеть и слабые места изучаемых языков, отсутствие определенных важных абстракций, и как эти проблемы решаются. В конечном счете, Вы сможете на глубоком уровне освоить другие языки в гораздо более сжатые сроки. И не станете бездумным адептом той или иной модной сейчас религии (ООП, шаблоны проектирования, и т.д.) - а будете понимать место этих вещей в общей картине.

    И еще один момент: если у Вас хромает Английский, подтяните его. Специально этим не нужно заниматься, просто читайте литературу на Английском - всегда. Это сделает Вас частью большего сообщества, даст доступ к гораздо большей базе ресурсов. На более продвинутом уровне, это важно еще и потому, что Вам будет легче писать код, когда Вы начнете думать на Английском - он ближе к формальным языкам.
    Ответ написан
    Комментировать
  • Как правильно подготовиться до уровня Junior PHP?

    Как написали выше, без фреймворка далеко не уедете. Для общего будет достаточно написать блоги на Yii2 и Symfony 2(Ларавел написан на ядре от симфони, есть нечто схожее). Пользуйтесь при разработке ООП(это нужно не только работодателю, но и вам. Поскольку придет ваш клиент через два года и попросит фичу, а у вас костыль на костыле и чудище никак не расширяемо). И конечно, читайте документацию того, на чем вы работаете, на английском и чем свежее тем лучше. В частности, колонки Best Practice очень помогут на первых этапах. Книги бесполезны, то что было два года назад, уже никому не нужно.

    Реализация своего проекта, тогда и тестируйте его по полной. На собеседованиях будете рассказывать как и что делали, и почему. Можно попросится помощником кому-то на фрилансе, или поработать бесплатно. Это даст ощутимый буст в знаниях, не только как программиста, но и члена команды. Научитесь использовать миграции, системы баг трекинга, системы версионного контроля, что при командной разработке не мало важно. А в качестве джуна вы будете обязательно работать в команде и под присмотром. Важно работать с разной информацией и уметь предложить несколько вариантов разработки и решений. Как-то так.

    Если вы располагаете временем. Попробуйте сделать что-то сложнее чем интернет магазин. Например, сайт авиакомпании с рейсами и заказом билетов, мониторинг и пр. Банковские системы, работа с API гугла, фейсбука, вк, или онлайн касс. Разные виды парсинга данных и их отображения.
    Ответ написан
    8 комментариев
  • Порекомендуйте ресурсы по изучению настройки веб-сервера под Django?

    @DaneSoul Автор вопроса
    Нашел пару курсов, как которые как раз удовлетворяют моему исходному вопросу (хоть и не непосредственно по Django, но позволяют вникнуть в основы настройки веб-окружения):
    1) Linux Command Line Basics - Базовый вводный курс по работе с Shell
    2) Configuring Linux Web Servers - более углубленный курс
    Оба курса на udacity.com на английском (с английскими субтитрами), короткие, за несколько дней можно пройти оба.

    3) В качестве тренировки можно еще потратить вечер на Learn the Command Line на codecademy.com
    Ответ написан
    Комментировать
  • Какие услуги по продвижению сайтов сейчас актуальны и какое ценообразование?

    @o_f
    Веб-аналитик, SEO, контекстная реклама
    1. Актуально всё, тех.поддержка, контекст, социальные сети, сео, иногда реклама на каких-то площадках. Но за этим к компаниям, как правило, обращаются редко.
    2. Зависит от качества ваших услуг и конкуренции. У вас, как у "начинающей студии, конкуренция наверняка бешеная. СЕО - от 5000 р; контекст либо работа по процентам от бюджета в системы Яндекс и Гугл, либо от от 3000 рублей за создание и ведение рекламы; соц-сети - если просто ведение группы - так же где-то 3000 р начальная цена.
    3. Переговоры о том, что нужно менять на сайте, что будет делать специалист, все это прописывается в договоре. Результаты. Например, 70% в топе через 4 месяца. В основном все работают первые 1-3 мес за фиксу, потом уже процент от выведенных слов в топ. Сеошник присылает тексты заказчику постоянно, может требовать исправлений чего-то на сайте, или предлагать сделать это усилиями компании, ждет одобрения, в конце месяца предоставляет отчеты, рассказывает планы дальше. Все как обычно. Просто отчетами о позициях в конце месяца - не отделаетесь.
    4. При сотрудничестве в чем? В сео, в рекламе? Ну вот как ввяжитесь в это, так все и увидите за год. Не вывод в топ в обещанные сроки - с вашей стороны, а значит потеря вознаграждения; Потеря клиента из-за того что ему что-то не понравилось; Постоянные неоплаченные счета, долги. При том, что в систему вы могли уже потратить. Прогноз сеошника неверный (например, он прогнозировал на закупку текстов/ссылок х рублей, а потратили больше) и так далее. Работать надо по предоплате, в идеале 100%. Но если ваши конкуренты работают за еду и по-другому, то вы будете очень долго учиться убеждать своих клиентов платить вам 100%.
    5. Блин, так вы про сотрудничество с фрилансером сеошником, а не сео с клиентом!
    Отчет по позициям, отчет по закупкам (ссылок еще чего-то), отчет по текстам, отчет что сделал, и что будет делать.
    6. Никаких. Соц.сети, Адвордс, Директ, СЕО, и системы аналитики метрика и аналитикс без которых отчетов не построишь.
    Ответ написан
    Комментировать
  • Как найти производную функцию в С++?

    @Taksist410
    Производную в смысле дифференцирования? f'(x) в общем случае можно только численно и приближенно. Берем достаточно малый dx и тогда f'(x)=(f(x+dx)-f(x))/dx. Если же функция задана аналитически, то тогда можно тут www.wolframalpha.com/input/?i=d%2Fdx+Si(x)%5E2&lk=3
    Ответ написан
    Комментировать
  • Как организовать код на Backbone.js и/или лучшие практики?

    k12th
    @k12th
    console.log(`You're pulling my leg, right?`);
    1. Я кладу все вьюхи отдельно, модельки отдельно, коллекции отдельно и т.д. Некоторые складывают по бизнес-сущностям ("по экранам", "по страницам").
    2. Любой модульной системой (на данный момент времени SystemJS и ES6 модули), из расчета один класс -- один файл.
    3. Сразу начинайте использовать дата-байндинг: rivets.js, ractive, vue.js, сэкономите массу времени. Ознакомьтесь со списком расширений -- пригодится.

    P.S. Обратите внимание на всякие хорошие практики в ООП, типа S.O.L.I.D. Кстати, осваивать ember/angular и т.п. необязательно, но поглядеть стоит -- будет понятнее, какие недостатки есть в Backbone и как их обходить.
    Ответ написан
    Комментировать
  • Что делать после инстиута?

    webirus
    @webirus
    Тыжверстальщик! Наверстай мне упущенное...
    А может быть вам просто зарплату свою перечислить на карточку? Вы не хотите думать своей головой, а хотите готовое решение. У всех жизнь складывается по разному, стремитесь к высотам и будет вам счастье. Занимайтесь тем, что нравится. Это будет лучше, чем искать работу по прямой специальности. Занимайтесь фрилансом. Да куча вариантов.
    Ответ написан
    Комментировать
  • На сколько можно доверять приложениям для Django?

    atomheart
    @atomheart
    Пишу на Python за карму и за деньги
    "Доверяй, но проверяй". И конечно же зависит от поставленных задач:

    Если нужно быстро собрать работающий прототип, то приложения - хороший вариант.

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

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

    Для проверки решения существуют разного рода аудиторские конторы, сервисы и стандарты, которые и на безопасности проверят, и на нагрузку если нужно.
    Ответ написан
    1 комментарий
  • Технологии для реализации веб-проекта?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    вы уделяете внимание совсем не тем вещам, найдите талантливого разработчика, и дайте ему свободу пользоваться теми инструментами которые ему больше нравятся (ну или комманду, и пускай они сами решают на чём и как разрабатывать).
    Не понимаете в технологиях -> доверьтесь своим сотрудникам.
    Ответ написан
    4 комментария
  • Как грамотно организовать проект на Django (приложения, шаблоны, статические файлы)?

    @bromzh
    Drugs-driven development
    Блин, да это же джанго, он сам явно подталкивает к одной структуре приложения.
    Одно приложение на 1 логическую и независимую часть сайта. Например, интернет-магазин должен включать в себя каталог продукции и функционал для заявок. Потому что они взаимосвязаны. А вот новостную часть на этом сайте надо выносить в отдельное приложение, так как новости обычно почти не связаны с заказами и товарами как таковыми.
    Ещё в каждом приложении можно создавать папку static, куда класть все статические файлы. Но так обычно поступают разрабы "плагинов" для джанги. В рамках сайта можно коласть в 1 папку static в корне проекта, но разделяя js и css файлы (чтобы вёрстка не было в 1-м суперогромном css файле, в котором хрен чо найдёшь). Потом сборщики должны всё собирать и минимизировать.
    Шаблоны раскидывай по папкам, соблюдая иерархию. Т.е. если есть приложение shop, то в корневой папке templates создай layout.html, а все шаблоны магазина клади внутрь templates/shop, наследуя. Также можно хранить шаблоны внутри приложения, но опять же, это обычно используют разрабы "плагинов", хотя сам принцип хорош.
    Ответ написан
    4 комментария
  • Как правильно написать авторизацию/аутентификацию?

    dasha_programmist
    @dasha_programmist
    ex Software Engineer at Reddit TS/React/GraphQL/Go
    Есть два варианта хранения данных об авторизованном пользователе:
    1) В куки (так по умолчанию используется в асп.нет): необходимые данные (claims) шифруются machineKey и отдаются пользователю в http-only куках, таким образом при каждом запросе на сервер они присылаются, расшифровываются и далее можно проверить в необходимых местах.
    плюсы: полностью stateless, нет надобности обращаться к БД
    минусы: при необходимости "выбить" сессию со стороны сервера нужно поднимать более сложную логику и хранить флаги в промежуточном хранилище (проверять что если для такого-то пользователя требуется завершить, то такие действия, иначе другие);
    2) Ключ сессии: после успешной аутентификации авторизуем пользователя и claims храним на сервере в быстрой памяти или БД (key-value), где ключ - ключ сессии, значение - любые данные.
    плюсы: есть полный контроль состоянием авторизации (как и возможность завершить сессию со стороны сервера, так и сменить пользователю роль(или другие параметры) "на лету")
    минусы: организация доп. прослойки - кэша или хранение в БД (медленно), при перезапуске/падении сервиса сессии клиентам потребуется перелогиниться.

    1
    1.1 В куки писать или ключ сессии или шифрованные данные о пользователе, сессия - абстрактное понятие (это пара: ключ и данные), ключ должен быть защищенным, т.е. трудным к копированию (хотя бы зрительно трудно запомнить), уникальным (чтобы не возникло коллизий: двум разным пользователям выдался один и тот же ключ, т.е. это не должна быть хэш-функция от логина-пароля или IP или чего-то неуникального).
    1.2 В асп.нет существуют атрибуты авторизации (в которых можно расставлять проверки на требование таковой, роль, конкретный пользователь), в общем смысле логика такова: поступил запрос на сервер, далее нужно посмотреть к какому ресурсу идёт обращение (защищенному или свободному), если ресурс защищен, то проверить куки (ключ сессии или шифрованные данные), расшифровать/получить данные о сессии из кэша и предпринять решение: пускаем или не пускаем (отдаём 401/403 или отдаем 200/404/...).
    1.3 Завести на сервере (в кэше или БД) словарь , при алгоритме проверки сессии добавить условие проверки на наличие записи в словаре.
    1.4 С нескольких - словаря не нужно.

    2
    2.1 Даже если пользователь входит через ВК всё равно нужно отдавать свои ключи сессий/шифрованные данные, а вот внутри данных уже хранить access_token от вк-шной сессии, так очень маленькая вероятность, что токен ВК утечет, а если утек ключ сессии, то действия будут ограничены только функционалом сайта.
    2.2 После расшифровки куки или данных по ключу сессии делать доп запрос на сервер ВК с токеном, который сохранился при аутентификации (access_token), запрос простой, например получить имя пользователя, если ВК выдал что токен просрочен или ошибку, то сессию закрывать или куки с данными обнулять.
    Ответ написан
    3 комментария
  • Как получить опыт программирования в команде?

    kimono
    @kimono
    Web developer
    Читал книжку по PHP

    Нет, пишите код, много кода, тонны кода. Исправляйте ошибки, ищите решения в гуглояндексе, stackoverflow, тостере наконец. Задайтесь целью создать полезный (хотя бы для себя) сайт - парсер новостей к примеру, погодный информер там или что-то еще. На каком-то этапе вы решите создать каталог товаров или доску объявлений - делайте. Поработайте с формами, вводом и обработкой данных, авторизацией, сессиями, большими данными, фильтрацией и поиском в базе. А лэндинг это так - баловство, там php не нужен.
    В общем, я занимаюсь программированием по часу в день уже достаточно долго

    Этого совершенно недостаточно, чтобы чему-то научиться. Либо вы ленивы, либо программирование вам не интересно.
    Ответ написан
  • Переход с delphi на java?

    Taraflex
    @Taraflex
    Ищу работу. Контакты в профиле.
    А может c# ?
    Стандартная библиотека больше на дельфийскую похожа, как по мне.
    Что не удивительно https://goo.gl/O5C3hp
    Ответ написан
    Комментировать
  • Значение с базы на каждой странице?

    shultais
    @shultais
    Обучаю программированию на Python и SQL
    Добрый день, да можно с помощью Context Processors

    1. Создайте свой Context Processor, вроде
    from games.models import Game
    
    def most_popular_games(request):
        return { "MOST_POPULAR_GAMES": Game.objects.filter(active=True).order_by("-rating", "-id")[:5] }

    2. Подключите его в settings.py
    TEMPLATE_CONTEXT_PROCESSORS = (
       ...
        "download_games.context_processors.most_popular_games",
        ...
    }

    3. Пользуйтесь переменной в любом шаблоне, например
    {% for game in MOST_POPULAR_GAMES %}
        ...
    {% endfor %}
    Ответ написан
    1 комментарий
  • Онлайн Сторы на Django. Стоит ли переписывать?

    @asd111
    python и django учатся быстрее чем php и любой фреймворк для него, большинство php программистов легко переобучаются на python/django
    Ответ написан
    Комментировать