Что есть программирование? Для всех по ращному. Для меня, программирование, это, во-первых, алгоритмизация. Программирование не может существовать без алгоритмизации. По большому счету нет профессий типа «Программист C++», «Программист Delphi» итп. Есть профессия «Алгоритмизатор». Ведь сам код это ведб просто синтаксис какого-то языка программирования. Но чтобы писать этот код программист должен четко представлять себе общую картину, он должен видеть алгоритм выполнения задачи. И именно красота алгоритма ценит программиста, а не язык, который он выбрал. Сложилось неверное мнение, что программисты, знающие С++ лучше программистов, знающих Delphi к примеру.[anonsend] Это неверно, потому что настоящему программисту, алгоритмизатору, без разницы на чем писать свои алгоритмы. Синтаксис любого языка можно выучить за неделю и за год овладеть им в совершенстве. Но как бы ты не учил язык, сколько бы ты книг не читал, если ты не умеешь писать алгоритмы — ты не программист. Ты можешь гордо писать резюме что ты знаешь «C++», можешь работать в модной фирме и делать какую-то работу, но ты не программист. Ты так… кодер. Чтобы стать алгоритмизатором ты должен видеть задачу, должен уметь щупать ее со всех сторон. Должен уметь находить разные пути решения и выбирать более-менее оптимальный. Именно это всегда ценилось в программистах — нестандартный подход к задачам. Даже не столько не стандартный, а сколько не такой, как у всех. В школе нас всех учат одному и тому же. Никакого разнообразия. В инсте то же самое. Алгоритмизатор должен мыслить трехмерно, а не прямолинейно. Чему нас учат в школе? Учат что 2*2=4 и только так и никак иначе. К сожалению это дейсвительно так. Вся математика в школе, да и в инсте, основана практически на одном решении. Позднее, правда, в инсте на математическом анализе все же дают альтернативные способы решения школьных задачек, но давали с таким выражением лица, когово у меня небыло на лекциях по дискретке после бессоных ночей. Вся школьная физика основана на единственном решении задачи и это все НЕВЕРНО, это натуральное зомбирование людей! Это относится не только к алгоритмизации, но и к алгоритмизации в частности. Я всегда смеюсь, когда мне говорят что компьютерные игры типа CS, DOOM и прочих стрелялок — тупят людей. Нет, наоброт! Человек в этих играх (оссобенно сетевых версиях) получает трехмерное мышление! Когда человек, например, играя в CS за террористов знает что на карте в 2-х местах можно поставить бомбу и добраться до них можно 3-мя способами, он анализирует, какой самый быстрый, какой самый безопасный и какой самый оптимальный при текущем наборе противников. Точно так же должен подходить и программист к поставленной задаче. К сожалению сейчас все больше так называемых программистов, когда получают задачу, мыслят примерно так: «Ага, в инсте это проходили, надо делать так!» и на этом все заканчивается. Школа убивает в каждом из нас гения. Единственный урок, который я действительно любил, это была химия. Я поражался количествам способов, которыми можно добыть водород (а потом взорвать его за школой =)), с учительницей мы выбирали самый оптимальный, выбирали самые дешевые реактивы и самый быстрый для школьного класса способ. Почему Энштейн был гением? Он сам рассказывал почему. Потому что в школе дают не верную физику, человек школьных лет не может ее воспринимать правильно. Энштейн говорил что в школе он ее не понимал, долго работал почтальоном и физика начала его интерисовать уже в более зрелые годы, тогда он самостоятельно стал изучать ее. Ладно хрен с ним, вернемся к программированию. Программирование, это искусство. Такое же как и музыка, живопись. Порой пишешь что-нить, оглядываешься и думаешь: «Как же красиво получилось… О, а тут как я лихо экономлю ресурсы… А вот тут какая элементарная, но железная защита…» и так далее. Но что нужно чтобы стать алгоритмизатором?
1) Научится мыслить глобально.
2) Научится верить в себя и свои идеи
3) Забыть фразу: «Это невозможно». Например: «Это невозможно реализовать». Кто-то, помню, уверял меня что нереально выдрать все комменты к новости одним запросом и сохранить при этом дерево. Ну чтож, значит ННМ нереальный проект =)
4) Научится играть в CS.
5) Самому придумать сюда пятый пункт.
Впрочем это лишь мой взгляд на программирование. Возможно я и ошибаюсь. Но я понимаю как можно считать себя программистом, но на свой сайт класть WordPress. Возьмем в пример маниакальный блог. Многим известен. Автор считает себя программером, но он так… кодер… шкодер. Что это может означать? Типа я программер, но сам своими работами не пользуюсь? =) Своего гавна не едим? =) Все равно что быть владельцем пиццерии, но пиццу заказывать в другом месте. Все равно что держать публичный дом, но заказывать девушек из другово публичного дома. Но такие «кодеры» отмазываются, мол зачем делать, если уже есть готовое итп, тратить время итп. Ага. Нах мерену придумывать новые дизайны к своим тачкам, если это делают дизайнеры запорожца? Это глупо и пахнет лентяйством. А еще я никогда не пойму людей, которые спрашивают меня: «А какой шабланизатор ты использовал на ННМ?» да никакой, у меня везде ехи стоят! Да и что за манера в последнее время юзать чужие классы для написания своих проектов? Своих мозгов не хватает? Позор всем, кто считает себя программистом, сайт свой держит на WordPress`е и в проектах использует шаблонизатор SMARTY!!!