I'm a little over half done my CS degree. I love programming, Linux, etc. I am considering getting CompTIA A+ and Linux+ this summer with pirated Udemy courses. I do coding projects too, like I am almost done my homebrew NDS game, threw together a Tkinter pomodoro app last week, and in the past I made a command line program that computes a readability score on a body of text. Finally, I am participating in 100 days of leetcode problems together with my CS club. So I've done a lot to move towards coding professionally.
The question is what kind of career should I go for to suite my goals in life. I would like to be able to own a place to live in Quebec (don't live there yet) whether it is in MTL or a rural area, not sure what I want yet. So software dev. gets a point for higher income, I think, plus it's what I've studied for, mostly. But it's important to me too that I have free time outside of work and so can participate in social movements. Would working in helpdesk allow a better or worse WLB? Would it be more likely to be unionized and thus a better place from which to participate in tech labour struggle? I'd really like to achieve fluency in French and Chinese (currently a beginner and intermediate learner respectively) eventually, and maybe the IT world would have me talk to people more. Is it easier to break into than software, like, so much easier that it would be worth changing course, or just doing IT as a stepping stone for my first co-op (internship program in Canada) or two?
Interested in others thoughts on how to proceed here.
For the meantime I think I'll start the A+ course because it can't hurt, and keep working on my DS game, cuz it's almost done.
I don't even know if I want to do either of those professions, I could see myself teaching English too, to Francophones and Chinese especially as I want to learn those languages...
Thanks for your input. Web dev seems great and I've considered trying to deploy some kind of useful REST API, like for computing directions from one place to another on campus, probably with FastAPI in Python. Doing something with Docker is also on my todo-list...
That sounds like a fun project, and should give you a bit of a taste for how this stuff works. One more advice I would give is to not get overly focused on any particular tech stack. The key is in understanding the underlying concepts that are transferable. The tech space tends to be very volatile, and new languages, frameworks, etc. come out every few years. So, it's important to be able to be adaptable and figure out how to use new tools. Most of them aren't introducing anything fundamentally new though, so if you understand the core concepts then you can figure out how they map to the tool, and what problem it's trying to solve.
React is a good example of this, it's a really popular frontend library, and the problem it solves is that it's expensive to repaint stuff in the DOM of the browser. So, it keeps track of all the components, and then whenever the state of any components changes it can compute which components need to be updated and repaint them efficiently. However, the idea itself is not new, it's basically the concept of a frame buffer that's been used in games. Once you see what's it's doing then it's just a matter of learning the syntax.
So, basically, what I'm saying here is that you don't really need to worry as much about memorizing implementation details of particular tools or libraries, you can always look this stuff up when you need to. But, do make sure you understand how tools work conceptually.