My Journey into Software Engineering 
Tags: beginners
Published: 2019-12-09 04:10:12

This part of my story is about my first weeks at General Assembly in DC. Like most of you know, when you first start in this field it can become overwhelming but, that’s part of the journey and challenge.  

Let me first give you an insight about my computer technology background and experience... I have none, nada, zip, zero, zilch. I was a mechanic or automotive technician, if I'm trying to fancy it up. I worked on many makes and models at multiple dealerships and independent shops. The most I used a computer for; besides watching videos and playing games; was looking up trouble codes,  schematics for troubleshooting and wiring diagrams for electrical diagnosis. After working on cars for over a decade I got tired of the nonsense and was unfulfilled with my career. Many of my clients I had over the years are in computer technology field and they enjoy it and make enough to live comfortably without having to do extensive physical labor. So after putting it off for a while I decided it was time to just step up and jump into it.  

I chose GA because it was recommended to me by many people and was told it would be intensive since I’m trying to cram years of learning into a few months. I’ve never been one to shy away from a challenge and to tell you the truth, they weren’t lying. The pre-course work was very helpful even though I didn’t comprehend some of the things I was reading about. The end of my first week in was like falling into pool of icy cold water, it woke me up in a very unsettling way. I knew I had to make sacrifices to my social life and thought I could multi-task since I’ve been doing that for many years. I was wrong in a way that bothered me and made me reassess my priorities and the way I did things. It was uncomfortable	at first but I can easily adapt. My first week was about learning HTML mark ups, CSS and getting used to writing  with code text editors.  I  had no problem with this since the pre-course work up helped me learn and get hands on experience with it. I had trouble understanding the terminology since I’m learning a new language and wasn’t familiar with it, I’m still not familiar with it but when I see it I understand even though I have trouble explaining it. It wasn’t until they started teaching us about Flex-box, Grid and responsiveness that I realized it was only going to get harder and this was just the third day into the course. I had trouble understanding Flex-box and had trouble with my first project since I had to do a website mock up, and just like everything else so far, I chose something past my skill level. My skill level at this point of the course was non-existent if you’re wondering, but I won’t let something  like “I don’t know what I’m doing” stop me from trying. I would love to show you guys what mock up I chose and my actual project for that. It didn’t come out like I wanted it too and I first tried to use flex to align and place the elements how I wanted. It was a mess and I could figure out how to deploy Flex properly even after searching online for a while. I then decided to use grid since it seemed easier, you know determining how many rows and columns you want and then placing each element where in that grid you want it. It worked better than flex but it still gave me issues since it wasn’t working like I wanted it too. Then  I couldn’t get the responsiveness of the website to adjust properly to size changes and when I changed the size of the screen my website looked like a train wreck. I will keep my first project just like the rest that I make in its original form since I want to document how my skills evolved and improved. Hopefully. 

The second week was our introduction to JavaScript and most of what it entails, oh joy. This was my “oh shit” moment since trying to learn JavaScript is like trying to pull all your wisdom teeth at once. It sucks, it’s painful, and the frustration it brings will make you want to walk out and find a different field. Like I said in the beginning this wasn’t going to be easy and if it was then anybody can do it. First we learned about data types and basic functions. What strings, integers, booleans are and how to used them. Then I was learning about control flow conditionals and looping. How to write “if else” statements and how to loop if it doesn’t meet the preset criteria. This wasn’t too bad in theory but when I tried to apply it you can guess I had multiple bugs and errors. This is what the rest of my activities and assignments will look like until I figure out what I’m doing wrong. It only got harder after that, I had no idea JavaScript had so many different ways of writing code. I learned about arrays, objects and methods for these objects. The difference between calling and referencing a function and OOP and finally our intro to DOM. It seemed overwhelming learning new subjects every day and having little time to practice them before the next subject comes. My project for this week was creating a card game called war. I’m pretty sure I don’t have to go into what “war” is since most of you have made that game at some point of your career. Writing the “if else” statements for the looping wasn’t that hard but what gave me trouble was finding a way to shuffle and randomize the cards. After searching the web I found the best and easiest way to randomize and shuffle it was using the Fisher-Yates method. After being able to shuffle the cards into a random array splitting the deck and starting the game became faster. Yes I had a bug here and there but the functionality of the game worked and it worked great. I console logged every card each player played and who won each round. After finishing the JavaScript side I decided to spruce up the web page with CSS styling just to make it stand out since, come on, no one wants to look at a dull page. At this point I thought I was finally starting to understand JavaScript. Such a milestone to reach right. Ha, enter week three. 

