Как стать автором
Обновить

Комментарии 171

«я оказываюсь умнее преподавателей»

Я сегодня такую беленькую наклейку от айФона наклеил на черный системник на работе, прямо по центру. Знаете, из далека смотрится шикарно. Хм, странно, что никто не догадался сделать так же, как я. Нет ну ладно, те кто айФон не купил. А те кто купил, они не наклеили, понимаете? Идиоты!

надеюсь вы уловили иронию да, и перефразируете как-нибудь.
Вы в университете учились?
А я говорил только о предмете, улавливаете? Меня перефразировать не нужно.
4 курс КГУ ВМК.
Ваше право, я не настаиваю.

Но от мнения своего не отказываюсь. Мнение — нельзя утверждать, что я умнее другого, если я умею что-то делать лучше, чем он.
"на предмете Интернет-программирования я оказываюсь умнее преподавателей"

Читаем внимательно… вдумываемся… :)
Я иногда читаю комменты на Хабре… и понимаю что тут живет тупое сборище умников! Не все Хабролюди конечно, но много!

Человек пришел за помощью, нет что бы помочь… так нет же я бл# умный я ща тут всех затравлю! Добился ты успехов и хорошо! Но гадить на других то зачем?!
Не обобщайте на всех. Если я что-то сказал, а вы посчитали, что я умник, вот значит я — умник, а не все. :)
Речь идет о формулировке, а не о превосходстве Анатолия, как таковом. Да, придрался к формулировке. А вы сделали вывод, что хабра уже не та. :)

Cтрасти какие :)
К сожалению я эти выводы сделал не вчера ))) А вот таких вот умников — много! Хотя такие как вы, придераюсчиеся, меня нафиг раздражают!
Мне кажется тут достаточна очерчена область знаний о которых идет речь. А не сравнивается некий человеческий IQ. Так что зря придираетесь.
Вот человек помощи попросил а ты что? Умничаешь! А вот ирония по моему глупа и не уместна!
В 38 лет ;)
Или 18 лет уже учитесь? ;)
Не идеализируйте преподователей. Обычные люди. Которые зачастую знают очень мало даже по своему предмету. А если ничем помочь не можете то… проходите мимо!

Автору:

1. Вы выкладывайте ссылку на исходники сюда. Люди посмотрят, вам все сразу и скажут :)

2. Мое ИМХО. Учите английский -> ищите западные блоги -> читайте новые книги на английском…
Английский знаю очень хорошо — книги на английском читаю.
Ссылкой сейчас займусь.
И да, спасибо.
Отличный пост. И количество минусов в очередной раз показало количество дурачья на Хабре. :-)

Почему бы не изучить ООП (по книжкам) и не поизучать уже существующие хорошо написанные программы на PHP?
Неужели ООП настолько лучше, что процедурный код не может существовать?
Когда требуются небольшие затраты мощности, высокая скорость разработки — неужели нужно писать код ОО? Я не утверждаю, я спрашиваю. Мне отвечают, я мотаю на ус.
А ООП код что не процедурный чтоли?
Я всегда думал, что процедурный = функции, ООП = классы.
А я всегда думал, ООП — классы, имеющие свои свойства и методы (то бишь функции или процедуры).
ник классный
ага, соответствующий… как это было у Врунгеля, — «как ты яхту назовешь, так она и поплывет» :)
Ух ты как за такие комменты карма уходит резво! :)
Наконец-то в минусе!
Зачем врать?
Вы уже давно в минусе
Динамика радует, я к этому
Спасибо, мне тоже нравится.
Это я к тому, что в прицнипе существует не такая уж большая разница между ООП и процедурном программировании. Алгоритмы везде абсолютно одинаковые. Другое дело — структура кода. Для простых проектов не подразумевающих серьёзную масштабируемость, структура определяет лишь «красивость» кода и особых преимуществ не дает.
Как все запушенно :)

Структурное програмирование (процедурное) подрозумевает «спуск — от решения задачи к данным»

ООП подразумевает «подьем — от данных к решению задачи»

Так что НИКАКОГО «Алгоритмы везде абсолютно одинаковые» БЫТЬ НЕ МОЖЕТ!!! Не пудрите мозги человеку ru.wikipedia.org/wiki/Язык_программирования
Ну каждый воспринимает по своему. Допустим, на примитивном примере.
Я считаю, что класс «комментария» имеющего метод для вывода на страницу и функция, выводящая на страницу комментарий, указанный в параметрах — это одинаковые алгоритмы с разной реализацией.
Это очень плохой примитивный пример. Потому как класс коментарий — это отдельная сущность. которая ничего не должна знать кроме комментария. У нее недолжно быть внешний зависимостей, особенно таких как жесткое представление. Иначе действительно мы имеем только усложнение и дублирование кода, раздувание бизнес логики и собственно лишную головную боль.

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

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

Н. Вирт
«класс «комментария» имеющего метод для вывода на страницу» — уже не ООП. Если уже на простом примере:

Вот простое ООП:

class Коментарий
{
string Text;
}



class Страница
{
void ПриЗагрузке
{
echo Коментарий. Текст;
}
}
Но это в общем-то неважно. Ибо, ИМХО, сам алгоритм во всех вышеприведенных примерах — это строка «echo Комментарий. Текст». Все. Больше программирования тут нет :) Остальное — структура программы.
Вы еще не обрели dZen ООП :)
У такой программы слишком «плоская» логика. Вам есть чему поучиться в данном направлении.
Я остался при своем мнении. Минусуйте дальше, спасибо. Жаль правда, что теперь у меня не будет возможности написать статью (сейчас какой нибудь умник напишет, что это к лучшему). Я понимаю, минусуют в основном люди, программирующие «разделы сайта» и «форму обратной связи», там действительно алгоритм не важен (я, может, за последнее время немного помешался на этом термине, просто программирую молекулярную физическую модель для универа, там важна оптимизация, иногда в ущерб красивости кода).
Спасибо. Пока что кажется ваше мнение правильным.
НЛО прилетело и опубликовало эту надпись здесь
ООП — это чуточку шире нежели объекты или классы. Это еще их правильное взаимодействие. А иначе — просто пространства имен групирующие функции
Еще одно ИМХО.

ООП не так «тяжел» ка о нем говорят. Зачастую с помощью ООП програмировать легче даже одиночке. Ибо разделяешь болшую задачу на маленькие ООП-шные составляющие и работаешь в свое удовольствие :)

PS: Да и потом если станите работать в группе — ООП обязателен.
Разделяю задачи на функции — работать пока что легко. Против ООП ничего не имею, просто, так сказать, боюсь.
У вас «самое интересное» еще в переди :)

