You want to build something that belongs to you, you want to pour your heart into it, and frankly, you’d like to find some success doing it. “It’s time,” you proclaim boldly, “for me to build an app.”
The post does spend a lot of time talking about social media stress and imposter syndrome, which doesn’t bother me too much. Personally, I have long let go of any dream of having a big, important Twitter or Instagram account. Or even making any money off of an app. I just want to make my own apps.
A big part of you still feels that, as someone who can competently design and build software, you are uniquely positioned to create your own life’s work… Wouldn’t it be a shame not to try? You’re tired of deferring your dreams to your future self; it’s time to act!
My own situation is further complicated by my additional dreams of writing a book and making some songs. I’ve actually made some progress on those dreams already. Can I really fit another dream into the rotation?
Stay tuned and see. Give me like a year. Baby, I want everything!
In the coolest news ever, the source code for the freakin’ Apollo 11 space modules was recently revealed on GitHub. 🤩
Specifically, this is the source code for the guidance systems of the Lunar module (the thingy that landed on the surface of the moon) and the Command Module (the can that orbited the moon during the mission).
The programmer is one Margaret H. Hamilton, Colossus Programming Leader Apollo Guidance and Navigation. If anyone is still saying “girls” can’t code, then you can seriously stop now.
There are two literal modules in the project: Comanche055 (Colossus 2A, the Command Module), Luminary099 (Luminary 1A, the Lunar Module). So much for thinking of “modules” as just a programming concept. These were two physical components literally flying around the moon.
These nerds were funny too. The master ignition routine is called BURN_BABY_BURN. 😂
The code seems to be written in some sort of assembler language, as in 1969 basically no modern languages were yet invented.
The code comments are currently being translated to other spoken languages as part of this open source project. For all mankind, mothers! 🌎
As software developers, we all aim to write amazing, beautiful code. It’s part of what motivates us. But remember, the real goal is to ship something that people can use. And writing beautiful code isn’t necessarily what makes that happen (example).
Don’t be a clean code zealot. Clean code is not a goal.
This hit home for me after years working with an incredibly tedious and impractical code review process at a previous company. The reviews went way beyond sussing out bugs and tech debt and into opinions about the “right” approach for days on end. The team was unproductive and unhappy, and we still shipped plenty of bugs.
Sure, aim for great code. But there is a practical point where you need to let go and ship something that works.
Let clean code guide you. Then let it go.
As an engineer, yes, be elegant. But more than that, be practical. Voltaire put it elegantly 😆 way back in the day.
Great overview of building an app that works offline first as a means to a great user experience.
The offline-first approach is not the universal solution to every problem you will experience with unreliable network connectivity – it heavily depends on your app’s requirements. It’s more like a design approach that lets you focus on what really matters to your end user: a robust app with a great user experience.
A technical pet peeve of mine, this post does a nice job articulating why “manager” classes in software design can be a problem. To me, a “manager” class is like saying, “this class does some stuff” and the stuff has no boundary. But what does this class do? What is it’s purpose? It might be a sign of an unfocused and unsustainable design.
Or as the post says:
Managers can be a symptom of poorly-defined responsibilities. When you think about it, the word “Manager” means nothing. In object oriented programming,everyclass is a manager. Cocoa Touch could haveUIApplicationManager,UIViewManager, and even a humbleNSStringManager.