[Tutor] Recommended texts for self-study to master software engineering?

boB Stepp robertvstepp at gmail.com
Sat Dec 15 18:19:55 CET 2012


On Sat, Dec 15, 2012 at 3:27 AM, Alan Gauld <alan.gauld at btinternet.com> wrote:

> OK, the first thing to point out is that software engineering is not the
> same as programming. In the same way that civil engineering is not the same
> as bricklaying.
>
> SE is about the skills and practices needed to run repeatable software
> projects. The focus is on techniques that apply regardless of the problem
> domain. The focus is also mainly on large scale projects involving teams of
> developers rather than a single individual
> or even a few. This has typically led to practices that are overly onerous
> for small projects.
>
> The recent trend to Agile has partially addressed the needs of small
> projects by introducing a parallel world of software practice that is more
> suited to small projects (usually cited as up to about 30 developers). So if
> thats how you see your projects turning out then you should focus on
> material geared to Agile rather than traditional SE.
>
> Many of the techniques are similar of course - the use of version control,
> automated testing, good design patterns etc. But traditional SE has a lot
> more in the way of heavyweight project management too, quality gates, peer
> reviews, project control files etc and encourages use of heavyweight tools
> (CASE, IPSE, Projet planning, Requirement mgt etc etc) Agile is more about
> getting a team talking and collaborating
> directly with rapid development cycles and feedback.
>
I understood the points you make above, but was not aware of the
"Agile trend". I have seen books on this topic, but never thought to
take a glance at one. I will definitely have to look into this.

Even though I do not think I am ever likely to be involved in a
project involving teams of developers, I would still want to possess
the knowledge to be able to do so if I had to. I guess I was not as
clear to my intentions as I thought I was. Essentially I would like to
acquire all of the expected knowledge that a person who graduates with
a software engineering and/or computer science degree would be
expected to have. I gave the example of the project I could envisage
doing to exclude areas such as designing operating systems and such
that I believe C.Sc. people typically take courses in if that is one
of their emphasis tracks. Of course I would want to have whatever
basic understandings in such realms that any C.Sc. graduate would be
expected to have.

With all this in mind, I was looking for books that are especially
suitable for self-study to eventually acquire all of this knowledge.
For instance, if someone were to ask me what textbooks to study to
capture the knowledge that it would take to get a B.Sc. or M.Sc. in
physics, I would definitely cull many of the books I had to wade
through during my actual college studies! This is where I am hoping
this list will save me from wasting time and money on difficult to use
books that are not well-written expositions of their subject matter.
As you all know, just like there are many college professors who know
their subject matter very, very well, relatively few seem to be
effective at teaching their students effectively. Textbooks often seem
to follow the same trend.


>
>> textbooks would be for self-study. So my question is what would be a
>> sequence of books to acquire the knowledge I would need that are
>> especially well-suited to self-study?
>
>
> Now to turn to this aspect, I'd recommend a few books for general good
> practice:
>
> Structure and Interpretation of Computer Programs
> (SICP - available online)
>
> Code Complete

I own this book in its second edition. I had read the first edition a
few years ago when I had briefly gotten the "want to program again
bug". McConnell made me aware that what programming I had done in
college was definitely lacking in many recommended software
engineering practices.

> Object Oriented Analysis and Design
>
> Programming Pearls (vols 1 & 2)
>
Thanks, Alan! It does help.
boB


More information about the Tutor mailing list