A Guide to Masterful Software Engineering: The Way of The Pirate, The Path of The Jedi
By Carlos Bueno
()
About this ebook
Embark on a transformative journey into the heart of software development with 'A Guide to Masterful Software Engineering: The Way of the Pirate, The Path of the Jedi' This insightful guide transcends the boundaries between the esoteric wisdom of Jedi philosophy and the concrete realities of the programming world, offering a unique perspective on code mastery.
Whether you're taking your first steps as a Padawan or you're an experienced coder on the path to becoming a Master, this book offers a roadmap to elevate your craft. Break through old paradigms, sharpen your technical and emotional skills, and unlock the deeper essence of becoming a true Master in the field.
'The Jedi Developer' doesn't just teach you to code - it coaches you in the art of self-management, nurtures your emotional intelligence, and hones your strategic thinking, all while guiding you through the ever-evolving challenges of the IT universe.
More than just a book, 'The Jedi Developer' is your companion in professional evolution, equipping you with the knowledge to achieve success beyond the code
Carlos Bueno
Carlos Bueno is a Software Engineer, currently working at CODIT Luxembourg, and a fervent advocate of functional programming. With years of experience in software development, he constantly seeks to apply the best practices and cutting-edge techniques to create efficient, maintainable, and high-quality code. In addition to his professional pursuits, Carlos is an avid cycling enthusiast and enjoys spending his free time playing video games, participating in role-playing games, and reading about the latest advancements in programming and technology. His well-rounded interests inspire him to bring creativity and innovation to his work, making him an invaluable resource for readers looking to elevate their coding skills.
Read more from Carlos Bueno
Functional C#: Embracing Functional Programming in a C# World Rating: 0 out of 5 stars0 ratingsC# Functional: Monads from Zero to Hero Rating: 0 out of 5 stars0 ratings
Related to A Guide to Masterful Software Engineering
Related ebooks
Directing for Film and Television: Revised Edition Rating: 0 out of 5 stars0 ratingsHello Code : Book for Programmer Not Computer Rating: 0 out of 5 stars0 ratingsThe User's Journey: Storymapping Products That People Love Rating: 4 out of 5 stars4/5The Future Economy: A Crypto Insider's Guide to the Tech Dismantling Traditional Banking Rating: 0 out of 5 stars0 ratingsThe Hacker's Zibaldone Rating: 0 out of 5 stars0 ratingsUX for XR: User Experience Design and Strategies for Immersive Technologies Rating: 0 out of 5 stars0 ratingsThe New Art of Ideas: Unlock Your Creative Potential Rating: 0 out of 5 stars0 ratingsDesign Beyond Devices: Creating Multimodal, Cross-Device Experiences Rating: 0 out of 5 stars0 ratingsThe Ukemi Way Rating: 0 out of 5 stars0 ratingsImplementing Effective Code Reviews: How to Build and Maintain Clean Code Rating: 0 out of 5 stars0 ratingsBlender 3D Incredible Machines Rating: 0 out of 5 stars0 ratingsNetworking for People Who Hate Networking, Second Edition: A Field Guide for Introverts, the Overwhelmed, and the Underconnected Rating: 0 out of 5 stars0 ratingsGeppetto and I Rating: 0 out of 5 stars0 ratingsLeadership & Self-Worth: A Tech Nerd's Guide Rating: 0 out of 5 stars0 ratingsRefactoring for Software Design Smells: Managing Technical Debt Rating: 4 out of 5 stars4/5Hidden Realms - A Pathway To Hacking Rating: 5 out of 5 stars5/5You Cannot Predict the Future Rating: 0 out of 5 stars0 ratingsBuild Your Own Car Dashboard with a Raspberry Pi: Practical Projects to Build Your Own Smart Car Rating: 0 out of 5 stars0 ratingsUnderstanding the Professional Programmer Rating: 4 out of 5 stars4/5Designing User Interfaces: Exploring User Interfaces, UI Elements, Design Prototypes and the Figma UI Design Tool (English Edition) Rating: 0 out of 5 stars0 ratingsThe No-Code Startup: The complete guide to building apps without code Rating: 0 out of 5 stars0 ratingsPro .NET Memory Management: For Better Code, Performance, and Scalability Rating: 0 out of 5 stars0 ratingsPHP & MySQL: Novice to Ninja Rating: 0 out of 5 stars0 ratingsPSP Hacks, Mods, and Expansions Rating: 0 out of 5 stars0 ratingsRoundtable on Technical Leadership Rating: 1 out of 5 stars1/5The Robots are Coming: A Human's Survival Guide to Profiting in the Age of Automation Rating: 0 out of 5 stars0 ratingsDesign Patterns in .NET Core 3: Reusable Approaches in C# and F# for Object-Oriented Software Design Rating: 0 out of 5 stars0 ratingsSee What I Mean: How To Use Comics to Communicate Ideas Rating: 5 out of 5 stars5/5The Art And Science Of Software Development Rating: 0 out of 5 stars0 ratings
YA Technology For You
The Hive Rating: 5 out of 5 stars5/5Game On!: Video Game History from Pong and Pac-Man to Mario, Minecraft, and More Rating: 4 out of 5 stars4/5Michael Vey 3: Battle of the Ampere Rating: 4 out of 5 stars4/5Michael Vey: The Prisoner of Cell 25 Rating: 4 out of 5 stars4/5Steve Jobs: The Man Who Thought Different: A Biography Rating: 4 out of 5 stars4/5Catalyst Rating: 5 out of 5 stars5/5Michael Vey 5: Storm of Lightning Rating: 5 out of 5 stars5/5The Way Things Work Now Rating: 4 out of 5 stars4/5Roxy Rating: 4 out of 5 stars4/5Michael Vey 6: Fall of Hades Rating: 5 out of 5 stars5/5Michael Vey 2: Rise of the Elgen Rating: 5 out of 5 stars5/5Minecrafter Architect: The Builder's Idea Book: Details and Inspiration for Creating Amazing Builds Rating: 4 out of 5 stars4/5Underground Rating: 4 out of 5 stars4/5Double Down Rating: 4 out of 5 stars4/5DIY Drones for the Evil Genius: Design, Build, and Customize Your Own Drones Rating: 4 out of 5 stars4/5Minecraft Basics For Dummies Rating: 0 out of 5 stars0 ratingsWhat They Don't Teach Teens: Life Safety Skills for Teens and the Adults Who Care for Them Rating: 0 out of 5 stars0 ratingsElgen Guard General Handbook Rating: 4 out of 5 stars4/5Gone Dark Rating: 3 out of 5 stars3/5Triple Threat Rating: 4 out of 5 stars4/5Antithesis Rating: 2 out of 5 stars2/5Avalon Rating: 4 out of 5 stars4/5Physics for Kids : Electricity and Magnetism - Physics 7th Grade | Children's Physics Books Rating: 5 out of 5 stars5/5Plane Sense: A Beginner's Guide to Owning and Operating Private Aircraft FAA-H-8083-19A Rating: 0 out of 5 stars0 ratingsRaspberry Pi :Raspberry Pi Guide On Python & Projects Programming In Easy Steps Rating: 3 out of 5 stars3/5Genius Squad Rating: 4 out of 5 stars4/5Michael Vey 4: Hunt for Jade Dragon Rating: 4 out of 5 stars4/5Makerspace Sound and Music Projects for All Ages Rating: 5 out of 5 stars5/5Blood, Bullets, and Bones: The Story of Forensic Science from Sherlock Holmes to DNA Rating: 4 out of 5 stars4/5
Reviews for A Guide to Masterful Software Engineering
0 ratings0 reviews
Book preview
A Guide to Masterful Software Engineering - Carlos Bueno
A cartoon of a pirate sitting cross legged with a sword Description automatically generated A Guide to Masterful Software Engineering
The Way of the Pirate,
The Path of the Jedi
CARLOS BUENO
Copyright © 2024 by Carlos Bueno.
All rights reserved. No part of this book may be used or reproduced in any form whatsoever without written permission except in the case of brief quotations in critical articles or reviews.
For more information, or to book an event, contact :
(Email & Website)
http://www.github.com/ kinderbueno360
Book design by (Name of Designer)
Cover design by Name of Designer)
ISBN - Paperback: 979-8878174718
ISBN - Hardcover : 979-8878174718
First Edition: February 2024
CONTENTS
CHAPTER 1 - INTRODUCTION
CHAPTER 2 - PIRATES
CHAPTER 3 - POLITICS
CHAPTER 4 – THE ART OF PROGRAMMING
CHAPTER 5 – CONCENTRATION IN THE FORCE
CHAPTER 6 – YOUR CODE IS NOT YOU
CHAPTER 7 – MERGING THE FORCES: FUNCTIONAL AND OOp PARADIGMS
CHAPTER 8 – CODE MASTERY: PIRATE’S WISDOM, JEDI’S SKILL
CHAPTER 9 – BALANCING WORK AND LIFE
CHAPTER 10 – JEDI CODE REVIEW
CHAPTER 11 – COMMUNITY INVOLVEMENT AND OPEN SOURCE
CHAPTER 12 – NAVIGATING DIVERSITY
CHAPTER 13 – NEWCOMER
CHAPTER 14 – PADAWAN
CHAPTER 15 – JEDI KNIGHT
CHAPTER 16 - JEDI MASTER
CHAPTER 17 - cONCLUSION
About the Author
Acknowledgments
CHAPTER 1
INTRODUCTION
TO BEGIN A DISCUSSION about software architecture, we must define what architecture is. I love Martin Fowler's definition: The software industry delights in taking words and extending them into a myriad of subtly contradictory meanings. One of the biggest sufferers is 'architecture'. I see 'architecture' as one of those impressive-sounding words, mainly used to indicate that we are talking about something important. However, I am pragmatic enough not to let my cynicism get in the way of the challenge of attracting people to my book.
There really is no role of Architect. What exists is an idea that serves to add value to a function. So, we, experienced developers, must be pragmatic enough to take advantage of and add financial and professional value to our lives.
In this context, the wisdom of Kent Beck comes to mind, who once said, 'I'm not a great programmer; I'm just a good programmer with great habits.' , and Uncle Bob highlights, 'We are what we repeatedly do. Excellence, then, is not an act, but a habit.'
Thinking about this, I decided to write this book that helps to clarify the path to becoming a true and authentic Master Programmer – or, as the market calls it, a Software Architect. Some disciplines, in addition to coding, are extremely fundamental to achieving the maximum degree! Some very strange ones, like politics, psychology, and other humanities disciplines contribute to this formation. But how does this happen?
Well, I hope you don't give up reading when you know this. I say this because all the experience I have in this area has shown that the vast majority of developers prefer more performant code than more human. But what do I mean by that?
There are some IT thinkers, like Uncle Bob, who preach the importance of code that is easily understood by other programmers, as the only certainty that exists in software development is that the code will be changed, being the biggest reason for delays and high costs. In addition to Bob, we have Fowler preaching that a good programmer writes code for other programmers, not for machines.
Jakob Nielsen expands the concept of software development by asserting that the only mode of communication between a user and the system is through an interface. This signifies that a good architect must think beyond just coding.
Regarding political matters, a special section is dedicated because it's deemed one of the essential disciplines for a master programmer architect.
The terms Pirate
and Merchant Navy
will be heavily utilized. If you're not familiar with them, it's strongly recommended to watch the movie Pirates of Silicon Valley
before proceeding with the book.
Briefly, in the movie, the Merchant Navy represents traditional corporations like IBM, where everyone is in formal attire, adhering strictly to company culture. Pirates, in contrast, defy this norm, passionately pursuing their goals until success is achieved.
This mindset has been a catalyst for change throughout history, notably during the golden age of piracy in the 1700s, challenging the monopoly over oceanic routes, leading to the seas being considered international waters.
Another more recent example of piracy is Napster, where a single person with a pirate mindset was able to challenge the existing record industry model and create something that forced the music industry to reinvent itself. Before Napster, no one imagined the possibility of buying just that one song you like instead of a full album. This way of acting and thinking is the only one capable of destabilizing and changing the system for the better, which is why we will better understand the pirate way of thinking.
Before I continue, I would like to say that this book is not intended for people who love or are from the Merchant Marine standard, but for those who think like a Pirate.
The terms used by the Merchant Marine are, as Fowler said, more about impressing than defining something, so I prefer to work with the idea of both professional and personal experience evolution. Since I am a big fan of Star Wars, I see a perfect correlation of this evolution with that of the Jedis. So, from this moment on, I will use the Star Wars theme as a metaphor for the narrative of this book.
The idea is simple: the Jedis are the real programmers, the ones who will make a difference! They start their careers as Younglings or Padawans, and then evolve into Jedi Knights and, finally, Jedi Masters.
Not all developers fall into this classification, in other words, they will never be Jedis. To become one, you must love what you do, and go through a hard and long journey. It's like Martin Fowler once said about Design Patterns:
When you introduce them to a group of new developers, everyone will complain. After a while, some will love it and say that using it has changed them for the better! Others will like it and use it. But there is a group that will hate it!".
THIS LAST GROUP ARE the ones who can be excluded from the Jedi category, as they do not have the analytical and objective characteristics in their DNA.
Another point that we will understand in the book is that software development is closer to the human sciences than to the exact sciences. The process of analyzing and developing (building) software is like painting pictures: if we ask two different artists to paint a portrait of a person, in both results we will know that the artists portrayed the person, but they will not be identical! Each painting will have the techniques and characteristics of the painter.
This fact is similar and happens in software development, because if we ask two different developers to make the same software, the final result will be distinct, but we will be able to identify that both softwares have the same purpose.
However, they will possess techniques and characteristics of their developers.
According to Philippe Kruchten:
Programming is fun, but developing quality software is hard.
In other words, programming is a state of the art! In the chapter The art of developing, we will delve deeper into the subject.
Fred Brooks, in 'The Mythical Man-Month', reminds us that 'Good judgment comes from experience, and experience comes from bad judgment.' This resonates with the software architect's journey of learning through both successes and challenges.
As we close this chapter, it's essential to reflect on the journey we've embarked upon in software development. Every line of code, every project, and every challenge represents a step in our journey of growth and learning. Philippe Kruchten's observation that 'developing quality software is hard' underscores the importance of this journey, not merely as a technical endeavor, but as an art form demanding passion, dedication, and continuous learning. The wisdom of Fred Brooks about experience and judgment resonates deeply, reminding us that our path is shaped by both triumphs and setbacks. While this chapter has focused on the foundational aspects of becoming a master in software development, the upcoming sections will delve into unique philosophies like the 'Pirate' mindset, pushing us to embrace innovative and disruptive thinking in our quest to become true architects of software. This journey is challenging, yet the rewards of mastery and innovation are unparalleled in their ability to transform both our creations and ourselves.
CHAPTER 2
PIRATES
BETTER TO BE A PIRATE than to join the navy.
- Steve Jobs
WHY BE A PIRATE?
We will address the concept of Pirates in an allegorical way. It is not the same concept used for Computer Pirates,
nor for the crime of piracy! As mentioned, it is an allegorical term.
We must understand that the correlation is made in the essence of thought and is transported to the daily life of a developer, so that one can understand the spirit of going beyond... Innovating!
Remember that, just like a pirate, we are on a journey, alone on a sea with the entire merchant navy – the large corporations –, which dictate the trends and the rules.
To be able to defeat the navy on our own and be victorious, we must act like Pirates!
We will understand the idea better later on. For now, we just need to know that by acting like Sailors, we will only be tamed and will be further away from (if it is possible) reaching our dreams.
HOW DO PIRATES ACT?
GOOD ARTISTS COPY, great artists steal.
– Picasso
Picasso did not mean 'steal' in the strict sense of the word, but rather in the inspiration of the innovator; to adopt the new and revolutionary and make it your own. If we look at great names of success, they did the same! In the field of technology, we have the revolutionary Steve Jobs, who understood this concept more than anyone, and managed to create an empire that was based on making revolutionary what was rejected by others.
The main idea of the term Pirate is in the concept that they