The third week was short since it fell during thanksgiving weekend. We learned more about DOM and started to learn about event listeners and APIs. The fact that it was a short week and had very little time to learn anything before our next project frustrated everyone. I’ll admit DOM manipulation is pretty cool and I learned that trying to do everything through DOM can get complex and crazy if there are bugs. Being able to change text, styling and adding anything through the DOM is cool and can make it a creative experience but you’re at danger of killing your code when it fails. Event listeners is what I was waiting for. I always wondered how they made it so that when you clicked or hovered on anything in the website it will have a response to user input. APIs was next on the day before thanksgiving and I still don’t understand APIs like I should. Now on to my project for the week. I was to combine everything I learned so far and make a UI pattern from a list of examples. Like I said before I decided to use the one I believed would be the most challenging. I wanted to use the Modal pattern since I knew I would have to use DOM manipulation to change what popped up in the modal. Like most of my projects I make them around something personal. I wanted to make my Modal pattern project on Sharks and why I am fascinated with them. This time for the CSS styling I used flex-box instead of grid. I tried using grid and the display didn’t come out like it should off so I switch to grid and it worked beautifully. My elements were placed just where I wanted them. This is when I realized I might have a knack for CSS. The project believe it or not went smooth the first day, making the HTML mark up and styling with CSS, I was pleased with my work and actually happy. Finally something I coded came out just how I hoped and envisioned it. Coding for JavaScript took me some time. Since I didn’t know how to code for modal I had to look it up. I realized early on that most of my time will be spent researching how to do this and that. I found many different codes that would work but my way of thinking is that if I don’t understand it then why would I use it. I didn’t just want to copy and paste code if I don’t understand the logic of why it is being coded that way. I see it as a waste of my learning experience if I just copy and paste someones code and also as cheating just to finish something that if I just take a little bit of more time I might actually understand it. I found something that made sense to me and I was able to comprehend how and why it was being used. My modal started taking shape. Now I had to use DOM to change the Modal depending on what figure or button the user clicked on. This wasn’t an issues since I added text into an array I created in JavaScript just for this. The problem was to get the images to change too. I spent half the day trying different ways of manipulating the coding for css to get the change I wanted. It seemed all was lost, but after stepping back for a moment and taking a well deserved break, it started working properly. I don’t know what I did maybe my syntax was off just a little bit somewhere but when I retyped the code to change the images it worked. Victory!!!! I had this overwhelming feeling of satisfaction and joy in completing something without it giving me errors or bugging when deploying the website. I felt invincible and started to understand JavaScript a little bit better. 

I know that there will be many moments where things seem impossible as I’m learning to become a software engineer and my first year or so will be filled with many challenges. When I know my path to anything becomes harder and tougher I turn to my past experiences and see how far I’ve come. I also think about a quote I’ve read before that speaks to me in a very personal level, “Journey before destination”. The meaning behind it is that the journey is more important than your destination, it is the reason for your growth and improvement in what you’re trying to achieve. The journey consists of triumphs and failures but that is what makes and molds us. Without these trials and obstacles in our way how can we have the strength to get back up when we fall face down. Many say the destination is our prized, but I believe that the journey is the true treasure. I hope that who ever reads this enjoyed it even if its a  little bit and start reminiscing about their first couple of weeks.