I worked through Columbia doing user support for the university's Unix systems group. I got a job on Wall Street like many classmates, but for which the hiring person (an equity analyst covering software companies) was specifically looking for a CS major; I was able to demonstrate that I had the equivalent background thereof.
I have been successful with computers because I enjoy working with them. I enjoy computers because it's a hobby, albeit one that has affected my entire working life. I suspect that I would not enjoy computers as much were it actually my job. Since it isn't, I have the freedom of being able to (for example) write Elisp[1] to improve VM, the Emacs-based email client I've used for almost three decades. While I may contribute my code back to the VM project someday, meanwhile I report to no one and have no deadlines other than my own. That's freedom.
[1] I well remember the epiphany the day in Logo class I realized what recursion is. I still feel like giggling when I find an Elisp task for which recursion is an effective solution.