Как мы делаем ЭТО и зачем оно нам надо?

antonio

Moderator
Команда форума
Как мы делаем ЭТО и зачем оно нам надо?

Начну с того, что я очень долго думал над вопросом: "Ну вот, свершилось, я программист, я могу то, се, пятое, десятое; а вот как я ЭТО могу, и, самое главное ЗАЧЕМ? (Не сошелся же свет клином на программировании?)

Ну что ж, давайте по-порядку. Итак: "Как мы делаем ЭТО?"

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

Кто же такие программисты? Чем они живут? Чем они занимаются. Вы будете шокированы, если я скажу: "Программисты, это те люди, которые каждый день ходят в туалет по всем правилам!" И в этом нет ничего смешного!

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

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

Профи может привести веский аргумент против этого подхода. Какой нахрен алгоритм, скажет он, а языки программирования, а базы данных, протоколы и схемы, либы и ситемы? Они должны знать!

Но, если человек безупречно построил дерево событий определенного процесса, то можно предположить (а так оно и есть) что этот человек, прежде чем возьмется за решение определенной задачи, выявит всю проблематику и проанализирует существующие технологии на предмет использования их для своей задачи точно так же, как он ходит в сортир. Он способен обучаться как Маугли (Copyright http://progstone.nm.ru/ советую почитать), он использует все свои знания и свою картину мира для решения поставленной перед ним задачи. А, если, эта картина не полная, то он начнет дополнять ее, изучая то что есть, т.е. все теже системы, либы и языки и.т.д.

Чтож, самое время рассказать КАК МЫ ДЕЛАЕМ ЭТО?

- Мы читаем маны до дыр

- Мы изучаем операционные системы, протоколы и RFC до байтов

- Мы изучаем чужие ошибки и стараемся их не повторять

- Мы сами делаем ошибки, но находим и исправляем их

- Мы стараемся рассказать другим о том, что мы знаем и не боимся идти туда, где никто до на не был

- Нам платят деньги за то, что мы ДЕЛАЕМ а не за то что мы могли бы сделать

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

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

Ну вот теперь Вы знаете (хотя и весьма приблизительно) что значит быть программитом. Порой это совсем неинтересно, поскольку приходится читать кучу статей, новостей, ковыряться в чкжих исходных кодах с единственной целью: исправить ошибку, чтобы либа, которая тебе нужна работала так как надо, чтобы протокол, который используется всем миром был безупречен и не дыряв, чтобы ткнуть носом разработчиков софта в проблемы безопасности их детища, поскольку вечна истина: "В нашем мире, все что придумано одним человеком, может быть понято и использовано другим." И вторая, самая фундаментальная: "Чудес в нашем мире (программирования) НИКОГДА НЕ БЫВАЕТ!"

Но тут Вы спросите. Нуу ребята, ну и геморой же вы на свою попу придумали! А оно Вам надо? Вот мы и подошли к вопросу: "ЗАЧЕМ НАМ ЭТО НУЖНО?"

Ответ на этот вопрос скорее филосовский чем логический.

Ответ первый. Это очень интересно. Почему? Попробую объяснить на ассоциациях (отдать кусочек карты, так сказать).

Я уверен, что большинство здесь присутствующих играли в стариегии типа Heros, Might and magic, различные квесты и.т.д. И если да, то все прекрасно знают, что пока ваш герой неопытен и слаб сделать что-то в игре крайне тяжело и, только, набравшись опыта начинаешь строить стратегию развития событий в игровом пространстве. Это почти то же самое, что происходит при познании компьютерного мира. Сначала ты учишься работать с системой, потом с настройками периферии для нее, потом с языками и пошло, поехало. Вам не кажется что мы играем в стратегию под название ПРОГРАММИРОВАНИЕ? И, хочу отметить, что эта игра мне нравится, поскольку выигрыши в ней выражаются не просто в моральном удовлетворении, но и в денежном эквиваленте (у кого в каком, завичит от experience и желании продолжать игру на более высоких уровнях)

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

Сорри, я слегка отвлекся. Итак, мы играем в глобальную стратегию и это интересно. Если это интересно только из-за денег, то лучше сразу бросить эту игру, поскольку она еще интересна и сама по себе. И, я рискну, высказать третье незыблемое правило: "C ростом опыта в игре ПРОГРАММИРОВАНИЕ, растет количество денег, которое ты получаешь за свою работу". И очень интересно получать деньги не за простую, а именно за сложную работу, которая не делается левым мизинцем правой ноги, а над которой приходится сидеть, схватившись за голову и думать, думать, думать.

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

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

2. Если у вас возникли технические проблемы, то см. п.1

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

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

5. Правильный вопрос получает правильный ответ. Задайте вопрос сначала самому себе, а потом уже Васе Пупкину.

6. Если что-то должно работать и не работает, то это не ЧУДО! Это или Ваше незнание, или ошибка в алгоритме, или баг используемых программных средсв, третьего нет!

Ну чтож, в добрый и долгий, иногда нудный и неинтересный, но, в основном, очень увлекательный путь по дороге программирования. Жаль только, что до конца игры никогда не доиграешь!
 

-=BJIAD=-

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

Кому интересно как ВЫ ЭТО делаете?

Считаю примерно 90% бредом. (это только мое мнение).
Зря потратил время читая...

Делать нечего? см. п. 1.
 

Demiurg

Guest
Замечательная статья. Стоит прочесть каждому.
 

DiMA

php.spb.ru
Команда форума
> Зря потратил время читая...

какой ужас... Зачем же ты тратил время на написание бредового (90%) комментария сюда?
 

filya

Guest
Базара нет. Классно. Есть над чем задуматься.
 

chulim

Новичок
2 antonio

Огромное спасибо за линк. Паковщиком уж точно стал, есть к чему стремиться и над чем работать.

С уважением, chulim.
 

HabaHaba

Новичок
Случай из жизни....

Вспомнилось почему то :)
ПРИТЧА
Давно было. Пришел я как то устраиваться в самую крупную инет компанию в рунете.
Ну весь такой уверенный, амбициозный, пехапе знаю... типа ;)
Собеседовал меня САМ технический директор. Дядька неимоверной крутости.
Бодались мы с ним около полутра часов.
Я требовал денег, он кунал меня головой в унитаз, я говорил, что он жлоб а он кричал, что я ламо.
В общем собеседовались как надо :)
И вот, уже оба измотанные, говорить ничего уже не хочется.
Тогда он говорит - "Типа ну давай последняя задача. Короче, как подключится из PHP к MSSQL?"
Ну я говорю - "Да с пол пинка! mssql_connect()" Он мне - "А если не работает?".
Вот тут я сламерил пострашному. Начал лихорадочно соображать, решил уж было предложить переписывать библу etc.
А он на меня так грустно посмотрел и говорит - "Надо быть программистом а не тупым кодером. Библиотеку то ты не подключил в php.ini."
Вот так.
С тех пор навсегда засела нелюбовь к слову кодер, легкая горечь поражения и искреннее уважение к самой крупной интернет компании в рунете :)
 

