I enjoy programming. Unfortunately, my skull is too small to hold a lot of stuff at the same time. Because of this, I have to keep my eyes on the target and I have to take small steps. If I don’t, I risk introducing bugs and unneccessary cruft. Perhaps you’re different, but this is how my head works.
A technique I sometimes use is pseudocode. I write my intended code out as simple sentences first, to see if it makes sense to me. If it doesn’t, I rewrite and edit more. When I’m happy with the story, I translate it into real code. Continue reading “Programmer Friday: I love pseudocode”
We keep coming up with new ways to build software. Many of them are positives. Some of them are temporary setbacks. They are often new takes on things that have been tried before.
Sometimes it’s a joy to jump on that new framework, library or language. “Yes! Finally a better way of doing this!”
But often, you’ll have a bad gut feeling. “This was a bad idea years ago”, or “that sounds like a dead end” or simply “I don’t want to do it this way!”
As you get more experienced, you are more likely to have this negative reaction when you encounter new technology. Is it justified? How do you know?
Continue reading “Programmer Friday: Careful conservative or grumpy grouch?”
If you join a team I’m working at, you’ll probably hear this from me on your first day:
“…we’ve done our best to write documentation, but I know that it could be way better. Could you help out? It would be awesome if we could improve the docs together while you’re getting to know the project: that’s the best time for it!”
I’ve done this for years now — and no, it’s not because I don’t want to write documentation myself.
Continue reading “Programmer Friday: New here? Please help with the docs!”
I won’t become available for consulting again for new clients until August 2019 at the earliest. But feel free to contact me if you just need some advice or want to discuss future possibilities!
A father and son is cooking ham. Every time they do this, the father cuts a chunk off each side of the ham before it goes into the pan.
The son asks why they perform this ritual. Dad responds: “I don’t know. Grandfather is a good cook and he always does this, so I just mimic him. I’m sure it improves the recipe in some way.”
The next time Grandfather visits, they ask him about that ham cutting routine.
“Son, grandson. I don’t do that anymore. The only reason I sliced bits off was to make the ham fit. My old cooking pan was too small.”
The daily standup ritual
We have rituals in software development as well. One of them is the daily standup meeting. Continue reading “Programmer Friday: Do you need daily standup meetings?”
Some level of documentation is necessary in software projects.
We like to say that “the code should speak for itself” and “docs always get outdated anyway”. Both of these arguments are valid, but they should not be an excuse to drop documentation altogether.
Having some documentation in place both:
A) makes it easier to onboard new colleagues,
B) gives you checklists for critical tasks, and
C) makes it easier to get back up to speed again if you’ve been away from the project.
At a minimum, I expect to see the following points covered in Android README files:
Continue reading “Android Friday: Things I want to see in the README file”
I have been working as an independent consultant for a few years now.
Sometimes I talk to others who are considering going the same route. I now have a more or less standard list of advice that I send to them. I’m turning it into this blog post, so I can simply point here next time.
Continue reading “Programmer Friday: How to work for yourself”
When you build software, it’s easy to get wrapped up in the wrong details or to get ahead of yourself.
Programmers sometimes optimize code prematurely. Or we apply unnecessary patterns, structures and frameworks. This makes our work more complex than it needs to be.
Newer programmers seem to fall into this trap more, but experienced people also get things mixed up occasionally. I certainly do. So: one thing at a time. Continue reading “Programmer Friday: Make it work, make it right, make it fast”
Sometimes you, the Android developer, will work with designers who have the time and knowledge to think of everything. They create complete, detailed designs for every screen and interaction. They cover both web, iOS and Android. They regularly use both Android and iOS themselves. They understand the strengths and conventions of each platform.
These projects are delightful. Unfortunately, all projects are not like this.
Continue reading “Android Friday: Help your designer bridge the app gap”
I am not the most experienced teacher in my circle, but I have taught some technical classes, courses and workshops in my day — some of them for pay.
Here are some principles and techniques which have worked for me.
Continue reading “Programmer Friday: How to teach a programming course”