OT: Good Programming Courses Suggestions for technique rather than language

colin davidson colinpdavidson-Re5JQEeQqe8AvxtiuMwx3w at public.gmane.org
Thu Aug 27 02:07:56 UTC 2009


One minor nit - on myself - on clever code, the answer to the second
question was supposed to be "No!".

On Wed, Aug 26, 2009 at 7:54 PM, tug <tug.williams-Re5JQEeQqe8AvxtiuMwx3w at public.gmane.org> wrote:

> 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://gtalug.org/pipermail/legacy/attachments/20090826/56c13c6e/attachment.html>


More information about the Legacy mailing list