Hey guys,
Just a little back story here…
I think I talked about going to a boot camp doing Android development in one of my posts. I had at it since it was free which, by the way, if any of you readers are living in the Bay Area, you might want to check them out here: https://codepath.com.
The program was very intense, and although at the time I was working with a startup for 10 hours weekly, I got lucky since they required all of their students are actual software engineers willing to learn either iOS or Android. I opted in for Android since it was open-source, which I thought meant a lot more support for the platform from different sources.
The time I was actually doing projects was great! It gave me more confidence, in which, I was able to make Android apps from scratch.
Now let’s enter the workforce…
My first job doing Android development was contracting. The problem was that stuff didn’t get done on time, and the founder was pushing me with 50% of how much I was working hourly. During this time-frame, in either case I was trying to just get the stuff done, all custom made, plugging in libraries almost without any idea if I was doing things the “right” way or not. That was a monkey-coding job, not exactly software development.
The next contract was better. Although I was building a chat app for another startup from scratch, I was doing things that were within what Android wanted (Material Design, new/old APIs, etc…), along with what I learned within the first Android job I had. It took me 3 months to make a port from their iOS app to build it perfectly, and it was successful! That was great since I was a one-man person who did it.
Later, I had another contract at another startup, and this time it was along with a team. Now, what’s good about this startup was that they had a process. I had a hard time with this in the beginning, but within a few weeks I became used to it. We had code reviews. I remembered one time, there was a tasked bug where I was following how iOS developed it. What happened in Android was every time the app went into the background and received a push notification, and once the user clicked on the notification, the app went into authorization mode, then just logged in and that’s it. In iOS, once the user clicked a notification, the app opened up and, then it went to the window that corresponded along. I tried doing the same in Android by saving the data into preferences as the app went to the background, then tried doing all this logic once the user clicked the notification going to login, and then saving that data into the main activity which will launch the corresponding activity it needed. Heck, I learned about shared preferences in the boot camp and thought at the time that would be what Android wanted.
Guess what? Once it got into code review, my boss said it was too complicated. He drew out the app’s process on a piece of paper to just analyze how the app is behaving, then how the app will behave. He asked to do it simpler by making a session when the notification is clicked, and then check the ID that corresponds against the needed activity. I did it, and this worked perfectly.
Here’s also something he told me with a smile that I kept in mind. You can write the best code in the world, but if it doesn’t solve the problem, then it’s worth nothing!
And friends, that is why if you want to know your net-worth as a developer, then evaluate yourself along with other team members you work with. Do what you think is right, and never stop learning.
Until next time!
Brian.