Welcome to my blog page and my first post! My name is Emma, I'm a Full Stack Developer from Bath in Somerset.
It's 5th December 2024. The weather is very windy and overcast and the boiler is being temperamental.
I'm a month and a half out of completing the most life-changing 16 weeks of my life, and in between projects,
going over notes and applying for jobs, I find myself reflecting on how far I've come.
This time last year I was bending over backwards for a company that didn't appreciate me, working as hard as
a could to meet Christmas deadlines and feeling that possibly, this hard work will pay off next year. Sadly
(but thankfully), it did not. I moved back in with my parents and spent the next few months applying of jobs
with wages I couldn't live on and wondering what my next step was. Deciding to embrace this time as a career
break, I focused a lot on my old love, photography, using the time I had to reignite that passion. But I
wanted more. I didn't want to go back into freelancing, I'd had enough of the irregular jobs and not knowing
whether I'd have enough at the end of the month. I wanted stability, financial security and a career that I
not only loved, but could progress in.
That's when I stumbled across coding. Aware of friends and friends-of-friends who are in the industry
(and recognising their progression and security), I decided to study. At first my mind was absolutely
overwhelmed by what I was looking at. I had never exposed my brain to lines of code before - it may as well
have been written backward and upside down! Eventually I came across Code First Girls brilliant resources and
free courses and I signed up for an 8 week course during the evenings. Feeling excited about my learning, I
knew this was something I could get my teeth into, but with the right teaching and learning. I applied for
their Degree program, but in the back of my mind I knew that I'd struggle with the remote learning. I needed
time and support to get my head around this stuff, and an online classroom for me wouldn't cut it.
That's when I found iO Academy in Bath. Opting for the Full Stack Track, their 16 week in-person bootcamp in
Widcombe, I jumped at the chance and signed myself up. Now, I won't say that the learning was a breeze and
I'm now a super tech wizard. That would be lying. It was in fact, the hardest, but equally the best thing
I've ever done. It's the most I've ever pushed myself, in every aspect of my being. Mentally, emotionally,
academically - You name it, I grew it. With the amazing support from the team there and my family, I graduated
in October and I've never been more proud of myself and the people around me. This is solid proof that I can
do hard things, I'm resilient, and with the right support I can achieve anything I want. I had literally never
seen a line of code at the start of the year, and now I'm building websites and applications, using front and
back-end frameworks that 5 months ago I didn't know existed, and confidently and happily applying for Junior
Dev roles.
Life. Changing.
Since graduating, I've been celebrating my achievement this year with rest and working on my mental wellness,
spending more time with my family (and my beautiful baby niece), taking the time to 'play' with the skills
I've learned and continuing my learning of other languages, and of course, applying for Junior Dev roles!
So, what can you expect from this blog? I'm not entirely sure yet, but certainly notes on projects I'm working
on, things I find cool/interesting, and reflections on where I'm at.
See you in the next one!
5th December 2024
Blog
Reflections | Journey to Full Stack Developer | Projects
Welcome! A little bit about me...
Best way to learn is to copy, right?
I haven't got an ongoing project currently, and I've been deciding how best I should use my time to progress
my learning. I have so many notes on my Notion account that I'm struggling to add more without it telling me
to upgrade, so this morning I decided to go through my notes and just see what has settled in more and what
needs further investigation. Getting a little side-tracked, I came across exercises where we had to recreate
a website using the skills we had just learned, and I remembered how rewarding I found those tasks. With less
than a years experience under my belt, at times when given a task I had found it difficult to envisage, and
so having a brilliantly designed site already made up for you to just work out how to put it together was
(and still is) a learning tool I reach for a lot. I don't have to worry about designing, UX, coming up with a
concept and learning how. Instead, I can just focus on how. In doing this a lot of times and working on my own
passion projects, my creative juices are starting to flow, and I'm getting that visual of where I'm headed,
which is exciting!
Today I decided to have fun with replicating the login page for Nuclino. Here is their login page:
And here is mine:
What I enjoyed:
I enjoyed the exercise as a whole. It warms my brain up when I'm not feeling like a particular project or
area of study, and I enjoy feeling inspired from the design.
My main area of learning:
Getting the First name and Last name input fields to line up next to each other,
while lining up with the two fields below.
5th December 2024
PHP Refresher - Command Line Heads or Tails Game
I haven't fancied a big project for a few days - I've found myself more interested in returning to my notes
from my bootcamp and revisiting exercises and projects I've moved on from. There's something magical about
going through something you once couldn't wrap your head around and now feeling more confident and capable.
Today I hopped over to my PHP module and opened up a file to explore some of the code snippets from my notes.
In the early stages of PHP (I want to say day 2?) we had a Heads or Tails exercise to create a simple game on
the CL. Wanting to test myself and refresh my memory, I started building it step by step. I started with the
coin toss it's in most simple format:
$coin = rand(0,1);
echo $coin === ? 'heads' : 'tails';
Once I had that, I built upon it, with the ability for the user to input their guess, to handling if the user
doesn't enter the correct type of guess, to the score and the rounds at the end.
Nice to refresh my PHP brain!
6th December 2024
Organising my brain before Christmas
For a few weeks now I’ve been less eager to start a new project, and more keen on just focusing on theory,
learning via Codecademy and going through my notes. And good as that can be, I often find myself wanting to
learn several things at once, which slightly paralyses me. I guess I’m in a position where I’m constantly
thinking about how to improve my current projects, how to better my portfolio and how to build upon my
current knowledge, while learning new languages and frameworks. This time last year I was running around
like a headless chicken at my previous job, and I thought that was simply to do with the nature of my work
being so linked to Christmas, and so working towards that 25th deadline. And while I’m definitely not
calling myself a headless chicken right now, there’s definitely room for more organised thoughts and a bit
of a plan.
Holding myself accountable (instead of an A1-sized doodle on my office floor):
Projects I want to improve:
- Todo App - Styling, make it more professional looking. Add an Edit Feature.
Learning:
- Codecademy UI/UX Course
- Complete the Ruby Codecademy Course
Skills I want to improve on:
- More thorough project planning - Avoid enthusiastically jumping ahead
- Figma
- Technical tests - PHP, JavaScript
- Unit testing
Projects to plan/build
- Recipe CRUD App
That feels better already.
12th December 2024
Learning Figma
Does everyone get that giddy feeling after first discovering Figma?
After a frustrating morning falling down a command line rabbit hole, I decided I needed a refocus for the
afternoon and decided to hop back into the UI/UX course I started. Within that there was a lovely section
on Figma, something we briefly looked at on the course but really, draw.io was our low-fidelity friend for
our project wire-frames.
I really enjoyed this little project! Not only is Figma really nice to work with, it's really handy to be
able to fully immerse yourself in what exactly you're trying to achieve, without getting started and, as
I have done many a time on my learning curve, got lost and wished I could start again.
What I've taken away from this project:
- Low fidelity design initially to focus on meeting the requirements
- High fidelity design to follow, focusing on including more detail and design choices
- Prototype - Ability to add navigation from one page to another, gain a feel for how it flows, and so can
make changes before building the project
I'm excited to use this for my next project!
12th December 2024
Tidying up my todo app
Taking a short interval of throwing my head in my hands to show you my wonderful, newly designed todo app
that I cannot seem to update my deployment of:
After having an initial whale of a time decorating my previous app to the nines with my new tailwind skills,
I quickly decided that while it was fun at the time, it wasn't really sitting right. It needed a real-world
look, something more clean and efficient. Something an actual adult would want to use. I noticed this more-so
when showing my friends and family, and having to explain how to use it.
It's funny the journey we
take when we start in a new hobby, skill or industry. I've found myself gravitating to a 'I wanna make this
thing really, really cool' mentality (the amount of revisions of my portfolio is a true testament to that),
and if I'm not producing the most animated, show-stopping webpages then I'm not that impressed with myself.
But really, there's more skill in finding that perfect balance of accessibility and beautiful, simple
design. Stay classy.
Right, I'm off to bury my head in Plesk and see if I can get my new design live!
I'm back, I couldn't move passed my sticking point. Instead, I dived back into my notes and I tripped and fell
into another mini project - To-Do app using SQLite. I had this loosely in my notes and couldn't remember
doing it (it's because I hadn't, it turned out) and given I was just working on my other to-do app this
morning, it seemed sensible to dive in.
16th December 2024
To-do Apps - One with a MySQL db, one with a SQLite db...
After trying (and failing) to upload the style changes made to my to-do app, I've decided to move away and
focus on something I can get stuck into on this Monday afternoon, so instead I tripped and fell into a new
mini project - Another to-do app, this time with SQLite instead of MySQL. And understanding the difference
between the two.
I first encountered SQLite during a Codecademy course, but I never really took the time to explore it in
depth. While reviewing my notes, I came across a code snippet I didn’t fully understand. It turned out to
be part of a to-do app, demonstrating how PHP can be used to create a simple CRUD application in the browser.
My first to-do app (which you can see on my portfolio) was built using a MySQL database. MySQL requires a
server to operate, whereas SQLite does not. Here's a quick comparison of my understanding after researching
both:
MySQL:
-> Requires a server
-> Takes more configuration to set up
-> Can handle large amounts of data
-> Supports multiple users
SQLite:
-> Does not require a server
-> Requires only a small amount of setup code
-> Not designed for large datasets
-> Does not handle multiple users well
Essentially, I see SQLite as an ideal choice for small projects, personal apps, or quick tests, while MySQL is better suited for large-scale applications that require scalability and multi-user support.
Setting Up the SQLite To-Do App
To begin, I set up a simple folder structure for the project:
todoappsqlite/
In the root directory of the project, I created the SQLite database file (`todo.db`) using the following
setup code:
├── db/
│ └── sqlite.db
├── index.php
└── styles.css
This code runs once when the app is first loaded, creating the SQLite database and a simple table (`todos`)
to store the to-do items. Each task has an `id`, a `description` text field, and a `complete` field to track
whether it's done or not.
Building the Rest of the Page
Once the database was set up, I moved on to building the main to-do app page (`index.php`). Here, I created
the functionality to display tasks from the database, as well as options to add new tasks, mark them as
completed, and delete them. The page was designed to be simple and intuitive, with a clean interface for
interacting with tasks.
Here's a quick overview of what I implemented:
- Display Tasks: Tasks are fetched from the SQLite database and displayed in a list on the page.
- Add Task: Users can input a new task, which gets inserted into the database.
- Mark as Completed: Clicking a task updates its `completed` status in the database.
- Delete Task: Tasks can be deleted, removing them from the database.
Final Thoughts
Overall, building this SQLite to-do app was a great way to dive deeper into databases and gain a better understanding of SQLite's simplicity and limitations.
16th December 2024