Essential Software Development Career + Technical Guide
Essential Software Development Career + Technical Guide
Buy Rights Online Buy Rights
Interested in buying rights? Click here to make an offer

Rights Contact Login For More Details

More About This Title Essential Software Development Career + Technical Guide

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!

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

Rights Sold

loading