
Ask HN: Resources for the “engineering” aspects of software engineering - jedimastert
What are some good resources for learning the aspects of software design, development, and other elements?<p>I&#x27;d like to learn more about everything that&#x27;s outside of just typing code. Things like design principles, project management, architecture, communication, and even things like creative processes and ethics. I feel like my education was really lacking in these areas and I think it&#x27;s important to be more than just someone typing at a keyboard.
======
genericone
US SW Engineering license exam prep might be a good starting point, a lot of
the items listed are applicable across all engineering disciplines. At least
it should help identify key areas to expand on: [https://ncees.org/wp-
content/uploads/2015/07/SWE-Apr-2013.pd...](https://ncees.org/wp-
content/uploads/2015/07/SWE-Apr-2013.pdf)

~~~
bradstewart
That's actually a really good list of topics. I had no idea a software
engineering license actually existed.

~~~
genericone
The road to hell is paved with well-meaning licenses though. I'm not sure if
the licensure route is a good thing for the general software industry at
large, but I think it should definitely exist at least as a signal for
companies that make life-critical software to know you're not just a wide-eyed
padawan.

Leave the wiz-kids to Facebook/Pinterest/Snapchat/Instagram, I think few
people have an interest in having some young ego moving fast and killing
people. This SW Engineering license may be a way to filter them out. But if a
company ends up making the license a requirement, then that's a difficult road
to be on for the next decade, since the license has only existed for 5 years.

------
maerF0x0
TLA+ ?

> It is used to design, model, document, and verify concurrent systems. TLA+
> has been described as exhaustively-testable pseudocode, and its use likened
> to drawing blueprints for software systems [1]

resource:
[https://lamport.azurewebsites.net/video/videos.html](https://lamport.azurewebsites.net/video/videos.html)

[1]:
[https://en.wikipedia.org/wiki/TLA%2B](https://en.wikipedia.org/wiki/TLA%2B)

------
dcolkitt
The classic book in this area is The Mythical Man Month by Fred Brooks. It was
published in 1975, but is just as relevant today as ever.

Another great resource is The Architecture of Open Source Applications series.
(Available for free online.) Each chapter has the author(s) of a major open
source system go in to detail and history about their design decisions and
philosophy. Very good for getting the feel about how maestros think about the
large-scale organization of software.

------
itamarst
I write about a lot of these topics, e.g.:

1\. Communication of technical ideas:
[https://codewithoutrules.com/2018/03/09/win-technical-
argume...](https://codewithoutrules.com/2018/03/09/win-technical-arguments/)

2\. Feedback loops aren't just for your benefit:
[https://codewithoutrules.com/2017/02/10/voice-exit-user-
rete...](https://codewithoutrules.com/2017/02/10/voice-exit-user-retention/)

3\. Ethics: [https://codewithoutrules.com/2017/01/29/job-contradict-
belie...](https://codewithoutrules.com/2017/01/29/job-contradict-beliefs/)

------
JamesBarney
Pretty much any book by Steve McConnell, but I'd start with Code Complete.

------
mindcrash
[https://github.com/ossu/computer-science](https://github.com/ossu/computer-
science)

"Path to a free self-taught education in Computer Science!"

Have fun!

------
roundthecorner
Look into books by Gerald Weinberg and Steve McConell. Both have served as
great mentors for me in the mentioned areas.

