I work as an on-the-job trainer for software developers and have formal non-university education in both software development (and my primary language) as well as training and mentoring, and I currently work in the HR sector. My advise for you is as follows.
First, ask yourself what you're really struggling with. To do that, let's begin by looking at your situation.
- You've worked various coding jobs in different fields over time, and with different technologies
- Some of these included in-house coding (and maybe IT person)
- The current on is scientific
- You're clearly interested in technology
- You have at least one of the three virtues of a programmer: impatience
So you have a versatile background, and you're interested. That's pretty good. Given the degree you went for, you might likely also have a decent interest in and understanding of how business works and what's good for a company. That's a very valuable and rare skill to have in tech in my opinion.
Next, let's talk about the nature of your current position. I am going to make some naive assumptions. They're probably not all true, and the order doesn't matter.
- You work in a research company, so that's very different from working in a start-up:
- typically in academia code quality isn't as important
- maintaining a product isn't as important
- results are important
- You might be working with different technology than you did before.
- You might be running a lot of analyses.
- There might not be many people there to learn tech stuff from.
- The domain knowledge is likely much more important than the coding knowledge.
I would like to focus on point 5. You've said a lot about learning more programming, but is it really that? Would they have hired you if you didn't know how to write code? Could it be that the issues you're facing are more around the algorithms you need to write into code?
I can't answer that for you as you've not told us what exactly the nature of your work is. But the fact that online tutorials (probably for the language you're using) are boring and too slow for you tells me you are struggling with the subject matter. The solution to that can be addressed by asking the people who tell you what to code for help.
There's no shame in not knowing the domain well. Every developer always needs to do that. In most companies, that's why there are business analysts and product managers and all kinds of experts. Your job is to be the expert in translating what they know into code. It's OK to ask them to help you understand their area of expertise. That's their job.
You clearly didn't need the formal education in tech to land this job. In fact, most companies require formal education for career starters because they have nothing else tangible to measure your skills on. But what you learn in, say, a comp-sci degree is often not at all related to a developer job. I'm from Germany, and most software developers there don't go to university, but do practical on-the-job training instead. Personally I firmly believe that a uni degree is not required to be a good developer.
Then there's the unhealthy work environment. Does everyone work these extremely long hours, or is it just you? If you were faster understanding the problems you have to solve, would you still need to work that long? Are you happy with the company and the team, apart from that you feel you're struggling?
Again only you can answer these questions. You've reached out here, so you are aware something isn't right. Think more about what is.
Finally, if you want to get more experience in coding, having someone to help is essential. Normally there would be someone more senior at work to help you. If there is not, I suggest you find someone outside. If you have friends who work in tech and are more senior, ask them to review some of the things you've done. Don't go exposing your entire work product, or sending pieces of work code to people, but show them code, explain to them what you were trying to do, and take their feedback.
There's the Code Review Stack Exchange as well, which can be really useful if you're unsure about things. Again, don't post full work product there. You probably don't hold the rights on the code, and stuff posted to SE is automatically licensed in a different way. Rewrite some of it to be more generic, for example. That's a good exercise in itself.
There might be local meetups (or now online at the moment) of developer communities for either coding in general, or your specific technology, like your language (this is mine), your database product, Linux or similar. There are also groups for mentoring beginners, sometimes with a background of minorities in STEM (like codebar), or for women(like Rails Girls or ngGirls). Don't be afraid to go to them even if you're well into your career. Most people are eager to help, friendly and welcoming.
If that's not enough, you might want to look at online services where you can buy mentor hours with professionals. A quick Google search has given me https://www.codementor.io/, which I've not used and am not affiliated with.