Table of contents
I have had a productive week which has been a combination of house chores, Christmas roast meals and a few coding-learning avenues. It helps when the weather outside is frightful ๐
I find it's beneficial to keep a whiteboard or soft copy list of to-dos to tick off when you have completed a task. That positive reinforcement you get as you acknowledge your work done is certainly rewarding and it reminds you that you have been productive over a holiday break or can serve as a gentle nudge when you have been lazy about your goals.
For the programming side of things, I have revisited Wes Bos' 30 days to JS course which in my opinion, if you are not a complete beginner in JavaScript, is an excellent free course to level up your knowledge with practical guidance and realistic short projects, some of which I have used in my pet projects with 'hats-off' to Wes in the README file. I started it and got just under halfway early on in my journey and the concepts were then advanced for me- so much so that a 15-minute video would take me an hour or more to finish if you include an understanding of what each line of code is doing and adding my comments to the scripts. Now, they still take me a long time to watch through but it is less frictional and more enjoyable- I hope to finish the course in early 2023.
Other than that, it has been a lot of deliberation and procrastination around two of the projects I want to use on my portfolio, which I am also in the process of upgrading!
Current State of Affairs
Portfolio Website
My hosting subscription and domain have expired from one.com which is what was recommended to me by the Bootcamp team when I first created my basic HTML, CSS portfolio landing page back this time last year. Oh, how things have changed! I cringe whenever I look at the source code ๐ฌ
But I suppose this rite of passage made me realise a lot as my learning journey progressed into employment:
I was still making changes to the source code on my local repo and then FTP-ing it to the server- I asked myself with this amount of manual work and prone to errors, there must be a more maintainable way surely?! Something I wish I knew before: version control with basic git commands and the tenacity to seek out a hosting provider with a basic free plan, CI pipeline with repo provider and automatic deployment.
I built the original project with custom clunky, unmaintainable code. Not a good sign for a prospective employer or recruiter! Granted, I wasn't going to know everything about coding best practices back then but at least I am aware of some of the concepts now from my workplace and that has meant that this time around, I go through the laborious process of planning and tasking out the project into manageable, small tasks or tickets. Resist the urge to go straight into coding up the project. The planning and discovery phases hold me accountable and help to reduce delays when I get to the development phase. The main delay I find is coming up with copy text and appropriate media assets: if I have planned these early on, it makes the coding process smoother and with fewer headaches. I use Trello which has a free tier to create taskboards to help you manage a project.
All the learning material from the community has added breadth and depth to my web design and development knowledge. I am excited to put them into practice this time which is what the last iteration was lacking: I hope that the new landing page will have more of a professional feel to it.
I will introduce more interactivity to the page: the last iteration had no JS (at least not from me!) in it. This time around, I will implement a basic contact form and pull in the latest articles from my hash node profile to display on my portfolio page. I would like to also experiment with an animation library like GSAP, but let's see how things progress...
Pet Projects
I have one travel-themed site with an iteration using React.js CRA but now I'm aware of its SEO and routing issues, I am looking for an alternative like Next.js to resolve these problems. It also gives me an excuse to learn a marketable framework! But, most of my time is consumed on creating fictitious content and media assets for it, because as it's personal, I think the lorem ipsum placeholder is off-putting and I would rather have some personal content in there.
Then I thought to myself, should I be creating all this content? Can I not copy from another site? That's when I found a site that does exactly what my fake site in terms of business is doing! This real site has loads of content (destinations, testimonials and reviews, guidance, blogs etc.) and is displayed quite drab and uninspired. I then had the idea that perhaps I could recreate this site using more modern web technologies. But this means I would most likely give up on using Next.js, and instead resort to a CMS like Drupal to manage this project due to content size. There are still a lot of architecture and design decisions to make...
My other project is a local community swimming pool and gym club that I would like to redesign and redevelop. I was going to attempt this with Drupal CMS, but given the circumstances, I may switch to Next.js for the front end and figure out how to get a backend to communicate with it. I have no backend experience so this will be difficult! The reason for the switch is that this website doesn't have a lot of updated content compared to the travel website mentioned previously: the swimming pool website is informational mostly with perhaps one or two areas for updates, and an API to display weather conditions. The hard part for me is to get the swimming and gym booking session calendar to work and save it on the backend. There should also be some method of member registration to that effect. A payment process may be a bit beyond me for now but one would expect that on a site like this.
I think I will focus on tackling the portfolio single-page application first!