0

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

Я занимаюсь сервисным обслуживанием и системным администрированием ОС и серверов. Год назад обдумав все "За" и "Против" появилось огромное желание получить карьеру веб программиста. Выбрал для себя нужные языки, технологии и вид базы данных с которой хочу работать, отталкиваясь от приоритетов и интересов. 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. Добавлю ещё, что сам веб кодинг для меня в первую очередь нужен в личных целях, для личных проектов, а почему я хочу побольше советов и информации, не заходящих только лишь за рамки веб кодинга потому, что чем больше я буду знать, тем лучше смогу реализовать свою идею проекта. Поэтому буду безумно рад личному мнению каждого человека по сабжу!

Nicolas Chabanovsky
  • 51,426
  • 87
  • 267
  • 507
Redline
  • 27
  • 1
  • 6

8 Answers8

4

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

Bandicoot87
  • 579
  • 9
  • 28
  • Спасибо =) Обязательно почитаю эту книгу. Люблю книги на такую тематику =) – Redline Mar 19 '11 at 09:05
2

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

Nicolas Chabanovsky
  • 51,426
  • 87
  • 267
  • 507
miky
  • 21
  • 1
  • Спасибо за ответ. Я думаю можно как прочитать множество книг, имея хорошую память, потом спокойно браться за скрипты и их разбирать, дорабатывать, но у меня память не ахти, поэтому попробую совмещать =) – Redline Mar 11 '11 at 17:30
1

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

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

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

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

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

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

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

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

Nicolas Chabanovsky
  • 51,426
  • 87
  • 267
  • 507
Dex
  • 9,981
  • 3
  • 34
  • 60
  • Спасибо большое за ответ. Вы эту "Хаггарти - Дискретная математика для программистов" книгу имеете ввиду? Я там только пару книг по математике выбрал, которые мне советовали. Кнута я выбрал, ибо как сказал Билл Гейтс (дословно не помню) "Кто читал эти три книги, может спокойно отсылать мне резюме, программист, не читавший Кнута, неполноценный программист". Книга очень хорошая, по моему мнению, но думаю, что рассчитана именно на программистов, а не мелких веб кодеров. MySQL я взял, ибо о ней в перемешку с PHP можно почитать, да и использует её большая часть веб кодеров. – Redline Mar 11 '11 at 22:10
  • У меня есть опыт с ней,серверный. Мне вообще нравится и PostgreSQL ибо с открытым исходным кодом. Просто я стараюсь не быть "белой вороной", поэтому выбираю вещи, которые выберают большая часть разработчиков. В программирование не лезу только из-за математической неграмотности, не хочу сказать что я не логичен, наоборот, даже писал скрипты для ботов, разбирался в них, но по математике всегда минимальная оценка была и я её жутко не любил, а сейчас уже поздно. У меня очень много вопросов и я постоянно думаю, как быть, что делать, чтобы не ошибиться в пути обучения. – Redline Mar 11 '11 at 22:15
  • Я имел ввиду не книгу, а Дискретную математику как таковую, здесь по большому счету не так важно, где вы найдете основы, их, к великой радости, изменить трудно в отличие от кода, а оспорить тем более.

    Не думайте как быть, вы пробуйте, по-моему это лучший способ что-то выбрать. Грабли будут всегда!

    А насчет "мелких веб-кодеров", знания в общем-то никогда лишними не бывают.

    – Dex Mar 11 '11 at 22:41
  • Спасибо. Очень помогли, чем больше я узнаю, тем больше уверен в правильности выбора =) Кстати, я начинал с просмотра видеокурсов по HTML,PHP,CSS,MySQL и т.д. Базовых знаний куча, я уже понял что неправильно делал, но если бы задавал такие вопросы как тут и сейчас, уже был бы не плохим веб кодером =) – Redline Mar 11 '11 at 23:51
  • Кстати, прикол в том, что мне 21 год, заканчиваю уже 5-й курс, дипломирование, а понял, что это не моё уже слишком поздно и потратил кучу время и денег (за которые, можно сказать, купил зачёты и экзамены, включая диплом). Вот теперь всё обучение легло мне на плечи, ни у кого не спросить совета даже, все друзья знают намного меньше меня и теперь я хочу создать проект, над которым мы бы командно работали и одновременно самому надо будет учиться и получать опыт и их учить, а машина сервер не потянет нормальный, так что новое придется придумывать =) – Redline Mar 12 '11 at 01:18
  • Redline, у меня когда-то была очень похожая ситуация на вашу (только я чуть раньше понял, что занялся не тем). После института, когда уже надо работать, остро встает проблема времени. Надо понять, что вы хотите. Если вы хотите работать в этой области, то надо максимум практики именно по веб-программированию; если есть возможность, устройтесь на какую-нибудь работу для получения минимального реального опыта. Если же это будет в качестве хобби, то читайте Хаггарти и Кнута:)(в будущем может быть это и окупится, но нескоро). – alphard Mar 12 '11 at 21:58
  • Вот именно, вы меня поняли, я понял, что хочу работать ТОЛЬКО в области ИТ уже почти в конце 2009 года, с того момента я понял, что времени у меня очень мало, я определился с профессией веб разработчика и уверенно настроен на то, что в скором времени я подымусь вверх по лестнице этой карьеры, но увы, опыт мне придется поглощать только свой и советов людей в интернете, таких как вы, ибо в реальной жизни мне не довелось, к сожалению, встретить ни одного веб разработчика, даже начинающего... – Redline Mar 17 '11 at 00:50
