Skip to content

Latest commit

 

History

History

software-programming-guide-introduction

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

What is this book?

Software Programming Guide is a glossary guide ebook that describes one topic per page. The guide is intended for quick easy learning about concepts, tactics, and ideas.

Why these topics?

All the topics here are chosen because they have come up in real-world projects, with real-world stakeholders who want to learn about the topic.

If you have suggestions for more topics, then please let me know.

Some of the topics are related, so they are grouped into sections. For example, see the topic about programming paradigms such as functional programming, procedural programming, and object-oriented programming. In the table of contents, programming paradigms is listed as the first topic in a section that contains various kinds of techniques. The section grouping is intended to help readers get up to speed faster. If you have suggestions for new groups, or topics that should be in existing groups, then please let me know.

What is the topic order?

You can read any topic page, in any order, at any time. Each topic page is intended be clear on its own, without needing cross-references or links.

If you're interested in a comprehensive cover-to-cover book, you may want to try university textbooks, such as for algorithms and data structures, or O'Reilly professional books for specific topics such as specific programming languages, databases, and tools..

Who is this for?

People should read this guide if they want to learn quickly about software programming concepts, and how these concepts are practiced in companies today.

For software programmers

For software programmers, this guide is intending to summarize and distill many of your daily concepts and terminology. For you, the value of the guide is in being able to quickly and easily teach stakeholders about your software programming concepts. For example, if you want to use a particular technique such as an application programming interface (API) or software development kit (SDK) with your stakeholders, then you can quickly and easily direct the stakeholders to this guide and its relevant topic pages, as one aspect of your communications. You can freely excerpt, remix, and share these pages with your coworkers.

For software programming stakeholders

For people who work with software projects, this guide is intending to bring you up to speed quickly and easily, so you can work better together with your software programming team. When you know the right terminology, then you're better-able to share information, collaborate, and create the working relationships that you value.

For students

For students and educators, this guide is a snapshot of industry techniques and practices that can help bridge the gap between academic studies, such as computer science studies, and industry jobs, such as computer programming jobs. If students are able to learn what's in this book, they will have a big advantage when they go for job interviews for roles that involve software programming.

Why am I creating this?

I am creating this ebook because of years of experience in software programming work, with a wide range of clients, from small startups to enormous enterprises.

For team collaboration

When I work with companies and teams, then I'm able to use glossaries like this one to help create shared context and clearer communication. This can accelerate working together, and can help teams forge better project plans, in my direct experience.

For example, one of my enterprise clients describes this kind of shared context and clear communication in a positive sense as "singing from the same songbook". When a team understands software programming terminology, and has a quick easy glossary for definitions and explanations, then it's akin to teammates with the same songbook.

For cross-cultural communication

What I discovered is that these kinds of glossaries can be especially helpful for teams with members coming from various cultures, such as from different countries, or different industries, or different ways of working. The topic pages help provide a baseline for better collaboration.

What I discovered with teammates from non-Western or non-English backgrounds is that software programming has many social quotations, aphorisms, and idioms that come up frequently and that that teammates are expected to know.

For example, my peers in San Francisco Bay Area startups will likely know the quotation "Move fast and break things", the aphorism "Brook's Law", and the idiom "Get on the front foot". But these aren't familiar to many people from many other places. The topic pages cover these, to improve shared understanding.

Are there more guides?

Yes there are more guides that may be of interest to you.

Innovation Partnership Guide: Topics such as professional organizational collaboration, innovation research and development, commercialization of discoveries, cross-company legal structures, and technology transfer agreements.

Startup Business Guide: Topics such as entrepreneurship, pitch decks, market/customer/product discovery, product-market fit (PMF), minimum viable product (MVP), industries and sectors, roles and responsibilities, sales and marketing, and venture capital (VC).

Project Management Guide: Topics for leading projects, programs, and portfolios, such as the project management life cycle (PMLC), Key Performance Indicators (KPIs), SMART criteria, change management, digital transformation, agile, lean, kanban, and kaizen.

Business Lingo Guide: Topics for workplace teamwork, such as analysis tools like the 2x2 grid, aphorisms like the Pareto Principle, idioms like "Get on the front foot", quotations like "Make mistakes faster", and soft skills like how to collaborate.

UI/UX Design Guide: Topics for user interface (UI) design and user experience (UX) development, such as information architecture, task analysis, ideation, mockups, use cases, user stories, modeling diagrams, affordances, accessibility, and localization.