2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3, 4, 5 ... 11  След.
 
 Re: Моя производительность в написании программ
Сообщение03.09.2010, 11:28 
Аватара пользователя


01/04/10
910
Cobert в сообщении #349247 писал(а):
Вы говорили, что не имеете высшего образования и считаете, что оно вам ничего не дест. Даст. Хотя то, что у вас увеличится производительность работы. После ваших заявлений вы обязаны бежать получать образование. Лучше всего туда, где много теоретической физики и математики.


Математикой я занимаюсь (в связке с алгоритмами) самостоятельно уже больше года. Стабильно читаю 4 часа в неделю (т.е. это минимум, а когда увлекаюсь, то больше). По крайней мере в конце 2008 года я был абсолютный нуль в математике, сейчас выкладки Кнута уже более менее понятны мне. Но скорость понимания очень низкая, на одной задаче я могу застрять на неделю, а то и на две. Это конечно абсолютно неприемлемо, но зато понимаю досконально к концу. То есть у меня очень плохо развита способность "бегло" понимать, я или вообще туплю днями или понимаю досконально.

По поводу высшего образования я уже задавал вопрос и никто мне не ответил :(

Sonic86 в сообщении #349289 писал(а):
creative, 20 строк - это мало. Хотя бы 100 строк. Хотя я скорее быдлокодер и пишу методом Ctrl-C-Ctrl-V и вызов методов в программе почти не использую (почти SQL один), но у меня порядка 100 строк точно есть. Попробуйте поанализируйте свой метод писания кода и оптимизируйте его. Как Вам советуют, лучше пишите сначала код, который понятен и в принципе работает, пусть с тормозами и без обработки исключений, а затем его аккуратно оптимизируйте. Выработайте и запомните основные приемы кода, который Вы пишете и применяйте их. Ну и т.д. Можно почитать книжку Макконелла "Совершенный код". В Интернет лучше вообще не лазить (закрыть его и поставить случайный пароль). Потратите месяц на самосовершенствование - станет легче кодить + совершенствование будет происходить полуавтоматически.
Ну это, конечно, мое личное мнение.


Может быть я писал бы быстрее, если бы было конкретное задание из разряда: нужно написать класс some, с интерфейсом method1(...), method2(...). которые принимают значения ..., а возвращают ...
Мне в компании дают задание в общем виде: есть проблема с nginx в связке с ..., нужно решить эту проблему и так, чтобы при этом модуль не создавал высокой нагрузки (таких модулей и готовых решений нет, само open source программное обеспечение для реального продакшена надо допиливать почти всегда).
А дальше я отправляюсь дрейфовать в поисках решения проблемы при условии, что я единственный кто должен её решить и через полгода я уже досконально знаю суть проблемы и могу показать первые варианты нестабильного кода.

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

Я уже писал выше. Вот интересно узнать с нуля написать подобное кто за сколько сможет.

 Профиль  
                  
 
 Re: Моя производительность в написании программ
Сообщение03.09.2010, 12:07 
Заслуженный участник


08/04/08
8556
creative писал(а):
Вот интересно узнать с нуля написать подобное кто за сколько сможет.

Я бы может месяц тормозил, если с нуля разбираться, и если бы у меня не было моего опыта. Может и два. Не мой уровень языка прежде всего.

 Профиль  
                  
 
 Re: Моя производительность в написании программ
Сообщение03.09.2010, 12:18 
Аватара пользователя


01/04/10
910
Sonic86 в сообщении #349289 писал(а):
Как Вам советуют, лучше пишите сначала код, который понятен и в принципе работает, пусть с тормозами и без обработки исключений, а затем его аккуратно оптимизируйте. Выработайте и запомните основные приемы кода, который Вы пишете и применяйте их.


К подобному выводу я недавно пришёл в плане более глубокого осознания:

post345343.html#p345343

Идея работает, но пока скорости соображалки нехватает.

 Профиль  
                  
 
 Re: Моя производительность в написании программ
Сообщение03.09.2010, 12:26 
Заслуженный участник


08/04/08
8556
creative писал(а):
Идея работает, но пока скорости соображалки нехватает.

Ну это тренироваться надо, дело техники как говорится, со временем это придет.

 Профиль  
                  
 
 Re: Моя производительность в написании программ
Сообщение03.09.2010, 12:34 
Аватара пользователя


01/04/10
910
Sonic86

Вы начинали писать сам по себе или уже сразу в компании? Сколько времени прошло от абсолютного нуля до состояния писать что-то в конкретные сроки?

 Профиль  
                  
 
 Re: Моя производительность в написании программ
Сообщение03.09.2010, 12:40 


13/10/09
283
Ukraine
Sonic86 писал(а):
Программа м.б. и почти неконцептуальной. Напр., я сопровождаю программу для почты. М.б. у меня с интеллектом плохо, но ничего глубокого, интересного я в программе для почты помыслить (м.б. это от издержек матобразования) не могу и пишу довольно стандартный код. Идею программы носят архитекторы. Приходя в компанию в архитекторы не попадешь просто так + мозг нужен + образование. Если ты попал туда - тогда да, там 1 строка многого стоит.

Архитекторы могут быть слабыми и вместо хорошей программы спроектировать «пушку для стрельбы по воробьям» :roll:. Пример, «1С». Ее версия 7.7 содержит очень сильные концепции, что касается программирования объектов «Справочники». Чувствуется, что этот код писал настоящий профессионал (перед этим, похоже, работая на Клиппере). Но объект «Документы» спроектировал слабый архитектор, также слаба концепция прикладного учета братьев Нуралиевых (натурализация субсчетов – субконто). Откровенное дерьмо – объект «Календари», его, судя по всему программировал студент – двоечник. Про «1С» версии 8.х я вообще молчу. Ничего другого, как про «бабковыжиматель» и «понтостроитель», я про него подумать не могу. Также не всегда продуктивна идея, что работать нужно на самых крутых и самых навороченных средствах разработки. Нужно понимать, что сейчас коммерционализация программ ставится выше ее простоты и удобства работы. В программистском сообществе хорошо быть на равных. Это стимулирует самообразование и обмен опытом. Быть в подчинении плохо. Хорошо, только если повезет с руководством, но такое бывает редко.

Насчет математики. Я сам математик (мехмат МГУ) по образованию, программист по профессии. Но математика в работе мне практически не нужна. Единственный плюс это абстрактное мышление, которое вырабатывает математика. Это позволяет смотреть на процесс программирования более адекватно.

По поводу почтовой программы. Я вот пользуюсь «The Bat!». Неплохая программа, но многое, я бы сделал по-другому. Главное, упростил бы и изменил бы ее базу данных.

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

Наверное поэтому я начальник отдела без подчиненных :roll:. Редко, кто разделяет мои интересы (пару человек на весь город), но они также практически программистские «волки» – одиночки :roll:.

 Профиль  
                  
 
 Re: Моя производительность в написании программ
Сообщение03.09.2010, 12:53 
Заслуженный участник


08/04/08
8556
Scholium писал(а):
По поводу почтовой программы. Я вот пользуюсь «The Bat!». Неплохая программа, но многое, я бы сделал по-другому. Главное, упростил бы и изменил бы ее базу данных.

Не-не-не :-) , я не про электронную почту, а про самую настоящую: письма, посылки, подразделения, бухгалтерские и статистические отчеты по филиалам, оптимизация запросов - это все мое!
С бухучетом я, пожалуй, плохо знаком, про 1С ниче не скажу. Я просто хотел сказать, что вот если там архитектор будет много думать и писать код не сразу, то это, пожалуй, вполне нормально.
Scholium писал(а):
Насчет математики. Я сам математик (мехмат МГУ) по образованию, программист по профессии. Но математика в работе мне практически не нужна. Единственный плюс это абстрактное мышление, которое вырабатывает математика. Это позволяет смотреть на процесс программирования более адекватно.

