From student to professional Software Developer
Tags: softwaredeveloper, java, career, beginners
Published: 2017-12-11 02:59:58

---
title: From student to professional Software Developer
published: true
description: This is my journey and experience from a Student in College learning to program to becoming a professional software developer
tags: Software Developer, Java, #career, #beginners
---

So where do I start? Software development is my passion. I'm a professional full stack Software developer, and outside of work I spend a lot of time learning new frameworks, technologies reading programming and tech articles. Sometimes I even dream about codes(Seriously!)

I look back now and I recall how my journey began. It all started in 2007, my first semester in college, my major was "Computer Engineering". Prior to college I had no clue what computer programming was. All I knew was that I've always had an interest in Computers and Robotics and also Astronomy and Physics but we'll save that for another post. I was aware that Computer Engineering would be the right field to be in. In my first semester, the first programming language I was introduced to was the widely known "C". First few weeks of the course it wasn't that difficult, you know..the usual "Hello world" and basic stuff. AS I was completing those assignments I did not quite understand the purpose of this course nor did I really understand the importance of a programming language. Then halfway through the course, we started learning functions which was a bit difficult to grasp, and then after that "Pointers" which the whole class struggled with. Anyways, I finished my first programming course with a good grade, but I still did not understand the importance of it, so I did not have much passion for programming.

It wasn't until my 2nd semester, when I took a Java course that I finally understood the power of programming. My first assignment was to build a simple GUI application with a button, and once that button is clicked it would display "Hello world". When I compiled my program and executed it, at that moment when I seen the GUI, and I clicked the button, and the "hello world" was displayed, I was blown away. I was so impressed, I finally understood the importance of programming. It was at that moment, my passion started to grow for programming. I guess all it required was for me to build a GUI application.

From then on, I began to read Java books to better my skills, I spend lots of time in and out of school programming for fun. After graduating College and going to University, I had to take a university level Java course, and I was the top of my class. I was always so excited for every lecture to learn what the professor will teach us next. In my last year of University I felt like I was a Java programming Guru. I felt I was ready for the real world as a professional programmer.

After graduating University in 2013 October, and landing my first Software developer job in November as a "Junior Java Developer", I was excited and nervous but very confident also. My first week or 2, after seeing the team's application and code base, with all the frameworks they used and all, got me feeling overwhelmed and scared. I went from feeling like a Java Guru in University times to feeling like a kindergartener in High School. As much as I tried I had a hard time understanding how the code works. Java EE? Struts 2? JSP? "What is this"? I asked my self. In my college and University years, I was only taught "Java SE". My first task was really easy but I struggled to understand it. I was frightened and that's when I started to feel the "Imposter syndrome". I felt like maybe I'm not cut out to be a programmer.

I was depressed for a few days, BUT I did not give up. I joined online forums and asked questions such as "how were other programmers first real world experience was like, from college/university to the corporate world". I got some answers that were kind of similar to my situation. One answer that stood out the most to me was this. 
"If you passed the interview, and they decided to hire you, knowing you're fresh out of school, then they must believe you have the skills to be a developer in their company"

That post really motivated me. From then on, I told myself I will give it my best and told my self "no one is born an expert, everybody learns and progress" So I decided to ask my senior developers a lot of questions and mentorship. And also every day after work I would spend at least 3 - 4 hours learning the programming skills I'm lacking. I started to learn the basics of Java EE such as Servlets and Jsp, also diving into the Struts framework, learning Hibernate, learning advanced JavaScript also. It wasn't easy but I enjoyed the challenge. Then I realized something. The more I was learning, the more I began to understand my work code base, the more work assignments and projects became easier to understand for me. 

I started to feel confident again. Sure there were times when I would come across a big obstacle, but I always felt confident enough that I could find a solution for it.

Fast forward a few months and my manager asked me to learn "C# and SharePoint development". It took me 3 months to learn as much as I could, and I was assigned two major projects that required a C# and SharePoint developer, and I successfully completed both, that was all during my first year in my role. Fast forward again a year later, and since I was the only developer in my team that knew C# and SharePoint, I became the SME(Subject Matter Expert) for one of the critical component my company uses.

Through my constant learning I became a vital member in my team doing both front end and back end development with Java,.NET, JavaScript etc.

I guess the moral of my story is, If you land your first Software development job straight out of school, you might face a few or a lot of challenges and also will feel the imposter syndrome at times. My advice is to never give up. We live in the information technology age where information is easily accessible over the web. Constant learning as a software developer will greatly yield results!