Не бойтесь. ООП реально лутше. Начните с простых и «банально» примитивный, но полезных в работе примеров. Просто «поиграйтесь с класами» и вас уже будет не оторвать :)
блин мне всё время казалось, что надо начинать изучение языков с ООП, а затем наоборот переходить к процедурному:)
касательно вашего комментария ООП — не лучше, оно просто другое:)
процедурное программирование имеет смысл использовать для решения математических задач, ну или для программирования оборудования(обычно даже вариантов нет, т. к. на C писать приходится) :)
И эти люди утверждают, что умнее(!) преподавателей? Гы!
И, что интересно, как правило это «пыхепе-программисты», ага ;)
Остальные в такого рода оценках куда адекватнее.
преподователи зачастую еще хуже… встречаются даже html-программисты. :)
Преподаватели — тоже люди:) и далеко не всегда на предмет назначают преподавателя, который разбирается в своём предмете.
Он может быть гуру .NET, но не знать пхп, а следовательно может объяснить принципы, а практика — дело студента:)
>Он может быть гуру .NET, но не знать пхп
Вы считаете это даёт право сосункам «пхп-программистам» утверждать, что они _умнее_? Подчёркиваю — «умнее» (как мера интеллектуального развития), а не «знаю на 5 пыхыпы функций больше» (как способность зазубрить кучку функций с непоследовательными наименованиями).

ЗЫ. О! Быдлокодеры, как обычно, подтянулись! Минусуйте, ага. Ату меня! «Ма-а-ама, пыхыпы-программистов обижа-а-ают!» :)
Почитай выше. Уже объяснили одному, почему я так написал.
Ага. Я тут Васю мудаком назвал, он мне по морде съездил. Ну почему так — в моём убогом лексиконе слово «мудак» означает «друг». Я всех друзей так называю…
Если пользуетесь словами, пожалуйста, постарайтесь употреблять их в общепринятом смысле! :)
ИМХО.
Ничего не имею против того что:
практика дело студента


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

Если, он гуру .NET, то уж «на предмете Интернет-программирования» то и учил бы студентов ASP.NET в котором он шарит и все были бы счастливы.
А если он преподает PHP не зная его при этом, то нах он студентам нужен студенты мало что вынесут с его лекций.

Кстати по поводу практики:
Мне достались очень хорошие преподаватели(они еще и пром. программированием занимались, поэтому не были оторваны от реальности) по Java SE, прекрасные лекции, очень много нового узнал, но…
Знаете задали нам (думаю многие сталкивались в ВУЗЕ) писать картотеку. Ничего особенно Графика Swing, данные вообще где хочешь можно хранить (Файлы/СУБД на усмотрение студента) ну и поиск конешн.

Знаете, было очень обидно, когда я принес показать на 35% (по моему мнению) готовую работу, просто что бы преподаватель помотрел/высказал что думает по поводу моего ахтун-кода кода, а он взял и поставил зачет + курсовой на 5.
И так все время. А потом студенты выходят из ВУЗА и выясняется что качество их работы, которое в ВУЗЕ считалось «на 5» не катит даже на альфа версию.
Объясните мне убогому зачем изучать пхп в вузе на лекциях? Да и любой другой язык, кроме, разве что, самого первого (в качестве основы для объяснения более других вещей). Это ведь уровень ПТУ, но ни как не вуза.
И про качество работы программиста после вуза тоже странно. Если нужны именно практические навыки, то это уровено техникума. Вузы слегка для другого предназначены. Они дают базовые знания, а не практические навыки сразу пригодные для промышленного производства. Практические навыки — ПТУ и техникумы.
Вузы слегка для другого предназначены

Поясните, пожалуйста, для чего они предназначены. А то я за время там проведенное так этого и не понял…
Хммм. А следующее предложение после процитированного вы прочитали? :)
А так, да, многие идут в вузы и не понимают зачем. Модно, типа. И думают, что окончив вуз, сразу смогут без труда выдавать на гора высококачественный код, к примеру. Или, там, гениальные проекты сверхзвуковых дешёвых пассажирских самолётов :). И даже окончив вуз, многие продолжают так же считать, почему-то. Вузы дают знания. Базовые. Учиться их применять — совсем другая задача. Впрочем, инженерно-технические вузы частично решают и задачу подготовки специалиста почти сразу готового выполнять примитивные работы. А так — нет. Если угодно, повторю — я считаю, что для подготовки [пхп-]программистов :) достаточно фазанки или технаря.
[пхп-]программистов :)

Я бы сказал [пхп-]кодеров. (:
Впрочем не встречал программистов из ПТУ ;)

Я поступил в ЛЭТИ на вечернее, т. к. мне класса с 8-го родители вбивали в голову «без универа на работу требующую „мозгов“ ты не годен.»

Первый курс даже было здорово и интерестно. Изучали С++, Высшую математику, физику, ну и всякую ерунду (а-ля история, культурология, психология).
Получил одну единственную 4-ку по физике остальное на 5, жизнь была прекрасна! (:
Потом из-за пары серьезных проблем (деньги+откос от армии) я на год ушел из универа после 3-го семестра.
За время в академке устроился в ТП (дурацкое место, но знаний по компьютерным сетям дало больше чем универ (: ), параллельно почитал «Алгоритмы. Построение и анализ.», «MySQL справочник по языку», «Профессиональное программирование на PHP» Шлосснейгла и окончательно настроился на WEB. После недолгих домашних тренировок меня взяли быдлокодером учеником программиста.
Вернувшись в универ (уже начал потихонечку мыслить в стиле ООП, и поиск ошибок стал занимать минуты а не дни) я с ужасом понял что в нем ужастно скучно.
Единственное, что осталось хоть немного интерестно это высшая математика.
Разумеется, если абсолютно не интересоваться учебой из нее ничего хорошего не выходит.
Как результат, перед сессией сложная(но вполне решаемая) ситуация. Параллельно с ней моргал красным глазом делайн на работе.
Немного подумав и взвесив все «за» и «против» я забрал документы из универа.

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

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

Извините за столь продолжительное словоблудие.
Вопросы:
1. Как я понимаю Вы закончили институт?
2. Не могли бы Вы подсказать какие именно базовые знания Вы там получили (без подвоха, надо же знать, что обязательно и желательно изученить дома)?
3. И еще, зачем (кроме диплома) за этими знаниями ходить в институт?
1. Да. Университет. Томский Государственный.
2. Ну-у-у… Разные… Я вообще много и в разных местах учился (и в Ленинграде тоже), конкретно в университет пошёл в довольно «солидном» возрасте абсолютно осознано. Потому что мне стало интересно поизучать математику, в частности. Ну, как-то обнаружил у себя пробелы в систематическом знании, а заставить себя изучить по книжкам силы воли не хватило :). Какие конкретно — это я сказать не смогу. Тут не так давно была уже дискуссия, кто-то сказал, что он, де, по книжкам сам выучит то, что ему не хватает. Ну, я и спрашивал — а вот теория вероятностей на чуть более сложном уровне, чем самый простой понадобится, что функциональный анализ по книжкам человек пойдёт изучать? А чтобы понять фа — два года матанализ? Не верю я в это. Да и как догадаться, что надо функан изучать, если не получил систематического математического образования? Это Колмогоровым надо быть. Но колмогоровы таких вопросов и не задают. Вуз даёт возможность расширить рамки знаний. Грех этим не воспользоваться, если есть такая возможность. А какие конкретно — это не так важно. У нас преподаватель по уравнениям математической физики для разных поколений читал разные варианты лекций. По большому счёту не важно какой конкретно набор теорем изучается :). Хотя это справедливо для сложных курсов, для базовых, конечно, набор фиксирован. Что касается базовых знаний, полученых мною на математическом факультете в применении к, например, моей текущей работе веб-разработчиком… То для этой работы, в принципе, вполне можно было обойтись без вуза. Я уже говорил — достаточно было бы техникума. Но я не очень хочу всю жизнь посвятить веб-разработке :), а для того, чтобы расширить горизонты, как раз и пригодится широкий кругозов, полученый в вузе. Как-то так…
3. Вот как раз за дипломом — самое глупое идти в вузы. Как правило. Не, если двигать в науку или там в госучреждение на должность, требующую обязательного в/о, или подаваться на независимую иммиграцию в Австралию :), то да. А так, если нет интереса получить обширные систематические знания, то абсолютно незачем.
Что касается знаний по айти… У нас ведь именно компьютер сайнс почти не учат, есть несколько факультетов, пересчитать пальцами по стране, приближенных к этому. Остальные «информатики» в непрофильных и неклассических вузах — по бОльшей части профанация, возникшая на волне моды. Примерно как многочисленные факультеты экономики, которых уже по три на самый захудалый институтик. А вот меньшие временные затраты на получение знаний по сравнению с вузом выглядят странно. Это от того, что наши студенты привыкли к халяве — кроме как по лекциям ни о чём не спрашивают. А, между тем, самообразование при учёбе в вузе, вообще-то, изначально предполагалось и никто его не отменял. На западе так именно на самообразование вообще вынесена бОльшая часть материала — обычные наши студенческие отмазки «а на лекциях этого небыло» там не катят. Так что все беды и жалобы — это от непонимания сути и смысла обучения. Кроме вас, даваемые вам знания никому не нужны. И лекции ни в коей мере не отменяют самообразования.

