Essential Software Development Career + Technical Guide
×
Success!
×
Error!
×
Information !
Essential Software Development Career + Technical Guide
Interested in buying rights? Click here to make an offer
Rights Contact Login For More Details
- AppJungle.net LLC
- https://www.pubmatch.com/appjungle.net-llc.html
More About This Title Essential Software Development Career + Technical Guide
- English
English
www.essentialsoftwaredevelopment.com
Book is live on Amazon - Just published 3/4/23
https://www.amazon.com/dp/B0BXHYWMDP/
(We are keeping all rights for the United states and territories. Willing to license out for English - UK, Australia, New Zealand,etc. for Print+ebook. All other languages available. Usual rates for licenses.)
Master the skills and knowledge you need to succeed as a software engineer with this comprehensive guide. Whether you're new to the field or a seasoned professional, this book covers all the essential software development topics to help you stay up-to-date and excel in your role.
Compare what this book covers to others. You will see the breadth of coverage exceeds nearly all others. (Click the book cover to look inside at the table of contents)
Read this book If:
You want to start OR have started a career in software engineering.
You want to know about all the technical topics you need to succeed.
You want to understand the entire process of software engineering.
You want to learn what they will NOT teach you in school.
You want to understand coding, multithreading, testing, and more!
You would like to learn the soft skills you need for promotions.
You want to know how to get promoted.
You want to know why you are NOT getting promoted.
You want to understand deep technical topics, i.e., encryption+crypto.
If you think your company is doing Agile wrong.
After reading the book, you will:
• Understand how to have a successful career in software engineering.
• Have the technical knowledge to know how and where to grow.
• Have the soft skills framework to help get you promoted and do your job exceptionally.
• Understand how to make the best decisions.
• Understand the technology and psychology to excel.
This book covers career, soft skills, processes, and deep technical details on coding, testing, architecture, and much more!
Learn the secrets of management. You may never look at your job or management jobs the same way again.
Learn about software engineering and management career paths.
Don't make mistakes that you can avoid with a little knowledge.
Learn to achieve the promotions you desire.
From a self-taught software engineer taking classes or continuing your career, this book will help you maximize your career.
This book does not intend to replace school or training. It provides a collection of articles on these topics that summarize, explain or provide insights on the essential topics for software engineers.
Get answers to:
What classes should you take in high school/college?
Should you become a software engineer?
What kind of computer do you need?
What industry sector should you work in?
What don't they teach you in school?
Should you do consulting vs. full-time?
Do you need certifications?
Should you use a staffing firm?
What do software engineers do?
How do I get a job?
How do I get promoted?
How do I understand what hardware does?
How to become a Senior or Staff Software Engineer and more?
How do I become a manager?
Learn about:
Agile with Scrum, Multithreading, Source Control, Working with a team, Architecture, Algorithms / Data Structures, Networking, File Systems, Overviews of the web, Unicode, Dependency Injection, Security, Privacy, Object Oriented Languages, Message tracing, Floating point number processing, User Interface Design, Time Management, Cryptocurrency, Encryption, Recursion, Databases, Support, Testing, and much more!
Book is live on Amazon - Just published 3/4/23
https://www.amazon.com/dp/B0BXHYWMDP/
(We are keeping all rights for the United states and territories. Willing to license out for English - UK, Australia, New Zealand,etc. for Print+ebook. All other languages available. Usual rates for licenses.)
Master the skills and knowledge you need to succeed as a software engineer with this comprehensive guide. Whether you're new to the field or a seasoned professional, this book covers all the essential software development topics to help you stay up-to-date and excel in your role.
Compare what this book covers to others. You will see the breadth of coverage exceeds nearly all others. (Click the book cover to look inside at the table of contents)
Read this book If:
You want to start OR have started a career in software engineering.
You want to know about all the technical topics you need to succeed.
You want to understand the entire process of software engineering.
You want to learn what they will NOT teach you in school.
You want to understand coding, multithreading, testing, and more!
You would like to learn the soft skills you need for promotions.
You want to know how to get promoted.
You want to know why you are NOT getting promoted.
You want to understand deep technical topics, i.e., encryption+crypto.
If you think your company is doing Agile wrong.
After reading the book, you will:
• Understand how to have a successful career in software engineering.
• Have the technical knowledge to know how and where to grow.
• Have the soft skills framework to help get you promoted and do your job exceptionally.
• Understand how to make the best decisions.
• Understand the technology and psychology to excel.
This book covers career, soft skills, processes, and deep technical details on coding, testing, architecture, and much more!
Learn the secrets of management. You may never look at your job or management jobs the same way again.
Learn about software engineering and management career paths.
Don't make mistakes that you can avoid with a little knowledge.
Learn to achieve the promotions you desire.
From a self-taught software engineer taking classes or continuing your career, this book will help you maximize your career.
This book does not intend to replace school or training. It provides a collection of articles on these topics that summarize, explain or provide insights on the essential topics for software engineers.
Get answers to:
What classes should you take in high school/college?
Should you become a software engineer?
What kind of computer do you need?
What industry sector should you work in?
What don't they teach you in school?
Should you do consulting vs. full-time?
Do you need certifications?
Should you use a staffing firm?
What do software engineers do?
How do I get a job?
How do I get promoted?
How do I understand what hardware does?
How to become a Senior or Staff Software Engineer and more?
How do I become a manager?
Learn about:
Agile with Scrum, Multithreading, Source Control, Working with a team, Architecture, Algorithms / Data Structures, Networking, File Systems, Overviews of the web, Unicode, Dependency Injection, Security, Privacy, Object Oriented Languages, Message tracing, Floating point number processing, User Interface Design, Time Management, Cryptocurrency, Encryption, Recursion, Databases, Support, Testing, and much more!
- English
English
CHAPTER ONE: Intro
Introduction
CHAPTER TWO: Should You Become a Developer?
Should I Become a Software Engineer/Developer?
What Is a Day as a Software Engineer Like?
Production Issues
Why Should I Want to Work as a Software Engineer?
Where Do Software Engineers Work?
CHAPTER THREE: What to Learn in High School
What Should I Learn in High School to Help Me Become a Software Engineer?
Learning a Programming Language
General Overview of Aspects of Programming Languages
What Programming Language to Learn First?
Why Should You Learn Programming?
How to Learn Programming for Beginners?
CHAPTER FOUR: What Computer to Buy
Which Type of OS/Computer Should You Buy for School/College for Someone Interested in Being a Software Engineer?
Why Not Linux? Most Web Servers Are Linux.
What Hardware Do You Need for Your Windows PC?
CHAPTER FIVE: College
Choosing a College/School to Be a Computer Software Engineer
So How Do You Decide Your College/Major?
College Locations
Can You Become a Software Engineer without a Degree?
What Does a Software Engineer Education Cost?
How Much Do Software Engineers Make Out of College?
Co-Op
Intern Programs
One Person’s Experience
A Company that Helped Manage Money
A Consumer Electronics Firm
For My Company with a Friend—Not Co-Op
A Small Start-Up Document Imaging Company
Planning Your College Courses with an Eye toward a Software Engineering Job/Programming
General Electives
What Computer Language Classes to Take?
Planning to Transfer in the Future?
If You Prefer to Go Full-On Computer Science
Surviving College as a Computer Science Major (or a Variation of That)
Computer Labs/Home Computers, Assignments, and More
Multi-Person Programming Projects
Some Other General Trivia
What Do You Do If You Have Trouble with Your Classes?
When You Have Finished Your Degree
CHAPTER SIX: What They May Not Teach You in School
What They May Not Teach You in School about Working as a Software Engineer
Time Management
Source Control and Branching
Business Focus/Prioritization
The Rules and Business
Working with Others and the Art of Influence and Leadership
Continual Improvement
Creativity
What Do You Want?
Creating Your Own Opportunities or Taking Advantage of Them
Perfect Is the Enemy of Done/Money
Software Development Life Cycle (SDLC), Auditing, Etc.
Coding for a Production Environment
Professionalism
The Art of What You Should or Shouldn’t Say No To
Interviewing
Working with Your Manager
Managing Stress
Teamwork
CHAPTER SEVEN: Where to Work
Here Are Some of the Best Places to Work for a Software Engineer
How Company Size Can Affect Your Experience
Regulated vs. Unregulated
Working in a Place You Like the Most
Organization Culture
What Area of Software Engineering Should I Go Into?
Which Tech Stack Should You Learn/Work In?
CHAPTER EIGHT: Preparing to Find a Job
Your Resume
Consulting
W-2 vs. 1099 vs. Corp to Corp
1099
Corp to Corp
Consulting vs. Full Time
A Consulting Gig
What Is a Full Stack Developer?
Staffing Firms and Recruiters
Do You Need Certifications?
Finding a Job
Colleagues, Friends, and Family
CHAPTER NINE: Interviewing
Portfolios
Things You Should Do to Prep for the Interview
Some Example Interview Questions
Things You Should Know
Recruiter Screening
Initial Screening
Interview (the Main Event)
Salary
CHAPTER TEN: Starting a New Job
Working with Others
Impressions
What Does It Mean to Be a Good Team Member?
Developing Large Features or Software Products
Mentor
CHAPTER ELEVEN: Deadlines, Estimates, Communication, Notes
Early Career: Software Engineering Deadlines, Target Dates, and Estimates
What Should You Do About Estimates And Deadlines?
Early Career: Team, Internal, External Conversations/Messaging
Keep Track of What You Need to Do
Keep Track of What You Learn
CHAPTER TWELVE: Working with Your Manager
What Does Your Manager Want?
Take Control of Your Career
Act Professional
Communicating with Upper Management
Managing Up
The Power of Taking Responsibility
CHAPTER THIRTEEN: Mindset and Psychology
Think Like an Owner
The Power of Positivity
Impostor Syndrome
Don’t Be a Jerk
Change—The Only Constant
CHAPTER FOURTEEN: Continuous Learning
Programming Language
Constant Learning
Team Presentations
CHAPTER FIFTEEN: Getting a Promotion/Raise
Job Titles
What Purpose Do Job Titles Have?
How Do You Get a Promotion/Raise?
Titles, Role, Responsibilities, Money
Be Introspective
CHAPTER SIXTEEN: Changing Jobs/Roles
Leave on Good Terms
Counteroffers
Changing Teams
CHAPTER SEVENTEEN: Career
LinkedIn
Making Money from Your Own Software
Write an Android/IOS App, Websites, Desktop App, Etc.
Marketing
Publishing Your Software
Book Authoring
Your Company Has Been Bought—Now What?
Avoiding Layoffs
CHAPTER EIGHTEEN: Process: Waterfall
Critiques against Waterfall
CHAPTER NINETEEN: Process: Practical Agile with Scrum
Scrum In the Real World for Software Development
What is Agile?
Agile Software Development Process Pros and Cons
Mitigating the Cons of Agile
Agile Sprints/Iterations
Agile Is Not Waterfall
What Is Scrum?
Daily Scrum
Scrum Roles
Planning, Grooming, Reveal, and Retro
Sprint Planning
The Reveal
The Retrospective (or Just Retro)
Backlog Grooming
Scrum of Scrums
Tracking Progress
Agile with Scrum How To
Agile While Managing New Features and Support
You Created Your Stories for Your Project, but Now You Need a Plan—Agile Project Plan
Builds/Continuous Integration
Agile Body Snatchers
CHAPTER TWENTY: Process: Requirements
CHAPTER TWENTY-ONE: Process: Architecture/Design
Architecture/Design
Enterprise Architecture (EA) Frameworks
The Open Group Architectural Framework (TOGAF)
Whole System Level Architecture Patterns
Designing Resilient/Redundant Systems
Discussions
UX Design
A Simplistic Architecture Approach
High-Level Solution Proposals
Incremental Action Plan
CHAPTER TWENTY-TWO: Process: Source Control Management
Source Control Management
Functionality and Workflow
Branch Plans
Workflow and Branch Plans
Gitflow Branching
Source Control Products
CHAPTER TWENTY-THREE: Process: Implementation
Implementing a Feature/Bug Fix
Unit Testing
Test Driven Development (TDD)
Pair Programming
Logging
Testing a Feature/Bug Fix
Builds/Continuous Integration
Merging the Change
Should You Comment Code—Write Them, How Much, or Not?
Software Development Environment
How to Write Cleaner, More Understandable Code
Environments
Dev-Ops
What Are the Main Correlating Factors to the Introduction of Bugs?
CHAPTER TWENTY-FOUR: Process: Testing/Validation
Testing
Automation Testing
Integration Testing
Fuzz Testing
Parity Testing
Performance Testing
Validation
CHAPTER TWENTY-FIVE: Process: Deployment
Deployment
Old/New (A/B) Deployments
Rollbacks
CHAPTER TWENTY-SIX: Process: Production
CHAPTER TWENTY-SEVEN: Process: Support
Coding, Testing
Cost
Performance and Hardware
Deployment
Logging
Tracing
Time Syncing
Network/Application Tracing
Monitoring
Alerting
Standard Operating Procedure (SOP) or Runbook
Training
Escalation Process for Critical Incidents
Operational Impact
How to Handle Support with Agile Scrum Teams
Prioritizing Investigations/Escalation Process for Noncritical Incidents
CHAPTER TWENTY-EIGHT: Process: Audits
Audits in Highly Regulated Environments
Preparing for an Audit
What Should You Expect during an Audit?
CHAPTER TWENTY-NINE: General Development
Languages
Algorithms/Data Structures
Naming Classes, Methods, Properties, Etc.
Building Software to Reduce Risks and Handle/Recover from Errors
Code Performance and Improving
Code Reviews
Principles
Getting in the Zone
Windows Debugging
Overengineering
Minimum Viable Product (MVP)
Thinking Like Your Customer
Solving Hard Critical Support Issues
Avoid Duplicating Code
Improving Testing
User Interfaces
Technical Disagreements
Deciding If You Should Fix a Bug Now
Testing Private Methods
Coupling / Decoupling
Root Cause Analysis
Understanding Hardware
Networking
File Systems
XML/HTML/CSS
Resource Utilization
Prototyping
Windowing Systems
Double Check Locking
Unicode
Security
Privacy
Public Key Crypto Systems
Exception Handling
Proof of Concept (POC)
Object Oriented Languages
Software Patterns
Upgrade Path
If I Have a Hammer Everything Looks Like a Nail
Fail Early
Asserts
Contracts
Operating Systems
Databases
Data Science
Dependency Injection
Time Use for Event Ordering
How to Handle Tech Debt
Open Source Software
Data Pipelines
Context and Notetaking
Managed Languages
Floating Point Numbers
NP_Complete Problems
C# Using Var
Perceived Speed
Holy Wars
Message Streaming
Should You Learn Assembly Language?
Writing Apps for Profit and Fun
Will AI Replace Software Engineers
Highly Regulated Environments
Recursion
Cross-Platform Development
Rate Limiting Algorithms
Plugin Framework
Discrete Math
Finite-State Machine
Compiler/Interpreter Design
Deterministic Disposal at End of Function Scope
Data Objects
.NET Source Code
CHAPTER THIRTY: Multithreading
Threading Synchronization Primitives
Threading Topics
Threading Issues
Threading Patterns
Multithreaded Events
Does Your Sleep(0) Smell?
CHAPTER THIRTY-ONE: Time Management
Email
Which Communication Method to Use?
CHAPTER THIRTY-TWO: Management
Intro
How to Become a Software Engineering Manager
One on Ones
Performance Discussions
Compensation Discussions
Don’t Micromanage
Planning a Project
Time Off
The Power of Questions
Role in Scrum
Role as Architect
People Reviews (Yearly or Ideally More Often)
Project Management
Mentoring/Career Path
Employee Concerns
Project Details
Example Day in the Life of an Engineering Manager
Team Size
Managing Management Expectations vs. Team Capability
Delegating
Staffing/Hiring
Onboarding
Outsourcing of Development Work
Team Collaboration
Managing Large Multi-Team Projects
Project Manager(s)
Dependency Management
Scrum of Scrums Meetings
Be an Advocate for Your Team/Members
Compensation
The Gray Area
Clean Up Your Backlog
Aligning Code with Your Teams
When/What to Escalate?
Agile Team Management
CHAPTER THIRTY-THREE: General Topics
When Good Architecture Isn’t Good Right Now
How to Reduce Overhead Costs for Your Business—Keep Processes Under Control!
Reinvention
Generating Ideas/Solutions
Failure
Turning Failure into Success
Integrity and Playing Fair
Cryptocurrency
Ideal vs. Practical
Rant On Why Software Architecture Is Not Exactly Like Building Architecture
Operations and DBA Teams
Why Patch Rather Than Fix?
Computer Science and Life
Third Party Products/Libraries
Why Is X More Reliable Than Software?
Diagnosing Windows Issues
Staying Safe in the Digital Age
Your Own Website
Smaller Releases
Impact on Society
How to Be the Worst Software Engineer
Useful Tools and Websites
Best Developer Blogs
Reading List
CHAPTER THIRTY-FOUR: Notable Software/Technologies
Windows
Linux/Unix
Android
iOS
Machine Learning
Docker Containers/Kubernetes
NoSQL
CHAPTER THIRTY-FIVE: Appendix
Sites/Links/Information
More Information / Errata
Dedication
Introduction
CHAPTER TWO: Should You Become a Developer?
Should I Become a Software Engineer/Developer?
What Is a Day as a Software Engineer Like?
Production Issues
Why Should I Want to Work as a Software Engineer?
Where Do Software Engineers Work?
CHAPTER THREE: What to Learn in High School
What Should I Learn in High School to Help Me Become a Software Engineer?
Learning a Programming Language
General Overview of Aspects of Programming Languages
What Programming Language to Learn First?
Why Should You Learn Programming?
How to Learn Programming for Beginners?
CHAPTER FOUR: What Computer to Buy
Which Type of OS/Computer Should You Buy for School/College for Someone Interested in Being a Software Engineer?
Why Not Linux? Most Web Servers Are Linux.
What Hardware Do You Need for Your Windows PC?
CHAPTER FIVE: College
Choosing a College/School to Be a Computer Software Engineer
So How Do You Decide Your College/Major?
College Locations
Can You Become a Software Engineer without a Degree?
What Does a Software Engineer Education Cost?
How Much Do Software Engineers Make Out of College?
Co-Op
Intern Programs
One Person’s Experience
A Company that Helped Manage Money
A Consumer Electronics Firm
For My Company with a Friend—Not Co-Op
A Small Start-Up Document Imaging Company
Planning Your College Courses with an Eye toward a Software Engineering Job/Programming
General Electives
What Computer Language Classes to Take?
Planning to Transfer in the Future?
If You Prefer to Go Full-On Computer Science
Surviving College as a Computer Science Major (or a Variation of That)
Computer Labs/Home Computers, Assignments, and More
Multi-Person Programming Projects
Some Other General Trivia
What Do You Do If You Have Trouble with Your Classes?
When You Have Finished Your Degree
CHAPTER SIX: What They May Not Teach You in School
What They May Not Teach You in School about Working as a Software Engineer
Time Management
Source Control and Branching
Business Focus/Prioritization
The Rules and Business
Working with Others and the Art of Influence and Leadership
Continual Improvement
Creativity
What Do You Want?
Creating Your Own Opportunities or Taking Advantage of Them
Perfect Is the Enemy of Done/Money
Software Development Life Cycle (SDLC), Auditing, Etc.
Coding for a Production Environment
Professionalism
The Art of What You Should or Shouldn’t Say No To
Interviewing
Working with Your Manager
Managing Stress
Teamwork
CHAPTER SEVEN: Where to Work
Here Are Some of the Best Places to Work for a Software Engineer
How Company Size Can Affect Your Experience
Regulated vs. Unregulated
Working in a Place You Like the Most
Organization Culture
What Area of Software Engineering Should I Go Into?
Which Tech Stack Should You Learn/Work In?
CHAPTER EIGHT: Preparing to Find a Job
Your Resume
Consulting
W-2 vs. 1099 vs. Corp to Corp
1099
Corp to Corp
Consulting vs. Full Time
A Consulting Gig
What Is a Full Stack Developer?
Staffing Firms and Recruiters
Do You Need Certifications?
Finding a Job
Colleagues, Friends, and Family
CHAPTER NINE: Interviewing
Portfolios
Things You Should Do to Prep for the Interview
Some Example Interview Questions
Things You Should Know
Recruiter Screening
Initial Screening
Interview (the Main Event)
Salary
CHAPTER TEN: Starting a New Job
Working with Others
Impressions
What Does It Mean to Be a Good Team Member?
Developing Large Features or Software Products
Mentor
CHAPTER ELEVEN: Deadlines, Estimates, Communication, Notes
Early Career: Software Engineering Deadlines, Target Dates, and Estimates
What Should You Do About Estimates And Deadlines?
Early Career: Team, Internal, External Conversations/Messaging
Keep Track of What You Need to Do
Keep Track of What You Learn
CHAPTER TWELVE: Working with Your Manager
What Does Your Manager Want?
Take Control of Your Career
Act Professional
Communicating with Upper Management
Managing Up
The Power of Taking Responsibility
CHAPTER THIRTEEN: Mindset and Psychology
Think Like an Owner
The Power of Positivity
Impostor Syndrome
Don’t Be a Jerk
Change—The Only Constant
CHAPTER FOURTEEN: Continuous Learning
Programming Language
Constant Learning
Team Presentations
CHAPTER FIFTEEN: Getting a Promotion/Raise
Job Titles
What Purpose Do Job Titles Have?
How Do You Get a Promotion/Raise?
Titles, Role, Responsibilities, Money
Be Introspective
CHAPTER SIXTEEN: Changing Jobs/Roles
Leave on Good Terms
Counteroffers
Changing Teams
CHAPTER SEVENTEEN: Career
Making Money from Your Own Software
Write an Android/IOS App, Websites, Desktop App, Etc.
Marketing
Publishing Your Software
Book Authoring
Your Company Has Been Bought—Now What?
Avoiding Layoffs
CHAPTER EIGHTEEN: Process: Waterfall
Critiques against Waterfall
CHAPTER NINETEEN: Process: Practical Agile with Scrum
Scrum In the Real World for Software Development
What is Agile?
Agile Software Development Process Pros and Cons
Mitigating the Cons of Agile
Agile Sprints/Iterations
Agile Is Not Waterfall
What Is Scrum?
Daily Scrum
Scrum Roles
Planning, Grooming, Reveal, and Retro
Sprint Planning
The Reveal
The Retrospective (or Just Retro)
Backlog Grooming
Scrum of Scrums
Tracking Progress
Agile with Scrum How To
Agile While Managing New Features and Support
You Created Your Stories for Your Project, but Now You Need a Plan—Agile Project Plan
Builds/Continuous Integration
Agile Body Snatchers
CHAPTER TWENTY: Process: Requirements
CHAPTER TWENTY-ONE: Process: Architecture/Design
Architecture/Design
Enterprise Architecture (EA) Frameworks
The Open Group Architectural Framework (TOGAF)
Whole System Level Architecture Patterns
Designing Resilient/Redundant Systems
Discussions
UX Design
A Simplistic Architecture Approach
High-Level Solution Proposals
Incremental Action Plan
CHAPTER TWENTY-TWO: Process: Source Control Management
Source Control Management
Functionality and Workflow
Branch Plans
Workflow and Branch Plans
Gitflow Branching
Source Control Products
CHAPTER TWENTY-THREE: Process: Implementation
Implementing a Feature/Bug Fix
Unit Testing
Test Driven Development (TDD)
Pair Programming
Logging
Testing a Feature/Bug Fix
Builds/Continuous Integration
Merging the Change
Should You Comment Code—Write Them, How Much, or Not?
Software Development Environment
How to Write Cleaner, More Understandable Code
Environments
Dev-Ops
What Are the Main Correlating Factors to the Introduction of Bugs?
CHAPTER TWENTY-FOUR: Process: Testing/Validation
Testing
Automation Testing
Integration Testing
Fuzz Testing
Parity Testing
Performance Testing
Validation
CHAPTER TWENTY-FIVE: Process: Deployment
Deployment
Old/New (A/B) Deployments
Rollbacks
CHAPTER TWENTY-SIX: Process: Production
CHAPTER TWENTY-SEVEN: Process: Support
Coding, Testing
Cost
Performance and Hardware
Deployment
Logging
Tracing
Time Syncing
Network/Application Tracing
Monitoring
Alerting
Standard Operating Procedure (SOP) or Runbook
Training
Escalation Process for Critical Incidents
Operational Impact
How to Handle Support with Agile Scrum Teams
Prioritizing Investigations/Escalation Process for Noncritical Incidents
CHAPTER TWENTY-EIGHT: Process: Audits
Audits in Highly Regulated Environments
Preparing for an Audit
What Should You Expect during an Audit?
CHAPTER TWENTY-NINE: General Development
Languages
Algorithms/Data Structures
Naming Classes, Methods, Properties, Etc.
Building Software to Reduce Risks and Handle/Recover from Errors
Code Performance and Improving
Code Reviews
Principles
Getting in the Zone
Windows Debugging
Overengineering
Minimum Viable Product (MVP)
Thinking Like Your Customer
Solving Hard Critical Support Issues
Avoid Duplicating Code
Improving Testing
User Interfaces
Technical Disagreements
Deciding If You Should Fix a Bug Now
Testing Private Methods
Coupling / Decoupling
Root Cause Analysis
Understanding Hardware
Networking
File Systems
XML/HTML/CSS
Resource Utilization
Prototyping
Windowing Systems
Double Check Locking
Unicode
Security
Privacy
Public Key Crypto Systems
Exception Handling
Proof of Concept (POC)
Object Oriented Languages
Software Patterns
Upgrade Path
If I Have a Hammer Everything Looks Like a Nail
Fail Early
Asserts
Contracts
Operating Systems
Databases
Data Science
Dependency Injection
Time Use for Event Ordering
How to Handle Tech Debt
Open Source Software
Data Pipelines
Context and Notetaking
Managed Languages
Floating Point Numbers
NP_Complete Problems
C# Using Var
Perceived Speed
Holy Wars
Message Streaming
Should You Learn Assembly Language?
Writing Apps for Profit and Fun
Will AI Replace Software Engineers
Highly Regulated Environments
Recursion
Cross-Platform Development
Rate Limiting Algorithms
Plugin Framework
Discrete Math
Finite-State Machine
Compiler/Interpreter Design
Deterministic Disposal at End of Function Scope
Data Objects
.NET Source Code
CHAPTER THIRTY: Multithreading
Threading Synchronization Primitives
Threading Topics
Threading Issues
Threading Patterns
Multithreaded Events
Does Your Sleep(0) Smell?
CHAPTER THIRTY-ONE: Time Management
Which Communication Method to Use?
CHAPTER THIRTY-TWO: Management
Intro
How to Become a Software Engineering Manager
One on Ones
Performance Discussions
Compensation Discussions
Don’t Micromanage
Planning a Project
Time Off
The Power of Questions
Role in Scrum
Role as Architect
People Reviews (Yearly or Ideally More Often)
Project Management
Mentoring/Career Path
Employee Concerns
Project Details
Example Day in the Life of an Engineering Manager
Team Size
Managing Management Expectations vs. Team Capability
Delegating
Staffing/Hiring
Onboarding
Outsourcing of Development Work
Team Collaboration
Managing Large Multi-Team Projects
Project Manager(s)
Dependency Management
Scrum of Scrums Meetings
Be an Advocate for Your Team/Members
Compensation
The Gray Area
Clean Up Your Backlog
Aligning Code with Your Teams
When/What to Escalate?
Agile Team Management
CHAPTER THIRTY-THREE: General Topics
When Good Architecture Isn’t Good Right Now
How to Reduce Overhead Costs for Your Business—Keep Processes Under Control!
Reinvention
Generating Ideas/Solutions
Failure
Turning Failure into Success
Integrity and Playing Fair
Cryptocurrency
Ideal vs. Practical
Rant On Why Software Architecture Is Not Exactly Like Building Architecture
Operations and DBA Teams
Why Patch Rather Than Fix?
Computer Science and Life
Third Party Products/Libraries
Why Is X More Reliable Than Software?
Diagnosing Windows Issues
Staying Safe in the Digital Age
Your Own Website
Smaller Releases
Impact on Society
How to Be the Worst Software Engineer
Useful Tools and Websites
Best Developer Blogs
Reading List
CHAPTER THIRTY-FOUR: Notable Software/Technologies
Windows
Linux/Unix
Android
iOS
Machine Learning
Docker Containers/Kubernetes
NoSQL
CHAPTER THIRTY-FIVE: Appendix
Sites/Links/Information
More Information / Errata
Dedication
Rights Sold
- English - World Non-Exclusive View Info