Ааа, ну тут уже разница между нами пошла. Я - более запущенный случай. Анекдот про математика, который посмотрев на пожар сказал, что решение есть, и уходит - это про меня.
Scholium писал(а):
Нужно понимать, что сейчас коммерционализация программ ставится выше ее простоты и удобства работы. В программистском сообществе хорошо быть на равных. Это стимулирует самообразование и обмен опытом. Быть в подчинении плохо. Хорошо, только если повезет с руководством, но такое бывает редко.

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

-- Пт сен 03, 2010 13:59:08 --

creative писал(а):
Вы начинали писать сам по себе или уже сразу в компании? Сколько времени прошло от абсолютного нуля до состояния писать что-то в конкретные сроки?

Если проги с универа не считать - сразу в компании. Условие поступления - тестовое задание. Нормальные люди его делают месяц, я делал 2 месяца, так что я не лучший экземпляр. А как сделал, так сразу надо было писать в сроки. Почти всегда получалось. Но я пишу не один, поэтому нельзя сказать, что я сильно что-то запорол - обычно мы все вместе все успеваем. К тому же я обычно мелочевку доделываю или страшные отчеты пишу или оптимизирую (на SQL).
Вы не переживайте сильно - терпение и труд все перетрут :-) просто работайте и старайтесь. Мой такой совет.

 Профиль  
                  
 
 Re: Моя производительность в написании программ
Сообщение03.09.2010, 15:19 


13/10/09
283
Ukraine
Sonic86 писал(а):
С бухучетом я, пожалуй, плохо знаком, про 1С ниче не скажу. Я просто хотел сказать, что вот если там архитектор будет много думать и писать код не сразу, то это, пожалуй, вполне нормально.

Архитектор должен уметь мыслить концептуально. Программировать он практически не обязан. Конечно программисту – одиночке приходится быть и кодером – исполнителем и архитектором – постановщиком в одном лице. В этом случае руководство вообще не волнует, на чем ты пишешь, с какой скоростью, используешь свою программу или чужую. Твоя задача выдать результат. У меня это была необходимость отказаться от услуг районного вычислительного центра. И эту задачу я решил, а каким способом, никого не волнует до сих пор. Фактически я сейчас только администрирую собственные программы и программирую для себя, что меня вполне устраивает.

Я думал, что буду заниматься математическим и компьютерным моделированием, оптимизацией технологических процессов и т.п. Однако кормят нас (реальных программистов в нашем городе) только учетные программы. Поэтому, рекомендую обратить внимание на учет ресурсов и начислений с выходом на бухгалтерию. Или там планирование и оптимизация производства, если фирма производственная. Эта практически вечная тема любого предприятия. Может показаться, что компьютерный бухгалтерский и налоговый учет весьма скучные вещи. Тем не менее, спроектировать его оптимальную модель, для программной реализации, весьма нетривиальная задача и вполне достойна математика.

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

Зачем комплексовать? В себя нужно верить! :roll:

 Профиль  
                  
 
 Re: Моя производительность в написании программ
Сообщение03.09.2010, 21:08 


15/10/09
1344
Внесу и я свои пять копеек. Итак, производительность программирования в режиме "сам себе режиссер" (уточнить постановку задачи с заказчиком, придумать алгоритм, написать программу, отладить, снова согласовать с заказчиком, выдать окончательный вариант).

ИМХО все зависит от сложности задачи. Вот два примера.

Пример 1. Задача "о двух мудрецах". Программа решения этой задачи - всего в несколько десятков строк. Но эту программу не сможет написать подавляющее большинство программистов. См. post281178.html#p281178

К королю пришли два мудреца. Он загадал 2 целых числа, каждое больше 1 и меньше 100. Первому мудрецу сообщил их произведение, второму - сумму. И спрашивает - знаете?

1-й мудрец: не знаю.
2-й: я знал, что ты не знаешь.
1-й: тогда я знаю.
2-й: тогда я тоже знаю.

Вопрос: какие числа загадал король?

Пример 2. Программа здорового питания (ссылка на моем сайте) объемом около 1000 строк. Однако я бы пожалел тратить на нее 50 дней. Фактически сделал ее за несколько дней.

 Профиль  
                  
 
 Re: Моя производительность в написании программ
Сообщение12.09.2010, 09:43 


