Re: good algorithms come with practice and reading good code/books?



vlsidesign <fordgwf@xxxxxxxxx> wrote:

<snip>
Right now, I just try to come up with an algorithm by following the book and
improvising. I'll then try to test my code by throwing different things
at it (for instance, different types of input in different forms) and
see if it breaks, I then try to figure out why it broke and then patch
in the fix.
There is nothing wrong with that path of learning. Patience is a virtue.

<snip>
My time is somewhat limited...
You are not alone.

<snip>
Do I just need to continue reading various texts,
practicing, and studying code and I will acquire error checking and
more robust code over time? Any suggestions, hints, words of advice,
would be greatly appreciated. Thanks very much.

Here's a little background from me.
I started programming in the early 80s, because I couldn't find what I was looking
for in terms of software. It wasn't much - it was BASIC just to get what I needed.

I began to realize that I rather enjoyed pondering better programming methods, and
enjoyed learning about logic, programming, and algorithms.

Years later in the 90s I wanted to start making programs for my Windows 3.1 OS computer
so I learned Visual Basic. I had not taken 1 single computer programming course - so I figured I was
behind most people I knew who worked with computers, which forced me to read many books!

Jump ahead many years later - I had to learn .NET for work, and fell in love with C# (which now- no longer like and use)
as opposed to Visual Basic. But I had to learn a bunch of new concepts, which appeared to have originated from
Java. So I learned Java.

While learning Java, I saw many concepts which were also borrowed from the past so I went on to
study C++.

Studying C++ I learned that it was created to add OOP(Object Oriented Programming) concepts to C,
so I went back and learned C. While I was learning C, I realized that I had come full circle, and
had gone back to the "basics", but with better methods of programming, because I had studied so many different
programmers, authors, algorithms, and have made many programs that I later reworked as I learned new concepts.

So having come full circle back to C (which is now, what, around 30+ years old?) I decided to take the plunge
and jump into linux. I have never had more fun with computers than I do now, making programs with C, scripting with BASH, administering my own linux servers, and further automating tasks I had previously done manually. I have learned to love the
open source concept - browse many projects on sourceforge.net to find what I'm looking for.

Wow! What a path!

Some of the most fun I've had learning C (and the most frustrating) was using the book called PROGRAMMING CHALLENGES ISBN-10: 0387001638 ISBN-13: 978-0387001630. Written by 2 academics, this book is a compilation of 100 exercises to practice programming. You then submit your code to automated judges online to see if it passes. Personally, my favorite part is just determining the methods with which to solve the problems.

I also suggest as a reference Herb Schildt's Complete Reference to C (check out herbschildt.com)

But the book that really opened my eyes to the art of programming and algorithms was Mastering Algorithms with C ISBN 10: 1-56592-453-3 ISBN 13: 9781565924536.

If you really want to study algorithms in more depth, allow me also to suggest Algorithms in C parts 1-5, by Robert Sedgewick.

I can tell you this,
I'm no expert, but I enjoy what I do, and study every day (when time allows).
But that's the other part of the fun...
Knowing I have a limited amount of time to spend studying what I enjoy,
makes it all the more worth it.

Take your time, have fun, share ideas, offer aid, and stay humble.

I can't think of a better way to have fun with a computer than progamming with C.

But above all else, have fun and enjoy your progress,

otherwise why do it at all?

.



Relevant Pages

  • Re: What *is* design?
    ... >> it's a full-fledged programming language, which can be used for all ... who'se seen a rowing boat, but the same object can be used also for all ... I think they are heuristic qualities and that is all there ...
    (talk.origins)
  • Re: What *is* design?
    ... >> it's a full-fledged programming language, which can be used for all ... who'se seen a rowing boat, but the same object can be used also for all ... I think they are heuristic qualities and that is all there ...
    (talk.origins)
  • Re: [EGN] Variable hoisting
    ... >>no idea of my programming abilities, ... >>be made by manually hoisting loop invariants. ... inversely correlated in common instances. ...
    (comp.programming)
  • Re: Theodore Adorno, a prophet of data systems design
    ... I wasn't trying to interpret Adorno's passage, ... Yes, when I started programming at Princeton, ... Shirley you had 7-track tapes. ...
    (comp.programming)
  • Re: Multithreading / Scalability
    ... of divide pretty neatly into two camps -- shared-memory model ... IBM's playstation chip -- the only multicore chip I know ... a different programming model altogether. ...
    (comp.lang.java.programmer)