What it feels like to be an android developer in 2020, and even worse, a newbie

It’s 36°C in Lagos, Nigeria as at the time of this writing and you can tell it’s really hot. Do you know what is even worse? Encountering stupid and frustrating bugs and issues while you are trying to manage the fuel in your generator till it dies before you go to bed and leave the rest to God, who happens to be the only one above the PHCN. I mean the Power Holding Company of Nigeria. They literally hold the power. In short, life is hard being a developer at this moment. I should be on an island in the Bahamas right now enjoying the cool breeze blowing over the waters. I’m not even angry. Let me just go straight to the point of this writing so I can go to bed and hope I wake in the morning not baked.

If you are an android developer and you have at least four years experience, you would understand how much android development has evolved, or maybe, erupted. Or what else do you call a situation where something lifts up from a level ground violently, throwing hot lava at the people on the surface level. With the height of its eruption, you can hardly see what’s on the other side, just like android developers today can’t tell what tomorrow holds. I mean, you can’t even tell if what you wrote today would be valid and would still count tomorrow. No, I’m not talking about an improvement in the code. I’m talking about cancellation. How are you going to feel if you wake up tomorrow and you hear “Intent is canceled”, ha haha. Or “Fragment is canceled”. Joke right? That’s how it feels until it happens. I’m not even going there yet.

Change is inevitable. Human wants are insatiable too. We want to have better things. We want to do things better. Unfortunately, we are humans, we create problems for ourselves while trying to solve another. We try to solve that new problem and boom!, we arrive at another. That goes on for as long as possible, maybe forever. Fine, we can’t do but create solutions. That’s why we are alive today. If everything is okay and there is no problem to solve, we probably don’t have a reason to live. In fact, most of our income comes from working towards creating a solution that people would pay for. But wait, maybe we should calm down, retrace our steps, think differently, maybe we will come to a limitless solution to all our problems. The sad truth, it’s not realistic. If we arrive at a final solution and there exists no problem anymore, someone, somewhere will manually create a problem so we can have some problems to solve further. Chai...we are blessed.

True, android development is fun. But it could be boring at times. One time you think you’ve just learnt that cool stuff and you plan to probably show that your colleague at work the next day. Next, you jump on the internet and you see another cool stuff. It’s the latest in ‘town’. Oh, you are late! That cool stuff you just learnt is now obsolete. There are just too many things to learn and catch up with. But you don’t have that luxury of time, except you work somewhere where you are being paid for faffing (an informal word assumed to mean ‘being less busy’). Have you ever imagined the count of how many people that suffer the impostor syndrome daily? I mean, you can’t go on social media without seeing a tech bro talking about that new cool stuff he just learnt without even asking yourself, “am I even an android developer?” You have just learnt like five out of the one million RxJava operators and you think you are finally getting hold of RxJava and then you think you should relax and see why #Ighalo is trending on twitter and then you see that tech bro tweet about how he incorporated both Coroutine and Flow in his project. Fine, at least you’ve heard of coroutine and hoping if God wills, you would learn and understand it one day, but Flow. “Flow? What is Flow?”, you ask yourself. Then you google it and then you see a few examples. What next? You close twitter, turn off data, plug in your earphones, locate your music player and randomly pick a song. It’s “Tesumole” by Naira Marley. Perfect right? You are sad, so you need something that can cheer you up. This goes on day after day. Sometimes you even wonder if you are even employable with your skill. Thank God you are working somewhere, your salary will not stop flowing, it’s promotion you will not get..lmaoooo.

How long have we been debating which architecture is good and which is bad? MVC, MVP, MVVM, MVI, MXRx, MVCCC, MVVVM, MVSM. Don’t ask me what the last three means. I don’t know too. I just invented them now while writing this, since anybody can wake up and just think of an idea and expect us to follow it. Thank God for Google’s intervention at least, they brought us to a stable ground with MVVM. Oh, that certainly didn’t come without its own troubles, but at least we now have a sense of direction. I think the more freedom we have as humans, the more we tend to create problems for ourselves. We sometimes don’t even know what we want, really. At least, today, newbie android developers can settle for something. Don’t let me even talk about what most of those guys face. A lot of the issues the newbie android developers face today is birthed by the so-called new cool stuff we have all over the place. How do we even ensure these guys don’t get discouraged, thinking android development is too hard and that they are not capable enough?

“Hey guys, what do you think about us putting some code logic in our XML layout files?”, says Uncle X, who works at Google. “Yeahh, that might be great. Come, let’s try it out”, says Little Y, a colleague of Uncle X. One or two days went by and they introduced it on the internet, giving it a name. “Oh ye developers, take this, it’s the new sauce. By this only shall ye write code, best.” What happened to separation of concerns, or even single responsibility principle? Oh, you think it’s only applicable in your actual kotlin code? Okay, fine. Let’s embrace it. Let’s see how it goes. A few days after you start using it, you mistakenly leave a space after your file name in the <data> tag and then you get an error telling you that coronavirus just landed in China, as if that’s the cause of the error. When you know our IDE is not well equipped yet to properly display the right error at every point in time, why bother we developers with it? Damn! I really wish to meet the guy or guys that introduced this thing. Don’t worry, I’m not angry. I will probably chicken out, smile and take selfies with them. But seriously, we really need to calm down. Maybe they will not, but we can. There is a proverb that says “You don’t dry all kinds of cloth under the sun”. Everything is worth trying out, but not everything is worth embracing.

Before I conclude, I have written a short letter to the newbie android developers. You can skip it if you think you know how to use Dagger 2 properly.

Hey! How are you doing? How has it been so far? Cool, right? Yeah. You would be fine. You have chosen mobile, and that shall you do lol. Kidding. Android is fun. Yeah, I mean it. Won’t you be proud if you are one of the developers that developed the Whatsapp android app used by millions of people in the world today. Yeahh, I know that feeling. Don’t relent. Don’t let the ups and downs scare you. I know it’s not easy. You’d push through.

I know you’ve heard of some jargon, things that sound like RxJava, Dagger 2, Coroutines, Flow, etc. You probably just wrote your first code to move from an activity to another using intent. You heard you’d need to learn those things to be successful. Yes. Maybe. But take it slow. You probably don’t need any of them to get your first gig. Or maybe you do. But, take it one step at a time. You’d get there eventually. Slow and steady wins the race, they say.

If possible, get a mentor. Ask questions. What should I learn next? Do you think I should learn this yet? Ask these questions. They are important. You don’t want to spend so much time trying to learn something and find it difficult to understand simply because you lack the fundamentals. You’d be fine.

Cheers!

Yo! So what do we do? Well, I think it’s up to individuals. Do you have enough time? Spend that on these things. Learn, try new stuff out, utilize the good ones. Do you have little or no time? Give fewer f*cks. Yes. That would keep you sane. Understanding that you can’t know all and can’t possibly catch up with all, will give you fewer worries and keep you away from impostor syndrome. We are stuck. Lol. There is nowhere we are going. Let’s enjoy it while it lasts. Be proud as an android developer. However, understand limits. Know when to slow down and know when to pick a race.

Bye for now. ✌🏽