f1

formula 1
всё верно почти,
только данный текст большей частью относится к любой области деятельности, если заниматся ей профессионально.
Учишься, растешь постоянно, "перешагивая на очередную ступеньку" понимаешь как тривиально было то, чем занимался ранее и т.д.

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

tony2001

TeaM PHPClub
Antonio, ты не гений, ты просто программер и этим все сказано.
Лично я уже давно замечаю, что жизнь моя сложена из алгоритмов (типа "вставил ключи, повернул до конца, зашел, закрыл за собой дверь". И не важно, что за тобой кто-то идет и он остался в коридоре - алгоритм-то сработал =))
Насчет нетривиальности - 100%.
Я не в первый раз это слышу и давно прочувствовал на себе.
Когда задают задачку, над которой и думать не надо - делать ее таак влом, что еле себя заставляешь.
Обратный случай - задачка требует затрат умственных ресурсов и над ней ХОЧЕТСЯ ДУМАТЬ. Правда, как только приходит решение.... собственно осуществелнием его не хочется заниматься - алгоритм есть, его слагающие элементарны и просты, задачка НЕтривиальная разложилась на десяток тривиальных.
Такова селява =)
 

f1

formula 1
Автор оригинала: tony2001
Antonio, ты не гений, ты просто программер и этим все сказано.
Лично я уже давно замечаю, что жизнь моя сложена из алгоритмов (типа "вставил ключи, повернул до конца, зашел, закрыл за собой дверь". И не важно, что за тобой кто-то идет и он остался в коридоре - алгоритм-то сработал =))
Насчет нетривиальности - 100%.
Я не в первый раз это слышу и давно прочувствовал на себе.
Когда задают задачку, над которой и думать не надо - делать ее таак влом, что еле себя заставляешь.
Обратный случай - задачка требует затрат умственных ресурсов и над ней ХОЧЕТСЯ ДУМАТЬ. Правда, как только приходит решение.... собственно осуществелнием его не хочется заниматься - алгоритм есть, его слагающие элементарны и просты, задачка НЕтривиальная разложилась на десяток тривиальных.
Такова селява =)
вот один гений думал думал почти в этом же направлении, и придумал ТРИЗ,
в которой "разложение нетривиальной задачи на десяток тривиальных" один из нескольких десятков методов решения поставленной задачи :)

