I could be considered lucky. I've forged a career in technology and programming for a living without any official qualifications or certification in my chosen field.

Many people who get hired now will have read job adverts indicating that some form of Computer Science degree or equivalent is preferred.

To get one of those, you need to have racked up a mountain of debt, and created life experiences during those years at University, either as your first venture away from home on your own or travelling to a nearby one if you are so fortunate.

Why I did this

I managed to get an apprenticeship at a local security printer, working in their IT Department. I dropped out of college, which I wasn't enjoying, to start my first full-time job, working for next to nothing.

My main job was to learn to code and become the next "programmer" for the company. But as part of a small team, we looked after anything to do with computers.

I was exposed to programming, with some very experienced and clever people who taught me the ropes. But I also had to learn other things that the IT department were responsible for.

That included learning how computer networks worked (including running and wiring out your own network cables), and how servers ran. How you managed software licenses for a whole company. How different types of printers worked. How to Help Desk for computer illiterate people and many other things.

The point is, that I was never taught the basics of Computer Science. I was schooled in Visual Basic 6, bits of UBL (Universal Business Language), and later C#.

There are obviously benefits to all that. I jumped straight into a job and was gaining real-world experience and without having to get out a student loan.

However, I'm now at a stage where I wish I had that Computer Science degree. I didn't know what I wanted to do at that age so I probably would never have chosen to do this anyway. But now I have hindsight, I have thought about how it would benefit me to have a Computer Science Degree under my belt.

What I did

I decided that I would use this tool called ChatGPT, which you might have heard of. I put in my current experience and that I wanted to see how feasible it was to learn, what I might have learnt whilst completing a Science Degree.

My plan was to try and find reading material, projects and tasks to complete, and maybe take some exams if I was able to.

The aim was to try and find what I could do in my spare time when I wasn't working in my current full-time job or parenting or any other hobbies.

I also wanted this to be mostly cost free and where I could learn from my desk at home. I didn't want to travel and actually have to go to a university, sit in lectures, or meet people. Urgh.

The final part was that I wanted links. I didn't want it to just tell me what I needed to do. I wanted some options for where I could go after this conversation and look into things it had suggested for myself. I'm not blindly following what it tells me to do.

The Plan

Here is a formatted guide. I went through it's advice and checked out the resources, putting together the plan you see below. I'll be looking to go through this myself and if I do manage to do this, I'll report back on how it went.

I found there are many structured resources and plans designed for self-learners, often used by professionals.

1. Follow a Self-Paced CS Curriculum

2. Get Certifications

Certifications can add credibility without a degree:

  • AWS Certifications (e.g., Cloud Practitioner, Solutions Architect).
  • Google IT Support Professional Certificate (Coursera).
  • CompTIA Certifications (e.g., Network+, Security+).
  • Coursera Specializations in Data Structures or Algorithms (University of California or Princeton).

3. Use Free and Paid Resources

Free Resources

  • freeCodeCamp: Focuses on practical coding with projects and certificates.
  • Khan Academy: Algorithms, cryptography, and other CS basics.
  • GeeksforGeeks: Tutorials on algorithms, data structures, and system design.

Paid Options (Often Free with Financial Aid):

  • Coursera: University-level courses with certifications.
  • edX: Professional certificates or even full degrees.
  • Udemy: Affordable, targeted courses on practical CS topics.

4. Hands-On Practice

Coding Platforms

  • LeetCode: Practice data structures and algorithms.
  • HackerRank: Competitive programming and system design challenges.
  • Exercism: Language-focused coding exercises.

Build Projects

Create a personal GitHub portfolio with projects showcasing algorithms, system design, or application development.

5. Explore Certification-Backed Exams

If you’d like something akin to university exams:

  • CLEP (College-Level Examination Program): Test out of certain college-level CS topics.
  • Stanford Online or Georgia Tech OMSCS: Offer affordable, part-time online Master’s programs, even without a traditional CS degree, if you meet prerequisites.

Suggested Plan:

1. Start with CS50 to get comfortable.

2. Follow the OSSU roadmap for structure.

3. Practice coding on LeetCode or HackerRank regularly.

4. Build and document projects on GitHub.

5. Pursue certifications for credentials.

Final Thoughts

There are a lot of resources in there, but the suggested plan seems like a way to guide yourself through all of those resources, and the CS50 seems like a good place to start, and interesting even if you don't want to complete the whole thing and get certification out of it.

It proves that there are a number of resources out there to help you get where you want. Hopefully, I can fill in the gaps in my knowledge and prepare myself for future jobs and skills that I need to learn.