These are my notes from the first year and a half of learning to code. I started the Code Institute Full Stack Development course at the end of April 2023, and I wrote a short post at most steps. I pulled the small ones together here so the whole stretch reads in one place.
What I wanted to learn (July 2023)
Early on I wrote down two lists. The first was what I wanted to learn so I could do more with WordPress: advanced CSS and HTML, REST APIs, React, PHP, SQL, and AI. The second was what the course covered: HTML, CSS and JavaScript (done), then Python, Agile development, Bootstrap, jQuery, an intro to APIs, the Flask framework and database management.
I admitted that I should have thought harder about what I wanted from the training before I started. If my goal was to stay with WordPress, the course covered very little of what I needed. I also bookmarked the freeCodeCamp FastAPI handbook, which builds a Python API with MongoDB, Docker and PyTest, so I could come back to it once I knew more Python.
Hackathons
In June 2023 my team came second in my first hackathon. We were called Our PRIDE and built an inclusivity checker: you add text and it suggests inclusive words to use. I had only started learning in May, so I made the images and the README, suggested ideas and came up with the team name. For some reason I did not show up as a contributor on the GitHub repo, which annoyed me, but the video shows what I did.
In July the topic was my idea. We built Aqua La Vista, a mobile first app about wild swimming and what being in nature does for mental health, with a search bar for local wild swimming events. We did not place, but it was my first look at React and at GitHub pull requests. Our team name, The Wet and The Restless, and the app name both came from ChatGPT. Writing about it finally pushed me to join my local wild swimming group.
Projects two and three (August 2023)
Project two was The Cycle of Life, a JavaScript game based on rock, paper, scissors, lizard, spock. My version uses Human, Plant, Soil, Animal and Weather, with extra pages for winning, losing and a thank you page, plus a 404 page. I submitted it a few weeks early.
I hoped for a Merit and got a Pass. The reason was small and annoying: I ran the index page through the W3C HTML validator several times but never ran the win, lose and thanks pages, which I had copied from the index. They had a trailing slash on a URL and a div with no closing tag. Years of WordPress had taught me that you change something once and every page updates, and static HTML does not work that way. I make the same mistake with navigation when I change one page and forget the rest.
I also updated my GitHub README with a Canva header image, shields.io badges and a table of my projects.
For project three, the Python project, I went through a few ideas. A currency converter was out because the API only offered a free month. A survey data tool overwhelmed me. In the end I planned a tool for a fictitious company that uses contractors: the contractor enters their details and the system tells them what they will be paid a week later. I wrote a plan on paper first. The code I knew I needed was try/except, basic arithmetic and random numbers and letters for employee and National Insurance numbers.
Bootstrap (August 2023 to January 2024)
After Python came Bootstrap, which I enjoyed because it is a framework with no new language to learn. The course used Bootstrap 4, so I stayed on that version to finish the follow along projects. I built a landing page for a whiskey subscription service and changed it to a juicing subscription, and a resume website that I loved. I replaced the CV download in the navigation with a link to my blog.
Once project five was done in January 2024 I went back to Bootstrap 5 to learn padding, margin and other components properly, add a newsletter sign up form at the top of a page and stop my footer from moving up and down. I wanted to get good at one thing before moving on to React.
Databases, APIs and SQL (September 2023)
The resume project grew two more pages once I reached APIs and jQuery. One was meant to show a Google map of events I had attended, and I skipped it so I would not use up one of my free Google APIs. The other pulls a GitHub profile with an API and JavaScript. I followed the training and could not make it work, so I moved on. I also asked ChatGPT for a muted palette of matching tones.
DataCamp offered five free days. It showed me that data science is not for me, but I loved its SQL training. You answer questions, get prompts when you are wrong, and can spend points on a hint. I finished the beginner and intermediate SQL courses.
Django and Flask (September to December 2023)
One weekend I watched Dr. Chuck's 19 hour Django course on the freeCodeCamp channel. It covers how the web works, HTTP, databases and SQL, templates, forms and JavaScript, not only Django code.
By October I was in the middle of my Django project and finding it hard. Getting the model, view, template and URL to work together was the problem, and simple things like a link to delete a comment cost me hours. I was working 10 to 12 hours a day. One day went on infinite scroll, which then stopped working, another day or two on comments, and my follow system was abandoned for the time being. I switched from Codeanywhere to Visual Studio Code because Codeanywhere was running slowly. An interview with Lawrence Lockhart about imposter syndrome helped on a bad day.
In November I finished project four and, while I waited to submit it, built a basic Flask and Bootstrap site from a StartBootstrap template for the paperback notebooks I sell through Amazon. My WordPress hosting was ending on 11 December and the notebooks have the domain printed in them.
At the end of December I wrote the README for project five, my eCommerce site in Django. It was the hardest project of the five. I also settled on a direction for after the course: build eCommerce sites and eLearning platforms, sell them, and maybe offer to manage them. I had my first Shopify client and still wanted to build a progressive web app.
Keeping the practice going (2024)
In March 2024 I saved a video of Python projects worth building, to link to as I made them: a number guessing game, a to do list manager, a password generator, hangman, a dice roller, a quiz game, a countdown timer and a calculator, up to games such as Snake and Sudoku. I planned to host them on Vercel or Render.
In April I took a break from studying to update Our Spot, my project four social network for sharing places. The MVP only had CRUD. On my list were proper email confirmation (you could sign up with a fake address), password reset, a follow system, trending images, tags, albums, a map, account deletion and a move from ElephantSQL, which was closing down, to PostgreSQL.
In August I looked at Anvil, a low code tool that uses Python, as one way to build the AI agents and chatbots I was planning.