Thoughts and Tutorials on Programming, Software Engineering, and Computational Science

  • 5 Great Programming Books Rarely Mentioned in “Great Programming Books” Articles

    Originally posted on dev.to If you search something like “programming books” or “books developers should read” you will get a lot of articles listing the same 5 or 6 books. In this article, I want to bring to your attention some stellar books on coding that don’t get the love they deserve. There are no…

  • Why You Shouldn’t Learn C

    Why You Shouldn’t Learn C

    Knowledge of the C programming language is often touted as the mark of a “true” programmer. You don’t really know programming unless you know this language, or so the wisdom goes. Many aspiring programmers have been advised by gatekeepers senior developers to learn C to up their skills and bring them to the next level.…

  • Designing Public Interfaces the Right Way

    Designing Public Interfaces the Right Way

    Interfaces define the ways objects interact with each other. Properly designing interfaces not only help conceptualize a system, but aid in testing and maintainability of our systems.

  • Example TDD Workflows

    Example TDD Workflows

    This article isn’t designed to sell you on the benefits of TDD, it is simply a tutorial (in Java and JUnit) to get you acclimated to the typical workflow. TDD can be counter-intuitive, so we’ll go slow and keep it simple.

  • Getting Started With Browser Automation Testing in Python

    Getting Started With Browser Automation Testing in Python

    Developers have unit tests to test atomic functionality and integration tests to test system interoperability. Web developers have to take it a step further and test actual browser behavior. This can be done in many ways, but most often it’s with some implementation of Selenium webdriver and an xUnit testing framework. In this article, I’m…

  • C Pointers 101: Part 3 – Pointer Arithmetic

    C Pointers 101: Part 3 – Pointer Arithmetic

    In part 1, we learned the basics of pointers. In part 2, we learned what it meant to pass a variable by value or reference. Remember in part 2 I said that when C passes an array to a function, it passes the pointer to the first element of the array and then pointer arithmetic…

  • C Pointers 101: Part 2 – Passing Pointers to Functions

    C Pointers 101: Part 2 – Passing Pointers to Functions

    In part 1, we learned the basic ideas behind pointers, addresses, and what they mean. In part 2, we’re going to talk about one of the main uses for pointers, passing by reference. This part will be a little easier to wrap your head around and might make some of the concepts in part 1…

  • C Pointers 101: Part 1 – A Gentle Introduction

    C Pointers 101: Part 1 – A Gentle Introduction

    If the C language’s pointer feature has ever intimidated you, you’re not alone. Many programmers new to the language have been tripped up by the concept of pointers, but I believe it’s because pointers are poorly taught.

  • SQL Server Indexing: Part 3 – Implementing and Testing Indexes

    SQL Server Indexing: Part 3 – Implementing and Testing Indexes

    In part 1 of this series, we learned about the basics of indexes, what they do, and what they’re for. In part 2, we talked about query plans. We learned about reading query plans so that we could understand how SQL Server goes about retrieving the data we ask for. This is an important first…

  • SQL Server Indexing: Part 2 – Reading Query Plans

    SQL Server Indexing: Part 2 – Reading Query Plans

    Welcome to part 2 of SQL Server Indexing, in part 1, we learned the basics of indexes and the difference between clustered and non-clustered indexes. In this part, we’re going to learn how to read and interpret query plans, which will help us decide where to put indexes (or how to restructure our queries).

Questions?