It's been a while since I worked on a meaningful side project. I shelved my C program in favor of a command line Java program. The idea is for it to run like you'd run javac or similar commands: app [-flag] [options]. In addition I'm doing it outside of an IDE. I'm making use of Maven as a build tool and jumping between VS Code and Atom for editors. I'll probably settle on VS Code because it's a more familiar feeling for me, but I like to dabble with other tools from time to time.
So far I've had to learn about:
Maven from the command line
Java and javac and their flags
Makefiles (I initially tried to use a makefile for a one-stop-shop solution to building and running, but quickly found out it's not suitable for a Java project with nested directories)
TDD. I'm trying to do it legitimately this time rather than getting bored writing tests and just writing code instead.
Java.util.UUID class. If only I had known about it a few years ago
Java.util.Properties class. I'm about to extend it and add a few enums and constants so later use is streamlined. Something else I wish I would have known about. I actually might do some further functionality to make it work with JSON rather than XML, but we'll see.
When it's all said and done I might see about getting it released to a Linux repository so it can be downloaded like a legit package.
It's about all I can do to make up for being passed over on some bullshyt . Portfolio build and add skills.
TDD is more valuable than I can even articulate in a single post right now, shyt just goes so wonderfully when you have a well thought out plan and test while building.
If it's not a part of your company's culture, you won't have time to do it, especially if you're working on client projects as it won't be factored into the estimate which will lead you to abandon TDD.