The other day I was cleaning out my inbox when I came across a message from Code Academy. I quickly deleted the message and unsubscribed from their email updates since I hadn't used the platform in ages. In doing so, I came to the realization that I've come a long way since the beginning of my burgeoning interest in technology. Starting from my senior year of high school to this past year; I've made incredible strides towards my ever evolving goal of becoming an in demand/great engineer.
When I was a high school senior, I was trying to figure out my college major and/or what I might want to do as a career. Learning to program seemed like an impossible goal to me. I had an interest in technology, and had even dabbled in some HTML - copying and pasting of basic javascript, etc.., but I had yet to really learn any significant programming skills. I tried to learn on my own, going over tutorials or using online learning sites like Code Academy, but nothing really clicked, so to speak. Unable to progress very far on my own, I thought that perhaps an instructor led course might help, so I enrolled in my school’s only computer programming class - I’m not complaining btw, I know most high school’s probably have none... At first it was great, we started learning with scratch, which is a simple visual based programming language. It was incredibly easy to get started with scratch. It allowed me to create simple games and other engaging things that made learning to program fun and interesting. Something I needed at the time. Because of this, I was a bit more confident when we moved on to Visual Basic and eventually Java. The fun aspect faded a bit at this point, and the learning curve got much more difficult.
For the Java/Visual Basic part of the course, we were given books to read from, and were expected to go through them chapter by chapter completing the exercises without much guidance; this proved to be very difficult for me. I wasn't getting much value out of reading the books myself, and there were no lectures, because the instructor didn't have any programing knowledge himself. He was just the teacher that did some of the business focused electives at my high school, and somehow programming fell under his jurisdiction. So after I spent the remainder of the semester struggling with Java and VB, I was thoroughly convinced that programming wasn't my calling, but I really wanted to study technology, so I decided to study Informatics, with the intention of eventually becoming a consultant or business analyst.
During my sophomore year at Indiana University, I decided to take a second shot at learning to program. This time around, the courses I took seemed to be what I needed to develop a foundation that allowed me to become more confident in my abilities. I made a pact with a friend to choose a Computer Science minor, as we both wanted to become software engineers. I was determined to conquer the challenge that once seemed impossible to me. It was difficult, but different this time. I had professors that I could go to with questions, lectures that I could follow and properly take notes on, other students around me that I could work with, and learn from. This type of learning environment proved to be what I needed to finally have a breakthrough. Slowly but surely, the basic concepts around Computer Science and programming started to make more sense to me, once that happened, I couldn't get enough. I was hooked.
Continuous learning is a must for anyone who has a tech career. In my first 6 months as a software engineer, I had the pleasure of working with a very talented group of people on the Cloud Platform Engineering team. When I started, I barely understood what Docker was, let alone the value of containerization, but I'm leaving that team with two open source contributions to the Spinnaker Project under my belt. My next assignment will be be one that focuses more on front end engineering. I'm definitely eager to add to my Javascript skills/knowledge by working with this team.
I write all of this to try and get across the following point: don’t be discouraged if you are attempting to learn to program/code, or otherwise immerse yourself in the world of technology. Everyone has a different story, and a different path. Don’t get discouraged if things aren't “clicking” at first. Again, everyone is different, and while not every single person may end up a software engineer, there is a place for all kinds of people in the world of technology. The tricky part is figuring out where you fit, how you learn, and what kinds of things motivate you. So if you're struggling at the moment, don't worry! Find a mentor, or a friend to try and learn with. Keep trying different approaches to learning until something finally works. Also, to those of us who are well beyond that initial learning phase, reach out to those who aren't. Encourage someone who is just starting out, mentor them a bit, point them to some resources that helped you out, answer their questions. That way we can continue to grow this industry and make sure its filled with fresh faces, new perspectives, and diverse groups of people.