As I was sharing some dev advice today, I paused. "How did I get here?" "What did I learn first?" This is my journey:
TL;DR? Scroll down to the recap.
Nothing. I never took so much as an Intro to Computers course. I didn't know that web development was a job. I didn't know that any of this was an option.
I started hearing a lot about JQuery and I guess I sort of taught myself a few basics.
I worked in marketing doing design stuff, but I kept wanted to learn more about programming things. I remember attempting to learn Ruby on Rails and starting to learn the basics of using a terminal for the first time. I found out about this thing called HUGO and made my first markdown static site. I also used GitHub for the first time even though I had no idea how to use git. I didn't have any foundation to my knowledge. It was all just bits and pieces --articles and YouTube.
I think I should note that my graphic design job sometimes wanted me to design for web, and through that experience I got some exposure to the basics of Agile and JIRA. Also this was the first time that I found out about tools like Sketch and Zeplin and the concept of modular design and also the first time I had heard of React. I wanted IN.
My next two classes were intensely focused on advanced HTML and CSS where I learned about how to correctly use floats, flexbox, CSSGrids, and CSS Variables, and that there are many many more tags and selectors than I will ever remember and also I learned about SASS and SVG as code for the first time.
Yeah, so I did still want to learn React, so on my own I made an attempt. Two attempts. Three attempts. Four attempts to sit down and just LEARN it. I was about to give up, when I read that Vue was easier. So I took a deep breath and... learned all the basics of Vue in a single week. I was excited!
So then I landed my first official UI design job. The second month that I was there, they wanted this interactive prototype thing and they said I could use whatever tools I wanted. So I thought it would be a fun opportunity to put my new Vue skills to the test. And that's when I learned Vue again at an intermediate level and became much more proficient with the terminal. I also got a chance to learn how to use the anime.js library. When I was finished, my team was like "lol, you're not a designer, you're a developer" and then I was a UI developer. And this was around the same time I just learned about how to actually use git
My boss says, "so this software team is planning on using Angular, but we've got our other software team using React, they asked if you can provide UI as web components?" and I was like "Yes, Absolutely!" without any idea about what a web component was. After a bit of googling, I had Open-WC installed. So then I quickly learned about web components and how to use lit-element previous versions known as Polymer and packages and Storybook and Karma / Mocha testing. But then I needed a place to put all of this stuff, so my work told me to use Azure DevOps and soon I was writing automated test scripts in YAML, package version control scripts, and pipelines to an Azure cloud service.
The team had some existing designs that needed to be converted into a web components, so then I did some investigation and wrote my first Node.js script. They also wanted a documentation site about their design system and I learned how to use Vuepress static site. Then I became the lead UI developer, and that's kind of where I'm at right now. It's hard to remember everything. I might be missing something. ¯_(ツ)_/¯
- Basic HTML
- Basic CSS
- Basic Java
- Intermediate Java
- Basic PHP
- Attempt at JQuery
- Attempt at Ruby on Rails
- Using a Terminal for the first time
- Basic HUGO (markdown static site)
- Basic GitHub use
- Basic Agile Method
- Basic JIRA use
- Concept of Modular Design and Development
- Intermediate HTML
- Intermediate CSS
- Intermediate JQuery
- Data Queries
- Basics of Hosting
- Advanced HTML
- Advanced CSS
- SVG as code
- Attempt at React
- Basic Vue
- Intermediate Vue
- Comfortable with the terminal
- lit-element (previous versions known as Polymer)
- setting up package.json files
- Karma/Mocha unit testing
- Azure DevOps
- YAML scripting
- package version control systems
- basics of Azure cloud service
- Basic Node.js
- Vuepress (markdown static site)
Everyone learns at their own pace and in a different order. Don't compare yourself with me or anyone else. As long as you know more than you did yesterday, you're doing fine. Never stop learning.
P.S. I think the Java from college helped me a lot actually. It set up a lot of concepts for me like variables, types, parameters, encapsulation, abstraction, inheritance, polymorphism, private and public classes and variables, shared network of code, development environments, etc...