Obviously, the answer may not be applicable to you, but here I put myself on your shoes.<p>- let's see, I'm 23. I'm young. How would I like to see myself when I'm 30? Well, probably with that CS degree I'm talking about, with some years of experience as a profressional programmer as well. Perhaps with some money saved (little, but something). At 30 I would finally be able to actually start making good money because I would have +7 years of experience, and I wouldn't have to worry about getting the degree anymore<p>- One doesn't need to be smart/intelligent to do programming, I know that for sure. I only need to put hours. Take it seriously, as an adult<p>- I would rather prefer to start working part-time (so I can earn some money plus work experience) and at the same doing the CS degree. Granted, it's going to be hard, but it's just a matter of perspective: the outcome (me at 30), that's the goal I really want to achieve. Maybe at the beginning (first 1 or 2 years) I would have to leave behind some time-consuming activities that slow me down to achieve my goal (e.g., too much videogames, too much social media, too much whatever...)<p>- Spain? That means the CS degree takes (on paper) probably 4 years to get. Probably the first years are the worst (maths, physics, electronics), while the last years are the "easiest/more interesting" ones (operating systems, databases, AI). Also, as I get work experience by working part-time, by the time I'm finishing the CS degree everything will look to me very easy to grasp (e.g., "I'm at my 3rd CS year. Lecture = "Relational DBs". Ah well, I have been working with MySQL during the last 2 years at my part-time job, I know what relational DBs are about! This is gonna be fun (and easy)"). So, it will be harder in the beginning (first 2 years), but then you'll have fun<p>Plan long term. Commit yourself to spend a significant percentage of your time to achieve your long term goals. As for the commute, are you working as a programmer? If so, there is probably remote-only jobs out there in Spain/Europe, find one (use Linkedin, golang.cafe, and similars. Do not use infojobs, monster and similars)