“Eniac” by Unknown - U.S. Army Photo. Licensed under Public domain via Wikimedia Commons
My summer internship as a junior developer is coming to a close. One of the most important skills I learned as an intern was simply how to learn new technologies on the job.
Truthfully, I threw myself into the deep end of the pool. I was hired as an intern by a local startup. My strong suit was coding in Java, but my love of GUIs made me curious about doing something UI related. So, I spent my winter and spring breaks teaching myself HTML, CSS, Javascript, and Android development. I was by no means an expert in these things, but I thought this was the direction I wanted to go in my career. So, when my boss-to-be asked me what I wanted to work on during my internship, I said, “front-end or mobile development.”
I didn’t know what I was getting myself into. My first assignment was to combine the company’s three API tutorials into one single, responsive website. I needed some tabs to go between each of the tutorials which were generated by Swagger UI, provide code samples for each of the tutorials, and finally use Bootstrap modals to let users select sample code or see specific screenshots within specific Swagger/API calls. Well, I’d never used jQuery before, never used Bootstrap, barely understood what an API was, and certainly thought that what Swagger UI did was AMAZING! How in the world was I going to complete this assignment?
The wave of learning to code has created dozens of websites with almost gamified tutorials. There’s Codecademy, Code School, and Dash. Code School was my personal favorite. The mixture of videos and exercises helped me learn jQuery and later, ember.js. Once I understood that, I was able to simply look at Bootstrap’s website and use their sample code to build what I needed. The internet is a fabulous place. Anything you want to learn is there - if you know how to search for it.
I completed that project with excellent results. It was quite an accomplishment to see the final project, meeting all of the CTO’s specifications. And I’d done it all by learning on the job.
But wait! There was one thing I really struggled with learning on the job. The Play Framework. There are almost no online tutorials, except Play’s own Hello World tutorial, which is too simplistic for what you’ll probably need to implement in Play. The books out there on Play are for advanced developers and do not provide a clear explanation of what you’re doing (or why) as you follow their sample projects. It took me THREE books to have a vague understanding of Play and then I just had to try things out on my own. I must have spent two weeks learning Play and all I really felt confident with was creating a new Play project and exporting it to Eclipse. Sad! Finally, I just got my hands dirty and tried to do what my employer wanted me to implement. I guessed a lot and searched StackOverflow when I could finally verbalize what I wanted to accomplish.
Sometimes, there are no resources out there to teach you how to do what you need to learn. Jumping in and trying things out that might be completely wrong is scary, but it’s never a waste of time. I think that’s the most important lesson I learned during my internship. Do what research you can on the technologies you need and then jump in and try things out. You’d be surprised at how much you can accomplish on a hunch.
I don’t regret throwing myself into the deep end. My internship taught me about 10 new technologies and I feel pretty comfortable using them all now that I’ve had some hands-on experience. I’m not afraid to try new things, to experiment, to play around. No one in the tech industry should be afraid of learning new tools. I’m extremely grateful I was pushed to embrace new technologies, even if it meant climbing a long road to learn them. To my employer, thanks!