1

Учите. Берите чужой скрипт и пытайтесь в нём разобраться. Меняйте команды и смотрите, что будет. Я так учил веб-программирование

  • Спасибо за ответ. Я кстати тоже так думал делать, собирать скрипты и делать из них конфетку, если скрипт и так конфетка, сделать под себя, если всё устраивает, тогда просто изучить его работу =) – Redline Mar 18 '11 at 20:31
0

Лучше по PHP 5 прочтите книгу Дмитрий Котеров, Алексей Костарев - PHP 5. Тут и PHP5 и MySql сразу в одной книге. И по Javascript могу посоветовать Аллен Вайк в этой книге есть все! Удачи вам в ваших планах!

Perl
  • 141
  • 6
  • Спасибо, но Вы так и не ответили на первый вопрос и разве мне не нужно прочитать хотябы книги прямо относящиеся к языку, такие как: Лесневский - Объектно-ориентированное программирование для начинающих
    и какую-нибудь еще из списка?
    – Redline Mar 11 '11 at 12:32
  • Ну не знаю лично меня ООП учили в институте. Но я думаю вам не помешает и внимательно смотрите есть ли примеры в книге это очень важно так как одна теория не поможет. Практика очень важная часть. Математику конечно желательно знать она может помочь вам в решении задач которые будут поставлены в алгоритме. Но лично я в веб-программировании и без математики себя комфортно чувствую. А вот булева алгебра вам понадобится и логика тоже.Но если вы плохо знаете математику не огорчайтесь вас это не сделает плохим веб-программистом программировать не означает быть математиком.Трудитесь и все получится – Perl Mar 13 '11 at 22:08
  • Я бы с удовольствием поработал с вами научил бы вас тому что я знаю. Лишнее руки мне не помешают, а там может и команду сделаем. Я был бы очень рад если бы вы согласились. Я сам еще учусь так что вам будет со мной интересно.И проект я бы не против запустить. В общем пишите мне на почту kendjia@mail.ru или kendjiya@gmail.com. Будет хорошо если у вас есть skype или Mail.ru агент. Жду ответа. – Perl Mar 13 '11 at 22:24
  • Спасибо большое! Обязательно напишу, как появится свободное время =) – Redline Mar 14 '11 at 06:59
  • Договорились)). – Perl Mar 14 '11 at 15:37
0

Лично я не читал никаких книг (просто не люблю читать :)), только статьи на сайтах и справочник функций. Мне более по душе изучать на примерах и решениях простых задач. Изучение PHP началось с интересом, как устроен скрипт какого-то форума (не помню какого) и хотелось добавить пару функций.

Nicolas Chabanovsky
  • 51,426
  • 87
  • 267
  • 507
VIT
  • 121
  • 3
  • Спасибо за ответ. Да, вот с таким настроем я тоже собираюсь обучатся, но без книг, думаю будет не так в полной мере интересно и информации будет намного меньше. Не хочется отставать от веб кодеров с опытом =) – Redline Mar 11 '11 at 17:28
0

