Standing on the Shoulders of Giants: the Articles and Resources that have Shaped my Career.
Tags: sdlc, career
Published: 2022-11-26 02:46:54

I am sharing this list of articles, videos and books as the topics covered are critical to any developer. These are the articles I found looking for answers when I needed them; there may different or better works covering the same ideas that we all find on our journey, but these were what I found when I needed them, and they have molded my ideas on software engineering. As a writer and one who wants to give back to the community, I also found that creating this post solves two problems: it helps me consolidate all of the critical but not obvious knowledge about the profession, and it helps me identify the major gaps of knowledge that needs to be penned to paper, and while I can certainly provide my take on all of these critical issues, I don't think that I can do it better than what has already been authored, and I really want to focus my efforts on high impact topics with little exposure. I'll probably periodically update it as they come to me.

With that intro out of the way, here is the list, and my thoughts on their importance.

## Software Development Lifecycle

- http://agilemanifesto.org/

No excuse not to read it if you have not done so yet. It's only 413 characters and it can fit in 2 tweets. It really helps to frame what Scrum tries to do, and understanding the Agile Manifesto makes seeing Scrum for what it is, a logical yet somewhat simple tool for reliably building software
- [_The Mythical Man Month_](https://en.wikipedia.org/wiki/The_Mythical_Man-Month)
  
  The original Encypcopedia of SDLC antipatterns. What is striking is that these antipatterns are really not obviously antipatterns, illustrated by the fact that these practices continue to scourge software projects still today. A reading of this book brings with it an understanding that the hectic, panicked, and chaotic ambience of the project is a pretty typical experience. The reader would also possess the ability to pinpoint the particular practices that enivitably bring about the failures.
- https://blog.codinghorror.com/we-hire-the-best-just-like-everyone-else/

If you don't know who Jeff Atwood is, you should. His articles are a treasure trove of software-people intersections. We who also practice Clipboard-Driven-Development (CDD) also owe him a debt of gratitute for https://stackoverflow.com/. 😉
- [The Temple of Busy](https://thecontextofthings.com/2018/03/14/stop-hiding-behind-busy-lies/)
  
Cynical yes, but quite on point.

## Programming
- [Object-Oriented Programming is Bad](https://www.youtube.com/watch?v=QM1iUe6IofM)
  
Provocative but well thought out. It is also a reminder to listen to that alarm going off in your head when you find yourself disagreeing with the sacred idols of the industry.
- [The Kingdom of Nouns](http://steve-yegge.blogspot.com/2006/03/execution-in-kingdom-of-nouns.html)
  
Key ideas when comparing Java to other languages. The article has aged well having watched all of the new versions of Java doing everything in their power to ship out functional features without having to conjure up some intermediary class to house it.
- [KISS and YAGNI](https://blog.codinghorror.com/kiss-and-yagni/)
  
May want to toss in Principle of Least Suprise as well
- [NeetCode](https://www.youtube.com/@NeetCode)
  
Data structure and Algorithm training. Aside from the obvious Crack the Coding Interview , Neetcode has provided the absolute best resource for it, 


## Functional programming
- [Learn FP and Ramda](https://www.educative.io/courses/functional-programming-patterns-with-ramdajs)
- [Learn Haskell](http://learnyouahaskell.com/chapters)

## Versioning and build pipelines
- [Gitflow](https://nvie.com/posts/a-successful-git-branching-model/)
  
I don't actually condone the suggestions in this article, nor does the author anymore for that matter, but the majority of the software industry still reveres these concepts, thus making it extremely important reference material