My Year in Programming (2023)

Bradley
3 min readJan 3, 2023

--

2022 was a good year in terms of Software Engineering for me. I finished my first year of University, worked as a Software Engineering Intern at Redgate Software and finally made the basics of my website (bradleymcgill.co.uk).

Losing Connect 4 at Redgate’s 21st birthday celebration

What I didn't do much of in 2022 on reflection was work on my habits or any personal projects. That's why this year I’ve decided to set some goals for myself, this way I can manage my progress and have something to work towards.

That's what this post is. A summery of my goals and tasks I've set for myself.

GitHub Usage

GitHub is an important tool in any Software Engineers belt but I’ve found myself only using the bare basics or even omitting GitHub from my workflow when taking on personal tasks.

This year anything I work on will be backed up using GitHub and I'm going to invest some time into working out some of the more advanced features.

Work on my Planning

Planning has always been a weakness of mine. I tend to rush in with a quick sketch in my mind or a broad overview of the features needed on a bit of paper. You don't need me to tell you that this has caused many problems in my programs causing me to restart.

This year I will plan all the projects I do out on paper with something more in depth than just notes.

Strict Typing

I’ve fallen into the trap of generally typing variables or allowing a compiler to decide for me over the past year. I want to stop this habit especially since I will be using TypeScript this year. An example of a stronger type would be a DateTime instead of a string or int.

This year I will strongly type my variables, creating new types if the situation is appropriate.

Writing about what I do

This is more for documenting problems I overcome. Many times when I write code I find an interesting problem and solve it but subsequently I find myself unable to remember or find my solution when a similar problem comes up.

This year I will be documenting interesting or difficult problems I come across when writing my code

Weekly Websites Challenge

I have noticed that while I code quite a bit independently I don't have anything to show for it. This is why I will be working on this challenge for myself.

Every week of this year I would like to create one page for a website. These pages may not be complex while others may take lots of work over multiple weeks. But at the end of every week I would like to have one page (or feature depending on how well it goes towards the end with ideas) completed and published.

Composition over inheritance

Something that I haven't put much effort into working with is preferring composition over inheritance.

The basic idea is that inheritance creates high coupling and can make it hard for Software Engineers to modify the code later as the base class may not be suitable for the new purpose. Composition fixes this by abstracting common attributes and the classes using that set of methods or classes.

This year I want to experiment with composition and try to make a conscious effort to use it in place of inheritance.

So that's my plan for the year, a few goals to reach that can be realistically achieved. Some interruptions may occur due to University but other than that I’m looking forward to it.

If you would like to follow my progress, I will be posting about it on here (https://medium.com/@bradley_12936), Twitter (https://twitter.com/ImBradleyMcGill), and I will add a link from my website (http://bradleymcgill.co.uk)

--

--