vldud: понял, тогда советую ещё на React.js посмотреть. Не в плане, что он такой же, а просто, как там устроены эти вещи. Достаточно забавно, на мой взгляд)
Flexie.js всё равно работает со старым синтаксисом флексбокса. Для нового синтаксиса мне ничего найти не удалось (искал примерно месяца 3 назад). Мне кажется, что поддерживать флекс на IE8 — это безумие. Ну IE9 я ещё понимаю.
Чтобы стать полноценным программистом, пусть изучит ещё 3-5 языков. Желательно достаточно разных. Скажем, Python, Java и PHP.
Может показаться, что это не нужно, чтобы стать полноценным программистом именно на Javascript, но на самом деле только так можно разобраться в основах языка, и почему он работает тем или иным образом.
К примеру, понять, чем прототипно-ориентированное программирование отличается от объектно-ориентированного, изучить различные структуры данных и паттерны проектирования именно в алгоритмическом смысле, а не тупо их копипастить.
Павел Инки: isqua прав. Я вот изучил вначале jQuery, и сейчас даже жалею об этом. Хотя со временем разница в порядке изучения стала для меня незаметной.
JS лучше изучить вначале потому, что jQuery расхолаживает. В нём слишком легко делать сложные вещи. Причём новички часто делают их неправильно, просто не понимая половины того, что делают. И оно кое-как, криво, но работает, а они радуются и продолжают делать всё более неправильно, и... в общем, примерно так появляются быдлокодеры :)
Самый банальный пример — это выборка элементов по селектору. Есть у нас некий код, который делает много разных действий, например, со всеми ссылками, находящимися внутри списков. И человек пишет:
А это, по сути, означает, что jQuery аж три раза проходит по всему документу и находит нам эти ссылки в списках. Понимающий это программист сразу бы сохранил выборку элемента в переменную, и уже над ней производил действия (а хорошо понимающий программист ещё и сделал бы выборку по id или классу, а не по имени тега):
var $links = $('ul a');
$links.hide();
$links.css({...});
$links.show();
И код выглядит нагляднее, и работает быстрее, и поддерживать проще (например, если у нас ссылки внезапно поменялись на span).
И таких тонких моментов достаточно много. А при изучении JS человек с куда большей вероятностью начнёт всё это понимать на раннем этапе.
Novitsky: кстати, это очень странно. Баг достаточно серьёзный, и удивительно, что вопрос о нём практически нигде не обсуждался. По сути, это первое место, где я вижу его обсуждение.
Похожая ситуация у меня была с line-height. Я в какой-то момент обнаружил, что в Firefox текст в строке рендерится часто на пиксел выше, чем в других браузерах. Видимо, из-за округления. И пока я не нашёл хоть какую-то информацию про это, у меня было ощущение, что я что-то делаю неправильно и не по стандарту, поэтому так получается. А дизайнерам, между тем, очень хотелось, чтобы верх строки идеально совпадал с верхом картинки в абзаце во всех браузерах :)
Novitsky: я обматерил всё, что мог, когда на неё наткнулся и пытался решить. И, что характерно, времени с тех пор прошло достаточно много, а проблема так и не решена.
Novitsky: а CorelDRAW не стоит разве? Adobe сейчас весь по подписке, и стоит не запредельно много. Скажем так, если это один из основных инструментов для работы, то можно себе позволить.
Александр: ну тогда сделайте предложенный мной вариант с классами. Их же вы добавлять можете? Т.е. id вообще не трогайте, а задавайте у элементов соответствующие классы, типа class="item item3 action".
Значит, вам нужно нанять киллера и устранить человека, который разработал страницу с повторяющимися id.
Если у вас есть возможность добавлять классы, можете вместо id использовать классы и задавать их элементам в качестве уникального идентификатора, например, $(".item1").removeClass("action");
Это будет не очень правильно, но, если одинаковые id убрать нельзя, то можно решить задачу так.
По поводу оформления кода всё давно известно: habrahabr.ru/post/143452 только вот многие этим пренебрегают, а другие потом расхлёбывают. P.S. Гайды от гугла это не панацея от всех бед, а просто пример свода правил для читаемого кода.
Вы про адаптивные сайты что ли? От часов до телевизоров конечно делают, но чаще, по-моему, берётся всё-таки более маленький диапазон. И адаптив делается не слишком сложно, если грамотно и по принципу mobile first нарисованы макеты. Но гораздо дольше обычного сайта, это да.
Плюс под мобильную разработку есть всякие свои приколы, вроде того, что position: fixed лучше заменять на js + translate, всяких там двойных кликов на айфоне и svg-иконок для ретины.
Но прежде чем браться за адаптив, надо, конечно, хорошо изучить десктопную вёрстку, как фикс, так и резиновую. Особенно резиновую, без её знания в адаптив лучше не соваться вообще.
В чужом коде обычно путаешься, если он ужасно написан. Проще всего в чужом коде разбираться с помощью devtools браузера. Сразу видно, где какие свойства применены и на какой строке файла их искать, да и поиграться с ними можно, подогнать что-то.
Это из-за свойства $.browser, которое deprecated, и было полностью уничтожено в новых версиях jQuery. Видимо, в jquery.tools оно используется. Ну, уже не имеет значения, раз всё заработало.