The Art And Science Of Software Development
()
About this ebook
Related to The Art And Science Of Software Development
Related ebooks
Beginning Android 4 Application Development Rating: 1 out of 5 stars1/5Defensive Strategy – Apple's Overlooked Key to Success Rating: 0 out of 5 stars0 ratingsEncountering Technology: The Tech Evolution I Have Seen Rating: 0 out of 5 stars0 ratingsApple For Business: A Guide to Mac, iPad, and iPhone Rating: 0 out of 5 stars0 ratingsLetters to a New Developer: What I Wish I Had Known When Starting My Development Career Rating: 0 out of 5 stars0 ratingsTech Tips for the Tech-Timid Rating: 0 out of 5 stars0 ratingsArtificial Intelligence for Fashion: How AI is Revolutionizing the Fashion Industry Rating: 0 out of 5 stars0 ratingsHello Code : Book for Programmer Not Computer Rating: 0 out of 5 stars0 ratingsNeural Networks: A Practical Guide for Understanding and Programming Neural Networks and Useful Insights for Inspiring Reinvention Rating: 0 out of 5 stars0 ratingsThinking In C# Programming. Rating: 0 out of 5 stars0 ratingsImplementing Effective Code Reviews: How to Build and Maintain Clean Code Rating: 0 out of 5 stars0 ratingsManaging Projects in the Real World: The Tips and Tricks No One Tells You About When You Start Rating: 0 out of 5 stars0 ratingsPro .NET Memory Management: For Better Code, Performance, and Scalability Rating: 0 out of 5 stars0 ratingsManaging Remote Teams Rating: 0 out of 5 stars0 ratingsProblem-solving in High Performance Computing: A Situational Awareness Approach with Linux Rating: 0 out of 5 stars0 ratingsDigital Work in an Analog World Rating: 0 out of 5 stars0 ratingsDeep Learning with Keras: Beginner’s Guide to Deep Learning with Keras Rating: 3 out of 5 stars3/5Build Your Own Car Dashboard with a Raspberry Pi: Practical Projects to Build Your Own Smart Car Rating: 0 out of 5 stars0 ratingsSoftware Testing at Scale Rating: 0 out of 5 stars0 ratingsMigrating to Azure: Transforming Legacy Applications into Scalable Cloud-First Solutions Rating: 0 out of 5 stars0 ratingsRead Write Code: A Friendly Introduction to the World of Coding, and Why It’s the New Litera Rating: 0 out of 5 stars0 ratingsAI and UX: Why Artificial Intelligence Needs User Experience Rating: 0 out of 5 stars0 ratingsUnderstanding the Professional Programmer Rating: 4 out of 5 stars4/5Robotics for Writers Rating: 0 out of 5 stars0 ratingsThe Fragile Methodology Rating: 0 out of 5 stars0 ratingsXamarin.Forms Solutions Rating: 0 out of 5 stars0 ratingsBuilding Intelligent Systems: A Guide to Machine Learning Engineering Rating: 0 out of 5 stars0 ratings
Computers For You
SQL QuickStart Guide: The Simplified Beginner's Guide to Managing, Analyzing, and Manipulating Data With SQL Rating: 4 out of 5 stars4/5Elon Musk Rating: 4 out of 5 stars4/5The Invisible Rainbow: A History of Electricity and Life Rating: 4 out of 5 stars4/5Slenderman: Online Obsession, Mental Illness, and the Violent Crime of Two Midwestern Girls Rating: 4 out of 5 stars4/5Standard Deviations: Flawed Assumptions, Tortured Data, and Other Ways to Lie with Statistics Rating: 4 out of 5 stars4/5Mastering ChatGPT: 21 Prompts Templates for Effortless Writing Rating: 5 out of 5 stars5/5Everybody Lies: Big Data, New Data, and What the Internet Can Tell Us About Who We Really Are Rating: 4 out of 5 stars4/5101 Awesome Builds: Minecraft® Secrets from the World's Greatest Crafters Rating: 4 out of 5 stars4/5CompTIA IT Fundamentals (ITF+) Study Guide: Exam FC0-U61 Rating: 0 out of 5 stars0 ratingsAlan Turing: The Enigma: The Book That Inspired the Film The Imitation Game - Updated Edition Rating: 4 out of 5 stars4/5Procreate for Beginners: Introduction to Procreate for Drawing and Illustrating on the iPad Rating: 0 out of 5 stars0 ratingsThe Hacker Crackdown: Law and Disorder on the Electronic Frontier Rating: 4 out of 5 stars4/5Dark Aeon: Transhumanism and the War Against Humanity Rating: 5 out of 5 stars5/5The ChatGPT Millionaire Handbook: Make Money Online With the Power of AI Technology Rating: 0 out of 5 stars0 ratingsCreating Online Courses with ChatGPT | A Step-by-Step Guide with Prompt Templates Rating: 4 out of 5 stars4/5Childhood Unplugged: Practical Advice to Get Kids Off Screens and Find Balance Rating: 0 out of 5 stars0 ratingsAP Computer Science Principles Premium, 2024: 6 Practice Tests + Comprehensive Review + Online Practice Rating: 0 out of 5 stars0 ratingsCompTIA Security+ Practice Questions Rating: 2 out of 5 stars2/5Grokking Algorithms: An illustrated guide for programmers and other curious people Rating: 4 out of 5 stars4/5Going Text: Mastering the Command Line Rating: 4 out of 5 stars4/5The Professional Voiceover Handbook: Voiceover training, #1 Rating: 5 out of 5 stars5/5People Skills for Analytical Thinkers Rating: 5 out of 5 stars5/5Remote/WebCam Notarization : Basic Understanding Rating: 3 out of 5 stars3/5How to Create Cpn Numbers the Right way: A Step by Step Guide to Creating cpn Numbers Legally Rating: 4 out of 5 stars4/5
Reviews for The Art And Science Of Software Development
0 ratings0 reviews
Book preview
The Art And Science Of Software Development - Charles Tatum II
What This Book Is NOT
I think I should set you, the reader, straight on my intentions with this book you’ve just picked up, so as not to waste your time.
The intended audience for this book is anyone who is curious about the world of software development – just how apps like Bejeweled, Words With Friends, Excel, Facebook, or other killer apps
get written, and what’s under the hood. So this book is not intended to be an exhaustive resource on anything having to do with software development – for such information you’re recommended to get a thicker technical book, consult a technical blog or (better still) pursue a four-year degree in computer science at an accredited college or university. I envision the target age for this book to be anywhere between 18 and 30 – young enough to be excited about something new, but old enough to have one’s head screwed on straight about undertaking a new adventure. Incidentally, let me state right up front that if you HATED algebra, the field of software development is almost certainly not for you, as writing computer code is nothing other than typing algebraic instructions. (Sorry.)
This book is not a sort of industry white paper
– a long, in-depth (and often boring) treatise on some very specific topic in the world of technology.
This book is not necessarily a road map
on which you should pattern your career. Goodness knows, there are so many paths into the world of software development these days that everyone’s experience is going to be different. For some, it will be through software as a hobby or curiosity as it was for me; for others it may be through a class that just happens to turn out stimulating; for others, still, it will turn out to be a chance encounter; and for others it will be something professional such as an internship or seminar.
What This Book Is
So, what, then, is the point of this book? I wrote it as a sort of summation of what I’ve seen and experienced from a career spanning over 30 years. It is a sort of brain dump
of various ideas, notions, concepts, and anecdotes that someone who’s just entering the field of software development might find valuable.
This book is written conversationally. It is not intended to be any kind of formal guide. Think of this book as you and me sitting down having lunch together, whereby I break down the field of computer science for you. That is the level on which we’re operating.
This book presents a lot of basic concepts at a high level on purpose. I provide just a taste
of many of the more detailed concepts – my goal, to use the term of a former colleague of mine, is to get you to mentally hang things on hooks.
You won’t really know these concepts from just having heard them, one learns many things in the field of software development experientially – that is, by doing them.
The book is divided in two halves. The first half, Science
, covers most of the bits and pieces that make up the field of software development or writing code
. I introduce you to them so that you can get a feel for the kind of moving parts you’ll be dealing with, should you decide to undertake software development for any purpose, professional or casual.
The second half, Art
, is more of me holding court
– passing on a sort of wisdom on things I’ve observed over a career of writing software. It is my own perspective, my own experience – I do not expect everyone reading my situations or opinions to nod uniformly in agreement. But, yet, I expect quite a few will.
And really, there is an art to doing software development. Unlike pure mathematics, in which many problems have a single solution (or, occasionally, no solution) with software development solutions are partly a matter of style and creativity. The difference between a good piece of code and a great one may be modularity (how self-contained and reusable some pieces are), efficiency (how a developer chose to code something), or flair (perhaps attacking a technical solution in a manner no one would have imagined). While there are indeed some principles on which the majority of software developers should agree, after that, each tends to make their own path. I know I have.
Much like pure mathematics, software development – the coding, the design, the structuring of an application – can be beautiful. Of course, the beauty of an application may well depend on the clarity of the requirements for the application – an application based on a poor premise is no better than a movie with an exceedingly poor script – a high-powered cast of stars usually can’t save a flop.
So, sit back, and get ready to enjoy an unusual trip, particularly if you have math anxiety like most people. I promise to try to be as simple and direct as possible. If you stay with this long enough, even if you don’t decide to pursue a career in technology, you’ll at least know something real about computers going forward.
SCIENCE
How did we get here?
Computers and technology are literally everywhere now. You and I carry them in our pockets, we wear them on our sleeves, we use them to entertain us, keep in touch with others, manage our money, and so much more.
Incredibly, these marvels of technology have only been with us a very tiny fraction of the time man has been alive in North America, if not the world. The US is 240 years old at the time of this writing. England is notching its second millennium. The Middle East? Try a couple of thousand years. China? Five thousand years.
Computers as we know them now have only been with us for about 50 years. I am 54 years of age as I write this and I can’t believe how far they’ve come in my lifetime.
Computers started out the size of refrigerators and larger appliances. They were large, ungainly things you couldn’t begin to even move about a room by yourself. Eventually the technology and math of computers began to be used to explore ways to make them faster. And Moore’s Law was born – processing power doubles roughly every 18 months, it goes.
The rate of change was predictably slow at first. After all, we had just switched from a history that included beads, abacuses, mechanical calculators of various sorts, adding machines and slide rules – those funny looking panels with ruler-like gradations that math geeks and electrical engineers used to carry. When the semiconductor came along, it would have an impact as significant to how we calculate as Gutenberg and movable type did centuries before – it was that big.
Computers shrunk from the size of a whole room to part of a room. Then to the size of a mini-fridge. Then…amazingly…to the size of a typewriter on a desk.
The first computers…home computers
they were sometimes called – bore names like Apple II
, TRS-80
, Colecovision
, IBM PCjr
, Atari 800
, Commodore 64
, Timex/Sinclair 1000
. They captured the imagination of computer nerds like me, but they were light years away from being the miracle machines we use today. Still, they were a start.
As science and engineering became more keen, the computer industry pushed the envelope further and further. Computers became smaller, faster, lighter. Screens went to 256 colors, then 32,000 colors, then 16 million colors. Sound became a thing. Portability became a reality when computers were luggable first, then truly slimmed down to under 10 pounds.
Computers got better at printing, which would be mammoth for office productivity. Letters formerly typed and corrected on electric devices called typewriters began to be replaced by computers and word processing software – Word, Word Perfect, and others.
Computers also became fancier devices for doing math. You didn’t need an adding machine to run a list of figures – you could tap them all into a spreadsheet and get the answer instantly. With additional software you could graph the figures – in color.
All the while that offices across the Western world were humming, the industry kept asking, how can we do more? How can be make these things faster? How can we make them prettier? It’s been said that science fiction shows like Star Trek
provided the intellectual blueprint for engineers racing to make these machines do the unthinkable, the fantastical. But no two-way wrist TV’s