My most-used productivity app is todoist. I used it every day for tracking both personal and professional tasks. Here is how I use it as a professional programmer.
Breaking down complex tasks
This is the biggest benefit of todoist. I can create tasks with subtasks, which can nest infinitely deep. This is a perfect way to break down large tasks, in as much detail as is helpful.
Keeping track of where I'm up to
You will always have to deal with distractions, even if you try to minimise them. Having a detailed task list is perfect for knowing what you've already done and what still needs doing.
Making sure I don't forget miscellaneous jobs
Any professional needs a way to track tasks they've committed to doing, and especially ones which are not part of your core work. No programmer is going to forget to write code, but you may forget to call the colleague you promised to help, or to look at the pull request you said you'd review after lunch. Perhaps your manager always has to hassle you to put in timesheets because you don't think about it. Add these miscellaneous jobs to todoist and you don't need to remember them.
Remember tasks I want to do one day
Some tasks are dreams for the future, but not things you can do right now. I put those in todoist where I can easily review them in the future and schedule them when I have the opportunity.
Schedule future tasks
If you need to set aside a block of time to work on something, your calendar is probably the best place for that. But sometimes you don't want to impact your availability on your calendar. For example, you know you need to prepare for a customer demo at some point the day before the demo, but you can be flexible exactly when you do that. Put it in todoist with a future date, and you can forget about it until the day comes round.
(This last point does depend on having a lot of control over your schedule. If your calendar would be busy by the time the demo came round, you are better off putting the preparation in the calendar as soon as you know it needs doing.)
If you don't already have a system for tracking all your tasks like this, why not sign up for todoist and give it a go?