Задать вопрос
  • JS фреймворки и тупик в развитии навыков?

    fnnzzz
    @fnnzzz
    front-end dev
    на начальном этапе в кач-ве бека можно использовать https://github.com/stympy/faker в связке с https://github.com/typicode/json-server

    будут вам мокапы, которые будут выводить какие-то данные, когда появится бекенд - завяжитесь уже на него.
    Ответ написан
    Комментировать
  • Что изучить первым и выгоднее Angular, Angular 2 или React?

    Antonoff
    @Antonoff
    Разработчик
    React, Redux, Redux Saga, React Native и без еды ты уже никогда не останешься.
    Ответ написан
    1 комментарий
  • Как повысить уровень программирования?

    tiabc
    @tiabc
    Бизнес-партнер и консультант по технологиям
    Хорошие разработчики постоянно развиваются и никогда не стоят на месте. Любое развитие состоит в делании дел, в решении конкретных задач и в обратной связи, которую ты получаешь от других или в результате рефлексии.

    TL;DR: Читайте книжки, делайте дела, читайте чужой код.

    Что можно начать делать прямо сейчас, чтобы стать программистом лучше?

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

    2. Устройтесь на фултайм-работу с сильной командой даже если джуниором. Я считаю, что есть только один способ расти как разработчик: работать фултайм над одним бизнес-продуктом. Такой подход учит решать проблемы масштабируемости, думать заранее, работать над процессом, которому вы следуете в разработке, решать задачи, возникающие с длительной эксплуатацией, решать проблемы с удобными окружениями и вообще учиться планировать свою работу в связи с нуждами бизнеса.

    3. Написание кода - не самая большая часть работы сеньор-девелоперов, я бы сказал. Но когда речь заходит о самом коде, нужно понимать что ты пишешь и зачем. Есть классические книжки, которые можно найти, например, в матрице компетентности программиста, есть современные, но полезные типа The Art of Readable Code, которую я очень рекомендую. Нужно читать книжки. На собеседовании я всегда спрашиваю какие книжки читал или читает соискатель и если ответ отрицательный, то это большой минус.

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

    5. Наберитесь терпения. Это не случится за один день. Думайте над именованием, разделяйте обязанности, изучайте алгоритмы и экосистему, оптимизируйте ваше рабочее место, изучайте новые технологии, читайте статьи и в течение ближайших лет регулярных усилий вы обретете новый способ мышления и будете разрабатывать поддерживаемое и надежное ПО. Легкого пути, к сожалению, нет.
    Ответ написан
    2 комментария
  • Существует ли "карта программиста"? Что и за чем учить?

    Epsiloncool
    @Epsiloncool
    Программер, веб-девелопер, гейм-девелопер
    Я программист с 15-летним стажем активной работы. Программирование - это инструмент для разработки ПО. Такой же как умение ходить для свободного перемещения из точки А в точку Б. Когда ребёнок рождается, нет никакой карты, в которой бы было указано - в какой последовательности он должен изучать ходьбу, чтобы стать в итоге полноценным человеком. Так и в разработке ПО - нет никакой последовательности. Вам нужно изучать всё сразу, понемногу. Причём не теоретически, а практически. Ребёнок не читает книг по развитию умения ходить, не слушает лекции от родителей. Он сразу пробует. Падает, и снова пробует. Пока не научится. С разработкой ПО в точности так же.

    Нет никакого смысла читать книги по изучению конкретного языка. Ставьте задачу - "переместиться из точки А в точку Б" (сделать какое-то конкретное приложение) и гуглите по каждому непонятному моменту, пока программа не будет написана. Научитесь правильно строить поисковые запросы.

    После того как вы с большим трудом запустите свой первый продукт. вы уже будете знать и уметь в десятки раз больше, чем студент, окончивший пятилетний курс по специальности "программирование" и прочитавший пару толстых теоретических книг.
    Ответ написан
    6 комментариев
  • Существует ли "карта программиста"? Что и за чем учить?

    iCoderXXI
    @iCoderXXI
    React.JS/FrontEnd engineer
    Нет одинаково эффективного пути для всех и каждого.

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

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

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

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

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

    На первых порах, тестирование будет занимать до 99% времени и сил. Заодно подтягивается синтаксис используемых языков (вообще не важно каких), вырабатывается внимательность, концентрация, тренируется память и пр.

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

    С этим не рождаются, это выкристаллизовывается за сотни и тысячи часов жесткого баттхерта от неспособности найти, где ты забыл поставить запятую... Когда код из 10 строк прочитан сотни раз вдоль, поперек и наискосок...

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

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

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

    Ах да, обложись справочниками по любому инструменту и научись быстро вникать и подхватывать необходимый минимум. Обычно достаточно на 20% владеть инструментом, чтобы решать 80% задач.

    В любом случае я за критерий истины держу платежеспособный спрос.
    Ответ написан
    3 комментария
  • Правильно ли я понял философию Docker?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Контейнеры данных


    Они не нужны, используйте named volumes вместо этого (с версии 1.9 докера).

    Исходный код и локальные npm-модули (или лучше это в предыдущий контейнер, и при старте выполнять


    Нет, npm install надо выполнять ДО сборки образа. Когда контейнер стартует - внутри у него уже все должно быть. Опять же я лично против того, что бы выносить исходники проекта в отдельный контейнер-пустышку. У вас есть контейнер с нодой - исходники для ноды должны быть там. Есть некоторые нюансы связанные со сборкой контейнера но это так.

    На файловой системе хоста


    Ничего.

    Логи прокидываются в stdout/stderr контейнера и собираются на хосте через докер любым подходящим драйвером (читаем документацию).

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

    @Nodar
    Python, Ruby, JavaScript
    NodeJS
    Зачем учить Ruby, PHP, Python...., когда уже знаешь JavaScript?
    Выучить новый язык всегда хорошо, но если делать свои "проектики", то лучше взять что-то знакомое. NodeJS не подходит для проектов, где большая вычислительная нагрузка, но такую нагрузку надо еще заиметь, и с этим можно бороться и на Node

    Это все мое ИМХО
    Ответ написан
    4 комментария
  • Какой стэк бэкенд технологий выбрать фронтенд разработчику для личных проектов?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    На ноде есть вполне себе годные фреймворки вроде Express
    Ответ написан
    Комментировать
  • Кому нужна помощь в крупном проекте на никсах?

    @inkvizitor68sl
    Linux-сисадмин с 8 летним стажем.
    Пиши в жаббер (root@vlad.pro), обговорим.
    Ответ написан
    Комментировать
  • Как применить свою цветовую палитру для Яндекс.Карт?

    @Akellacom
    CTO
    Привет! В свое время была задача сделать карту яндекс в ЧБ, нашел вот такое решение jsfiddle.net/9aj8j
    Попробуй покапать в ту сторону, может что получится.

    upd

    Стало интересно, немного погуглил на эту тему и вот что нашел legal.yandex.ru/maps_api
    Это нарушение условий пользования API

    2.3.7.5. Сохранять, обрабатывать и видоизменять полученные через Сервис Данные (включая результаты геокодирования), за исключением случаев временного хранения (кэширования) результатов геокодирования исключительно для целей улучшения функциональности и работоспособности Сервиса и только для использования в рамках возможностей, предоставляемых Сервисом.


    Средствами API Yandex, как я понимаю ничего не получится сделать.

    upd 2
    Для Google Maps, советую gmaps-samples-v3.googlecode.com/svn/trunk/styledma...
    Ответ написан
    Комментировать
  • Как исключить списочные разделы из индексирования поисковиками?

    tarasnick1
    @tarasnick1
    SEO оптимизатор
    Сделайте автоматическую перелинковку на детальных страницах с новостями - например,
    Предыдущая новость (ссылка на новость, которая была раньше текущей) и Следующая новость (ссылка на новость, которая была позже текущей) - нужно, чтобы поисковые роботы могли переходить по страницам новостей

    Динамическую XML карту сайта тоже желательно реализовать (в ней должны отсутствовать страницы пагинации новостей)
    Страницы пагинации новостей закройте правилом через robots.txt - главное, чтобы не было запрета на индексацию детальных страниц новостей
    Проверку корректности robots можно проверить здесь
    Ответ написан
    Комментировать
  • Как создать exe файл в питоне?

    @mamkaololosha
    py2exe
    Ответ написан
    Комментировать
  • Как запретить вывод экранной клавиатуры для текстового поля на мобильных устройствах?

    mlnkv
    @mlnkv
    JavaScript Developer
    не надо использовать datepicker для мобильных устройств, используйте нативный
    <input type="date">
    <input type="datetime">
    Ответ написан
    1 комментарий
  • Веб-дизайн без фотошопа - реально ли?

    @montylab
    Xara designer, когда-то была ответвлением corel draw, но последние лет семь - отдельный продукт, и причем вполне отличный, векторная графика на мой взгляд намного удобнее для рисования интерфейсов, нежели растр SCR-2HUQH5O.png57f584212dc34eeb94943dce946f2509.png
    Ответ написан
    Комментировать
  • Веб-дизайн без фотошопа - реально ли?

    cissav
    @cissav
    Руководитель Omnidesk.ru
    Есть новые и более удобные решения. Сам использую Sketch. На Западе его очень любят.

    Если нужно что-то более радикальное, то Macaw.
    Ответ написан
    23 комментария
  • Как разделить доступ к git репозиторию, чтобы разные пользователи могли клонировать и пушить только разрешённые им папки?

    Используйте submodules, так и главный репозиторий будет чище и права доступа можно разграничивать по модулям.
    Ответ написан
    Комментировать
  • Какой смысл имеет данная конструкция в JS?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    Это — метка. Как case: или default:, использующиеся в switch.
    Обычно в JS редко увидишь использование меток, поскольку единственная их цель — в случае нескольких вложенных циклов переходить из тела любого внутреннего цикла к отмеченному внешнему, невзирая на уровень вложенности.

    Для этого используются инструкции break и continue, которые без метки работают непосредственно с тем циклом, в теле которого указаны. Если добавить метку, происходит прерывание (break) помеченного цикла либо переход к его блоку изменений (continue).

    Там же написано:
    useful for nested loops

    Пример:

    var stop = 7;
    
    label:
    for (var i = 10; i--;) {
    	console.log('i:', i);
    	for (var j = 10; j--;) {
    		console.log('j:', j);
    		if (j == stop) {
    			console.log('stop');
    			break label;
    		}
    	}
    }
    console.log('stopped');
    Ответ написан
    2 комментария
  • Принято ли в js выделять приватные свойства?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    В JS нету приватных свойст. Вообще.

    Можно добавлять символы в начале, например классический вариант с двумя нижними подчеркиваниями. Например в angular.js все приватные свойства начинаются с $$ и помечены в jsdoc как @ private. При этом, если включена нужная опция google closure compiller при минификации имя свойства поменяется на какое-нибудь короткое рандомное, так что вопрос с доступом к свойству в принципе решен так как с каждым билдом имя свойства скорее всего будет отличаться и это ограничит количество желающих с ним работать.

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

    k12th
    @k12th
    console.log(`You're pulling my leg, right?`);
    Не всегда. Если выделяют, то обычно начиная их имя с подчеркивания:
    var obj = { _answer: 42}
    Не стоит забывать и про protected.
    Ответ написан
    Комментировать
  • В чём различия IcedCoffeeScript и vanilla CoffeeScript?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Да, IcedCoffeeScript добавляет в ванильный кофе только операторы defer и await. И все.
    Ответ написан
    2 комментария