OT: Good Programming Courses Suggestions for technique rather than language

tug tug.williams-Re5JQEeQqe8AvxtiuMwx3w at public.gmane.org
Thu Aug 27 00:54:09 UTC 2009


I agree with everything that's been written - I've recently acquired a 
team of lesser experienced C++ developers. I hadn't realised how much 
I'd learned in the past 25 years.

Fundamentals are not being learned... You should experience Assembler 
(6502 was mine, then 80C51...) - write half a program, get the brain to 
hurt, be in awe of people who wrote complete systems in assembler, and 
move up the food chain.

C and C++ are important steps because C++ developers can migrate to 
Java, the other direction is harder. Developers coming from non C / C++ 
world often don't understand data properly. They think memory is 
something handled by the operating system, and think that smart pointers 
are all you need :S - this may be a perfectly sufficient solution, but 
understanding what's happening underneath is important to understanding 
everything.

Code problems are almost always an inability to understand what someone 
else's code is doing, not that the code is not fast enough. Write simple 
functional code, and measure performance. IF the solution is not fast 
enough, learn to measure bottlenecks, and pick the low hanging fruit. 
Experience will teach you what to avoid next time.

Add comments, and lay the code out to be readable  - disk space is 
cheap, monitors are big, compilers are efficient, and doing something in 
one line of code is not clever. Oh and put rude comments about existing 
code - the next person after you will also need some light relief!

tug

colin davidson wrote:
> If you want to code well, do a lot of coding. Read code. Read Linux 
> sources - either kernel or modules. If you find the code easy to 
> understand, ask yourself why and try to incorporate the good practices 
> that you identify in your own code. If you find it hard to read, ask 
> yourself why, and try to avoid the bad practices that you identify in 
> your own code.
>
> Read good books on programming. Read "The mythical man month" by Fred 
> Brooks, "Peopleware" by Tom DeMarco (very good for humility - I'll let 
> you work out why), "The psychology of computer programming" by Gerald 
> Weinberg and, above all, "Code Complete" by Steve Mcconnel. I'm sure 
> others can recommend other, equally good, books but from personal 
> experience I can recommend these as both easy to read cover-to-cover 
> and full of wisdom and useful advice for the programmer.
>
> Finally, observe the KISS (Keep It Simple, Stupid!) principle and, to 
> paraphrase Einstein, make your code as simple as it can be, and no 
> simpler. When you have finished writing something (be it a clause, a 
> function or a program), ask yourself "Is this code really clever?". If 
> your answer is "Yes!", ask yourself "Does it really need to be 
> clever?". If your answer is "Yes!", rewrite the damn thing. 
> Unnecessarily clever code is bad code, period. Once you get past the 
> meaningless gobblydegook written by computer language illiterates who 
> call themselves coders (and practice will almost certainly remedy this 
> problem in anyone inherently capable of programming a computer), the 
> most common kind of bad code by far is "clever" code.
>
> I wouldn't spend time and money on a course until I'd done the above, 
> if I were you, you can get far more bang for your buck/time "just 
> doing it".
>
> Good luck, cheers, Colin (the other one)
>
> On Wed, Aug 26, 2009 at 4:32 PM, Dave Germiquet 
> <davegermiquet-Re5JQEeQqe8AvxtiuMwx3w at public.gmane.org <mailto:davegermiquet-Re5JQEeQqe8AvxtiuMwx3w at public.gmane.org>> wrote:
>
>     Hello All,
>
>     I am currently looking to expand my programming knowledge from more
>     than College. College has taught me the basics of programming, Object
>     Oriented concepts however not how to properly use them. I have learned
>     alot of my concepts from looking at other people's programs.
>
>     I am looking to take a course which gives me information on how to
>     properly structure code and use Object Oriented programming in day to
>     day use.
>
>     Can anyone make a suggestion on where to find a course with more
>     advance concepts of programming? Language is not really specific
>     however I'd prefer java/c/php.
>
>     Basically so I'm programming the correct way, instead of just putting
>     code together to do a specific task.
>
>     Dave Germiquet
>     --
>     The Toronto Linux Users Group.      Meetings: http://gtalug.org/
>     TLUG requests: Linux topics, No HTML, wrap text below 80 columns
>     How to UNSUBSCRIBE: http://gtalug.org/wiki/Mailing_lists
>
>

--
The Toronto Linux Users Group.      Meetings: http://gtalug.org/
TLUG requests: Linux topics, No HTML, wrap text below 80 columns
How to UNSUBSCRIBE: http://gtalug.org/wiki/Mailing_lists





More information about the Legacy mailing list