ЗЫ. Хренассе портянка получилась!.. Болею, делать нечего, графоманство прорезалось :)
Кроме некоторых нюансов, как это ни странно, даже со всем согласен.
Спасибо за развернутый ответ и за то что помогли немного перекомпилить моё виденье мира. (:
ООП бояться не надо. Ничего страшного в нем нет. Но для большого программирования он необходим.
Я довольно слабо представляю себе большие проекты без ООП. Все фреймворки для ПХП написаны с использованием ООП (обратите внимание, не ЦМС, а фреймворки). Можно начать изучение ООП в ПХП именно с фреймворков — CakePHP, Symfony.
Полностью с вами согласен, куда проще набросать структуру и связать классы чем писать кучу функций и потом думать куда чего лепить. Функции использую очень редко в основном в набросках методов классов для быстрых тестов.
Процедурный подход, разумеется, может существовать, но ООП действительно лучше.
Кстати, хорошо владея ООП, можно значительно повысить скорость разработки и затрачивать гораздо меньше усилий.
Впрочем, я придерживаюсь того мнения, что до ООП каждый должен дойти сам.

Вы выкладывайте ссылку на исходники сюда. Люди посмотрят, вам все сразу и скажут :)

Да, выкладывайте :)
Готово, в публикации добавил ссылки.
В первую очередь советую вам изучить и применить MVC. Или, если проще, шаблонизаторы. А то страшная мешанина в коде.

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

Я еще посмотрю утром, сейчас уже устал. Также, если нужны материалы по какой-то определенной теме, пишите, постараюсь помочь.
Согласен. Попробуйте порыть в сторону «CodeIgniter» и «CakePHP» поначалу все это может показаться СТРАШНО НЕНУЖНЫМ. Но со временем поймете в чем прелесть.

Но вы про MVC и ru.wikipedia.org/wiki/Шаблоны_проектирования почитайте — это бонально интересно :)
Пока что мне CMS не нужен, так что модули — тоже. Хотя то, что уже сделал — тоже похоже на модульную систему.
Пока что не нужно, но вы же хотите развиваться, значит понадобится. Да, и модули — это не обязательно CMS.
когда я начинал программировать — в качестве костяка данных использовался шестимерный глобальный массив. Можно сказать что «это тоже какбэ объекты» :)
Опаньки =) Я думал я один такой умный был =) Правда я не программист, а дизайнер. А языки программирования (различные Си, Хацкель, Руби) учу потомучто не только, лично для меня, интересно, но и позволяет говорить с программистами на одном языке (долгое время специализировался на дизайне мультимедиа).
На вопрос «Что лучше — процедурный или ООП» нельзя дать однозначного ответа. Для крупных проектов лучше подходит ООП. Процедурный тоже применяется, но реже (хотя на самом деле часто применяются они оба вместе).

Если не строили ничего на ООП лучше попробывать. В любом случае никуда от этого не денешься.
Когда в большом проекте применяется ооп вместе с процедурным стилем, это в 99% значит, что мы используем процедурный стиль и используем объекты. В итоге жизнь себе не облегчаем, а у людей, которые не до конца понимают объектно ориентированную парадигму складывается впечатление, что опп — тяжел, сложен, и «вообще не нужен в вебе».
Для небольших проектов подойдет и процедурный подход. Но для достаточно крупной разработки процедурный подход уже уступает ооп. Проекты на ооп значительно легче масштабируются и проще понять логику работы программы, на личном опыте в этом убедился. Раньше тоже писал процедурно, но сейчас ушел в ооп, так как скорость разработки и качество кода в таком случае только выигрывают.
Это просто несколько другой подход к задачам и просто неплохо иметь возможность выбора между ООП и процедурным подходом. Для многих задач скорость разработки будет выше именно при использовании ООП.
ООП не лучше и не хуже. ООП – это другая парадигма. Но именно в объектно-ориентированном программировании принято уделять много внимания простоте восприятия кода и приведению его в порядок. Просто попробуйте научиться этому подходу, и когда освоите (не раньше, чем через год), то можете возвращаться к процедурному написанию.

Второй момент заключается в том, что в ООП'шом стиле написано гораздо больше стоящих проектов на ПХП.
Какую CMS посоветуете для разбора, что бы увидеть ООП вживую?
CMS смотреть не надо. По крайней мере все что я видел — ужасно до безобразия.

