The things that add complexity to your projects are things like actually understanding WHAT needs to be built, how to make it usable (what is usable to a developer and what is usable to a USER is generally quite different), How to work effectively in teams of more than 1, 2 or 3 There are many other things, but this illustrates my point - software engineering is about much more than coding.