| title | Resources |
|---|
These books provide more detail on topics covered in the course. The first section Books Used in This Course are books that you may be asked to read from (specific sections, not the entire book).
We won't cover everything in these. :-)
Clean Code by Robert Martin. Advise for writing better code. Developers rate this one of the most important books to read. Martin also writes the CleanCoder blog.
- Online Book: Clean Code
Practices of an Agile Developer general guidance that applies to this course.
Scrum & XP from the Trenches free e-book. Short and practical, based on actual experience.
Try this Google search: "Best Books for Software Engineers" or "Best Software Development Books"
All "Top Ten" lists includes several of these:
- The Pragmatic Programmer by Hunt and Thomas
- Clean Code by Robert Martin
- Code Complete, 2E by Steve McConnell
- The Mythical Man-Month by Fred Brooks
- Soft Skills and/or Peopleware
- Refactoring by Martin Fowler
- The Clean Coder by Robert Martin
- Design Patterns by Gamma, et al. The "Gang of Four" book.
- Head First Design Patterns easier to read than Gamma, et al
and two more modern books:
- Building Microservices by Sam Newman
- Designing Data-Intensive Applications by Martin Kleppmann
Software Development Processes and Methodologies, U. of Minnesota on Coursera. A good overview course for the activities in a software process. Some good advise on developer habits.
- activities of a software process - requirements, specification, architecture design, software design, testing, deployment
- SDLC models: waterfall, iterative, Unified Process, Agile
- This course is part of a 4-course series that looks interesting.
Writing Professional Code Course DEV275x at edX. A course by Microsoft. It uses dot-net for exercises and has some dot-net specific questions. You should study the whole course, but OK to skip .Net problems.
- This course is part of Microsoft Entry-Level Software Development Professional Program on edX. Looks interesting. Each "course" is short. Relevent to this course are:
- Course 5: Writing Professional Code
- Course 8: Building Prototypes with JavaScript
- Course 9: Building a Functional Prototype with Node.js
Engineering Software as a Service Berkeley CS169.1x at edX. A very popular course from UC Berkeley. The courses uses Ruby on Rails (a web framework) but the content is very valuable.
Software Processes and Agile Practices, U. of Alberta on Coursera.
- The course title describes it. Fairly short course (4 modules).
- Has a good 40-page PDF of course material you can download.
- Videos not very inspiring -- just a speaker talking.
- List of resources for each module contain useful links:
The Clean Coder by Robert Martin. Habits and practices for a software developer. Directly relevant to this course.
The Pragmatic Programmer, 2nd Ed by Hunt and Thomas is a classic but the first edition is out-of-date. The material is quite similar to Practices of an Agile Developer (newer). First Edn: The Pragmatic Programmer
- Overview of the Unified Process article by author of The Unified Process Explained on InformIT.
Agile Manifesto values, principles, and history.
Practical Guide to Seven Agile Methodologies, Part 1 on DevX. "A great study guide" according to U. of Alberta course authors.
Practical Guide to Seven Agile Methodologies, Part 2
Traditional and Agile Methods: An Interpretation - Scrum Alliance. Biased toward Scrum, of course.
Agile Methodologies for Software Development "great resource" for a brief overview of some Agile methodologies.
8th Annual State of Agile Survey - VersionOne survey results showing popularity of methods in software industry. Should have a newer one by one.
The Agile Unified Process Scott Amber and AmberSoft. An Agile version of UP. Kind of vague.
12 Software Prototyping and Mockup Tools on DZone. Pencil, MockFlow, and JustInMind have free version.
PowerMockup Blog and tool (trial version available).
Intro to Scrum in 10 Minutes YouTube video is good overview of Scrum.
Scrum Guide description of Scrum and how to do it. Missing: Scrum board, task sizes, measuring progress.
Extreme Programming: A Gentle Introduction on extremeprogramming.org explains xtreme programming practices and how to implement them.
- Jera Design. Simple explanation of Extreme Programming and it’s practices.
Extreme Programming Paper. Another simple XP guide. Explains the practices and has a few diagrams.
Building Maintainable Software Joost Viser (O'Reilly). Free PDF book.
[Lean Software Development] (https://msdn.microsoft.com/en-us/library/hh533841.aspx) (MSDN) Microsoft uses Lean. Includes many practices of Scrum.
How to Manage the "7 Wastes" of Agile Software Development
Lean Software Development: An Agile Toolkit book my Mary Poppendieck. The "ultimate resource" for Lean.
What is Kanban? Kanban Blog site explains what Kanban is and how to implement it. Good visuals.
What is Kanban? - LeanKit A brief explanation of Kanban, history, principles, how it’s used.
Scrumban Wikipedia article describes Scrumban combination of Kanban and Scrum.