Математика - прекрасная штука, но первое время не нужна. А, возможно, и вовсе не понадобится. Правильно говорят, для начала сосредоточьтесь на практике и сперва хорошо изучите что-то одно. Веб-программирование не настолько сложно, чтобы проходить курсы. Можно освоить самостоятельно. А вот Котеров - не лучшая книга для этого (вообще русские авторы, увы, по программингу почти всегда пишут что-то глубоко вторичное).

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

  • Потапов и др.. Алгебра, тригонометрия, элементарные функции. - поможет оч быстро подтянуть школьную математику, если вы ее забыли или плохо знаете. Написано очень просто (для студентов педвузов). Взрослый мыслящий человек разберется без труда. Там же есть некий минимум упражнений.
  • Нужна книга по аналитической геометрии. Например Ильин и Позняк (она очень понятно написана и при небольшом объеме содержит практически все необходимое по теме). Аналитическая геометрия очень нужна на практике, особенно в играх. В первую очередь это определение пространственных отношений между геометрическими объектами (пересечения отрезков, плоскостей, поверхностей, коллинеарность и компланарность векторов и плоскостей и т.п. часто встречающиеся задачи).
  • Нужны основы линейной алгебры хотя бы на уровне матричных преобразований (можно посмотреть тех же Ильина и Позняка). Мало-мальски сложные пространственные преобразования (повороты, масштабирования объектов и т.п.) как правило производятся с помощью матриц.
  • Элементерные представления о (классической) механике. Можно даже ограничиться чтением учебника физики для старшеклассников. Если изучите матанализ, можно смотреть что-то посерьезней. Знать основы механики нужно, чтобы не впасть в ступор, когда возникает необходимость описать движение какого-либо тела или системы тел.
  • Из дискретки скорее всего есть смысл изучать только теорию графов. Есть хорошая книжка, ориентированная на программистов (там теория просто написана и есть примеры на с++, которые для начала можно и пропустить) - Сик. Ли. С++ Boost Graph Library. Теория графов занимается такими практически важными вопросами, как поиск кратчайшего пути из одной точки в дургую, (топологическая) сортировка, деревья и проч.

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

alphard
  • 490
  • 3
  • 14
  • Не настолько сложно, но КПД при курсах будет больше. – Сергей Mar 11 '11 at 19:40
  • А вообще основы надо мне читать? Мне так никто и не сказал и если надо, то какие из этих всех книг надо прочитать? Просто тут наверно большая часть для обычных программистов, не относящихся к веб. – Redline Mar 11 '11 at 20:51
  • ваш список книг довольно странный, если честно (который пункт 2). сам я "обычный" программист, и вебом мало занимался. но принципы везде одни. по поводу математики - сейчас математикуз знаю хорошо, но первые несколько лет она мне практически не была нужна. читать дискретку и т.п. на первых парах нет ни малейшего смысла (т.е. это может быть интересно, но практической пользы 0). Читать сразу книги типа Кнута - тоже занятие сомнительное. По вебу я могу порекомендовать одну интересную книжку: David Gourley и др..HTTP: The Definitive Guide. Ее полезно почитать в кач-ве дополнения к книге по пхп – alphard Mar 11 '11 at 22:53
  • не настолько сложно но КПД при курсах будет больше.


    Это зависит от человека и от курсов. Некоторым проще учиться самостоятельно.
    – alphard Mar 11 '11 at 22:55
  • Не только проще, но и быстрее. =) – Redline Mar 12 '11 at 00:06
  • Спасибо! Насчёт первой книги тут понятно, а остальные, даже не знаю, не планировал просто заниматься ничем подобным, но возьму в оборот. – Redline Mar 14 '11 at 06:59
  • совсем не обязательно этим заниматься, но если решите изучать практически полезную для программиста математику, то есть смысл придерживаться примерно такого плана:) – alphard Mar 14 '11 at 16:08
  • ну не думаю что это понадобится, ибо в запланированных проектах думаю хватит и обычной логики со смекалкой =) – Redline Mar 17 '11 at 00:52
-1

Чтобы добиться максимального КПД в обучении вам нужен учитель. Самый лучший вариант - платные курсы, лучше если с сертификатом.

Сергей
  • 3,422
  • 4
  • 29
  • 57
  • Спасибо, но лучше бесплатно – Redline Mar 11 '11 at 20:49
  • 1
    ЛУЧШЕ как раз не бесплатно. Бесплатно - халявно, но никак не лучше. – Сергей Mar 11 '11 at 21:17
  • Да, не лучше, я имел ввиду, что больше времени уйдёт, но чем больше делаешь сам, тем больше узнаешь нового. – Redline Mar 11 '11 at 22:06
  • Зато там направленно научат вас всему. К тому же оплатив курсы будет дополнительный стимул выучить все. – Сергей Mar 11 '11 at 22:07
  • Насчёт стимула вы правы, та и кстати, там уже я буду уверен что делаю правильно, ибо если что-то не так, вина не моя будет, а моих педагогов =) – Redline Mar 11 '11 at 23:38