• Как не писать г-код html?

    Xaz16
    @Xaz16
    Front End Developer
    По CSS вопросов нет - там просто соблюдать "чистоту"

    Да как бы ни так, по моему лично мнению, касательно html, достаточно следовать этим styleguid'ам
    От разработчика bootstrap
    Опять же соблюдать DRY в чистом html сложно (6 одинаковых блоков по структуре), по этому как советуют выше присмотритесь к jade и другим шаблонизаторам (особенно к php, волею судеб придется работать с ними).

    Ну и чтобы быстрее придти к осмысленности, стоит взглянуть на БЭМ хотя бы на уровне именования классов.
    nicothin.github.io/idiomatic-pre-CSS
    Ответ написан
  • Как эффективно развивать себя как разработчика?

    ArtamonovDenis
    @ArtamonovDenis
    Web architect
    хочется не просто пилить рутинные таски, и если уже повезет с таском то улучшать скилл, а хочется максимально эффективно развивать себя как разработчика, чтобы стать не только полноценным девом, а и хорошим специалистом


    дополню ответ aRegius

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

    Вы использовали слово "рутинные", значит у Вас уже есть понимание того, что такое "рутина"/"стагнация".

    Стагнация - это хорошее понятие для разработчика.

    Стагнация - это как раз таки выполнении рутинных задач и отсутствие развития в будущем.

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

    Расскажу на примере себя )

    Когда я чувствовал, что наступает стагнация, я просто создавал/активировал своё резюме на headhunter, потенциальные работодатели присылали мне тестовые задания, я разбирался/решал их, тем самым оценивая свой уровень и уровень работодателя, далее, если задача работодателя была мне интересна, проходил собеседование, выяснял интересующие меня моменты, и в случае возникновения большего интереса, уходил работать к нему.

    Таким образом, я занимался тем, что интересно мне, развивался, как специалист, как разработчик, боролся со стагнацией.

    В общем, главное для меня и моего развития - отсутствие стагнации, и очень важный момент, уметь чувствовать эту самую стагнацию.

    Чтобы чувствовать стагнацию, нужно постоянно обдумывать то, чем ты занимаешься, и на каком уровне ты это делаешь.
    Если ты понимаешь, что на текущий момент, ты всё делаешь круто, тогда нужно искать что-то новое, бросать себе новый вызов, и только тогда будет рост.

    Итог: нужно заниматься своей реальной оценкой и не бояться что-то менять.
    Ответ написан
  • Как постепенно перекочевать из Web в Machine Learning максимально безболезненно?

    @asd111
    Из языков строго python. Он похож чем то на Golang и на javascript так что сложностей в использовании не возникнет. С++ и R сразу нет. Потому что на С++ пишут в основном только сами библиотеки для ML либо что то очень быстрое наподобие анализа видеопотока в автопилотах и даже тогда прототип пишут на python, а R практически не развивается по сравнению с python и имеет более узкую сферу применения чем python.
    В плане обучения можно сделать так:
    1. Прочесть хорошую книгу по теме, потому что нужно знать термины и основные алгоритмы. Ну или хотя бы посмотреть курсы Andrew Ng Machine Learning. Для применения чужих библиотек на простых задачах этого в принципе достаточно.
    2. Глянуть scipy, numpy и jupyter notebook. У scikit есть scikit learn, в котором реализованы некоторые популярные алгоритмы. Например SVM, decision trees и т.д. и есть доки под это дело для начинающих scikit-learn.org/stable
    3. Зарегистрироваться на kaggle.com и найти задачу про титаник. Вот она https://www.kaggle.com/c/titanic Делаете решение как умеете. Можно взять простой gradient boost. Yandex как раз недавно выложил либу под это дело называется cat boost https://tech.yandex.ru/catboost/ Банальное использование этой библиотеки может дать около 80% точности. Вот туториал https://github.com/catboost/catboost/blob/master/c...
    4. Прочитать про keras. Взять готовую модель для смешивания стилей изображений и сделать сайт наподобие ostagram.ru для смешивания изображений. https://github.com/fchollet/keras/blob/master/exam...

    5. Дальше всё зависит от вас, поскольку заработать в области ML непросто :) Когда прочтете хотя бы одну книгу по ML, регистрируйтесь здесь ods.ai - это сообщество русскоговорящих специалистов в данной области.
    Ответ написан
  • PHP vs GOLANG, парсер, на чем писать?

    dasha_programmist
    @dasha_programmist
    ex Software Engineer at Reddit TS/React/GraphQL/Go
    Если выберешь Go то посмотри в сторону пакета goquery - jquery селекторы на go. Но мне кажется удобнее всего на js (node 8), в мастер-слэйв режиме, т.е. 1 инстанс рулит/балансирует, другие инстансы-воркеры занимаются непосредственно парсингом.
    Ответ написан
  • Замена фотошопа верстальщику?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    Самая удобная тема - https://zeplin.io/ Это просто прорыв.
    Но это не значит, что не нужно уметь пользоваться фотошопом.
    Ответ написан
  • Как научиться учить программирование?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Бывало проснешься как птица -
    Крылатой пружиной на взводе,
    И хочется жить и трудиться....
    Но к завтраку это проходит.
    (с) Губерман

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

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    А просто со временем, до всех доходит, что программирование это не интересные исследования, познания неведомого как в фантастике, прикручивание двумя кликами новых движков.
    А на деле - это еще и множество рутинной и кропотливой работы, которая по сути - скучная, однообразная, И ее процентов 80.

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

    zorca
    @zorca
    1. Мэтт Зандстра "PHP: объекты, шаблоны и методики программирования"
    2. Джош Локхарт "Современный PHP"
    3. Фреймворк Symfony. Код для программиста - лучшее чтение.
    Ответ написан
  • Как организовать доступ к ресурсам в REST API?

    gobananas
    @gobananas
    finishhim.ru
    Перемудрили. Всё должно быть очень просто. Что такое тип медиа? Музыка или видео? Так по
    /movies/genre/{id}/film/{id} - фильмы
    /music/albums/{id}/tracks/{id} - музыка

    Далее. Если я знаю id трека или фильма мне надо дать возможность обратиться непосредственно к нему:
    music/track/{id} - всё

    Если я не знаю какой трек мне нужен я прошу все треки из направления музыкального, например rap у него id=13
    music/style/13

    По этому запросу выдаются пачки направления по 100, 300 или 1000 штук в зависимости от ресурсов и можно указать пагинатор
    music/style/13/2 - вторую страницу направлений мне покажите

    Именно поэтому параметры лучше передавать в явном виде в url типа style=13&page=2 потому что так не запутаешься что такое 13 и что такое 2.

    Если я совсем ничего не знаю и жанры тоже должен быть вспомогательный метод для получения всех жарнов, как у ВК для получения городов например. Запрос вида:
    music/allganre?page=0

    отдаёт 100 пар вида "название жарнра -> id" так сделав 5 запросов с page=0/1/2/3/4 я в своём приложении смогу иметь всю базу возможных жанров. Можно сделать метод что бы получить жанр конкретной песни:
    music/getganre?track=1456

    И т.п.
    music/getalbums/1456 - получить все альбомы исполнителя
    music/detailalbum/1456 - получить все данные об альбоме (год выпуска и т.п.)
    music/tracksalbum/1456 - получить список треков конкретного альбома

    В общем идите не от частного к общему а наоборот, представьте с чего начать работу человеку который ничего не знает. Максимальную атомарность запросов введите что бы они были между собой никак не связаны. И человек сначала получит жарны, по жанру список исполнителей, по нему список альбомов, по нему список песен, по нему данные о нужной песне. И это всё отдельные запросы.
    Ответ написан
  • Тупиковое и медленное развитие, лекарство?

    voronkovich
    @voronkovich
    Нужно позволить всякому шлаку проплыть мимо вас. Не нужно вкладывать много времени в изучение того, что завтра изменится. Лучше тратить время на фундаментальные вещи, срок жизни которых больше 5-10 лет.
    Примеры:
    • Реляционные СУБД. Я использую их уже лет 10, и ничего принципиально нового (с точки зрения разработчика) в них не появилось. Я как изучил SQL 10 лет назад, так и пользуюсь им до сих пор. В тоже время, я знаю достаточно хипстеров, которые каждый день пишут на новом фреймворке и при этом не смогут составить запрос с joinами. Изучайте реляционные базы данных и SQL - они будут жить еще лет 20-ть;
    • ООП. У меня на полке лежит книга банды 4-х, которую я купил давно. Мне не нужно каждый год покупать новый экземпляр из-за того, что шаблоны проектирования вдруг взяли и "устарели". Изучайте ООП. Оно будет актуальным еще очень долгое время;
    • Регулярные выражения;
    • Командные оболочки sh/bash;
    • и т.д.

    Короче говоря, не тратьте время на синтаксис, тратьте его на семантику.

    И поменьше читайте хабр. Полезной информации там все меньше и меньше, и в то же время, подобные ему ресурсы создают у людей чувство неполноценности, из-за того что они не используют "этот новый супер-мега фреймворк".
    Ответ написан
  • Тупиковое и медленное развитие, лекарство?

    Konstantin18ko
    @Konstantin18ko
    Стоматолог
    Хочешь быстро выкачивать в продакшен? Вруби режим Vanille. Пиши, параллельно свой проект. Зацепись за один язык как основной и дальше учи всё в нем вдоль и поперёк. Затем, как всё выучишь, хватай самый сложный фраемворк и от сложного к простому начинаешь разбирать. Это мой подход.
    Для наглядной статистики: я врач, у меня 8 часовой рабочий день. С сентября 2016 начал изучать PHP и JavaScript. С 1 января по 9 января 2017 пишу програму которая помогала мне писать истории больных. Сейчас программа пользуется популярностью и ей пользуется вся ординаторская. Сейчас проект переписывается на Symfony 3.
    Что мне понадобилось: время после работы, интернет.
    Ответ написан
  • Как эффективно развивать себя как разработчика?

    aRegius
    @aRegius
    Python Enthusiast
    Вам будет гораздо легче решать большую часть стоящих перед вами задач (а другим гораздо легче вам в этом помогать), как только вы перестанете описывать их общими фразами (типа "максимально эффективно", "полноценный дев", "хорошим специалистом" и т.п.).

    Будьте конкретны:
    - "Моя цель на ближайшие 6 месяцев - вырасти до позиции XXX в текущей компании". И далее:
    - "Что мне нужно сделать для того, чтобы в течение 6 месяцев в моей компании вырасти до XXX ?"

    С этим уже можно обратиться к людям, обладающим достаточной компетенцией в помощи вам с ответом на этот вопрос: "Для того, чтобы в нашей компании стать XXX, нужно знать ЭТО и уметь ТО".

    - "Что мне нужно для того, чтобы узнать ЭТО и научиться делать ТО ?". Cоставляете план действий (разбиваете необходимые шаги на месяцы, недели, дни) с дежурными сроками (для проверки запланированного и достигнутого, внесения в связи с этим необходимых корректировок и т.п.) - и вперед.

    Но все начинается с конкретики:
    - "...хочется максимально эффективно развивать себя...". Что конкретно значит (для вас) "максимально эффективно"? По каким критериям вы будете определять, эффективно вы развиваетесь или нет? Количество прочитанных книг? Сложность решаемых задач? Что конкретно?
    - "...чтобы стать не только полноценным девом...". Что конкретно значит (для вас) "полноценный дев"? Как вы поймете, что стали "полноценным девом"? Вы добьетесь определенной должности? Будете зарабатывать определенную сумму денег? Что конкретно?

    Успехов.
    Ответ написан
  • По какому принципу создавать контроллеры в MVC?

    BoShurik
    @BoShurik
    Symfony developer
    Catalog
        Controller
            Admin
                ProductController.php
            ProductController.php # ReviewManager используется тут
        Entity
            Product.php
            Review.php
        ReviewManager.php
    Order
        Controller
            Admin
                OrderController.php
            OrderController.php
        Entity
            Order.php
            Item.php
    User
        Controller
            Admin
                UserController.php
            UserController.php
        Entity
            User.php

    либо
    Controller
        Admin
            Catalog
                ProductController.php
            Order
                OrderController.php
            User
                UserController.php
        Catalog
            ProductController.php # ReviewManager используется тут
        Order
            OrderController.php
        User
            UserController.php
    Entity
        Catalog
            Product.php
            Review.php
        Order
            Order.php
            Item.php
        User
            User.php
    Catalog
        ReviewManager.php

    как больше нравится

    Не уверен нужен ли ReviewController, зависит от функциональности. Если это просто виджет на странице с недавними товарами, сделал бы в публичном ProductController
    Ответ написан
  • На чём вы разворачиваете Symfony?

    artem90
    @artem90
    php-программист
    Мой опыт такой:
    Пишу баш скрипты для автоматической установки и настройки nginx, php7 (fpm, cli), MySQL, nodejs и redis.

    Все это запускаю на дебиан 8 под докером, через docker-compose, добавив в него pma иногда.

    Потом все это дело так же легко взлетает на ci в гитлабе (Travis ci и любую другую ci)

    Итого полный цикл установки, настройки и тестирования) к тому же все скрипты поделены на отдельные куски типа install-nginx, install-php и потом можно переиспользовать эти кусочки в другом проекте.
    Ответ написан