Being a programmer and knowing how to create your own software is awesome. Not only does this open up lots doors in terms of your career but it’s also just an incredibly rewarding experience and one that has endless uses. I’ve already talked about the myriad benefits of programming at length (here) but suffice to say that once you learn the ropes, the possibilities are endless.
Being an app developer though? That’s even cooler. Working with mobile devices, you’ll be developing software that lives right on your smartphone or tablet and that you’ll have on your person at all times. And thanks to the Google Play Store (or that other app store…), you can easily share your creations with a huge audience and/or sell them for money. It’s just so much easier to distribute apps versus traditional desktop software and this means anyone can have a hit on their hands.
Try telling someone at a party that you ‘make apps’ and see how they respond. Now tell someone that you’re a software engineer. App developers are rock stars! (But not really…)
So being an app developer is wicked. But that’s not to say that it’s right for everyone and it’s definitely something that will ‘click’ more with some people than others. Read on to find out whether you might be an app developer at heart and whether learning to make Android apps is your calling…
If you’re already busy creating apps meanwhile, then hopefully you’ll recognize a few of these traits in yourself too!
#1 You keep thinking of how things could be done better
Do you find yourself constantly getting frustrated with the systems, products and processes that you’re forced to rely on every day? Do you regularly catch yourself thinking: ‘I could have done this better’ or ‘why don’t they just [insert clever/unrealistic solution here]?’. Well, if you’re an app developer, then this can very quickly become the germination of your next big idea and it certainly bodes well for your problem solving abilities.
Once you are a programmer though the bad design is only going to frustrate you more…
Like the fact that Netflix keeps suggesting I watch films I’ve already seen. That’s the easiest thing to fix, come on! Does this happen for everyone? Is my Netflix account just busted??
#2 You’re proactively lazy
What does proactively lazy mean?
It sounds like a contradiction. What I really mean though, is that you will go to incredible lengths just to avoid doing something that would have taken 5 minutes otherwise…
To avoid the few minutes a day it would take him to cook… he spent years developing an entirely new alternative fuel source for humanity
Take the guy who introduced the world to ‘Soylent’ for instance. Soylent is the brain child of Rob Rhinehard, who was himself a software engineer. Rhinehart believes that ‘food is hard’ and that it’s too time consuming and expensive to cook. His solution? To invent his own ‘meal replacement’ that he claims contains all the vital nutrients and sustenance that the human body needs to survive and thrive. This meant doing some rather in-depth research into biology and nutrition not to mention setting up a company and working with suppliers…
So in order to avoid the few minutes a day it would take him to cook… he spent years developing an entirely new alternative fuel source for humanity?
That is programmer logic.
It’s the same as writing a piece of software to organize a long list of names alphabetically. It might take longer to write the software but at least that’s a lot more fun and potentially useful in future. Maybe it’s just stubbornness?
#3 You’re not great with your hands
Those last two points don’t necessarily only describe programmers though. With the same skills and sensibility, you could just as readily become an engineer or inventor.
But those things require that you also be adept at drilling, hammering and sketching out designs. Some of us were built for that kind of work and the rest of us just weren’t. If the last time you finished a piece of flat-pack furniture you somehow ended up with five spare screws, a shelf missing and your sleeve hammered to the wall, maybe you’re better suited to programming.
Obviously you can be very practical and still decide to become a programmer. But it doesn’t really work the other way around…
#4 You like working alone
One of the benefits of being an app developer is that you’ll generally be working on smaller projects (unless you aren’t…). That is to say that you can create an app in your spare time and sell it for a few bob, or you can be hired by a company to create something basic as a team of one.
This is an entirely different beast from working on software that’s millions of lines long and decades old with a team of other coders. You won’t be dealing with other people’s sloppy programming and you won’t have other people complaining about yours either. What’s more, is that you’ll have completely control over the outcome and how you go about getting there and a much greater sense of reward once you’ve done it.
And if this is the kind of work you’re doing it also means you can work from anywhere.
Of course this won’t appeal to everyone. If you’re a social type, then working out of coffee shops/your own study might not appeal to you and you can end up going a little stir crazy. It also means that it’s all on you and if you’re stuck then your only hope is to find assistance on a forum somewhere.
Me? I tend to change coffee shops once the baristas get to familiar. Working alone suits me just fine!
#5 You’re ‘in your own head’
Which leads nicely on to this point…
Programming is quite unique in that a lot of the work you’ll do actually occurs in your head – and this is especially true for smaller app projects. When you sit down to actually ‘work’, you’ll largely be implementing the solutions that you thought of while you were in the shower/on the toilet/pretending to listen to your friend’s problems.
If you’re the sort of person who is already in their own head all the time, why not put that to good use?
Just expect to spend some sleepless nights staring up at the ceiling dreaming up solutions.
#6 You love smartphones and technology
Something else that helps is having a genuine appreciation of technology and specifically the technology you’re developing for. If you love Android and you love playing with new apps, then you’ll find developing for the platform more rewarding and you’ll have more idea of what works and what doesn’t.
In particular, you might find app development appealing if you really enjoy customizing your current device. Once you’ve changed the default messaging app, swapped your home screen and installed an icon pack building your own software to use is the next logical step. It’s like the difference you get with a tailor made suite.
Early adopters might also enjoy trying their hand at developing. Not only is it cool learning how the technology you love works but it also means you can stop being on the cutting edge and actually get involved leading the cutting edge!
If I’m honest, 99% of the reason I got into programming is because I wanted to be Tony Stark. But don’t say that if you’re interviewing for a job at IBM or you won’t get the job. True story.
#7 You’re a self-starter
If you’re going to succeed as an app developer, then you’re going to need to be self-motivated and driven. This is particularly true if you intend to work solo but even in a team it’s very easy to get away with not doing much when you don’t have the drive.
That’s because even when you are trying, there are times when you literally spend a whole day achieving nothing. You can start the day feeling confident, add a line of code that breaks everything and then waste the next three hours just trying to get back to the point you were at before you came in. You can actually go home having done negative work… I can’t think of many other jobs where this is the case.
Then you come back tomorrow and see that you left off a semi-colon or something equally obvious.
The point? You need to be self-motivated enough to push through these days and keep working. And stable enough to take the highs and the lows without breaking too many monitors.
Loving coffee helps but is not a requirement.
#8 You’re good at creative problem solving
It’s a myth that you need to be good at math in order to become a developer. You can get by 99% of the time without ever having to perform any math yourself and when you do use it, it will tend to be equations rather than arithmetic.
What’s much more important is that you be ‘systems-minded’. This is one of those buzz words that actually means very little but suffice to say that you need to take a logical approach to obstacles and enjoy solving problems. Often the answer requires a little bit of lateral thinking too, so often the best developers will be the ones who lie somewhere at the nexus of logic and creativity.
You can liken programming to playing a good puzzle game. If you enjoy looking at all the variables, approaching them from different angles and eventually having that ‘aha’ moment then you’ll likely find this kind of work equally rewarding.
Note that I am not saying you need to be good at puzzle games…
Being organized will also help a lot in terms of the way you lay out your code and name your variables systematically. If you’re working on your own though, it is possible to get by with a more ‘all-over-the-place’ mindset (that’s how I roll); it’s just that being organized will make life considerably easier.
#9 You’re willing to learn
Programming probably isn’t as hard as you think it is in some ways – but that’s certainly not to say it’s easy. There’s definitely a steep learning curve that you need to stick with to begin with and you actually never stop learning either.
Even years into your programming career, you’ll still find yourself learning new things and facing new challenges – even entirely new programming languages. Nearly every new feature you implement will mean getting to grips with a new library, or quickly looking something up online. And even doing basic things you’ve done hundreds of times before will sometimes mean double checking the correct syntax. There’s just too much to remember!
To be a great app developer then, you’re going to need to be willing to learn, to enjoy learning and to know how to Google things efficiently.
#10 There are apps you want that aren’t available
Is there an app or game that you want that no one has made yet?
Maybe there are several? Maybe you loved the last mobile game you played but wish there was more out there like it? Maybe it could be better if only a couple of things were changed?
If you keep finding yourself looking for apps that aren't there, maybe that's your calling. Answer the call!
If you find yourself daydreaming about apps that ‘could be’ then you’re already practiced at the first step. All that’s missing is a little code!
Ultimately, this is how most successful app projects get started. It’s called ‘scratching your own itch’ and if it’s something you want, there’s a good chance there are other people out there who want it too. And if they don’t? Just build it for you!
If you keep finding yourself looking for apps that aren’t there, maybe that’s your calling. Answer the call!
If you can relate to these points, then maybe it’s time to have a go at building an app? Once you find a workflow that works for you, you’ll be surprised what you’re capable of and just how much fun developing apps can be. My advice as always, is start with something simple.
And that being said, you should probably give it a try even if you don’t relate to any of these points. Who am I to say what makes a good developer? Actually, the daily tasks you’ll perform as a developer will depend heavily on the type of app you’re building and the way you go about making it. App development can appeal to creative types, logical problem solvers and everyone in between and it’s usually possible to avoid the bits that you struggle with. If you don’t get on with it, you haven’t lost anything by giving it a go!
How about those of you who are already developers? When did you first know that this was your calling? What got you interested in coding and apps in the first place?
For me it was Sonic the Hedgehog. I loved playing Sonic on my friend’s Sega Megadrive but I wasn’t allowed a games console myself at that age. So I decided I would program my own Sonic game on the ZX Spectrum.
Instead, I made a blocky animation of a spaceship that moved up and down the screen. But it was a start!
And that was when I knew: I would never stand a chance in the real world. Better learn to program!