Как программист думает? [закрытый]

Мне нравится RegExPal.com . Удача.

22
задан Gordon Potter 4 August 2009 в 09:36
поделиться

10 ответов

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

Получите общую картину:

  • Что это за приложение (веб, настольный компьютер, ... )?
  • Как оно многоуровневое (автономное, клиент-серверное, многоуровневое, ...)?
  • Какова цель приложения? Для чего оно предназначено?
  • Для кого создано приложение?

Посмотрите, как оно работает:

  • Какой язык (языки) используется (и)?
  • Как структурирован код?
  • Как структурированы данные?

Понять (или хотя бы попытаться) понять, как было продумано приложение:

  • Было ли это продумано вообще?
  • Оптимизировано ли приложение явно? (Для выступлений? Для удобочитаемости?)
  • Приложение готово? Или есть место для развития?
  • Есть ли признаки нескольких выпусков?
  • и т. Д.

1-й и 2-й шаги являются чисто техническими, а 3-й ДОЛЖЕН быть нетехническим как возможно ... это больше о психологии и понимании того, как было создано приложение. Очевидно, это требует опыта, но если вы достаточно хорошо думаете и не тратите время своего мозга на технические детали, вы в конечном итоге его получите.

Весь этот процесс не должен требовать использования клавиатуры. Вы'

13
ответ дан 29 November 2019 в 04:50
поделиться

Ho ho, good luck with this one. It's a great question and I'm sure you'll get a ton of answers. Although I have to say I cannot give a satisfactory answer to this - the last thing I would describe my thought processes as is a flow chart - I don't think there is any golden formula for this.

The only tip in problem solving I can recommend is discussing it with somebody else. In those times when you hit a brick wall, going through it with a colleague is invaluable. Quite often, as well, they will actually not even add much to the discussion - in the process of getting all your thoughts out in the open, the solution can become clear.

12
ответ дан 29 November 2019 в 04:50
поделиться

I don't think... I process.

This is actually less flip than it sounds. I always break down tasks into their components and then break these down further, and that doesn't just go for writing software! Much like @Mark Pim U go through things sequentially.

My wife gets really annoyed when I make dinner because I take so long to get started.

3
ответ дан 29 November 2019 в 04:50
поделиться

Разделяй и властвуй

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

3
ответ дан 29 November 2019 в 04:50
поделиться

People are notoriously bad at examining their own thought processes, but I'll give it a whirl. I test very high for visuo-spacial ability in IQ tests, medium-to-high for verbal skills, and moderate for mathematical skills (explains my A-level Maths grade, I suppose). amd when I start to design software, I think in terms of shapes and the connections between them. When it comes to describing these thoughts to others (or clarifying them for myself), I use simple block diagrams or the object diagrams taken from Jacobson's Objectory method - NOT the over complex stuff that UML suggests. I sometimes write textual descriptions of complex things, mostly as reminders to myself, but never use numbers or maths.

Of course this is just me - I've worked with maths whizzes who were just as good or even better programmers than myself.

4
ответ дан 29 November 2019 в 04:50
поделиться

Это один из тех редких случаев, когда я отвечу «просто работает». Я узнаю вещи, пролезая через них. У меня нет уловок или приспособлений, которые могли бы мне помочь. Мне потребовалось время, чтобы изучить PHP, но после этого Javascript стал намного проще. Как только вы возьметесь за одну задачу, следующие станут в совокупности проще.

2
ответ дан 29 November 2019 в 04:50
поделиться

Similar to Jonathan Sampson - it kind of just works.

When I'm attacking a real problem, I try and think of the most logical way of getting through it is. Затем, когда все идет не так (как обычно), мне приходится делать сотни шагов в сторону, чтобы добиться цели. Просто продолжайте сосредотачиваться на этой конечной цели, на этом логическом пути, и вы ее добьетесь.

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

0
ответ дан 29 November 2019 в 04:50
поделиться

Лично я вижу код в своей голове графически, а не текстуально (как Нил Баттерворт) - это немного сложно описать, поскольку (цитируя STIV) «нет общей системы координат».

0
ответ дан 29 November 2019 в 04:50
поделиться

Лично я веду внутренний диалог с самим собой: «Хорошо, нам нужно пройтись по этому списку целых чисел». «Но мы можем сломаться, когда найдем желаемую ценность». «Хорошо, будет ли список определенно инициализирован, когда мы начнем?»

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

2
ответ дан 29 November 2019 в 04:50
поделиться

Мой главный навык - определять сходство между уже известными мне моделями или системами и стоящей задачей. Связи между некоторыми из них могут показаться довольно абстрактными; ключ в том, чтобы определить связи. Это приводит к абстракции общих шаблонов и подходов, которые широко применимы. В связи с этим, самое важное, что я узнал об алгоритмах, было то, что проблема никогда не заключается в том, чтобы «придумать умный алгоритм для решения X». Это «модельная проблема X, которую можно решить с помощью существующего интеллектуального алгоритма Y».

0
ответ дан 29 November 2019 в 04:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: