[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: ::scr Proper software development processes



> 1. Most CS degree courses don't go into software development
>    practices. That would be "Software Engineering", which is
>    usually regarded as a different (but related) discipline.
> 
>    CS theory per se is rarely relevant to industrial programming,
>    excepting specialisms such as compiler design. 

Imperial had a fairly intresting CS degree - it delat with theory of
programming and taught us to program with various 'toy' languages :  Turing  -
a Modula2/Pascal a like that also had pointers, structs and objects and 
Miranda - a functional language far superior to Haskell but very much like it.

The point was to teach us how to Program without us getting het up with the
details of the language. My brother is doing a CS course at Newcastle
Northumbria and he learnt VB, Access (for his database course, he doesn't
actually know SQL) and MS Server (he once asked me how many machines would be
needed for a 50 person network running mail, file storage and a web server - I
told him 1. Maybe 2. He said that his lecturers had told him to use far more -
at least two exchange machines for a start).

Pre and Post conditions were rigourously drilled into us, as were comments and
documentation. I have since completley ignored all this because I worked for
$numeejacompany and I got into bad habits. I am ashamed of this and I'm still
trying to drag myself back to good practices.

We also did lots of stuff on theory on programming practices - UML,
development models (which were all wank), use cases, HCI and Interface Design
etc etc.

OTOH I think the best way to learn is from somebody experienced - the reason
why I joined Digimob was to work with one of the best programmers I know but
that all went tits up when he quit and I was left way out of my depth and
learnt even more bad practices.

I always find having clear goals is a good thing. This may sound obvious but
it doesn't always get done properly. And then splitting stuff into small
goals. And having a big check list - preferably on a whiteboard or somethng.
There's something so satisfying about crossing off another bit done.

I've got to go now. Plus I'm not the best person to be talking about good
programming practices.





-- 
: nature notes for the apocalypse