Как бы вы научили веб-разработке?

Я ведущий преподаватель интернет-курсов, связанных с интернетом, в частном учебном заведении средней школы. Мои текущие классы включают введение в HTTP, TCP/IP, (X) HTML/CSS/JavaScript и общий SQL. В следующем году мы будем работать в основном с PHP/Java. Что, на ваш взгляд, является наиболее важными аспектами развития Интернета в отличие от традиционного развития и каково должно быть основное внимание моих лекций?

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

Имейте в виду, что мне посчастливилось иметь дело с талантливыми и умеренно мотивированными людьми.

Ответ 1

Наиболее важные аспекты веб-разработки:

  • Где этот код работает? (Клиент против сервера программирования - как многие говорили)
  • Кто собирается это использовать? (Знайте свою аудиторию - почему они на вашем сайте/приложении).
  • Как играть красиво (авторские права, стандарты, идеи заимствований и кража).
  • Как быть находчивым (библиотеки кода, поиск google и stackoverflow)

Основной фокус лекций

Я твердо верим в контекстуальное обучение. Позвольте им выбрать проект с границами и руководящими принципами, которые будут использовать концепции, которые вы хотите получить. Можно провести весь день синтаксиса и концепций, но реальное обучение выполняется, когда вы пытаетесь решить проблему. У них также будет больше удовольствия.

Резюме

Лекция по Как (XHTML, CSS, JS и т.д.), но только в контексте Кто, Что и Почему.

Ответ 2

На мой взгляд, самое главное - научить разницу между серверным и клиентским программированием, и когда вы будете использовать один над другим. Я так удивлен количеством новых выпускников, которые не понимают разницы.

Ответ 3

IMHO, самая сложная концепция в веб-разработке - это состояние и способы ее поддержания.

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

Ответ 4

Для интерфейсной веб-разработки ((X) HTML/CSS/JavaScript) попробуйте Программу веб-стандартов Opera, которая:

принимает студентов от полного новичка к твердому заземлению в основанный на стандартах веб-дизайн, включая Разработка HTML, CSS и JavaScript.

Ответ 5

Я верю в вдохновение. Как новый веб-разработчик, мне было очень сложно сделать мои сайты полезными, привлекательными и хорошо закодированными. Я нашел вдохновение в внешних ресурсах, таких как Nettuts и Smashing Magazine. Эти веб-сайты действительно открыли мне все возможности, которые я действительно мог изучить и использовать в своих проектах/кодировании.

Ответ 6

Хорошо, если вы просите мнения....

Пожалуйста, научите их:

  • сам документирующий код.
  • разница между клиентом и сервером
  • проверка данных
  • Безопасность

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

Ответ 7

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

После этого я бы научил их основам программирования клиентского сервера, HTTP-протоколу и некоторому базовому веб-программированию (PHP и javascript было бы достаточно). Если будет достаточно времени, я бы показал им основы программирования Java EE и различия между ними и PHP.

Также рассмотрите некоторые из более продвинутых материалов, таких как MVC для Интернета (с использованием JSF) и javascript-библиотек (JQuery). Я бы также научил их объектам доступа к данным и постоянным объектам.

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

Ответ 8

Имейте в виду, что веб-программирование - это беспорядок, и ваша задача - обеспечить не просто свет в конце туннеля, а сам туннель. Я бы расширил ответ AaronS:

  • Разница между клиентом и сервером.
  • Веб-приложения работают через сеть, все, что подразумевает.
  • Существует несколько способов сделать это. Squared.

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

Ответ 9

Если у вас есть группа мотивированных людей, то я предлагаю сосредоточиться на создании полного веб-приложения с нуля, я имею в виду, из самого вызова требований.

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

Затем вы можете ввести тогда такую ​​методологию, как экстремальное программирование или любое другое, что вам нравится. Я бы предложил гибкий вариант, потому что он обеспечит более быстрые результаты и не будет слишком скучным, кроме того, рынок, похоже, смещается в пользу них.

Теперь, касаясь самого веб-разработки, очень важно заставить людей понять потребность в веб-стандартах и ​​как ошибочные вещи могут идти, когда они не соблюдаются (IE6)

Понятно, что им будет ясно, что в веб-разработке большую часть времени вам приходится иметь дело с различиями на платформах, на которых будут отображаться их приложения, и научить их реальным методам как ненавязчивый javascript и прогрессивное улучшение.

Что касается серверной части уравнения, я считаю важным обеспечить использование шаблонов (MVC является обязательным), повторное использование кода и все обычные методы разработки. И убедитесь, что они понимают, что сам HTTP является протоколом без учета состояния и как важно обрабатывать куки файлы и сеансы ответственным образом, здесь важно убедиться, что они понимают различия между сервером и клиентской стороной.

Кроме того, покрытие верхней части OWASP 10 (по крайней мере) является обязательным, последняя версия доступна по адресу: http://www.owasp.org/index.php/Top_10_2007 p >

Некоторые ссылки: http://www.quirksmode.org/blog/archives/2005/06/three_javascrip_1.html http://dowebsitesneedtolookexactlythesameineverybrowser.com/ http://forabeautifulweb.com/blog http://www.alistapart.com/ http://www.owasp.org/index.php/Top_10_2007

Ответ 10

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

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

Эти два фактора вместе, для меня, - это то, почему такие языки, как PHP, часто получают плохую репутацию.

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

Если они действительно талантливы и мотивированы, научите их реальному программированию некоторыми веб-манифестациями (например, используйте сервлеты Java) и оставите все сценарии для них, чтобы учиться в свободное время. Хороший учитель неоценим для создания хороших инженерных навыков, поэтому используйте свое время там, где это важно.

Ответ 11

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

Было бы неплохо, если бы вы сказали нам, какие люди с каким фоном вы получаете.

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

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

Ответ 13

Для части программирования я предлагаю вам начать с самого низкого уровня/самой базовой концепции, которую вы можете придумать. Первое, что бросается в голову, - это HTML. Вы можете убедиться, что учащиеся понимают HTML (и разметку в целом) и свой основной синтаксис. Я думаю, что начиная с HTML-кода с ручной кодировкой, они также будут благодарны за некоторые из замечательных инструментов, которые помогут вам генерировать HTML или другой код.

После этого вы можете использовать некоторые инструменты и технологии, связанные с HTML, такие как CSS, JavaScript и AJAX.

Как только клиентская сторона будет покрыта, и эти концепции будут конкретны в их умах, вы можете перейти на скрипты/программирование на стороне сервера. Большинство языков на стороне сервера просто выделяют HTML, CSS, JavaScript и т.д. В браузер, поэтому понимание этих вещей в первую очередь необходимо.

Наконец, начните говорить об использовании своих новых знаний для создания приложений, которые общаются с другими системами (базами данных, веб-сервисами и т.д.). Как только все эти основы будут на месте, вы, вероятно, закончите с классом, но тогда они будут готовы к уровню 200, правильно?

Ответ 14

Мне нравится ответ о различии между программированием на стороне клиента и сервером. Поскольку вы обучаете талантливых/мотивированных студентов, я думаю, что теоретическое обсуждение архитектуры MVC (Model View Controller) может быть в порядке. Как он был первоначально разработан для настольных приложений, и в этом случае необходимо было внедрить систему, которая слушала события, чтобы иметь возможность сохранять все грани представления синхронизированы с состоянием модели по мере ее изменения. Но в рамках веб-парадигмы код слушателя предоставляется вам бесплатно в виде веб-сервера, а запрос - это событие. И поэтому MVC для Интернета, по крайней мере, в отношении взаимодействия между клиентом и сервером, должен быть менее сложным, при этом контроллер просто посредничает между клиентом и сервером.

Это, конечно, до появления Аякса. Когда теперь уместно реализовать код слушателя на стороне клиента с помощью Javascript, чтобы иметь возможность синхронизировать виджеты.

Я наркоман MVC, поэтому возьмите что-нибудь полезное из этого. Ваш пробег может отличаться, но я считаю, что материал на MVC определенно оправдан.

Удачи.

Ответ 15

Это тоже очень ориентированный интерфейс... но я подумал, что это отличный пост.

http://veerle.duoh.com/blog/comments/teach_the_web_right/

[Изменить] Она упоминает учебную программу Web-стандартов Opera, как упоминалось в предыдущих статьях, но она также упоминает учебную программу WaSP InterAct Curriculum. Кажется, что он все еще очень продвигается, но у него уже есть отличные ресурсы и ссылки.

Ответ 16

Поскольку вы попадаете в серверную часть, я настоятельно рекомендую пересмотреть некоторые основные требования безопасности приложений. Сохранение актуальных и исправленных приложений (Wordpress, PHPBB и т.д.) До фактических атак, таких как SQL Injection и межсайтовый скриптинг.

Поскольку кажется, что вы учите их с нуля, у вас есть отличная возможность произвести на них впечатление важности фильтрации входных данных и выхода, законной аутентификации пользователей и других лучших практик.

Ответ 17

Ориентируясь на "В следующем году мы будем работать в основном с PHP/Java". Я сосредоточусь на Java, поскольку я мало знаю о PHP.

  • Получите модель правильно. Создайте модель, используйте ORM, чтобы это работало разумно. Это очень многоразовый материал. Это основа приложения. Если это не так, остальное быстро станет беспорядком.

  • Получить представление шаблона правильно. JSP не должен делать слишком много (они могут, но не должны). Это должно иметь любую причудливую обработку - это либо проблема модели, либо проблема класса действия.

  • Вязать вместе с классами действий Struts и Java Beans, которые имеют смысл в домене, для которого вы строите решение.

  • Добавить CSS/JavaScript, а что - не после всего - по существу - работает. Никакое количество JavaScript не может исправить принципиально ошибочную модель.

Основные проблемы технологии (XML, HTML, SQL и т.д.) важны, но не являются центральными. Трудно пропустить, но вам нужно пропустить.

SQL, ORM, Java.

HTML, JSP, далее Java.

Struts, классы действий и т.д. и далее Java.

Я думаю, что значительная часть основных проблем, связанных с навыками, должна быть освещена в режиме "точно в срок". Если вы тратите слишком много времени на основы HTML, CSS и SQL, никто не строит ничего полезного.