Для того что бы учится, следует смотреть фрейворки — Symfony, CodeIgniter, Zend Framework. Последний особенно полезен для изучения — слабая связанность компонентов, отличный стандарт кодирования и документация, грамотное использование «ооп-фишек» и возможностей самого PHP + тесты, по которым можно начинать учится еще и TDD :)
ИМХО. Zend Framework — немного сложноват для начинающего :)
Да ну я вроде как не начинающий.
Посмотрите в сторону Ez Components 2008
Вот там, думаю, в полной мере ощутите вкус ООП.
Примеров в официальной документации предостаточно. И жесткой структуры (как тот же Симфони, Игнитер иже с ними) не навязыает.
В общем, почитайте, потрогайте :)
Не рановато для начинающего? Или вы сразу хотите с правильного, но сложного начинать?
CakePHP забыли… :-)
Отписался в личку.
если вы желаете и дальше гордо заявлять «я программист на PHP» то можете не читать, но программистов на php не бывает! бывают программисты пишушие на php или быдлокодеры (программист на PHP).

Думаю вам сейчас не нужно изучать PHP или ООП. То что вы выложили нельзя назвать программированием.
Посмотрел один случайный файл из выложенных вами, а точнее кусок.
Вы не понимаете что вы делаете или не понимаете что это важно понимать :)
Во первых list. Доступ к ячейкам вы осуществляете удобно для вас ($id вместо $row[0] или $row['id']), но при этом вы создали 10 переменных вместо одной. потом в цикле делаете за один проход 5 SQL запросов.
Представьте что вы спросили у начальства список сотрудников фирмы для занесения их в какую то базу, потом заходите в кабинет и спрашиваете дату рождения, возраст, пол, вероисповедание для Аникеева А. А. После этого идете и заносите данные в базу. Потом опять к начальству и интересуетесь Березовским Г. Г. и опять к себе в кабинет записывать данные.
Вот вы делаете примерно то же самое.

К чему всё это я… Изучить как делать запросы с JOIN не сложно, на это уйдет день-неделя, потом месяц на то что бы понять как правильно делать эти запросы. Но программирование не в этом и не в знание всех 3к+ функций php или другого языка. Почитайте книги по программированию, а не по php. Посещайте пары не только «интернет программирования», поймите что вы управляете машиной, а не ищете кусок кода которым можно добиться нужного результата.
А пока вы кодите методом научного тыка и копипаста.
p.s.: и если вы хотите программировать не в коем случае не слушайте тех кто начнет вам сейчас советовать фреймвоки и патерны mvc :) рано! научитесь программировать.
бывают программисты пишушие на php и быдлокодеры (программисты на PHP).
Понимаю это. Спасибо. Себя осуждать сложно. Читать о себе такое — тоже. Но это правда и я все понимаю и стараюсь заниматься собой. Вроде ещё не поздно, не старик.
«рано! научитесь программировать»

Не согласен. Вы говорите тем самым «Поизобретай велосипеды, отбей у себя желание програмировать, пиши 10 раз одно и тоже, а потом ВСЕ РАВНО прийдешь учить паттерны и MVC»

Вы еще предложите «ассамблер выучить» чтобы понимать програмирование :)
Ассеблер надо учить хотя чуть-чуть (где-то на уровне helloworld-а, выводящегося через функцию), хотя бы потому, что можно понять, как все работает на самом низком для программиста уровне. Что кстати не может быть не полезным :)
Ассемблер знаю немного выше уровня хэлловорлд-а.
Но вот этам С++ и его ООП — пропустил немного мимо ушей. Каюсь.
Я это конечно понимаю но…

Детей и особей женского пола просьба отойти от экрана :)

Вот смотрите:
1. Что произойдет если програмист на «Ассамблере» встретит «C++» програмиста. Он порвет ему жопу, за халатное отношение к ресурсам компьютера.
2. Что произойдет если програмист «Машинного кода» встретит «Ассамблериста». Он порвет ему жопу, за халатное отношение к ресурсам компьютера.
3. Что произойдет если програмист «Микросхем» (тот что вшивает логики в електронные схемы) встретит програмиста «Машинного кода». Он порвет ему жопу, за халатное отношение к ресурсам компьютера.

Теперь внимание, вопрос. Что будет если програмист «Микросхем» встретит «Java\C#\PHP програмиста»? :)))

Согласен — поучить ассамблер, будет полезно. Но это уже для увеличения «общего кругазора». В профессиональном плане продвинуться это не поможет.

PS: Хотя кого я обманываю — сам сижу пишу проги на Flat ассамблере :)
В ваших «аргументах» ни слова о том, почему ассемблер не поможет продвинуться в профессиональном плане.
Я против деления на «программист того» и «программист сего», имхо есть ленивые программисты, которые выучили что-то и не хотят двигаться дальше и есть любопытные программисты, которые попробуют и PHP и ассемблер и Haskell.

ps. пожалуйста пользуйтесь проверкой орфографии

В ваших «аргументах» ни слова о том, почему ассемблер не поможет продвинуться в профессиональном плане.
Я против деления на «программист того» и «программист сего», имхо есть ленивые программисты, которые выучили что-то и не хотят двигаться дальше и есть любопытные программисты, которые попробуют и PHP и ассемблер и Haskell.

Пока пытался сформулировать вы меня опередили.
Полностью с вами согласен. Ai_boy, можете считать это и моим мнением.
Да я сильно не спорю. Сам учу PHP\C#\Java. Вопрос в том что быть проффессионалом во всех языках достаточно тяжело. Я за то чтобы выучить сначала один язык :)

PS: За орфографию — простите грешного. Я на уроках русского писал программы на BASIC :)

PPS: Я против программ проверки огфографии — лутче раз 100 получить по башке, но запомнить как пишется слово, чем превращатся в тупого бота :)
«даю по башке» за:
профессионалом
лучше
превращаться
:)
Что вы вкладываете в слова «Сам учу PHP\C#\Java», у меня сразу вспоминается школьные годы когда надо было учить стишки строка за строкой повторяя по 10 раз :). А если по делу то языки надо изучать а не учить.
К сожалению, уже никто никому ничего не рвёт за халатное отношение. Я серьёзно. Иногда, даже, очень обидно, что никому нет дела до того, что ты (я) там понаписал. Работает — и ладно… Кхм, а с какого перепугу вы поставили в один ряд Java, C# и PHP? Это, простите, день и ночь. А вообще, если по сути, то не согласен с Вашей позицией по поводу того, что учить надо язык, да фреймворки. Фигня какая-то. Надо уметь программировать, неважно на каком языке, пускай даже в блокноте и под любой ОС, надо уметь писать код на листе бумаги, узнав синтаксис языка 5 минут назад, надо уметь мыслить алгоритмами и блок-схемами. UML, ER-модели, диаграммы — вот это всё основы основ, которые делают Программиста (если кому больше нравится — Разработчика). А так вообще можно 5-классника за пару часиков научить простейшие (примитивные) Win Forms в Visual Studio клепать.
>> «а с какого перепугу вы поставили в один ряд Java, C# и PHP?»
Ой да, забыл еще Python и Rybi on Reils. А почему я их в один ряд поставил? Ну вы подумайте о контексте данного топика и поймете…