Так что есть ещё куда стремиться
 

Mistique

Guest
по-моему ВСЕ правильно,а Tony ультраправ!
хотелось бы добавить еще кое что-
да жизнь зачастую превращается в кошмар(слышишь бряк, да не знаещь где баг);
мир становится похож на сполшной алгоритм, приступы аутизма случаюся чаще чем сходить воды попить, читать много НАДО, чтоб не упасть с "волны"-не спишь... итд
многие смотрят на тебя как на придурка... И ЧТО? зато наверное ГОРАЗДО интереснее бухать круглосуточно, шляться по улице, прожигать жизнь(свою и чужую...), колоться, чинить беспредел... и в итоге в конце жизни просто оглянуться и понять, что НИЧЕГО ты не сделал... хм... программирование... покажите мне ХОТЬ один аспект нашей жизни куда это дело не залезло??? ДА ВЫ НЕ НАЙДЕТЕ! а если там ЭТОГО ПОКА что нет, от смотрите в институах... не знаю, но программирование-это образ жизни, определенный склад ума, это желание учиться в конце концов...
 

Romantik

TeaM PHPClub
насчет сортира

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

theo

Guest
Автор оригинала: tony2001
Я не в первый раз это слышу и давно прочувствовал на себе.
Когда задают задачку, над которой и думать не надо - делать ее таак влом, что еле себя заставляешь.
Обратный случай - задачка требует затрат умственных ресурсов и над ней ХОЧЕТСЯ ДУМАТЬ. Правда, как только приходит решение.... собственно осуществелнием его не хочется заниматься - алгоритм есть, его слагающие элементарны и просты, задачка НЕтривиальная разложилась на десяток тривиальных.
Такова селява =)
Вот интересно, это хорошо или плохо? А то я стал считать, что я совсем ничего сделать не могу, лень мне и все тут...
 

tony2001

TeaM PHPClub
Автор оригинала: theo
Вот интересно, это хорошо или плохо? А то я стал считать, что я совсем ничего сделать не могу, лень мне и все тут...
я ж говорю - стремиться есть куда, поэтому просто сидеть я себе позволить не могу.
да и не хочется.
 

Макс

Старожил PHPClub
>> поскольку отсутствие бумаги в сортире, является багом,

А незакрытая вспешке дверь является дырой в системе безопасности :)

А текст с удовольствием прочитал. Жаль что такого мало пишут. :(
 

nail

Guest
Мда, довольно странно... Все обсуждают алгоритмы.
IMHO на данный момент проблемы выдумать алгоритм в 99% случаев не существует - все уже давно придумано - главное только это найти.
Сейчас забота о другом - как быстро и качественно производить ПО. Вот здесь поле непаханное...
 

etc

Guest
Автор оригинала: nail
Мда, довольно странно... Все обсуждают алгоритмы.
IMHO на данный момент проблемы выдумать алгоритм в 99% случаев не существует - все уже давно придумано - главное только это найти.
Сейчас забота о другом - как быстро и качественно производить ПО. Вот здесь поле непаханное...
Это совсем в другое русло вы
 
Сверху