Задать вопрос
  • Что учить Angular или React новичку?

    GriNAME
    @GriNAME
    Front-End Developer, Android Developer
    Многие советуют начать изучение с Vue, а потом уже выбрать что лучше. Для многи плюс Vue будет в хорошей документации на русском языке (официальная поддержка русского на сайте). Мне ближе Angular (v.2+) с его MVC, поэтому выбрал его. А вообще эти фреймворки не нужны для обычных простых сайтов. Если страница которую верстаешь язык не поворачивается назвать веб приложением, то там нужна обычная верстка. А когда на странице много модульных частей, которые как-то взаимодействуют друг с другом. То тут уже фреймворки будут кстати.
    Что именно выбрать решать вам. По большому счету это не принципиально и в основном дело вкуса в первую очередь. Все они в итоге делают веб приложения. Я выбрал Angular v.Последняя. Так же симпатичен Vue. Реакт немного недолюбливаю, чисто из-за личных предпочтений, не более.
    А так, JS в первую очередь доводите до хорошего уровня, как тут большинство и советуют. И ищите недорогие заказы. Главное сейчас это практика реальных проектов и просто запустить сам процесс поиска и выполнения работы. Остальное приложится)
    Ответ написан
    Комментировать
  • Как устроиться на работу бывшему ИП?

    @Oblomingo
    Я в 30 начал программировать на C#. Просто так, как хобби.
    Помимо основной работы (в энергетике), сдал Майкрософтский экзамен и устроился джуниором в одну контору.

    За 4 года сменил две работы, сдал еще около 10-ка экзаменов, прочитал кучу книг по архитектуре. Теперь занимаюсь тем, что пишем энтерпрайз системы для крупных иностранных заказчиков. Месяц назад мне предложили перейти на позицию Senior.

    Я к тому, что никогда не поздно начать, что то новое.
    Ответ написан
    4 комментария
  • Какие есть современные способы дистрибьюции электронных книг на ИТ тематику?

    Предпочитаю бумажные версии. Но покупаю и бумажные и электронные. Дома читаю на бумаге, не дома - на телефоне.
    Бумага нифига не прошлый век. Зря вы так.

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

    Epsiloncool
    @Epsiloncool
    Программер, веб-девелопер, гейм-девелопер
    Самый быстрый (и я считаю правильный) путь изучения прикладного программирования - это РЕАЛЬНЫЕ задачи + гугл + английский язык (на первых порах Google Translate). Пустое чтение теории не даёт ровным счётом ничего. Лучше сделать небольшое реально работающее приложение, чем прочитать 100500 книг по программированию.
    Ответ написан
    2 комментария
  • Как при работе единственным веб-мастером-на-все-руки в компании максимально эффективно прогрессировать в веб-разработке?

    Сначала реши что тебе интереснее - код писать или решать проблемы бизнеса. Казалось бы, что код должен решать проблемы бизнеса, но сейчас это не так.
    Если тебе интереснее инженерные штуки (учить фреймворки, разбираться с тулзами и вот это всё), то увольняйся и иди в айти-контору. Там будешь заниматься аутсорсом в обнимку с легаси, новыми технологиями и разговорами о них с ребятами в столовой или возле кулера. Но понимать зачем ты делаешь то, что делаешь ты не будешь. Скорее всего этого не будут понимать даже твои начальники: лид и ПМ. В аутсорсе это норм. Чем больше контора тем больше карго-культа и меньше смысла в том, что происходит. Оверинжиниринг тут не то, что пытаются искоренить, но скорее даже поощряют (хоть и не в голос) - так больше зарабатывается на time & material.
    Если бизнес тебе интереснее, то развивайся в сторону продуктового технолога. В этом направлении вопросы "Зачем что-то делать?" важнее "Как?". Качай переговорные навыки и управленческие. Твоими инструментами будут не редактор, но другие ребята, которым интересно рисовать баннеры, кодить и прикручивать фотогалереи и вот это всё. А основной задачей (очень затратной с точки зрения мозготоплива) будет выяснение задач вместе (и это важно, что именно вместе) с бизнесом и рекомендации как лучше инвестировать заработанное в технологии.
    Ответ написан
    Комментировать
  • Кто пользуется редактором кода CodeLobster?

    Vadiok
    @Vadiok
    Веб разработчик
    Про must have редактор не скажу, но все же очень удобен PhpStorm, обладает огромным функционалом, поэтому многие им и пользуется.
    Мое мнение, почему CodeLobster непопулярен:
    1. Нет версии под Мак - думаю, что большинство, кто составляют более-менее популярные рейтинги пользуются маками.
    2. Если смотреть эту таблицу цен, то бесплатный вариант практически не обладает ничем выдающимся, lite за 40$ тоже слабоват.
    3. Отсутствие возможности ткнуть в папке проекта и тем самым создать новый файл - это вообще жесть.
    4. Нет стилизации кода под стандарт - тоже очень плохо.
    5. Очень мало плагинов - например кому-то важны миникарта, gist'ы, быстрый переход к месту, VIM-mode, возможность написать свой плагин - всего этого нет.
    6. Невнятная справка, древний сайт.
    7. Не понял, есть ли у него "go to definition", но, похоже - нет, без этого IDE - недоIDE.


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

    Nekto_Habr
    @Nekto_Habr
    Чат дизайнеров: https://t.me/figma_life
    я приобрел неплохой навык для IT-специалиста

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

    По-моему, для начала нужно попытаться изменить ситуацию вокруг себя - подготовить разговор с начальством о трудовом процессе. Если безуспешно - либо оттачивать навык переговоров, либо не дергаться до тех пор, пока работа устраивает в целом, либо присматривать другую работу.
    Ответ написан
    5 комментариев
  • Знания Junior php разработчика?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    что должен знать идеальный джуниор (мое личное мнение):

    - Сетевой стэк. Нужно иметь хотя бы базовое представление о том как с сервером общаются. Ну то есть не нужно лезть в дебри, но понимать что такое HTTP или чем TCP от UDP отличается - нужно. В целом это пара часов чтения википедии.
    - GIT или любая другая распределенная VCS. Базовые навыки, что бы хотя бы понимал что есть git revert или git rebase, что такое фичабрэнчи и примерное представление как это работает и зачем надо.
    - Базовые основы unix. Ну то есть что бы не пугаться таких вещей как ssh хотя бы.
    - PHP. Без этого никуда. Он должен понимать что такое слабая динамическая типизация (не заучивать табличку кастов типов, а понимать плюсы и минусы, такая же история с приоритетами операторов - не заучивать а знать как избегать проблем с чтением кода)
    - Понимать что код чаще читают чем пишут, а потому не экономить 5 минут на написании кода, а писать так, чтобы сэкономить 30 минут человеку, разбирающемуся в куске кода.
    - Знать базовые вещи в плане безопасности. XSS и как защищаться, SQL инъекции и как защищаться, CSRF, MITM. Понимать что такое NDA, что данные пользователей - секретная информация. Как хэшировать пароли (не md5 а password_hash) и почему это важно.
    - Знать SQL. Глубоких знаний не требуется, нужно лишь понимание того, что такое нормальная форма, желательно разобраться с вопросом денормализации данных. Идеально иметь хотя бы базовые представления о том как работать с NoSQL решениями.
    - Процедурное программирование: почему глобальные переменные порождают сложность, что такое состояние, как можно использовать классы для изоляции состояния и т.д. Инкапсуляция. Инварианты, пост/пред условия, сохранение целостности...
    - Разделение ответственности. Это один из важнейших принципов, и упрощать все это до "mvc фреймворк" слегка неправильно. Вы должны понимать что от чего отделяете и главное зачем.
    - Автоматические тесты. Джуниор должен знать что это такое и иметь хотя бы минимальный опыт их написания. Должен понимать разницу между юнит и интеграционными тестами. Быть знакомым с пирамидой тестирования.
    - Уметь решать стандартные задачи не задавая слишком много вопросов. Например регистрацию пользователя по email-у вы должны написать, или авторизацию через соц сети, или комментарии, или новостную ленту.
    - Уметь дебажить. xdebug, blackfire и тд.

    В целом где-то за годик весь этот список можно влегкую покрыть с нуля.

    p.s. Я в списке специально не указывал ООП, поскольку всеравно первые пару лет у разработчиков выходит процедурщина на классах. Это не плохо, но того что в моем списке более чем должно хватать для решения стандартных задач. Но термины вроде "инкапсуляция/полиморфизм/наследование" требуются в обязательном порядке подавляющем количеством интервьюверов, а стало быть знать это надо. Единственное что - рекомендую в свободное время глубже погрузиться в этот вопрос а не тупо заучивать формулировки.

    Так же вещи вроде docker джуниорам знать не обязательно просто потому, что их врядли допустят сходу к управлению инфраструктурой. А так пару неделек на изучение и вперед.
    Ответ написан
    12 комментариев
  • Как получить заказы по web scraping и какие навыки улучшить?

    Вам не кажется, что у вас слишком много претензий к апворку? "Мне не нравится одно", "мне не нравится другое". Это не вы ставите условия апворку, это он ставит условия тысячам таких как вы.

    Я решил специализироваться на web scraping: заказов много, можно начинать с легких и постепенно расти. Потом можно размещать своих пауков на виртуальных серверах и параллельно разбираться в администрировании. Потом можно сделать сайтик-агрегатор, чтобы разбираться в сайтостроении. Нужно ли говорить, что я застрял на первом шаге.


    При этом те тысячи не будут спотыкаться на написании парсеров. Чем вам не нравится ставка 20%? Удвойте ваш ценник и будете зарабатывать больше, заглядывать в карман биржи у вас нет никакого права, они создали бизнес и они на нем зарабатывают. При этом они позволяют зарабатывать вам вместе с ними. Не нравятся их условия - ищите клиентов в других местах, вот только будет ли им достаточно ваших компетенций, если вы в своем пути застряли на написании парсера? Еще и демпинговать при ставке 8 баксов - шикарно.
    Ответ написан
    1 комментарий
  • Ускорение верстки psd?

    Frel: avocode

    Поддерживаю, исползуйте avocode, вот ссылка на хороший курс по нему , а также удобный сервис для смены почты раз в две недели. Удачи.
    Ответ написан
    4 комментария
  • Photoshop, notepad++ и бочка кофе в придачу, что ещё поможет верстать сайты быстрее и с меньшими затратами нервов?

    iiiBird
    @iiiBird Куратор тега Вёрстка
    Пока ты спишь - твой конкурент совершенствуется
    sublime text и ставишь какой нить livereload. ну и плагины для sublime text по вкусу.
    Ответ написан
    Комментировать
  • Как реализовать быстрый поиск в массиве объектов по значению свойства?

    SynCap
    @SynCap
    Делаю интернет с 1998 года
    Не сваливать все в объект, а сразу писать в IndexedDB, а необходимые для оперативной обработки данные, например выборку по городу, брать средствами работы с IndexedDB.

    Для браузеров не умеющих работать с IndexedDB есть библиотека PouchDB, менее шустрая, чем нативные встроенные в браузер реализации (UPD: если их нет, в противном случае - используются нативные), но даже на старых браузерах (IE7,8) будет выигрыш, как по удобству манипуляции данными, так и по скорости.

    UPD: обращение к IndexedDB НЕ блокирует интерфейс и может использоваться в воркерах (см. issues на странице).

    UPD: кстати, PouchDB :
    • сам использует IndexedDB, когда она доступна, в старых WebKit, в т.ч. на Android использует WebSQL, когда совсем плохо (старые IE) - тоже чего-нибудь придумывает, как минимум - localStorage;
    • дает возможность работать с серверными данными, как c локальными, когда они доступны, идеальное решение для снижения заморочек с созданием "оффлайн" приложения или одностраничника с "миллионом записей", проводя "репликацию";
    • все танцы с бубном вокруг индексов - фоновая, абсолютно прозрачная задача.
    • если поставить на сервере CouchDB или эмулировать ее Rest api - можно забирать всех "Вась из Омска" прямо с сервера одним вызовом
    UPD: И когда, наконец, народ научиться подбирать подходящий инструмент для работы, а не валить лес пилкой для ногтей и не вскапывать грядки карьерным самосвалом?
    Ответ написан
    1 комментарий
  • Существует ли "карта программиста"? Что и за чем учить?

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

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

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

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

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

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

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

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

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

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

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

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

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

    В любом случае я за критерий истины держу платежеспособный спрос.
    Ответ написан
    3 комментария
  • Как организовать мини-тренировки по программированию (для себя)?

    copist
    @copist
    Empower people to give
    Список которым пользуюсь я:
    1. Регулярно участвуй в сообществах взаимопомощи веб-разработчиков. Отвечай на вопросы на toster / hashcode / mail.ru / stackoverflow и сотне подобных сервисов. Это тебе самому поможет разобраться в проблемах, заодно набьёт карму. Тут нет противоречия - помогай другим, чтобы учиться самому.
    2. Занимайся проектами с открытым кодом. Например, решай issue из чужих репозиториев на github, вот утилита для выбора случайного issue по нужному языку tevko.github.io/practice/index.html. Заодно включай их в своё портфолио.
    3. Учись читать чужой код, делай ревью чужого кода. Например, на codereview.stackexchange.com/. Потому что читать код - это 80% работы программиста.
    4. Можно попробовать оказывать микроуслуги (пример: work-zilla.com или https://www.fiverr.com/ - ищи аналоги) - будешь получать небольшие деньги за выполнение разовых работ, в частности исправление чужих сайтов, парсинг данных и прочее. Я так и начинал. Не с бирж фрилансеров, а с бирж микроуслуг. Там гораздо меньше объём работ, такие микроработы легко выполнять в свободное время.
    5. Поищи проекты, где начинающие веб-разработчики ищут себе компаньонов для совместных проектов. Например, дизайнер ищет фронта, бакенд ищет фронта. Я видел, есть специальные разделы на форумах на Envato, Behance.
    Ответ написан
    Комментировать
  • Видеоуроки по изучению JavaScript?

    qork
    @qork
    { background: #F00B42 }
    У Борисова что JS что PHP советую.
    Ответ написан
    Комментировать
  • Чем делать "домашние" backup'ы?

    JonNiBravo
    @JonNiBravo
    Я использую Acronis True Image Cloud www.acronis.com/ru-ru/personal/online-backup
    Буржуйские сервисы тоже тестил, оказались слишком медленными
    Ответ написан
    3 комментария
  • Механизм включения/выключения Bootstrap-адаптивности для сайта - как реализовать переход на полную версию сайта?

    Big_person
    @Big_person
    Адаптивная верстка на то и адаптивная, что не требует какого-либо переключения.
    Все компоненты располагаются на странице согласно сетке getbootstrap.com/css/#grid
    Для скрытия и отображения отдельных блоков используйте утилиты адаптивности getbootstrap.com/css/#responsive-utilities

    Если же нужно именно отключить адаптивность, тогда используйте <meta name="viewport" content="width=1024" >
    Ответ написан
    Комментировать
  • Как получить все возможные варианты "соединения" строк из 4 или более массивов?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    число перестановок - n факториал

    т.е. count = len(a)*len(b)*len(c)*..*len(x)

    алгоритм - банальный for по вложенным массивам

    a = ['a1','a2','a3',]
    b = ['b1',]
    c = ['c1','c2',]
    d = ['d1','d2','d3','d4',]
    
    
    total = []
    for i in range(0, len(a)):
        for j in range(0, len(b)):
            for k in range(0, len(c)):
                for l in range(0, len(d)):
                    total.append(a[i]+b[j]+c[k]+d[l])
    
    print(total)
    print(len(total))
    Ответ написан
    3 комментария
  • Удаление элемента при помощи динамически создаваемых атрибутов в jQuery?

    @matios
    Technical Team Lead
    $(document).on('click',".delete-input", function(){
        var rel = $(this).attr("rel");
        if (rel) {
            var removedEl = $("#addimage"+rel);
            removedEl.fadeOut(300, function(){
                removedEl.remove();
            });
        }
    });


    Казалось бы - тоже самое, но нет. В вашем случае вы дважды ищите ВО ВСЕМ DOM дереве нужный узел. В моем случае узел находится единожды. Экономьте память ;)
    Ответ написан
    Комментировать
  • Удаление элемента при помощи динамически создаваемых атрибутов в jQuery?

    xPomaHx
    @xPomaHx
    1vs9
    $(document).on('click',".delete-input", function(){
        var rel = $(this).attr("rel");
        $("#addimage"+rel).fadeOut(300, function(){
            $("#addimage"+rel).remove();
        });
    });
    Ответ написан
    Комментировать