>> «Надо уметь программировать, неважно на каком языке, пускай даже в блокноте и под любой ОС»
Чтобы создать маломальско хорошую программу — нужна «группа програмистов», хорошя среда програмирования, и работоспособная ОС. Нужен большой опыт програмирования и куча еще всего. В веб програмировании все это конечно немного попроще. Но тоже имеет свою силу.

>> «А вообще, если по сути, то не согласен с Вашей позицией по поводу того, что учить надо язык, да фреймворки.»
У вас есть 2 пути:
1. Потратить лет 5~10 чтобы стать гуру програмирования, и написать свой маленький фреймворк хотябы для одной ОС. Начать програмировать.
2. Использовать опыт других людей и писать программы здесь и сейчас. Попутно повышая свои навыки програмирования.

Выбирайте…
НЛО прилетело и опубликовало эту надпись здесь
У вас есть 2 пути:
1. Потратить лет 5~10 чтобы стать гуру програмирования, и написать свой маленький фреймворк хотябы для одной ОС. Начать програмировать.
2. Использовать опыт других людей и писать программы здесь и сейчас. Попутно повышая свои навыки програмирования.

А вариант потратить хотябы год что бы стать просто программистом и потом использовать опыт других людей и писать программы? намно перспективнее чем второй вариант потому как дальнейшее развитие при тупом использовании чужого фреймвока маловероятно, а что бы оно было не тупое нужно понимать что делает фреймвок и разбираться в нем. без базового программирования (а именно такой случай по моему мнению мы наблюдаем) этот вариант не возможен.
На чем вы програмируете?
на чем придется :)
за последние 6 месяцев довелось на C, C++, Ruby, PHP, Rython, JavaScript.
Фреймвоки я конечно использую но до сих пор только если это действительно необходимо и реально экономит время. Например в C++ под win использую MFC потому как пока не доводилось писать программ в которых выигрыш от чистого winAPI был бы заметен. когда нужно было написать демона работающего с XMPP взял gloox и не стал замарачиваться по поводу изобретения велосипедов. но если речь идет о простеньком сайте то зачем туда прикручивать ZendFramework(исключением конечно являются случаи когда нужно по 10 в день их делать, но мне к счастью такое не доводилось)?
Вот мое ИМХО -> framework'и уже давно стали неотемлемой частью програмирования. Зачастую они играют определяющую роль в языке. Зачастую плохой фреймворк может убить язык. Хороший — дать огромную популярность языку. И их изучение я считаю неотемлемой частью изучения програмирования.

Объясните почему нужно отказаться от опыта других людей которые УЖЕ прошли через все муки ада чистого GDI, и CGI-BIN. Кроме как расширения кругозора и поднятия общего уровня? Вы же не знаете разницу между ТТЛ и КМОП?
Я не призываю отказываться от фреймвоков. я пытаюсь объяснить что я не вижу связи между умением программировать и конкретным языком программирования(тем более фреймвоком).

Сколько сейчас «JavaScript-программистов» освоивших jQuery или Prototype? а ведь они не догадываются о том что работают с DOM и что $('.asd').fadeOut(); это перебор большого дерева объектов и поиск в нем соответсвующих условию, а потом установка таймеров по которым изменяются css свойства найденых объектов. Эти «программисты» потом часы нарисовать не могут потому как нет такого модуля/плагина, а про то что всё делается через sin/cos они не вкурсе потому как всегда писали .fadeOut()… Это хорошо? Хорошо начинать обучение с фреймвока?

Ваше на изменение вашего ИМХО я конечно не притендую, програмируйте на здоровье.
Я сказал «framework'и уже давно стали неотемлемой частью програмирования». ЧАСТЬ ПРОГРАММИРОВАНИЯ. Вот это мое ИМХО.
А я знаю разницу между ТТЛ и КМОП. Причём тут это, мы же не будем сами собирать себе компьютер)

По работе использую PHP и JS в основном. По учёбе C# и плюсы, остальное слишком мало чтобы вспоминать.
Хочу сказать что, на мой взгляд, изучение фреймворков не учит программированию вообще, однако даёт, пожалуй не менее полезный, навык понимания чужого кода или хотя бы умение использовать его программные интерфейсы.
Ну и конечно ускоряет разработку и позволяет пройти по дорожке на которой уже убрали из подног самые заметные грабли, иногда правда вручив целый грузовик костылей и ходулей, ограничивающих свободу движения.
программирование — с двумя м
надеюсь я не выхожу за рамки раздела «Помогите развиваться»?

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

ps «Ruby on Rails»
Спасибо. Но от «автоматической проверки орфографии» я уже однозначно отказался.

PS: «при вашем уровне развития» — не думайте что я полный дебил. У меня была твердая 5 по теоретической части русского языка в 9 классе. Просто в 10 классе написал диктан на 2 старницы с 22 ошибками :) (после чего учитель русского языка официально «отказался меня учить», как следствие на долго отбилось все желание улутшать «качество русского»)

Так-что у меня ОЧЕНЬ большой прогресс за последнее время. Прошу прощения если я кому мешаю своей «непокалибимостью\тупостью» (нужное подчеркнуть).

PPS: Но все-же не будем сильно углубляться в ОФФТОП :)
Независимо от контекста — глаз режет. Похоже на игру — найдите лишнее слово. Неважно.
Чтобы создать хорошую программу нужна прежде всего голова, с мозгами внутри. А группа программистов, хорошая среда, ОС и вся остальная ерунда — ничто, пыль, лабуда, созданная другими программистами, возможно, хуже, чем Вам кажется. Большой опыт — помогает, да, но опять же — грош цена опыту, если (этот) опытный человек не может объяснить, почему всё именно так (исходя из опыта), как есть, а не иначе. Я к чему — я против «делай так, так правильно, так все делают, так работает!». Это фигня. Хотя, опыт подсказывает, что так правильно. А правильно «делай так, потому что это работает вот так и так и вот почему...».

Я пишу «программы» (мне не понравилось, как Вы выразились, ну да ладно — пусть это будут программы) здесь и сейчас, причём вчера на Javascript, сегодня на С#, а завтра — … Не понимаю, что за мода пошла на фреймворки, которые обязательно надо каждому написать, ну или хотя бы использовать чей-то… Откуда это? Как часто/давно Вы писали просто и банально lib-ы?
+ про фреймворки: считаю уместным использование нужных инструментов для выполнения определённых задач. Микроскопом гвозди заколачивать не призываю. Я просто не понимаю фанатизма в изучении какого-то конкретного фреймворка и дальнейшее затачивание задач под него.
>> «Независимо от контекста — глаз режет»
Все просто :) Это языки для создания веб-приложений:
C# — ASP.NET
Java — JSP
PHP — Zend, Cake, CodeInginer
Python — Joomla (если не ошибаюсь)
Ruby — Ruby on Rails

>> «А группа программистов, хорошая среда, ОС и вся остальная ерунда — ничто, пыль, лабуда, созданная другими программистами, возможно, хуже, чем Вам кажется.»
Вы в одиночку создали серьезный проект? о_О Покажите пожалуйста :)

