Nobody defines themselves by only one thing. I’m really into design, for instance, but I’ve also always been interested in computers and what makes them tick. These somewhat divergent interests led me to take a winding road to my eventual career, yet they both contribute to my daily success.
I went to The University of Texas at Austin to study design, but halfway through college, I realized I was more interested in implementation than design alone. I’d worked with basic HTML and CSS since high school, so I started teaching myself Android development.
Mobile had grown immensely since I started college, so I started teaching myself Android development. I used the Commonsware book and took one Intro to Comp Sci class, but mostly I wore out my Google muscles reading everything I could find to help me learn how to code. Because my degree program was very open-ended, I ended up with an Android dev internship at a small start-up, planning to move into UX design.
After I completed my BFA, I joined the Phunware Phamily as a UI/UX designer, but I was still coding for fun on nights and weekends. Eventually, I switched to development completely, which is what I’m doing now—I’m a software engineer specializing in Android OS. I find that my background in design really enhances my development work, and my self-taught path has been its own kind of advantage. I’m living proof that many different routes can lead you to a successful coding career, if you’ve got the passion for it and the tenacity. Here are a few things I learned along the way.
The Value of Having a Design Background as a Developer
I personally find it a lot easier to design things and then code them. Because I know what the back-end can and can’t do, I can design with that in mind—rather than focusing only on aesthetics. I know where I can push boundaries and where it’d be better to stick to what the OS gives us.
There’s definitely a creative side to coding, but you also have to think like a computer. It’s more about knowing what’s available to you, being able to read through dev documentation and being able to say, “okay, will this take days or weeks to do, or can I build off of this?”
Here are a few examples of how a blended design / coding perspective helps:
- When I’m starting a new project or updating an existing app, I review all of the newest features coming out on the OS so we can design accordingly. For example, Marshmallow 6.0 completely changed the way we ask for permissions. Rather than the user okaying everything at the beginning, we now have to ask ourselves, “When and where will the user be prompted for this permission?” Otherwise, we’ll be asking for camera permissions in the calendar and that’s no good. This was a big change—and we definitely have to take it into account when designing a UI for compatibility.
- Material design is ever-evolving. It started off very colorful and not very textured, and now it’s edging toward more texture. Understanding the OS style shifts will help you mimic them in a way that feels natural. (It also helps you spot opportunities to buck the trend and go for your own thing.)
- Moving forward, augmented reality (AR) is pushing the idea of digital objects existing in “real” space—the concept of voice-activated user interfaces also reflects this idea. I’m a huge sci-fi nerd, so I have a very particular vision of what the future should look like (hello, Minority Report and Iron Man’s suit). Pokémon GO opened people’s eyes to the possibilities of AR, and I really love the idea of having floating UIs accessible to anybody anywhere.
How to Kick Down the Door and Keep Growing
Let’s be real—it’s challenging to get into a development role without a Computer Science degree. Here are a few tips to help smooth your path.
- Be ready to prove yourself. Back up your credentials with strong examples of your work on GitHub or Bitbucket.
- Join a local professional organization (or three or four). I’d like to give a little shout out to Women Who Code. It’s a great tech community that offers a lot of scholarship opportunities to go to conferences (where women are often underrepresented), and those conferences are invaluable for face-to-face discussion and learning. I also recommend joining your local Android or iOS developer group and getting active. Don’t be afraid to get involved and give a talk—it’s a great way to network and build your confidence at the same time. Giving a talk is a great way to build your confidence and learn as you teach. I recently gave a talk at the Austin Android Developer Meetup about animations, which drew on my experience as both a designer and a developer. Find a topic you’re interested in and run with it.
- Look for strong influencers in the dev community to follow on social. On the Android side, I learn a lot from following Chiu-Ki Chan (@chiuki) and Christina Lee (@RunChristinaRun). You can see what I’m up to at lorajk.com and @loraj_k.
The truth is, taking the scenic route into a coding career has ultimately increased the value I bring to the Phunware Phamily. My colleagues appreciate my design background as well as the MacGyver-like way I taught myself to code. Both add expertise and depth to my team and help us deliver better results for our customers.
Have you walked the code less traveled? Phunware is always looking for creative, dedicated and interesting people to join the Phamily. Check out our latest career opportunities—and enjoy the journey!
Want to learn more about our Android dev team? My colleague Ivy Knight shared our key takeaways from the 2017 Google I/O developer conference (including some really terrible Android puns).