Thoughts and Tutorials on Programming, Software Engineering, and Computational Science
-
Delegate and Decorate in Python: Part 1 – The Delegation Pattern
Note: This is not about Python’s language feature called decorators (with the @ symbol), but about the design patterns called “decorator” and “delegate.” In this series we’re going to learn two very useful design patterns: the delegation pattern and the decorator pattern. Each pattern is useful in that they help us enforce the single responsibility…
-
Stop Worrying About Which Programming Language to Learn First
I remember when I first decided I wanted to learn to write code, my google search history would look like this: Best first programming language What programming language should I learn How to avoid Ebola (unrelated) Python good first language? Ultimately, this time I spent was a waste and I’ll tell you why.
-
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
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
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
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
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
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
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
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.
Questions?