I started my programming journey with HTML, CSS, and JavaScript. I was reading a lot of books, watching online course videos, and experimenting with writing websites. Looking back on it, the things I made were very simple and if I did them now, I would need just a fraction of the time I spent on it. However, at the time, I had absolutely no programming experience and I was diving headfirst into making things while simultaneously being introduced to the concepts. I was doing simple work but it was a necessary beginning. It gave me the context I needed when I started a more structured learning of JavaScript.
At the behest of my mentors, I started reading Eloquent JavaScript. I had assigned chapters to read every week. There were also exercises at the end of each chapter to test the concepts learned. I met with my mentors every Sunday so I could ask them questions, of which there were plenty. I got my code reviewed and received a lot of advice on how I should write moving forward, which I took. Week by week, I continually grew as a software developer. By the end, I learned the fundamentals of JavaScript and progressed to learning React, a UI JavaScript library.
React was suggested to me as the next step. For practical reasons, React was a popular JavaScript library that a lot of companies use. For personal reasons, my educational background is in the visual arts so I was naturally more inclined towards the frontend side of programming.
It was at this point that I shifted towards a more project-based learning. I started writing apps with the goal of learning something new in each one. I’ve undertaken progressively more challenging projects than the one that came before. In the process, I learned about states, React hooks, React Router, automated testing, client-server communication among many others.
In the process of writing apps, I’ve been introduced to the backend territory of programming. I started with Express, writing REST APIs. More recently, I enrolled in All Aboard Bootcamp, which taught me Ruby on Rails. I had familiarity with the concept of endpoints through past projects and expanded on my backend knowledge by learning to work with databases(through Rails).
There is still so much to learn. My programming journey is ongoing as I continue to move towards the backend territory of software development. Particularly I think GraphQL, and databases.