Лучше по viewport через width, чем через device-width, чтоб еще ретину захватить. device-width - это когда уже совсем конкретизировать устройство.
Можно, например, как в Bootstrap.
media screen and (max-width: 767px) { ... }
media screen and (min-width: 768px) and (max-width: 991px) { ... }
media screen and (min-width: 992px) and (max-width: 1199px) { ... }
media screen and (min-width: 1200px) { ... }
Когда я решил попробовать себя в этой сфере, я накидал себе план обучения. Что то типа html > css > js > php. Ну разумеется для начала общие сведения обо всем этом. Так как вообще не понимал что и для чего. Потом много смотрел видео уроков и сам тренеровался. Научился делать (как мне тогда казалось) интернет магазин и пошел устраиваться на работу. Взяли стажером и оказалось что я очень мало знаю. Мало из того что я учил мне пригодилось. На практике все оказалось немного иначе. Я проработал там пол года, затем ушел в другую компанию (более крупную) с мыслью "ну теперь то я кое что могу). И придя на новое место снова оказалось что я совсем новичок. так как инструменты которые тут использовались были другими. Я менял еще несколько мест, каждый раз находя более профессиональный коллектив. И каждый раз узнавал много нового. Я к тому что самый лучший способ научиться делать хорошо - работать с теми, кто лучше вас. Это конечно может быть сложно, но это будет в десятки раз продуктивнее, чем развиваться самому.