С чего лучше начать погружение в веб-программирование?
Задача простая — на примере простого сайта (что-нибудь вроде чата, коллективного блога без модерации и т.д.) ознакомиться с основами веб-программирования.
Как я понимаю нужны знания html (основа), css (для того, чтобы сайт лучше выглядел), JavaScript (для клиентской части) и конечно какого-нибудь языка для серверной части (PHP + Apache, JavaScript + Node.js, Python + Django, Ruby + Rails), возможно еще понадобится знание какой-либо СУБД.
С чего начать, какой язык программирования выбрать, какую книгу (с плавным мягким введением и разжевыванием) почитать?
Оценить 1 комментарий
Т.к. все рекомендуют рельсы, действительно начну с них (по-пути разбираясь с js, html и css). Всем спасибо, если есть еще варианты, пишите.
Спасибо, еще хотелось бы полное решение (книгу, набор статей) с помощью которых можно было бы пройти весь путь с нуля и до простого рабочего сайта.
Если вы здесь сделаете Web Fundamentals, JavaScript и jQuery, то этого уже почти будет достаточно для фронта. Затем посмотрите, что вам ближе со стороны бэка. Я лично работаю с PHP, но это потому, что так жизнь сложилась 🙂 По PHP, например, хорошие статье на php.su. По RubyOnRails я бы советовал «Изучение Rails на Примерах» Майкл Хартла (online). Книг столько много, что я, правда, даже не знаю, что именно посоветовать. Лично я больше понимаю, когда делаю, гугля какие-то отдельные логические блоки, если надо. Думаю, ниже вам напишут что-нибудь полезное 🙂
Хорошо, по каждому языку и фреймворку собралась база статей, но конкретно вы с чего бы посоветовали начать изучение? Точнее с какого языка? PHP, Ruby, Python?
Я бы не советовал начинать изучать PHP. У него очень много проблем. Почитайте PHP: фрактал плохого дизайна, в статье эта тема раскрыта наиболее полно.
Лучше брать Ruby + Ruby on Rails либо Python + Django. Как рубист, я ратую за RoR. 🙂 Почему? Уж очень красивый и мощный фреймворк. К тому же в версии 3.2 появились такие крутые штуки как CoffeeScript и Sass и работать с ними одно удовольствие!
Изучать надо то, что принесёт прибыль. Ruby слишком специфичен для веба, Python тоже. А статья по ссылке просто факап человека, который ищет только плохое.
Как раз таки PHP специфичен для веба, в отличие от Python & Ruby. Тот же питон — популярный скриптовый язык.
И да, пхп кодеров, простите, как грязи, и нужно ещё найти действительно хорошего среди них:) В плане прибыли — зарплаты у рубистов вообще самые высокие.
Если вам вдруг интересен Ruby on Rails, то я могу посоветовать отличную бесплатную книжку: Ruby on Rails Tutorial по-русски (описывает Rails 3.0).
Если все хорошо с английским, то есть свежая английская версия по Rails 3.2
Книжка хороша тем, что все разжевывает и рассказывает о куче нужных технологий: git, тестирование и прочее. Мне в свое время очень помогла! Кроме того, в ней вы постепенно будете создавать небольшой сайт, по шагам. Очень рекомендую.
По мере изучения книжки можно подглядывать сюда: htmlbook.ru. На этом сайте есть туториалы по html, css + справочник по ним же.
Конечно, и язык и фреймворк мне интересны (Ruby даже уже знаю на базовом уровне), обязательно займусь изучением, даже если начать решу с другого языка.
А вообще PHP хорошо подойдет для изучения основ веб-программирования, или лучше выбрать другой язык для начала?
Вам же советуют, начинайте с рельс 🙂
Если уж совсем боязно, то с Sinatra.
Не верьте им, они банально завлекают вас в свою религиозную секту 🙂
RoR Как и Джанго несомненно отличные продукты, но засилия их у хостеров как то не наблюдается.
Ну я не привередлив, меня интересует, с чего проще будет начать, чтобы после получения достаточного количества знаний и опыта я был в состоянии сам видеть плюсы конкретных решений и исходя из них выбирать нужное.
Ruby On Rails
Мощный, удобный фреймворк с большой экосистемой и отличный язык.
В качестве книги советую Язык программирования Ruby, Флэнаган Д., Мацумото Ю.
IDE — RubyMine (попробуйте сидеть на бесплатном EAP). Если больше привыкли к текстовым редакторам, то попробуйте SublimeText 2.
После какого-то момента, вам надоест писать на гольном HTML’e, в качестве темплейтера советую Slim. То же самое для CSS — Sass & Bourbon, и CoffeeScript как надстройка над жаваскриптом.
Если ничего не имеете против noSQL решений, попробуйте MongoDB вместе с Mongoid ORM.
Зарегистрируйтесь на stackoverflow.com/, спрашивайте если что не так. Заведите аккаунт на GitHub’e.
Вставлю свои 5 копеек по книжкам и ресурсам:
HTML + CSS: htmlbook.ru (там есть неплохие учебники/практики и собственно хороший справочник);
JavaScript: JavaScript Guide, по jQuery достаточно оф.сайта;
PHP: Дмитрий Котеров, Алексей Костарев «PHP 5» (там же базово неплохо рассказано об устройстве и принципах работы интернета, что полезно для понимая процесса, и о БД, в частности MySQL), остальное добивается оф.сайтом;
Python: Г. Россум, Ф.Л.Дж. Дрейк, Д.С. Откидач «Язык программирования Python» (вроде как эта «книжка» на оф.сайте в виде документации и есть);
Django: Django Book.
Я начал с конца, с джанги, с написания приложений. Для меня по-другому не работает, мне нужно сначала что-то интересное, что-то, что зацепит и подсадит. Если бы я начал сразу с языка, то бросил бы уже через день. У всех есть какие-нибудь базовые знания: бейсик, паскаль или что-нибудь подобное. Для того, чтобы начать работать с питоном больше ничего не надо.
Сделайте первое приложение, да хотя бы туториал из доки, и когда «вот оно работает, я сам, сааааам сделал!» будет уже не оторвать. Потом появятся вопросы, что за def foo(), зачем self в таких штуках — будете гуглить и параллельно улучшать свои первые работы и пробовать новые. Затем захочется понимать все это, тогда я рекомендую вам Лутца — читается как детектив.
Короче, для себя я решил так: вначале, нет смысла читать что-то заранее — не удержится, когда потребуется, найдете «это» и оно закрепится в голове за событием и опытом. Так по-тихому найдете sql, работу с mysql, затем сделайте первый сайт; будете искать поисковик, поработаете с sphinxsearch, whoosh, solr или elasticsearch; заинтересуетесь вопросами кеширования; полезете в сорцы других проектов; переболеете nosql, начиная от memcached и заканчивая mongodb. Сейчас, вот, мне нужен postgresql и только поэтому я его изучаю — и запоминаю я только потому-что мне это «надо». Хотя, возможно, это очень плохой совет.
И да, разработка это fun — с этим вряд ли будет кто-то спорить 🙂
Тут такое дело, и питон и руби я уже знаю, так что в основном вопрос наличия литературы с подробными объяснениями, где меня за ручку проведут от «никогда не пробовал программировать для веб» до «написал пару простых сайтов для веб».
Как правильно выстроить процесс изучения Web-программирования «с нуля»?
Доброго времени суток. Очень хотелось бы узнать ответ на данный вопрос. С чего начинается изучение веб-программирования? Что и в каком порядке изучать, чтобы достичь хороших результатов? Много информации в интернете, но часто разнится. Хотелось бы как-то структурировать знания, накопленные за годы работ. Например, много где читал, что веб-прог нужно начинать изучать с алгоритмов и структур данных, или с введения в дискретную математику. А что изучать дальше? Или еще и до алгоритмов было бы желательно что-то изучить?
Помогите составить более-менее понятный, пошаговый план. Какую информацию и в какой последовательности лучше поглощать, чтобы в голове не было каши и мешанины из ненужного, но при этом понимать все, начиная с самых азов?
1) Освой html + css, научись верстать Простые странички у себя на компьютере.
2) Освой серверный язык, например php. Организуй простой обмен данными между страничкой и сервером.
3) Познакомься с mysql. Научись записывать и выводить данные, отправленные со странички.
4) .
5) Profit
Эта связка была актуальна много лет назад, но она очень проста в освоении. Научись делать те простые вещи, которые я указал в каждом пункте и тогда поймешь что тебе надо учить и в какую сторону копать.
php не нужно учить, javascript-а достаточно для всего. Вот когда в JS окрепнет — можно будет смотреть на другие языки.
Nwton: не для новичков языки вроде Haskell, а нода вполне себе норм. Как похапэшник говорю)
Да и почему вообще чуваку сразу бэкэнд изучать? Вдруг его на UI-ку тянет, а так он будет знать один язык, не будет распыляться, а принципы они одинаковые будут. Да и вот честно, на данный момент нода будет перспективнее для новичков. Да, PHP это прикольно, сам на нем пишу 80% времени. Вот только для задач в духе бложик написать или там апишечку нода хорошо подходит.
Nwton: спасибо большое за ответ, а как же быть со всякими книгами, которые советуют новичкам, до того как начинать изучать языки? нашел информацию в интернете, что прежде, чем изучать само программирование, нужно прочитать книги по алгоритмам, или по правилам написания кода, вроде «совершенный код» и т.д. говорят, они закладывают азы для дальнейшего понимания материала.
простите за еще один вопрос 🙂 просто хотелось бы начать изучение досконально, чтобы постепенно усваивать материал 🙂
nokitsune: вам еще рано читать. Начните с практики.
Вы должны получить общее представление о том как работают web сайты. У вас в голове сформируется пустой каркас, структура, на которую можно будет наложить знания из литературы и научных статей. До появления такого каркаса, вся информация будет усваиваться в виде бесполезной, бесформенной каши.
падавану юному свободно говорить для начала надо на основных языках веб-программирования — js css html
учебник Фленагана надо полностью переварить
и php немного — основные серверные функции для работы с папками и файлами
или лучше — изучить api node.js — и делать сервер на js
php хорош тем что он простой как js и везде есть
node.js во всем превосходит php
написать в процессе учебы надо свое простое клиент-серверное приложение — чат, блог, форум и тд
без использования чужого кода, библиотек и шаблонов-фреймворков
клиент толстый — сервер тонкий
офлайн и мобайл фирст однако
неизбежно после этого обретешь просветление
и веб-мастером станешь — инженером-программистом
или даже джедаем или нинзей
и есть другой путь — темная сторона программирования:
работа по чужому готовому шаблону-фреймворку
неспособность делать нужный функционал самостоятельно
постоянное гугление готовых решений
легкая заменяемость программиста
офисное или фриланс страдание
депрессия и уныние
//а самые ленивые становятся верстальщиками-недопрограммистами))