[This list was assembled for a colleague in September 2018, I will revisit this in the near future and amend some of the suggested resources]
Below, I’ve assembled a suggested “short-list” of what I think are the essential topics - in which someone involved in Architecture might benefit – over the long-term – by investing the time to become familiar with the material outlined. This is a journey – it will take time – and it will be challenging. There is a plethora of articles, web sites, and books out there – many badly written, often with bad/conflicting suggestions/conclusions/practices. Hopefully this may be useful in providing some guidance on where you may get the most benefit for effort invested, with an eye to a long career arc.
Below, I’ve assembled a suggested “short-list” of what I think are the essential topics - in which someone involved in Architecture might benefit – over the long-term – by investing the time to become familiar with the material outlined. This is a journey – it will take time – and it will be challenging. There is a plethora of articles, web sites, and books out there – many badly written, often with bad/conflicting suggestions/conclusions/practices. Hopefully this may be useful in providing some guidance on where you may get the most benefit for effort invested, with an eye to a long career arc.
The topics are roughly in order of suggested reading…
Suggested resources to
help you stay up-to-date on news and emerging trends in the world of
Architecture and Distributed Systems:
Suggested Useful References to Know
The Open Group ArchiMate 3.x Specification
The Open Group TOGAF Standard, version 9.2
The Open Group IT4IT Reference Architecture
W3C Standards
IETF RFCs
Essential Concepts to Know, When Evaluating Architecture/Design Decisions/Choices
Suggested resources for learning to formally document architectures
Mastering ArchiMate, 3rd Edition
Archi – Open Source Archimate Modeling Tool
Sparx Enterprise Architect
Documenting Software Architectures: Views and Beyond
Software Architecture in Practice, 3rd Edition
Designing Software Architectures: A Practical Approach
UML Distilled: A Brief Guide to the Standard Object Modeling Language, 3rd edition
-
While UML may have
fallen out of favor in certain camps , it is very useful technique for
capturing complex interactions, and doing quick diagrams that have a
high density of information encoded in
just a few diagram elements.
Learning UML 2.0: A Pragmatic Introduction to UML
Suggested resources: These are good books to provide a good introduction/foundation – to the world of Enterprise/System/Solution Architecture
Clean Architecture: A Craftsman’s Guide to Software Structure and Design
Building Evolutionary Architectures: Supporting Constant Change
Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions
Designing Distributed Systems: Patterns and Paradigms for Scalable, Reliable Services
Domain-Driven Design: Tackling Complexity in the Heart of Software
Good books to develop a deeper understanding of Patterns
Patterns of Enterprise Application Architecture
Domain-Driven Design Reference: Definitions and Pattern Summaries
Refactoring to Patterns
Refactoring: Improving the Design of Existing Code, 2nd Edition
-
(available Nov 2018)
For API, SOA, Web Services based architectures….
Building Microservices: Designing Fine-Grained Systems (2nd Edition, October 2019)
SOA Design Patterns (used copy, as low as $2.83)
For Data-Intensive, Large-Scale, Streaming, Distributed type Architecture problems…
Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems
Streaming Systems: The What, Where, When, and How of Large-Scale data Processing
Learning Spark: Lightning-Fast Big Data Analysis
Spark: The Definitive Guide: Big Data Processing Made Simple
High Performance Spark: Best Practices for Scaling and Optimizing Apache Spark
For a deeper dive into the foundations of Patterns, but at a more granular/code level:
Head First Design Patterns: A Brain-Friendly Guide
Design Patterns: Elements of Reusable Object-Oriented Software
These are good books to
deepen your understanding of the concept of Programmer Craftsmanship
–and the application team level concerns in designing and developing
great software
Clean Code: A Handbook of Agile Software Craftsmanship
The Pragmatic Programmer: From Journeyman to Master
Code Complete: A Practical Handbook of Software Construction, 2nd Edition
The Mythical Man-Month: Essays on Software Engineering, Anniversary Edition, 2nd Edition
Algorithms, 4th Edition
-
a good intro book…
Introduction to Algorithms, 3rd Edition
-
a more robust, deeper dive into the topic of algorithms
Suggested learning resources for Cloud, Infrastructure, Operations, DevOps, Performance, Site Reliability
Cloud Native Infrastructure: Patterns for Scalable Infrastructure and Applications in a Dynamic Environment
Infrastructure as Code: Managing Servers in the Cloud
Site Reliability Engineering: How Google Runs Production Systems
o
(free to read online)
Kubernetes: Up and running: Dive into the Future of Infrastructure
Kubernetes Cookbook: Building Cloud Native Applications
Suggested learning resources for AI, Machine/Deep Learning
The Current State of Machine Learning 3.0
Machine Learning Crash Course: Google’s fast-paced, practical introduction to machine learning
100 Days of ML Code
MIT Open Courseware, Artificial Intelligence
Coursera: Machine Learning Specialization
Coursera: Machine Learning
Deep Learning Tutorial Lessons
Deep Learning with Python
-
(I’ve done some of the technical edit review for Manning – a great book)
Deep Learning: A Practitioner’s Approach
Grokking Deep Learning
-
(available in January 2019, I’ve done some early technical edit/review for Manning on this – a really good book)
Hands-On Machine Learning with Scikit-Learn and TensorFlow: Concepts, Tools, and Techniques to Build Intelligent System
-
Note: new version coming out May 2019 – but this is very good edition
Deep Learning
-
(free to read online)
Artificial Intelligence: A Modern Approach, 3rd Edition
Machine Learning
-
(free to read online)
Bayesian Reasoning and Machine Learning
-
(free to read online)
Gaussian Processes for Machine Learning
-
(free to read online)
Suggested resources to help you stay up-to-date on news and emerging trends in AI, Machine/Deep Learning
A great resource for periodically checking new / leading edge academic papers, related to Computer Science Research
My personal Architecture Review Checklist tool
https://github.com/intltechventures/Consulting.Project.Tools/blob/master/templates/Architecture_Review_Checklists.xlsx
No comments:
Post a Comment