Beefy Boxes and Bandwidth Generously Provided by pair Networks
Do you know where your variables are?
 
PerlMonks  

Re: Swallowing an elephant in 10 easy steps

by fullermd (Curate)
on Aug 14, 2009 at 03:08 UTC ( #788501=note: print w/ replies, xml ) Need Help??


in reply to Swallowing an elephant in 10 easy steps

As one skims through the list, the first thing that might stand out is that a third of the steps are data centric, including the first detailed analysis step (study data streams and persistant data). For many programmers starting with data may seem counter intuitive. Programming is about making data do something, and code is where the action is.

On the contrary, this is exactly how I approach things.

After all, data is where the action is; code is just transforming one set of data into another. The data you start with and the data you want to end up with are what determines what code you need. And, a data model (not necessarily the data model you encode into your database or file format or whatever) is a proxy for the customer needs as well.

The first question I ask (of myself, if not necessarily of other people) on any project is "what data are we dealing with?" You can't figure out what the code needs to do until you know how the data will be organized, and you can't figure out how to organize the data until you know what data you have. Of course, you can't figure out how your data can best be organized until you know what you'll do with it to, so it's totally a back-and-forth process between data and process, but understanding of both preceeds code.

Everybody Knows that you need both data and process understanding to figure out how to organize everything, and that they each impact the other, so you have to get both together and let them hammer out the necessary compromises. But, IMO, any given person thinks of one or the other first, and then applies the other to it.

I feel like this is one of those dichotomies by which you can classify types of programmers. Not that it reveals anything vital by the classification, but at least it helps you communicate across the gap by realizing it's there. And it doesn't mean that you necessarily think your primary grabbing point is the more important. I'm very much a data guy, but I'm well aware that the processes are vital things to understand to build the data model. I just start with the data itself.


Comment on Re: Swallowing an elephant in 10 easy steps
Re^2: Swallowing an elephant in 10 easy steps
by wazoox (Prior) on Aug 14, 2009 at 21:52 UTC
    After all, data is where the action is.

    As the famous quote goes:

    Show me your code and conceal your data structures, and I shall continue to be mystified. Show me your data structures, and I wonít usually need your code; itíll be obvious.
    from The Cathedral and the Bazaar.

Re^2: Swallowing an elephant in 10 easy steps
by eyepopslikeamosquito (Canon) on Aug 14, 2009 at 23:09 UTC

    After all, data is where the action is.
    As the famous quote goes:
    The programmer at wit's end for lack of space can often do best by disentangling himself from his code, rearing back, and contemplating his data. Representation is the essence of programming.
    from The Mythical Man-Month.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://788501]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (9)
As of 2014-12-22 00:46 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (110 votes), past polls