15/10/09
1344
И тишина ... мертвая тишина ... а вдоль дороги программисты с косами стоят.

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

Причем в Примере 1 затык происходит сразу же на этапе уточнения (= формализации) постановки задачи: формулировка задачи понятна, а как это формализовать ... - не очень понятно. Точнее, для большинства программистов совсем не понятно.

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

А уж формализовав задачу, написать алгоритм поиска ответа и соответствующую программу не составит труда.

 Профиль  
                  
 
 Re: Моя производительность в написании программ
Сообщение12.09.2010, 12:20 


24/05/09

2054
У меня возникают сомнения в корректности примера 1. Вы можете озвучить правильный ответ?

 Профиль  
                  
 
 Re: Моя производительность в написании программ
Сообщение12.09.2010, 13:54 


15/10/09
1344
Alexu007 в сообщении #351540 писал(а):
(1) У меня возникают сомнения в корректности примера 1. (2) Вы можете озвучить правильный ответ?
Alexu007

1. У меня тоже возникли сомнения по поводу Ваших сомнений. А в чем Вы, собственно, сомневаетесь? Ведь заранее ясно, что имеет место одно из трех:
- либо решения нет, т.е. для любых двух целых больше 1 и меньше 100 мудрецы не имели оснований сказать реплики из условия задачи;
- либо решение единственно;
- либо решение не единственно.

Если Ваши сомнения в этом, то сообщаю, что решение существует и оно единственно.

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

2. С ответом я всегда поступал так. Если кто-то решил эту задачу, я просил сказать мне "на ухо" ответ (чтоб никто не слышал) - и отвечал ему правильный его ответ или нет.

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

 Профиль  
                  
 
 Re: Моя производительность в написании программ
Сообщение12.09.2010, 14:47 


24/05/09

2054
Мои сомнения вот в чём. Первый мудрец имеет произведение двух цифр и может сказать "не знаю" если это произведение может получаться при перемножении разных цифр, например 6*2 и 4*3.

Второй мудрец имеет сумму двух цифр и может сказать "я знал, что ты не знаешь" в том случае, если его сумма больше 5. Шестёрка дает два варианта 4*2 = 8 и 3*3 = 9, семёрка - два: 5*2, 4*3, восьмёрка три: 6*2, 5*3, 4*4, девятка - три: 7*2, 6*3 и 5*4 и так далее.

Итак первый мудрец заявляет, что его произведение двух чисел делится более чем на одно целое число больше единицы. Это может быть 12, 16, 20, 24, 28, 30, 32 и так далее

Второй - что его сумма этих же двух чисел находится в диапазоне 6-198.

Далее первый заявляет, что он получил достаточно информации и знает эти числа. Откуда?

 Профиль  
                  
 
 Re: Моя производительность в написании программ
Сообщение12.09.2010, 17:14 


15/10/09
1344
Alexu007 в сообщении #351579 писал(а):
Далее первый заявляет, что он получил достаточно информации и знает эти числа. Откуда?
Alexu007

Откуда? Так ведь каждая реплика мудрецов несет в себе некоторую информацию о числах. Которой оказывается достаточно для определения чисел.

Обращаю Ваше внимание, что здесь надо очень аккуратно, и предельно точно, формализовать смысл (=семантику) условия задачи, т.е. каждой реплики мудрецов (назовем их $A, B, C, D$). В качестве подсказки см. post281962.html#p281962

С учетом подсказки Вам остается аккуратно записать смысл реплик $C$ и $D$. А далее уже будет ясен алгоритм поиска решения.

ЗЫ. Кстати, условие $B$ у меня записано не точно - Вы заметили это?

 Профиль  
                  
 
 Re: Моя производительность в написании программ
Сообщение12.09.2010, 20:17 


24/05/09

2054
vek88 в сообщении #351640 писал(а):
ЗЫ. Кстати, условие $B$ у меня записано не точно - Вы заметили это?

Чтобы заметить разницу, нужно знать, как оно должно быть записано точно.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 157 ]  На страницу Пред.  1, 2, 3, 4, 5 ... 11  След.

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group