Over the past few years, I've taken to making a list of some of what I've done over the year to help me keep track of my progress. Here are lists from previous years:
Now it's time for reviewing what I've been up to in 2018.
By far my biggest personal accomplishment was writing Laconia (Source / frontend) from scratch - a project I created to learn MVC architecture, object-oriented design patterns, routing, authentication, security against database injection and XSS, and everything else that goes into a simple but modern web application. I learned so much making this, and I plan on writing an overview of everything I did from zero lines of code to completed project.
Actually, I made 2-3 major layout overhauls in 2018, and I finally settled on this current version (4), which I documented here. It's always a big debate and struggle for me to make the site both functional and aesthetically pleasing without being boring yet still fast, easy to navigate, and uncluttered. So I've opted to go more in the direction of extreme simplicity with the current iteration, and focus as much as possible on having great content. I'm going to leave the design alone for a while.
I think the biggest issues with the current design is that there's no easy way to filter articles by subject, it lacks a bit of personality, and there's no good indication to the level of quality you'll find within.
I wrote 25 articles this year (leaving off any small snippet-like articles that don't really count), 11 of which were for other publications - DigitalOcean, SitePoint, EnvatoTuts+, LogRocket, Codrops, and Progress.
Next year, I'll write more for my own site, and less for third party publications.
- Basic Refactoring: Don't Repeat Yourself
- How to Paginate an Array in PHP
- ES6 Syntax and Feature Overview
- Create a Simple CRUD Database App: Connecting to MySQL with PHP (Part 2: Update, Delete)
- Overview of SQL Commands and PDO Operations
- How to Create and Use Bash Scripts
- How to Promisify an Ajax Call
- Getting Started with React - An Overview and a Walkthrough
- Promise All with Async Await
- Build a CRUD App in React with Hooks
- How To Modify Attributes, Classes, and Styles in the DOM
I made about $3,000 writing articles.
I recorded my first ever (released) podcast with Joel Hooks of Egghead.io. I'd be interesting in doing more audio and visual based things in the future, whether it's recording more podcasts, making videos, etc.
It wasn't a particularly musical year for me, as I only got three songs done, and two were duets. Nonetheless, "I'd Like to Walk Around In Your Mind" is my favorite song I've recorded to date.
As of writing this article, I have 2,609 subscribers to the newsletter I send out every now and then. It's mostly been an email I send out every time I write a few new tutorials, but moving forward I'm thinking of rounding up some of my favorite relevant dev-related articles by other authors and linking to those as well.
According to Google Analytics, from December 15, 2017 to December 15, 2018, this website had 2 million sessions. About 1.9 million of those came from organic searches. Outside of the occasional Twitter or Reddit post, I don't market this site anywhere, so it's pretty cool to get so many hits.
Here's the list of what I wanted to learn in 2018 according to my last post, and the ones I achieved.
- How to create a secure authentication/login system
- How to create a REST API
- How update and delete entries in a database with PHP (CRUD)
- Multiple methods of sending emails with PHP
- Understand React, components, modules, props, state (article)
- Understand MVC concepts
- Learn CSS grid (ish.)
- Understand Flux, Redux
- How to set up Docker - How to build a blog engine from scratch with PHP (or Node.js)
Outside of what I planned to learn, here were a few things I happened to learn.
- ES6+ syntax
- How to rebase, merge, stash, and use branches in Git (working with a team)
- How to create and use Bash scripts
- More advanced SQL
- How to sett up a PostgreSQL database and create a REST API
- How to use
- How to work with content editable fields in HTML/React
- How to create and use CSS shapes
- How to use React hooks - How to poll from an API to make a chat-like application
Here's kind of a vague list of things I want to look into and improve in the coming year.
- Computer Science 101 - algorithms, design patterns, data structures, calculating complexity, sorting
- Node.js, the event loop, the Node module system
- Sockets, web sockets, understanding the relationship between client and server
- React Native, Electron - making apps for mobile and desktop with technology I already know
- Redux, Mobx - state management and observables in React and on its own
- TypeScript - understanding the importance of strict typing
- CI/CD and automation - I want to learn how to have a pipeline that goes from pushing a commit to Git to updating a develop + test environment
- Migrate my site to a static-site generator - I'm on the fence about this considering how much time and effort it will take
- Create a unit converter for Slack - I want to make a simple Slackbot that converts weight and distance measurements for communities that have members on both sides of the pond.
- Primitive UI React - Make simple reusable React components, ala Semantic UI React.
- Some lower level stuff
If I have a goal this year, it's that I'd really like to bring more art and music back into my life, something I've fiercely neglected.
I didn't accomplish any of my goals of 2018 except:
- Get a full-time job as a web developer
Having a full-time job is a full-time job, so I didn't manage to write any courses or books or make any video tutorials, but I wrote a lot of articles on the side and tried to have a life. We'll see where next year takes me!
Thank you all for reading and sharing and emailing me. I plan to keep going and learning and improving into the next year.