>> «Не понимаю, что за мода пошла на фреймворки, которые обязательно надо каждому написать, ну или хотя бы использовать чей-то… Откуда это? Как часто/давно Вы писали просто и банально lib-ы?»
Почему вы ездите на «машине\авобусе\поезде»? Почему вы ни разу не садились за лошадь? Что за мода такая? Где ваша гусарская честь?

Автомат? Гранатомет? Самурай не носит оружия. Душа самурая в мече!
python django
php joomla
Прошу прощения у «Питонов». С утра голова не работала :)
Не душа самурая в мече, а правильным будет: «Меч — воплощение души самурая».
C# — ASP.NET — намного неправильная аналогия.
ASP.NET — это платформа (да, понятий много оказывается, может я сам из местами неверно трактую).
Если взять фреймворк для ASP.NET, то это DotNetNuke, например. Вот тут, я думаю, каждый согласится, что изучение ASP.NET (все равно на каком языке), не нужно начинать с подобного фреймворка.

Касательно автора топика… Все равно нужно сначала написать свое приложение, которое будет все делать по правильному: разделять логику, инкапсулировать работу с базами данных, использовать объекты для всего этого (можно даже 2 сайта простых сделать, которые будут использовать общие библиотеки и наработки). Вот тогда вы действительно поймете зачем ООП, зачем нужны фреймворки, в чем преимущества и т. д.

Мое мнение — если начать с фреймворкав без хорошего бекграунда в ООП и не имея достаточного опыта, то вы выучите фреймворки, но не ООП.
Ну если копать действительно глубоко то:
.NET Framework — это явно неспроста :)

Это означает что .NET — это один большой фреймворк, составной частью которого является ASP.NET

Тем более фреймворк — это не просто набор dll-ок (многие этого просто не понимают :)
ru.wikipedia.org/wiki/Framework

А по поводу фреймворка:
habrahabr.ru/blogs/pishu_pravilno/42898/#comment_1060264
Ну, если C# и Java «языки для создания веб-приложений»… Очень жаль, что сейчас многие приравнивают программирование к созданию веб-приложений (проще — сайты, порталы). А ведь это только верхушка айсберга. Не хочу хвалиться, ничего действительно гениального не создал, но поспособствовал. Показать не получится, это с web-ом вообще никак не связано, более того это dll-ка, (да ещё и часть коммерческого продукта, так что разговор на эту тему продолжать не буду). Про автобус, машину и поезд — я использую то, что мне нужно в данный момент, но при этом не пытаюсь досконально изучить строение этих средств передвижения (то, к чему Вы призываете) — мне хватает определённых знаний, чтобы пользоваться любым поездом, автобусом и управлять любой машиной (это есть теоретическая база — про которую я говорил). Но при всём при этом, я пойду пешком, если это будет выгоднее, а Вы пойдёте на поезд, т. к. спец. в этом — вот и вся разница. Создавать свою машину, поезд, пылесос — не моё. )
Нет, тут логика такая, что прежде чем купить автомобиль — нужно сперва проехать сколько-то километров на самодельном авто :-D Тоже считаю это бредом. Чтобы научиться программированию нужно научиться анализировать, проектировать, составлять алгоритмы и понимать что отработает быстрее и почему. Тут неважно используете вы фреймворки или нет.
нужно уметь хорошо работать по крайней мере с одним инструментом
> Теперь внимание, вопрос. Что будет если програмист «Микросхем» встретит «Java\C#\PHP програмиста»? :)))

Займётся программированием JavaCard? :)
Если каждый программист, начиная с программиста микроконтроллеров, и дальше к РНРсту грамотно выполнит свою работу, то ресурсы компьюетра останутся в целости и сохранности.
Ну… как показал опыт, он вначале напьется… а после будет долго-долго рассказывать, какие же мы гады, что убиваем ради пятиминутной выгоды миллиарды процессорных тактов и десятки мегабайтов памяти на исполнение и хранения различного мусора :)
Изобретение велосепеда начинается не из-за незнания паттернов чаще всего, по моим наблюдениям. Гораздо чаще изобретают велосипеды, когда не знают базовых концепций программирования. Приходили такие товарищи на собеседование: говорят гордо «php-программист», а что такое стек не знают и начинают для решения простейшей задачи городить огород.

Читайте Кнута!
Ну вот и asm еще обидели. (
Что бы быть богатым торговцем бывает очень полезно поторговать на морозе на улице пирожками перед новым годом.
это все придет с опытом.
НЛО прилетело и опубликовало эту надпись здесь
Спасибо, мне нравится ваше мнение.
НЛО прилетело и опубликовало эту надпись здесь
У меня так и есть.
НЛО прилетело и опубликовало эту надпись здесь
За такое надо вводить телесные наказания. Вы попробуйте потом этот код поддерживать.
НЛО прилетело и опубликовало эту надпись здесь
Воспринимайте спокойнее. К чему такая агрессия?

Да, я не могу поддерживать такую структуру. Объясните мне в чем ее плюсы — может когда в следующий раз придется переписывать чужой проект — я буду проще воспринимать.

… так что я думаю должно быть понятно…
Мне не понятно.
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
За такое надо вводить телесные наказания:
* catalog.php
* product.php
* search.php
*…
* index.php
1) Я видимо не так понял — мне в свое время пришлось дорабатывать проект, у которого страницы генерились через index.php?Page=Catalog
А в index уже switchем генерилась страница. Это полный бред.

2) * catalog.php… хм… Т. е. файл catalog.php который выводит каталог — это неправильно? Лучше так что ли: index.php?Page=Catalog&Cat=Notebooks…?
НЛО прилетело и опубликовало эту надпись здесь
У меня по файлам разбросаны функции. Явно эти файлы не вызываются, а подключаются как контейнер с функциями.
НЛО прилетело и опубликовало эту надпись здесь
Я тут скромно напомню о могущем быть полезным тебе teachmate.org
Мне помогло одно обстоятельство. Мой код посмотрели другие программисты и просто в нём не разобрались :)

Потратьте день, неделю и сделайте код читабельным. Я имею ввиду такое подобие:

if (user_autorization == true){

  result = connect_to(SQL);

  if (result !== false ){

   SQL -> from_table('user') -> read ('user_name','count');
   result = check_autorization ( $username , $password);

   if (result == true){

     // тили-тили... траливали

   } else {

     show_error (AUTORIZATION_ERROR);

   }

  } else {

     show_error (SQL_ERROR);

  }
}

* This source code was highlighted with Source Code Highlighter.


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

Для начала википедия:
ru.wikipedia.org/wiki/%D0%AF%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F#.D0.9F.D0.B0.D1.80.D0.B0.D0.B4.D0.B8.D0.B3.D0.BC.D1.8B_.D0.BF.D1.80.D0.BE.D0.B3.D1.80.D0.B0.D0.BC.D0.BC.D0.B8.D1.80.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D1.8F
Читаем внимательно. Рекурсивно идем вглубь.

