PDA

View Full Version : Learning programming abstraction



hoboy
September 29th, 2009, 04:18 PM
I am not a very experienced programmer, but my point of view is that to be a good programmer require a very good programming abstraction.
What does hi take to master a good abstraction level in programming ?
Please share how you have achieved it.

CptPicard
September 29th, 2009, 04:33 PM
What does hi take to master a good abstraction level in programming ?
Please share how you have achieved it.

1. Strong grasp of your language, and preferably, many different languages
2. Strong understanding of the nature of the problem
3. Reading code, and most importantly writing lots of code...

hoboy
September 29th, 2009, 04:39 PM
1. Strong grasp of your language, and preferably, many different languages
2. Strong understanding of the nature of the problem
3. Reading code, and most importantly writing lots of code...

when you said
1. Strong grasp of your language, and preferably, many different languages
Do you mean the mother tong ? like if you an native English speaker english, or you mean the programming language ?

hoboy
September 29th, 2009, 04:43 PM
1. Strong grasp of your language, and preferably, many different languages
2. Strong understanding of the nature of the problem
3. Reading code, and most importantly writing lots of code...

when you have a strong understanding of the problem, so what is the techniques you use ?

Reiger
September 29th, 2009, 05:10 PM
When you have a strong understanding (or weak but that still counts as relatively strong if others don't have anything better) of your problem the answer tends to come to you. Which is to say that if you are implementing a little paint-like tool to draw mathematical figures such as ellipses, parabolas and hyperbolas; if you know the euclidean style definition of those the implementation of that is fairly straightforward.

Likewise if you have a good understanding of the financial concepts that surround bookkeeping it will be relatively straightforward to implement accounting software.

doas777
September 29th, 2009, 05:18 PM
1. Strong grasp of your language, and preferably, many different languages
2. Strong understanding of the nature of the problem
3. Reading code, and most importantly writing lots of code...

other things to consider include an understanding Testing methodologies, Deployment strategies, and Maintenance/Administrative considerations.

CptPicard
September 29th, 2009, 05:21 PM
Programming abstraction does not really have much to do with natural languages, right? Of course I mean programming languages... :)

This is why I like Lisp a lot by the way; it is "easy to use" but essentially allows for pretty much any approach you might think of in other programming languages within its framework of carefully chosen core primitives. Especially if problem-to-language mapping is somewhat ill-defined, investigating what kind of Lisp you may want to use to describe your problem is often a fruitful approach...

diesch
September 29th, 2009, 05:32 PM
A goods grasp of standard algorithms, data structures and design patters helps a lot.

nvteighen
September 29th, 2009, 08:21 PM
I'd say that it's about knowing how to lead an inductive train of thought. Abstraction is about proper generalization and proper "world design"... and this comes from experience and reading code...

A useful idea is to try dividing code in a sane and senseful way. Dividing code into different functions and connect those through compatible interfaces is one of the keys. The other side of the coin is to create data structures that englobe the needed information, no more no less, to represent some reality.

All of this comes from a lsemantic point of view on how programming works; let's leave that for another thread.

hoboy
September 29th, 2009, 09:38 PM
Tks guysfor your advices