Карьера веб программиста

Рейтинг: 0Ответов: 3Опубликовано: 11.03.2011

Доброго времени суток!

Я занимаюсь сервисным обслуживанием и системным администрированием ОС и серверов. Год назад обдумав все "За" и "Против" появилось огромное желание получить карьеру веб программиста. Выбрал для себя нужные языки, технологии и вид базы данных с которой хочу работать, отталкиваясь от приоритетов и интересов. HTML, CSS, PHP, MySQL, дополнительно еще в будущем планирую XHTML, JS, many Frameworks, может ещё XML и AJAX. Есть еще хорошие технологии, но ими не стал засорять список, это всё потом. Просто хочется хорошо писать движки, скрипты, верстать сайты и создавать веб проекты.
Вопрос первый:

  1. Как критично мне нужно математическое образование для этого, или можно обойтись и без него?
  2. Нужны ли мне основы программирования, под тип информации из книг:
    Гласс - Факты и заблуждения профессионального программирования
    Константин - Человеческий фактор в программировании
    Ставровский - Первые шаги в программировании
    Лесневский - Объектно-ориентированное программирование для начинающих
    Спольски - Джоэл о программировании
    Макконнелл - Профессиональная разработка программного обеспечения
    Макконнелл - Совершенный код
    Непейвода - Основания программирования
    Одинцов - Профессиональное программирование Системный подход
    Сегаран - Программируем коллективный разум
    Аберсон - Структура и интерпретация компьютерных программ
    Кнут - Исскуство программирования.т.1,2,3
    Лавров - Программирование Математические основы, средства, теория
    Решетняк - Курс математического анализа
    Хаггарти - Дискретная математика для программистов
    ???
  3. Я уже выбрал из множества книг, по одной лучшей на мой взгляд, на каждый язык и технологию. Вот их список:
    Комолова - Самоучитель HTML
    Бадд - Мастерская CSS
    Колисниченко - Самоучитель PHP 5
    Наварро - XHTML Учебный курс
    Харрис - PHP и MySQL для начинающих
    Хабибуллин - Самоучитель XML
    Флэнаган - JavaScript. Подробное руководство
    Маклафлин - Изучаем AJAX

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

Заранее большое спасибо!

P.S. Добавлю ещё, что сам веб кодинг для меня в первую очередь нужен в личных целях, для личных проектов, а почему я хочу побольше советов и информации, не заходящих только лишь за рамки веб кодинга потому, что чем больше я буду знать, тем лучше смогу реализовать свою идею проекта. Поэтому буду безумно рад личному мнению каждого человека по сабжу!

Ответы

▲ 4

Есть такая книга - "К черту все! Берись и делай!" Автор - Ричард Брэнсон. Советую почитать, хорошо мотивирует. Главное начать, а необходимые знания получишь в "боевых условиях". Когда устраивался на работу в веб-студию, мне директор сразу предложил взяться за серьезные проекты. Когда я начал сомневаться, он сказал: "Пока ты не забьешь свой первый гвоздь, ты никогда не научишься его забивать". Т.е. он имел ввиду, пока я не начну практиковаться, я никогда не освою веб-программирование. И это верно

▲ 2

Не нужно перегружаться теорией. Я бы посоветовал изучить основы и приступать к реализации своей идеи. В процессе жизнь поставит множество вопросов, которые нужно будет исследовать. Такое обучение интереснее и эффективнее. Единственное нужно приступать со здоровой долей перфектционицма: изучать не только, как быстрее это сделать, но и более правильно, оптимально. Быть готовым к переписыванию одного кода несколько раз. Бывает процессе изучения появляется желание изучить какую-то смежную тему, не нужно себе отказывать, возможно, появится идея как это использовать. Следуйте за своим интересом, но и про проект не забывайте. Минус подхода - плохая системность знаний, но это наверстывается чтением книг, уже будучи более сведущим, либо реализации нескольких проектов. Удачи.

▲ 1

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

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

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

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

Делайте ошибки, чем больше вы их сделаете, тем больше узнаете, иначе - никак.

Чтобы писать хорошие веб-приложения необходимо знать не только, как это делать, необходимо знать не мало и разбираться в аспектах безопасности.

MySQL это СУБД, знать нужно не просто эту СУБД, необходимо иметь представление о языке, на котором с ней общаться. Запросы, оптимизация запросов, все это тоже приходит с ошибками и тестами. Не говоря о том, что смотреть исключительно на данную СУБД я бы уже не рекомендовал, на подходе, к сожалению, с опозданием к нам, множество новых технологий.

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