• Какие книги читать для изучения CSS3/HTML5/JS с нуля?

    Xalon
    @Xalon
    Хочу заметить, что возможности более ранних версий HTML4 и CSS2, были включены в версии HTML5 и CSS3. Хотя и есть некоторые изменения, авторы книг обычно об этом упоминают.
    На первых четырех этапах изучения, необходимо проделывать тоже, что и автор (установка текстового редактора, написание тегов, стилей и тд) и париться о чем-то более сложном не стоит.
    Мой алгоритм изучения, имеет следующий порядок:
    1) Прочесть книгу Мэтью Макдональда "Веб-разработка. Исчерпывающее руководство" 4 издание. По данной книге можно получить общее представление о HTML, CSS, JavaScript и других интересных моментах как, публикация/продвижение/монетизаци сайта, привлечение посетителей и ведение блога.

    2) Посмотреть бесплатные курсы HTML4 и CSS2 Евгения Попова (курсам почти 10 лет, но они все еще актуальны, ибо все что в них рассматривается, используется на практике):
    - курс по HTML
    - курс по CSS

    3) Теперь можно перейти к более детальному рассмотрению HTML5 и CSS3. И начать изучение я рекомендую именно с CSS3, так как большая часть возможностей HTML5 с уклоном на JavaScript. На этом этапе рекомендую книгу Дэвида Макфарланда "Новая большая книга CSS". В сети можно встретить книгу с названием "Большая книга CSS" от того же автора, но это предыдущее издание, нужна именно та, которая идет с припиской "Новая". Кроме основных возможностей CSS, книга познакомит с адаптивной версткой и препроцессором Sass/SCSS.
    В данной книге рассматривается три способа верстки:
    - с использованием float + margin
    - более современный - Flexbox CSS
    - модульная верстка, на примере сетки Skeleton (хотя способы верстки с использованием сетки Bootstrap и СSS Grid в книге не рассматриваются, принцип работы у них одинаков)

    4) Теперь можно переходить к HTML5. К прочтению рекомендую следующие книги:
    - Мэтью Мак-Дональд "HTML5. Недостающее руководство"
    - Шмитт, Симпсон "HTML5. Рецепты программирования"
    Данные книги познакомят не только с изменениями в синтаксисе и семантике HTML5, но с новыми возможностями:
    - формы 2.0
    - добавление HTML5 аудио/видео
    - работа с canvas
    - геолокация
    - добавление в разметку микроданных
    - использование ARIA
    - локальное хранилище (sessionStorage)
    - автономные приложения (appcache)
    - Веб-сокеты (WebSoket)
    - и тд

    5) Теперь у нас есть общее представление о тегах, стилях, текстовых редакторах, о том как это работает и взаимосвязано между собой, что можно, а что нельзя делать. Пора приступать к практике. Нужно сверстать хотя бы 2-3 страницы из готовых макетов. Теперь по порядку, что нужно сделать:
    а) Установить текстовый редактор и настроить его под себя (Notepad++, Sublime Text, Atom, Brackets и тд). На первых этапах подойдет Notepad++, в дальнейшем стоит перейти на что-то более функциональное. Так же рекомендую установить плагин Emmet для Notepad++ и ознакомиться как он работает.
    б) Установить основные браузеры, для тестирования верстки (с IE по начало можно не заморачиваться)
    в) Установить графический редактор, для открытия готовых макетов (Photoshop, Figma, Avocode, Sketch). На первых порах использовать Photoshop.
    г) На первых порах сделать простенькую заготовку для верстки (структуру папок, где будут размещаться стили картинки, скрипты и один файл index.html). В дальнейшем стоит обратить внимание на HTML5 Boilerplate, ну а дальше на Gulp и Webpack
    д) Скачать готовые бесплатные psd-макеты
    г) Сверстать макеты тремя разными способами:
    - float+ margin
    - flexbox
    - bootstrap или CSS Grid
    е) Ну а теперь находим свежий видеоурок на Youtube, где автор верстает тем или иным способом, смотрим и повторяем. В качестве справочников использовать сайты:
    - htmlbook.ru
    - webref.ru
    - caniuse.com

    6) В дальнейшем по мере приобретения опыта, всегда будет хотеться упростить задачу или сделать процесс верстки комфортным, в этом случае нужно смотреть в сторону:
    - gulp, webpack
    - IDE для разработки, н-р, WebStorm
    - препроцессоры HTML (HAML, Pug), препроцессоры CSS (Sass, Less, Stylus)
    - git
    - именование классов CSS
    - среды для тестирования
    - тд

    7) Переходим к JavaScript. Книг конечно много, но я выделю следующие.
    Книги на начальном этапе:
    - Дэвид Макфарланд "JavaScript и jQuery. Исчерпывающее руководство"
    - Фримен Эрик, Робсон Элизабет "Изучаем программирование на JavaScript"
    Книги для углубленного изучения:
    - Онлайн учебник, в том году обновилась информация
    - Дэвид Флэнаган "JavaScript. Подробное руководство"
    - Хавербеке Марейн "Выразительный JavaScript. Современное веб-программирование"

    8) Переходим на практику, как и в случае с HTML и CSS. Как вариант можно добавить динамичности в сверстанные страницы. Написать простенькую игру, н-р, змейка. Или же найти сайт с задачками, необязательно по JavaScript. Как вариант можно воспользоваться сайтом CodeWars

    9) Так же как и в случае с HTML и CSS, по мере приобретения опыта, всегда будет хотеться упростить задачу или сделать процесс верстки/разработки комфортным, в этом случае нужно смотреть в сторону:
    - библиотек (jquery, backbone.js и тд)
    - фреймворков (React, Vue, Angular)
    - Coffeescript, TypeScript
    - средства тестирования (н-р: Mocha JS)
    - средства документирования (н-р: JSDoc)
    - средства проверки кода (н-р: JSLint)
    - и тд
    Ответ написан
    Комментировать
  • Как составить план развития для сильного разработчика?

    @majstar_Zubr
    C++, C#, gamedev
    Мы все идём разными дорогами, и обычно, если смотреть вперёд, то всегда видны разные пути.
    Обычно, хватает того, что вы смотрите вперёд и пытаетесь пройти по всем путям, что вы сможете увидеть. Появилась новая технология, решающая не новую проблема - и открылся не один путь, а множество, потому что кроме разработки есть ещё в частности, проблема интеграции новых решений и devops, в который погружаться советую всем.

    По большому счету есть две дороги: дорога самурая и дорога сёгуна.

    У самурая нет цели и есть только путь. Этот путь может вести вглубь технологии, к истокам её проектирования, к особенностям её устройства. Но путь может быть извилистым. Так же этот путь может вести в смежные вопросы, где технология имеет несколько иное воплощение. Всегда есть несколько способов и инструментов решения одной проблемы, пускай же идущий путем самурая изучит их все. Пишите в стеке Node.js+Typescript, но не было случая, когда нужно было узкие места оптимизировать на C++ - и вот вам ещё один непройденный путь. Но ведь модно было бы и на Rust. И на C. Или заменить целый модуль с узким местом, которое переписывалось на Net core. Может быть ещё и заменить часть фронта с Blazor? А какие проблемы в процессе могу возникнуть?

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

    Чтобы идти дорогой сёгуна, нужно отринуть рамки привычного мира самурая и обрести цель. Эта цель должна быть перевоплощением в новое существование. Идущий путем сёгуна должен идти в гору до самого солнца, и с каждой новой вершиной будет открываться перспектива и сотни путей, но сегун по ним не будет ходить. Его путь состоит в том, что сегун видит перспективу, с высоты ему видна иная сторона горизонта и весь рисунок путей. Ему видно, как пути, словно реки, сливаются в дороги, многие из которых ведут к обрывам и тупикам. Дорога сёгуна должна привести его в к смыслу. Возможно, это открытие своего коммерческого предприятия, или же это (F)OSS, или же должность сёгуна-тимлида, или же менеджера, имеющего цели стать часть руководства текущей компании.

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

    @mkone112
    Начинающий питонист.
    Насколько я знаю, у людей с техническим образованием другой стиль мышления.

    Откуда ты это знаешь?
    чтобы понять, как мыслит программист и как решает задачи?

    Чтобы уметь решать задачи - нужно решать задачи. Чтобы уметь мыслить - нужно почаще мыслить.
    Ответ написан
    2 комментария