PDA

View Full Version : What is the secret of achieving excellency in programming



hoboy
June 26th, 2010, 12:54 PM
A. Mastering top-down design ?
B. coding ?
C. discrete math ?
Moving from the theoretical understand of the top-down design to coding ?
for the one who have done it how did you do it ?

Bachstelze
June 26th, 2010, 01:08 PM
http://imgs.xkcd.com/comics/ballmer_peak.png

lisati
June 26th, 2010, 01:14 PM
As good as it can be, "top-down" is one way of "divide and conquer". Sometimes "bottom up" has a place as well, when you have an idea of at least some of the finer details of what's required.

The amount of maths you need probably depends on the nature of the programming task at hand - often it has more to do with abstraction and problem solving techniques.

amauk
June 26th, 2010, 01:16 PM
having a big task, and being able to mentally split it down into lots of smaller tasks that will be a doddle to actually code up

DanielWaterworth
June 26th, 2010, 01:45 PM
Practise.

trent.josephsen
June 26th, 2010, 02:10 PM
Practice.

simeon87
June 26th, 2010, 02:13 PM
Let us first define what excellency in programming is: the ability to solve a problem in such a way that it matches the constructs and idioms of the language(s) at hand, as well as computationally efficient (as far as needed), well-maintainable code, etc.

So, like, there's no one key secret, in the same way that an art like music cannot be mastered by playing a single note.

amauk
June 26th, 2010, 02:14 PM
in the same way that an art like music cannot be mastered by playing a single note.unless you play the bugle

DanielWaterworth
June 26th, 2010, 02:24 PM
unless you play the bugle

Or program in D flat. (C#)

sxmaxchine
June 26th, 2010, 02:33 PM
That comic was the funniest thing i have seen all day.

And practice is good, basic math skills help a bit as well.

trent.josephsen
June 26th, 2010, 03:31 PM
Teach Yourself Programming in Ten Years (http://norvig.com/21-days.html)

MadCow108
June 26th, 2010, 03:43 PM
http://abstrusegoose.com/strips/ars_longa_vita_brevis.PNG
http://abstrusegoose.com/249

Tony Flury
June 26th, 2010, 04:08 PM
In many parts of Industry now programming is the task of translating someone else design into code changes in a language chosen by someone else into a program (or more likely a set of programs) designed and originally written by someone else - i.e. is is the last act of the development cycle.

The generally accepted term (at least where I have worked for the last 15 years) that covers the skill sets of design, development, testing is Software Engineering. A good software engineer can understand the problem context, and the business drivers for a particular set of requirements, can translate those changes into a design that is good enough to meet the requirements but not over-engineered or overly-optimised, can translate that design into code that is well written, and easy for others to maintain and re-use, and can also clearly demonstrate that his code functions the way it needs too (by the development of suitable unit test cases)

Letrazzrot
June 26th, 2010, 05:21 PM
Be forced to maintain/refactor/understand your own codebase, preferably a couple years after the fact.

Trust me, the maintainability, readability, and refactor-ability of your code will increase.

Also, exposure to different paradigms (i.e. functional programming, complex data structures) can expand the mind - although not always without considerable effort and ](*,)

hoboy
June 27th, 2010, 06:14 AM
Thanks guys with many great point of views

mmix
June 27th, 2010, 11:02 AM
Bottom up



Programming Bottom-Up

http://www.paulgraham.com/progbot.html