You don't work in software. Yet.
Good luck with learning! Find fun problems to work on, like making games or programming your lights. Perhaps scraping web pages for content and emailing you. Automate some small things. If you keep having fun, you'll stay motivated.
The more you build, the better you'll get. It just happens naturally. You'll think, "I could have done this better by doing X instead", or, "I could have organized this more efficiently".
Before you know it you'll be ready to make a career jump (if you want to). A lot of people in our industry never went to university and studied on their own.
A few recommendations:
Learn lists (aka vectors, arrays) and dicts (aka hashmaps, maps, etc.) These are the core data structures in scripting languages like Python. Knowing how to use them effectively with looping constructs is key to becoming a good programmer.
Next learn how to organize your code. Functions, classes, and files where appropriate. You'll learn this naturally as you continue to build things. You'll also learn by reading other code.
Use libraries to accomplish work that other people have conveniently made easy and packaged for reuse. Image processing, HTML scraping, game engines, website frameworks, etc.
When you graduate this and want to become more "academic", you'll want to look into two areas especially :
- data structures, which are things like arrays, linked lists, hashsets, etc.
- algorithm analysis, which will teach you how to write efficient code (big-O notation and analysis, etc.)
You don't necessarily need these, but they're a huge leg up. Mastering them can get you into FAANG.
If you like web stuff and servers, look at distributed computing. Also look at principles of operating systems to understand how threading, virtual memory, etc. etc. work.
Hopefully this helps. It's not stuff you need to jump on right away, but it can be a roadmap for the next few years.
Best of luck! Hope you enjoy everything you're doing and never feel discouraged. There are always people out there that are better than you, and it doesn't mean you aren't good yourself. Don't doubt what you're doing.
You got this.
seems like a good gig, imo.
I’m working on getting out of being a headhunter (a decent, honest, technically minded one who actually listens, but still with all the bad actors it’s hard to have prod in my career) into software development. I’ve always been fascinated with computers ever since programming my BBC micro first in basic then assembly.
Family reasons meant i needed a short term job (12 years ago!) so I put off learning and dropped out of university.
I’m able to spend the evenings and weekends learning now -I’m fascinated by iOS development, Swift and learning all the apis.
Motivation hasn’t been too hard to find but seeing light at the end of the tunnel has and this post resonated with me because I understood a lot of it and thought that I have come a little way after all.
Thanks for taking the time to write this.
Automate the Boring Stuff with Python is a fancy course if you're interesting in something fun.
ive worked for small shops from the ground up, starting with mostly off the shelf hand tools and paper records, and moving into automated and well run repair businesses. The key i think is to find a company that realizes when they are squandering your potential and takes action before you're gone.
I went from brakes to suspension in 3 months and from there with consistent demonstration of talent, became the shop lead, then master mechanic, after 4 years. Im not so much a guy who twists oil filters anymore, but I'll still walk the floor and see whos doing what. I'll check our ticket queue to see what hasnt moved, or if parts in the crib need stocking. In my line of work we call it 'old timers.' guys who know and have the experience to guide, but dont necessarily care to leave the comfort of a comfy chair very often. Not a manager, but the first line of defense against having to talk to one.
I go out to fleets and take part in bids for maintenance jobs, not because Im a good mechanic, but because I know which mechanics I work with that are good for certain things. Im also known for bringing in a bucket or two of fried chicken for lunch on the weekends. I still have a workbench in the repair area, but my coworkers mostly leave weird parts I might enjoy or tricky problems to solve that nobody else has figured out.