Fundamental Software Skills

Fundamental Software Skills

Timeless lessons by a professional software developer.

About the Book

For me the first few years of being a software developer had many moments of confusion, frustration, and self doubt. It takes a few years to really figure out how things work in software (although the learning never stops). Many software training programs focus too much on the specifics of a given language or framework. They toss you into the weeds and expect you to figure out the big picture on your own.

My goal with this book is to give everyone the same sense of being a well rounded software developer that I enjoy, without having to learn it the hard way like I did.

Outline:

The book starts off with an overview of computer hardware and a discussion of Mac vs Linux vs Windows. It includes an exercise on how to build your own machine from off the shelf components. The best developers understand the basics of what is going on inside their machine and know how to fix it when something breaks.

The book then moves to the fundamentals of using a text editor / IDE, being comfortable on the command line, and using source control. Again, the best developers deftly navigate these areas while struggling developers a) don’t know how to use their tools efficiently, and b) end up being totally dependent on some GUI tool or abstraction that gets them in trouble later.

The next chapter is an overview of how the internet is built. Seems odd for a programming book, but most software runs directly on the internet or at least touches it in some way. Good developers know the basics of networking, DNS, servers, and what is going on under the hood when accessing external resources. The ability to troubleshoot network related problems has proved invaluable for me when it comes time to prove to sysadmins something is wrong on their end.

At last the book goes heavy into coding. First there is a chapter on the basics, and various themes you’ll see. Then there is a chapter on quality coding - the centerpiece of the book. The concepts I discuss on quality coding will make or break your career as a software developer.  

After coding comes data storage and data in flight (APIs), which encompasses about half of what I do as a software developer - moving and storing data.

Then I discuss user interface and front end concepts. I’m not a design expert but again I provide the context you’ll need. From there the book goes into popular frameworks and the ideas behind them. Frameworks drive much of web development, both frontend and backend, but they all do the same sort of thing.  

Next is a chapter that will give you some guidance on one of the most aggravating aspects of building software: string encoding, internationalization, and date handling. This one trips up many developers so I have to cover it.

The last section goes into common workflows in software development, software licenses / intellectual property, and career considerations. Commercial software is business driven. Most jobs in software involve working for a business. Therefore if you are working on software you are likely dealing with business issues. Again the best developers are the ones who know how to navigate this area. 

Why me and why this book?

The idea for this book has been on my mind for years. Throughout my career I’ve been told by blog readers, managers, and peers that I’m a good communicator, especially when it comes to breaking down complex technical subjects. I've mentored over a dozen developers in my career. I’ve done it while working for others and in my own company with my own money on the line. At this point in life I know what junior developers get hung up on, where many “experienced” developers are weak, and the major themes to get under wraps.

Book Format:

Each chapter contains screenshots, key terminology, code samples (where applicable) and my honest appraisal of what you need to know.

The digital version is a "living book" (“book as a service”) in the sense that I regularly release updates. This seems fitting since software evolves so rapidly. A purchase grants lifetime access to the updates in digital form. 

A dead tree (paper) version will be made available if there is demand for it.  

Table of Contents:

  1. Introduction - Why Software Is Awesome
  2. Understanding Your Hardware
  3. Getting Good With Your Editor / IDE = RESPECT
  4. The Command Line is Yours
  5. Use Source Control or Perish
  6. How The Internet Works and Networking / Infrastructure
  7. Coding Fundamentals
  8. Quality Coding - Bullet Proof Your Code in the Real World
  9. Data Storage - Data At Rest
  10. APIs - Data In Flight
  11. UI / Data Presentation - Front End Development
  12. Common Framework Concepts
  13. Strings, Dates And Bytes
  14. Common Day To Day Workflows
  15. Software Licenses, Intellectual Property and Such
  16. Career Considerations
  17. Recommended Books And Tools - What I Really Use, No Affiliates Allowed!
  18. Glossary of Terms

About the Author

Laurence Gellert
Laurence Gellert

Laurence Gellert is a software developer with 20+ years of experience. My goal with this book is to give everyone that sense of being a well rounded software developer that I enjoy, without having to learn it the hard way like I did.

The Leanpub 60 Day 100% Happiness Guarantee

Within 60 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.

Now, this is technically risky for us, since you'll have the book or course files either way. But we're so confident in our products and services, and in our authors and readers, that we're happy to offer a full money back guarantee for everything we sell.

You can only find out how good something is by trying it, and because of our 100% money back guarantee there's literally no risk to do so!

So, there's no reason not to click the Add to Cart button, is there?

See full terms...

80% Royalties. Earn $16 on a $20 book.

We pay 80% royalties. That's not a typo: you earn $16 on a $20 sale. If we sell 5000 non-refunded copies of your book or course for $20, you'll earn $80,000.

(Yes, some authors have already earned much more than that on Leanpub.)

In fact, authors have earnedover $13 millionwriting, publishing and selling on Leanpub.

Learn more about writing on Leanpub

Free Updates. DRM Free.

If you buy a Leanpub book, you get free updates for as long as the author updates the book! Many authors use Leanpub to publish their books in-progress, while they are writing them. All readers get free updates, regardless of when they bought the book or how much they paid (including free).

Most Leanpub books are available in PDF (for computers) and EPUB (for phones, tablets and Kindle). The formats that a book includes are shown at the top right corner of this page.

Finally, Leanpub books don't have any DRM copy-protection nonsense, so you can easily read them on any supported device.

Learn more about Leanpub's ebook formats and where to read them

Write and Publish on Leanpub

You can use Leanpub to easily write, publish and sell in-progress and completed ebooks and online courses!

Leanpub is a powerful platform for serious authors, combining a simple, elegant writing and publishing workflow with a store focused on selling in-progress ebooks.

Leanpub is a magical typewriter for authors: just write in plain text, and to publish your ebook, just click a button. (Or, if you are producing your ebook your own way, you can even upload your own PDF and/or EPUB files and then publish with one click!) It really is that easy.

Learn more about writing on Leanpub