What you will learn with this Book

Over 200 topics including these will be covered

How to become a software engineer

What classes should you take in high school?
How can you start learning what you need?
What education/colleges should you look for?

Pass the Interview

What do you need to know for an interview?
What questions might be asked?
How should you prepare for an interview?
How to negotiate salary?
Don’t get caught unprepared.

How to find a software engineering job

What businesses should you work at?
What field should you work in?
What languages should I learn?
These questions and more will be answered, providing you with practical real-world advice on being a marketable software engineer/developer/programmer.

Supercharge Your Career

How should you manage your career?
How should you work with others?
How to get promoted?
How to get into management?

Get all the answers you need to guide you.

Technology Overview + Depth

Multithreading, Architecture, Cryptocurrency, Encryption, Performance, User Interfaces, Hardware, Networking, Design Patterns, Message streaming, and more!
Get both an overview and depth of important areas for software engineering.

And Much More!

Algorithms / Data Structures, Code performance, Code reviews, Unicode, Floating Point errors, Dependency Injection, Databases, Speed and Perception, Finite State Machines, Root Cause Analysis, Distributed Time Event Ordering, and more! The best software engineering book!

Book Information

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

Book Trailers

Why Wait? Buy Now

Check out our Book Video Trailer Here on YouTube.

Don’t wait! Get your book or eBook on Amazon today!

We sometimes offer days where the book may be free. Signup to find out when.

Subscribe to our newsletter!

Audiobook feed https://essentialsoftwaredevelopment.com/feed/podcast/

×