- 🌱 I’m currently learning HTML, CSS, JS, and many many more!
The log of my #100DaysOfCode challenge during School of Code bootcamp. Started on [Monday 8th July 2024].
Week 1 - Javascript Basics
Day 1, my first day at School of Code! After being away last week and catching up on the onboarding tasks, I felt ready to jump straight into learning code. This week we're covering the basics of JavaScript through a the lens of a software engineer. Very excited but a little nervous. By the end of the week I hope to be more confident in my code (as at the moment I know very basic HTML and CSS) and more confident in myself :).
Day 2 involved another day exploring JS. Today the topics were objects and arrays...
Today was day 3 of SoC, and my first full 9-5 day. Our tasks today included learning how to debug using console.log() and Chrome DevTools. Both were incredibly useful when completing the projects I was given. Learning how to tag issues on github with the "bug" label and then fix these bugs directly when committing was an interesting glimpse into the coding work that happens in industry.
Today is the day to start my first group project. We are building a rock, paper, scissors game using JS. So far this has proved to be challenging. My team and I understand the basics and concepts of JS, but struggled with the best way to plan out how we tackle the game. Eventually by the end of the session we got to a place where we have something that (kind of) works, although tomorrow we will have a big job trying to straighten everything out. Hopefully a good nights sleep will help!
My first SoC week complete! Today I finished off my rock, paper, scissors hackathon project with my team and presented it to Cohort#17. Presenting and public speaking is not something that I enjoy, so I'm very pleased and proud that it went well. Our project worked really well, was structured nicely, and more importantly we were proud of what we had achieved. Feedback to my team included very neat code (yay!), good and clear communication, but not to be too hard on ourselves. Overall very pleased with this week, I'm looking forward to seeing what comes next :).
Week 2 - Front End
Although today was a very busy day, I still managed to squeeze in a little bit of coding :). I spent an hour on the SoC intro to the DOM workshop to get ready for the week. So far so good, just need to remember to use document. before using the functions like getElementById, for example.
First day back at SoC after the weekend and this week I will be covering all things frontend. Today we went through the Document Object Model (DOM), the importance of semantic HTML, and then started building a quiz website project with my new team for this week. I also went through debugging with Chrome DevTools with my mentor which was very helpful, I plan to implement this throughout my projects to get comfortable with DevTools.
Today we made good progress with our quiz app. We pretty much finalised the html and css files and made a start on connecting it with our JS. At the moment this feels very out of reach and challenging, but a challenge I'm enjoying. My team have been brilliant at helping each other along and making sure everyone has a good understanding of the code before moving forward. Feeling very optimistic.
Thursday brought with it another graduation, this time for family. I didn't manage to get done as much as I would have liked in the evening, but I was still able to go through the code that was written by my team during the bootcamp session.
Quiz Academy app finished! This week was very rewarding getting our quiz app to work. Having not been in yesterday, I was concerned that I may have felt left behind but that was not the case, my team went through every bit of new code so I understood. We presented to the rest of the bootcampers and recieved some good feedback on our code, final product, and presentation, so all in all week 2 has been a success. Bring on week 3!
Week 3 - Back End
The first day of backend! So far back end was not what I was expecting. Whilst being as challenging as I expected, it was far more enjoyable than what I thought it would be. Today I learned about node.js, npm, .json, and using node express. By the end of the week I hope to be able to successfully complete the different types of requests, such as GET and POST requests.
Today we started our project for the week! This week we are aiming to create our own REST API using node.js and Express. I expect this will be a challenging task, as so far I've been used to having a visual product. I think this project will test me but I'm excited to see how far it can push me.
I made some good progress on my understanding of completing the different kinds of requests (GET, PUT, POST, etc.). I successfully applied these to the project and I think I'm slowly starting to get the hang of it all.
Today I spent the morning continuing with our project, made some good progress, then spent the rest of the session completing a workshop on using the file system in node.js. This I found very challenging, we weren't able to complete the first ticket as we had so many errors, but after a discussion on the SoC slack, it is starting to make a little more sense. Looking forward to finishing up the REST API tomorrow and presenting it to the rest of the cohort.
Final day of the week and today is hackathon presentation day! This week has been tough, and a change from familiarity but I have enjoyed it far more than expected. The presentation went well, the team and I got good feedback. We almost finished all the tasks (GET, POST, PUT requests), but didn't manage to finish the DELETE request. Today, I also had a productive meeting with my mentor.
Week 4 - Databases and SQL
Monday marked the first day of database week, but instead of jumping straight in, we are going back over the fundamentals of last week's backend project. This should set us up nicely to be able to incorporate it with what we learn in SQL this week when we start the hackathon.
Today I started learning SQL. So far, it feels like a very nice language to use - it's very readable and logical. I have completed a few basic SQL workshops to start this week off. I'm hoping by the end of this week I will feel more confident with backend code.
Within the bootcamp, my team and I were tasked with solving a murder using SQL. It was a great way to put our newly found SQL skills to the test and cement our knowledge. It was a fab game, and everyone enjoyed playing it. After this, I had another online SQL workshop to complete. This has left me feeling more confident with SQL.
Today was the day we connected SQL to everything we had done last week. As part of this weeks hackathon, we are connecting a REST API to a database using Postgres. This so far has been challenging, but a great way to recap last weeks skills. Bring on tomorrow!
The time came around to yet again present the team's project to the cohort. We managed to complete most of the requests in time for the demo which was great. The presentation went well, the team and I had great feedback, and I was proud of what we had achieved this week.
Week 5 - Quality Assurance and Testing
The first day of testing! Today we delved into the world of testing by starting with a workshop on unit testing. This involved writing basic tests for a calculator app and ensuring that they pass. I found this very satisfying once I was able to pass all of the tests!
Today we delved more into unit testing and the use of test-driven development (TDD). This was a challenging mindset shift at first - it felt unnatural to write tests before writing any functions as I wasn't confident initially that the tests that I was writing were correct. Upon reflection I can see how TDD would be really beneficial.
Today we had another talk by expert QA engineers about the use of testing within the industry. It was incredibly interesting to hear the importance of testing, and the issues and problems that can arise if not completed. After this my team and I completed a workshop on linking our knowledge of backend API and testing. This was a fun challenge, as it gave another chance to recap our skills from previous weeks.
The day of end-to-end testing. This was far more enjoyable to me than unit testing.
For this weeks hackathon we were tasked with creating a code kata for the other bootcampers to have a go at. This was an incredibly fun hackathon, and felt quite different to the other ones I have completed so far. One of the hardest parts I found was to come up with a story for the game itself. In reflection on this week, I think I need to spend some time focusing on TDD and completing more CodeWars katas to improve my function writing ability.
Week 6 - React
A very fun day of recreating a very basic website using HTML and CSS to prepare us for learning React tomorrow! I always really enjoy working with HTML and CSS, it's always a little challenging perfecting the styling but I find great satisfaction once it is done.
The first day of React. At first it felt odd to be putting "HTML" inside of a Javascript function, but the more my team and I completed within our workshop, the more it started to make sense. So far, so good.
Today was looking at state and props. The workshop looked at creating a pop-out menu that opens once a menu button is clicked, and then disappears when clicked again. This was done passing through props and using useState.
Half of today looked at wrapping up the workshop started yesterday, the other half was looking at and planning the hackathon task ready for tomorrow. I've enjoyed that the hackathon task directly links with all the workshops I have done this week, it feels like a very natural progression.
The day of the hackathon. This week's task was to build on the website we had already been creating, and to implement some useState and useEffect to create a review section that links to an API. The website was planned to show three separate buttons that corresponded to Wales, England, and Scotland, and once clicked, display a review from that country. My team and I successfully completed this, and presented well.
Week 7 - React part II
Before jumping into more React learning, we took the day to work within our teams on a workshop recapping all of the skills we had learned last week. This was really beneficial to help solidate my learning before moving on to more topics. The workshop today involved recreating a small flashcard website using a form to input the user's choice of flashcard questions and answers.
Today's workshop consisted of adding a form to the Fireplace Palace website my team and I created last week to allow "customers" to submit a booking for a one-to-one design consultation instead of having access to the business's phone number. Working on the same project for two weeks has been really beneficial, it has been a natural progression from one website feature to another. My team and I successfully created the form for mobile use, if we had more time then we would need to also create this for desktop, too.
The long day of Wednesday at SoC has arrived for this week! Today has been a good introduction to using useReducer in React to streamline our submission forms within my team's website. This has been challenging to convert our pre-existing code using a useState function into code that uses the useReducer function, but I think this way of going about the workshop provided me with a better understanding, rather than just typing our a useReducer from scratch.
Today my team and I finished changing all of our states into a useReducer function, then we started on this week's hackathon! So after almost two weeks of building our Fireplace Palace website, it is now time to test it! We will be using Playwright to complete end-to-end testing of our whole website. Today we started with documenting our user journeys using FigJam, and tomorrow we are planning to implement the tests themselves.
So after two weeks of hard work creating a website for "Fireplace Palace", it is all over. My team and I successfully created a web application using React with React framework nextjs. We created multiple pages, a booking form that displays specific errors, a review section that calls to an API to retrieve reviews from Scotland, England or Wales. All in all, a very successful two weeks learning React!
Week 8 - UI/UX
Today being a bank holiday meant no SoC, but that doesn't mean no coding! Today I spent some time building on my own project and recapping on basic React web development by setting up the basic structure of my project.
The first day of the UX/UI week! Today I had a lot of talks given by the lovely people of Methods about the differences between User-Centred Design and Human-Centred Design, roles within a UCD team, and end to end service design. It was a very interesting day learning about other aspects of the web development process. While this didn't involve much coding, after the session had ended I had another look at my personal project.
Another day with Methods! Today we had talks about user research, accessibility, and user experience (UX) design. Also, today is halfway point in my 100 Days of Code! 50 days down, 50 more to go 💪🏻.
The challenge of today was to wireframe and prototype our application for tomorrow's hackathon presentation. Again, not much coding was completed today but I did look over and update my learning audit and went over some basic JS fundamentals as revision.
Today's presentation went really well. It was great to have the experts from Methods in to give feedback on our work this week. The main points of feedback given were how my team and I took great care in ensuring the user research survey questions were well written, well thought-out, and effort was made to ensure that it didn't lead the interviewee to any answers.
Week 9 - DevOps
The first day of DevOps. We had a great talk from ManyPets today, talking about the types roles in DevOps and how important it is.
Today we used the AWS Skills Builder game to learn more about Amazon's cloud services
We used:
- Docker to containerise our application
- Husky to run automated lint and prettier checks upon committing
- GitHub Actions to run automated checks again (lint and prettier) upon creating a pull request
- Deploying the website automatically using Render (online hosting platform) Overall this week's hackathon was a success, we were successful in automatically deploying our website
Week 11 - Data, Python, and AI
Today was a day testing out various kinds of AI tools for developers. I explored Cursor, v0, and GitHub Copilot. I think my favourite out of the three was v0, I loved that it gave a display window for the code that it gives you but also a window where the code is run so you can see exactly what it does without having to set it up yourself.
Scrimba was introduced to us today, and it was incredibly useful. The interactive element of the tutorial videos was really great to use and will definitely be used as a revision tool in the future. Alongside this outside the bootcamp, I have started completing some Coderbyte challenges as extra hands-on practise while the bootcamp focusses more on tools.