PDA

View Full Version : Survey Time! How do you solve problems?



satsujinka
January 25th, 2012, 08:55 AM
So, when you have a problem at hand:


How do you approach coming up with a solution?
What programming paradigms do you ascribe to?
How would you characterize your paradigm's ideal approach?
How well do you match your paradigm?
What language features do you find useful for coming up with solutions?

Mostly, just for fun. I'm curious how people think, how they believe particular paradigms aid in solving problems, and the types of things you look for according to those paradigms.

Another motivation, for the endlessly repeating "What language should I learn?" threads: this one might give me/us a way of matching people to a language/paradigm that matches they way they internally think (or to find one that can challenge them and allow them to expand their horizons.)

About five posts in, I'll add my own answers to these questions. I want people to feel welcome without feeling like I'm looking for specific answers (or that they need to conform.)

QIII
January 25th, 2012, 08:59 AM
I think you are conflating "problem solving" and "implementation".

satsujinka
January 25th, 2012, 09:17 AM
I think you are conflating "problem solving" and "implementation".
Yes and no...
Yes, I did ignore the distinction, but it doesn't really matter. A language has limitations, and at some point your solution is going to have to acknowledge those limitations. If you do happen to solve the problem entirely abstractly and then create a solution for your implementation, then say so... but otherwise, I'm just assuming that your coming up with an implementation is how you problem solve.

Perhaps more verbose questions are at hand?


How do you solve problems? Questions/steps you ask yourself/take?
What paradigm do you canonically ascribe to? Procedural, OOP, AOP, Functional, Logical, etc.
Based on your paradigm, what types of questions/steps do you think your paradigm encourages you to ask/take?
Given your method of problem solving and the method you believe your paradigm encourages, how do you compare?
When you are coming up with a solution to a problem, are there language features you expect/rely on/appreciate? Something that makes problem solving (with the implementation in mind) easier/harder?

Habitual
January 25th, 2012, 03:11 PM
paradigm #0 - If it isn't broke, don't fix it.
paradigm #1 - Payday is on Friday.
paradigm #2 - Pewp rolls down hill.

QIII
January 25th, 2012, 05:08 PM
Coming up with an implementation is most assuredly not how you solve a problem. A solution is entirely divorced from implementation and must precede it. The different strengths and weaknesses of languages and technologies influence what you may choose to implement your solution.

I've been doing this for a week or two. Or a few decades. Sometimes it's hard to remember.

A better question to ask might be distilled from your revised bullets: What sort of problems do you generally have to solve, how do you solve them, what language do you choose to implement your solutions and why?

I'm not trying to be contrary. But one of the difficulties of training programmers is just your conflation. A good programmer/developer is first a good problem solver and second a good hand with a language.

Barrucadu
January 25th, 2012, 05:23 PM
There will be paradigms involved in your solution to some extent (mainly just functional vs imperative), but the solution is a very high-level thing compared to the implementation, and could be implemented in a plethora of different languages.

satsujinka
January 25th, 2012, 08:03 PM
I like how no one wants to actually contribute...
Here's the kind of things I was looking for:

I use a fairly standard method (at least in my understanding) of problem solving: recursion. I ask myself what needs to occur to solve the problem, breaking it down, then I ask myself what needs to happen to get each part to work, and so on until I reach a primitive (a data type or a function built into the language I intend to use.)

Considering the inclusion of the word recursion... I naturally follow a functional style of programming. I feel that functional languages encourage and simplify the way that I go from having a solution to having an implementation.

I tend to find OOP that asks questions of me that I don't tend to consider naturally. Namely: "Who's involved?" and "What do they do?" So whenever possible I avoid it, because it simply takes longer to go from solution to implementation in those languages.

I'm pretty simple, so there's not too many language features I need, but first class functions is definitely one of them.

wojox
January 25th, 2012, 08:05 PM
for loop can solve anything. :p

bouncingwilf
January 25th, 2012, 08:08 PM
Maybe it's the fact I'm ancient, grumpy and a scientist by former profession or maybe it's because when I started, getting the huge box in the basement to spew out a few results meant Fortran to scientists (me), Cobol to bean counters - although occasionally I'd wander off into Algol. These days, I just use C (or C++ under protest) and as the white rabbit said " Start at the beginning and go right through 'till you reach the end"

Bouncingwilf

CoffeeRain
January 25th, 2012, 10:11 PM
for loop can solve anything. :p

Python can solve anything!!

Cookieh
January 25th, 2012, 10:30 PM
If talking about programming what I used to do was to take the problem and explode it into hundreds of information, what it does, how can I fix it, what would happen if I would fix it, would there be any more problems created and so on. I think that's the beauty of programming at all, its not the less challenging scripting, but debugging and error fixing...

nvteighen
January 26th, 2012, 07:55 PM
I don't solve problems, I create them :P

JDShu
January 27th, 2012, 05:03 AM
For the ones that really stump me, I take a shower ;)

Eiji Takanaka
January 29th, 2012, 06:47 PM
With a couple bars of c4 and an itchy trigger finger? =P

P.s if i see the word "paradigm" one more time, i think im gonna go crazy!

*Looks away at wall for moment hmmmm.....and back towards screen.......AHHHHHHHHHH!

*runs into wall and falls unconscious*

- End.