Дальше приступаем к изучению собственно программирования:
see.stanford.edu/see/lecturelist.aspx?coll=824a47e1-135f-4508-a5aa-866adcae1111
Курс стенфордского университета. Базовый вводный, то что надо.
Дальше можно двинуться в сторону:
see.stanford.edu/see/courseinfo.aspx?coll=11f4f422-5670-4b4c-889c-008262e09e4e

Следом или параллельно с курсами стоит читать книги про объектно ориентированное программирование, и если вас хватит, то и про проектирование. Почитайте про патеры — сейчас самое время.

В этот момент, если Вы еще не разочаровались в программировании, начинаем переходить к вебу.

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

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

Как вариант возьмите python или ruby. Никаких фреймворков для начала, поймите как работает вся кухня.
Разберитесь с элементарным вводом-выводом, посмотрите на спецификацию HTTP.

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

Самое время поговорить о концепциях чуть более сложных, чем валидация форм или шаблонизатор. Разберитесь с понятием кеширование, какое оно бывает, когда как и почему может применяться.
Дальше двигаемся в сторону взаимодействия машина-машина, читаем Restful web services — очень хорошо вправляет мозг кстати.

Еще остались силы? Читаем — Programming Collective Intelligence.

Маленькое уточнение: все книги и документацию старайтесь читать на английском. К сожалению некоторые книги успевают устареть уже к моменту выхода в печать, а уж к моменту выхода их на русском они вообще неактуальны. Это не касается таких книг «Искусство программирования» или например книг по TCP/IP.

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

Впереди у Вас будет еще много чего — SSO, распределённые файловые системы и вычисления, Data mining итп. Но это уже advanced, а база у Вас будет.

Кстати, не пытайтесь осилить всё что я описал за месяц — сломаете мозг :)

Удачи в учёбе ^^
большое спасибо автору топика за поднятую тему и вам, за ваш комментарий. хоть опыт уже 3 года и особо глупых ошибок (теперь) не делаю, но подтянуть знания хотелось бы. всегда есть к чему стремиться, главное не сидеть сложа руки.
А что конкретно про патерны посоветуете прочитать? Спасибо.
автору стоит серьезно задуматься о «безопасном» коде. потому что в данных сорцах «безопасность» на нуле. смотрел bmw.rar, но не сомневаюсь, что и в остальных тоже самое.

ни одной проверки на то, что кушает скрипт.
admin/index.php

if (isset($_POST['adminname'])) $_SESSION['user'] = $_POST['adminname'];
if (isset($_POST['adminpass'])) $_SESSION['pass'] = $_POST['adminpass'];
...
$res = mysql_query("SELECT name, pass FROM admin WHERE (name='".$_SESSION['user']."' AND pass='".$_SESSION['pass']."')");


login: admin') or 1=1/*
pass: blablalbalblb

и мы в админке.

/admin/uploader/script.php доступен даже без авторизации! причем есть возможность залить любой файл (например, вебшелл).

ну и остальное аналогично-печально.

http://localhost/index.php?op=view_car&car_id=333'+union+select+1,concat_ws(0x3a,name,pass),3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9+from+admin/*
http://localhost/index.php?op=view_marka&marka=Volkswagen'+and+1=1/*
http://localhost/admin/index.php?op=view_car&car_id=3'+and+1=-1+union+select+1,version(),concat_ws(0x3a,name,pass),4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9+from+admin/*

и т. д…



да и админский пасс в бд хранить в плейн-тексте — это не есть гуд…
А что у вас за плагинчик для Firefox? Ниже строки ввода URL
ниже «строки ввода URL» вообще-то находится панель закладок ;) два плагина слева от «строки ввода URL» — cookie editor и live http headers.
вся надежда на magic quotes :))
несного оффтопа: забавный сайт в гугл серче -.-
Эмм, я вот только что просмотрел код (просто забыл его немного). Там мод-реврайт делает ссылки вида bmw.dot/cars/only/3.
Вы поняли, как форимуются ссылки, глядя на сам .htaccess и из этого взламываете. Но, в принципе, не видели бы вы исходники — смогли бы прийти к тому же результату?
Вы б книжек почитали толковых, где покажут и объяснят «высокий штиль» хотя бы используя тот же Ваш PHP.
Вспоминаются школьные годы чудесные, когда только начинал заниматься программингом, причём на Visual Basic. И долго я не мог смириться с утверждением из единственной доступной тогда книги: «Всегда включай Option Explicit, чтобы компилятор ругался на необъявленные переменные!». Сейчас смешно, но тогда неокрепший детский умишко очень тяжело шёл на согласие, выдавая «да на кой писать эти Dim i as Integer, если можно не писать?».
Очень много читать сверху (= Не знаю, может быть уже советовали.
Воспользуйтесь шаблонизатором. Это очень сильно упростит вашу работу.
Отвечу по теме. Смотрел арзива прага. рар.

> DEFAULT CHARSET=cp1251
Это Вы зря. Лучше UTF

> `pass` varchar(256) NOT NULL,
Если это пароль, а это судя по всему он, то CHAR(32) и хранить хэш. В простейшем случае возвращаемый функцией md5()

> `adress` text,
> `addit` text,
> `sign` text,

Не используйте text там, где можете разумно ограничить длинну поля.

> switch ($lang)
Может быть этот предрассудок остался у меня от Явы, но имхо лучше if… else if…

Как и следовало ожидать никакого разделения отображения и логики нет. Это не очень хорошо.

> $id = $_GET['viewcat'];
> $res1 = mysql_query(«SELECT id, sub_id, name_».$_SESSION['lang']." FROM categories WHERE (sub_id='".$id."')");
Почитайте про SQL-Injection.

Вообщем мой код года два назад не сильно от этого отличался, читайте книжки (но в меру и хорошие), умные статьи и смотрите чужой код в крупных проекта (и плохой и хороший) — вот что могу посоветовать :)
По поводу паролей на хабре недавно уже пролетало: habrahabr.ru/blogs/webdev/39079/
Только обязательно прочитайте комментарии, там лечатся некоторые недочеты статьи.

По поводу остального. Я не большой специалист по пхп, поэтому советы будут достаточно общими.
0) отделите уже данные от их представления. Шаблонизаторы рулят
1) познакомьтесь поближе с ООП. Если не понравится, в любой момент вернетесь назад. Потом. Если захочется (с)
2) один из китов ООП это инкапсуляция. Объект сам умеет делать все необходимые операции, и предоставляет наружу ОГРАНИЧЕННЫЙ интерфейс. Например, у нас есть объект «юзер», с его данными — id, фио, логин, пароль. Это будут свойства объекта. Что можно сделать с юзером? Загрузить его по id, по логину, по фио, проверить пароль, поменять фио, поменять пароль, создать нового юзера наконец, ну и удалить. Вот вам набор методов. Немного подумав о том, на кой черт нам такой большой набор, можно его сократить, скажем так: загрузить по любому полю/набору полей, поменять любые поля, создать, удалить, проверить пароль. Еще немного подумав, можно ввести операцию сохранения данных, которая сама будет решать, поменять поля у существующего юзера или создать нового. А подумав окончательно Вы заметите, что этот набор методов на 90% подходит к любому другому объекту, храящемуся БД или любом другом хранилище.
3) попробуем применить это скажем к хранилищу статей. Статьи можно выбирать не по одной, а сразу несколько (хм, ага, кстати юзеров тоже — в панели управления), статью можно править (создавать/изменять), ее можно удалить и ее можно показать клиенту. Черта с два ее можно показать, мы же договорились отделить логику и данные от представления! И вообще это забота приложения, а не самого объекта, который у нас делает базовые операции по управлению данными.
4) поглядев на эту красоту, вы заметите что и основные запросы к базе часто делаются по одной схеме и их можно утащить в суперкласс
5) кстати, мы уже незаметно написали что-то похожее на фреймворк :) Это ничего что он возможно кривоват и вообще велосипед. Это — отличная зарядка для ума.
6) интерфейс у всех Ваших объектов идентичен, и вы становитесь способны делать некоторые забавные вещи, скажем сделать единственную страницу в админке, которая будет уметь править любую таблицу в бд — нужно только передать ей название класса и идентификатор записи. Вопросы безопасности и разделения доступа оставим за кадром — они решаются.
7) всегда минимизируйте интерфейс объекта
8) всегда делите систему на максимально независимые части. Иерархичные связи типа «Компания-работники» и т. д. организуются на объектах без проблем. Неиерархичные связи часто лучше делать, не вкрячивая их в объекты, чтобы не увеличивать связанность системы. Чем меньше один объект или тесно связанная группа знает про другие группы — тем проще и главное надежнее все будет работать. Если связь нужна, можно реализовать ее на уровне приложения либо даже ввести отдельные классы специально для управления сложным хозяйством, смотрите по обстановке.
9) чтобы повысить прозрачность системы, всегда делите систему на слои — что нужно объекту, что приложению, и не смешивайте слои в одном классе
10) не стесняйтесь писать велосипеды, и не стесняйтесь сравнивать свои велосипеды с чужими, чтобы знать куда идти дальше. Если бы велосипедов не было, мы бы сейчас имели один убогий шаблонизатор, одну бд и один язык программирования.

Как-то так :)
а почему char лучше varchar?
Не бенчмаркал, насколько работает на практике в наше время, но слышал что СУБД могут применять более шустрые алгоритмы для поиска записей, если в таблице длина каждого поля четко определена (CHAR, INT и т. д.). В этом случае запись всегда имеет одну и ту же длину и запись в файле ищется по принципу N*LEN, где LEN — длина записи, N — ее номер по порядку в файле. На всякий случай делаю таблицы фиксированными там, где разница в размере не будет заметна или отсутствует :)
А по поводу изменения длины поля — в любом случае, тот же MySQL может эффективнее строить временные таблицы, если поле имеет небольшую длину. А уж если на тот же varchar(255) еще и хочется индекс накинуть, то лучше понять какая длина там будет реально использоваться и урезать поле. Чем короче запись индекса, тем больше их влезет в память и тем быстрее по такому индексу ползать.
>Может быть этот предрассудок остался у меня от Явы, но имхо лучше if… else if…
Я при активной разработке на Яве как раз перешел от кода if..else if к switch. Вроде знающие люди говорили, что ява такие блоки обрабатывает быстрее.
Напишите на Arvids точка Godjuks собака gmail точка ru
Ололо, на башорг!
Скорее всего преподы вначале учат как «писать» (ударение на «и») и не слова про безопастность, а когда начинают рассказывать про безопастность то уже поздно… тяжело переучится. Да и класс преподователей оставляет желать лучшего.
имхо: совет — сообщество habr поможет, почаще спрашивай и анализируй.
И правильно вверху писали: возьми один из fw (имхо мой совет Zend) и попытайся разобраться, когда логику поймешь, считай что ты уже на уровень выше.
браво за желание — в нашем деле оно если не самая главная вещь, то одна из.
и, как уже советовали выше — не учите определенный язык, учитесь программированию вообще… искусству программирования, простите за высокие слова:)
на собственном примере… у меня в универе был курс по интернет-программированию, где из сервер-сайд языков мы учили JSP (уж не знаю, почему). сейчас я пишу на пхп… и замечательно себя там чувствую.
ИМХО, главное — знать, что надо и почему это надо именно так. а как оно именно пишется на данном языке — надо знать уже потом:)
и удачи!
>… на предмете Интернет-программирования я оказываюсь умнее…
Вы не можете быть умнее, Вы можете знать больше или меньше. В данном случае — Вы знаете больше.

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

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

Если кто согласится поделиться своими знаниями и взять меня в падаваны, то пишите пожалуйста мне. Особенно если вы так же как и я пишете на зенде
У нас пока еще есть вакансия подавана-перлиста. Таймлимит на рост из подаванов в девелоперы — полгода. Если кому интересно, могу рассказать подробнее, но не уверен, что это стоит делать прямо в данном топике. Пишите личкой.
Не понимаю я подобных заявлений. Есть книги по программированию, есть форумы, есть гугл — все возможности. «помогите развиваться» — это совершенно бессмысленный топик.
ну почему же. Товарисч уже нахватал советов, я думаю что информация к размышлению у него уже есть :) Иногда нужен просто толчок в нужном направлении, и все будет хорошо.
Информации много получил. Сейчас сижу, взявшись за голову, модифицирую те 3 скрипта, что есть, а потом потихоньку начну учиться дальше.
Успехов :)
Хабр отличается от форума сильно? Просто не знал (уже дали ссылку) форума, где можно спросить помощи. А на хабре много программистов, которые помогут. И уже помогли. Спасибо всем.
На форуме равно как и на хабре имеет смысл задавать конкретные вопросы. Для того чтобы найти нужный форму достаточно вбить соответствующий запрос в гугл.
Автор, привет))

Что-то ссылок на код я не нашел) но если нужна будет здравая критика твоего кода и какие-то советы, пиши в личку, немного времени найдется))
Привет. Кто хотел — посмотрел. Там было столько дырок, что решил не давать повода для хацкеров.
Розыск! Ушел на Blogcamp и… не вернулся

Хабралюди, помогите найти этого человека, на хабре он foomer, подробнее о пропаже на ukrnet.info
Автору:
Оказалась ли в итоге данная статья для тебя полезной?
Чем именно? Что-то реальное, кроме умеренного позитива?
Нашёл наставника?

Из рекомендаций для самого начального уровня:
1. Читай чужой код. Возьми любой качественный opensource и читай подряд — как он работает. Важно только найти именно качественные исходники.
2. Участвуй в opensource проектах — пиши свои дополнения, расширения и т. п. Ты очень быстро получишь обратную связт от пользователей и рекомендации от других разрабочтиков.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории