Have you ever felt your life is going nowhere?
To provide some context: programmer in his early 30s from Costa Rica (Latin America), 3 years of experience in backend development (mostly Python and Go), second year of CS major and second year of math major (i.e., no degree yet).
Initially, my idea was to grow a career in academia by combining computer science and math (e.g., research in formal methods/applied logic). However, I have been struggling with courses for years, as I don't feel capable enough and drop them. I'm aware I sabotage myself by belittling myself, but no professional therapy nor meds have helped.
Plan B would be building CRUDs for the next decades to come.
I don't feel I have the moral authority to call myself a professional, as I don't have a degree yet. Even with a CS degree, I would feel I don't really know my stuff deep enough. That very intellectual curiosity led me to taking math, but I lack the mathematical maturity. I might actually lack "algorithmic maturity".
Development jobs that are good enough are rather scarce in Costa Rica. Recruiters just discard my CV, except for the actual jobs I've had (which I have quit).
Working in the US or in Germany (fluent in German) could be an option, but companies and authorities there expect a foreign skilled worker to have a college degree related to their job position.
I also considered starting a software business. But growing a profitable business idea requires an immense amount of stamina and focus (I lack both), finding customers is really hard, etc. So I discarded it.
Every few months I ponder about ending my life (I did actually try 15 years ago), as I never see a way forward. Depression and anxiety disorder (I have both) are indeed career destroyers: academia/companies are wise to ignore you, as you are perceived as unreliable to endure hard tasks. For recruiters, you are just a risk to be avoided.
I do develop CRUDs for a living and I like it very much.
I call myself a professional software developer without a degree and I am proud that I was able to change careers and become a developer, even if I am no "Google material" nor I will ever use sophisticated algorithms in my work. Just saying that to encourage you to be proud of your skills too.
Contractor jobs might be a way to accommodate your needs and avoid the obstacles that depression and anxiety create on getting a regular job.
If professional development is a way you do see as a path to make your life "go somewhere", I would encourage you to create a profile on Upwork and spend time applying to jobs (with your experience you will have a lot of options to apply there). Directing your effort to succeed on Upwork might be beneficial beyond the financial reward.
I would also encourage you to extend this request for advice to some of your close friends and family.
Again, all this is just trying to offer support and encouragement and I sincerely hope you find your way.
If you think any of the above advice is valid, feel free to send me an email (on my profile) and we can talk more.
Good luck
At the end of the day, do what you enjoy and focus on that because the worst case scenario is you "waste" time doing something you love.
Having depression I can tell you its really friken hard to stay motivated but I assure you no matter how bad you feel, it will get better and no matter how hard depression hits you, your not alone in that feeling.
My suggestion is to find a depression group so you can work on mental health and self love first. Once you have a handling on that move forward and do something you love.
Sorry for the long winded answer. I'm brand new to the board and your post struck close to home.
You are just a few years in the industry and is already thinking you are going to be the very best, or that CRUD applications is an easy task or whatever. Maybe quit reading HN as the community here gives a very distorted picture of the dev community.
I've been coding for 20 years(16 paid) and I'm 31 and it takes literally ages to get really good. I still work glueing APIs and it is just fine.
Take your time to finish your disciplines, don't try to do too much at the same time. It is fine if you don't end up being those top people, industry has plenty of space for people with all skill levels.
Again, take your time.
I'll focus on my CS major, even when I'll probably be over 40 when I finish (due to the several next crisis along the road).
In my last job, I found great joy in reverse engineering (interoperability with a quarter-century proprietary legacy system). I also find cryptography and cryptanalysis amusing (applied abstract algebra is nice).
I would like to focus on that career path. Job openings involving those areas are mostly security-related.
But I fear a possible toxicity in that adversarial role (i.e., last line of defense against a whole industry of malware and malicious actors). I can only imagine future burnouts and extended anxiety while dealing with the ever-increasing work demands.
How realistic is that gloomy scenario in InfoSec?
P.S. Cryptopals [1] and Dennis Yurichev's reverse engineering challenges [2] seem quite reasonable for practicing/learning.
There are plenty of Capture-the-Flag, Crackme, wargames, programming challenges, etc., but initially I'll do these.
Based on my experiences I would suggest dropping the math major and concentrate on graduating with the CS major. Do they have 3 year degree courses or only 4 year? In other words make your goal the MVD (minimal viable degree).
With the degree and 3 years experience you would have better employment prospects than by dropping out and just relying on your experience to date.
If your intellectual interests require it, you can always do some post-graduate study on a part-time basis. Having spent some time teaching and researching in academia, I would suggest doing some in-depth research and talk to people before committing to that path. It can become quite bureaucratic and grants focused and thus more stressful than the majority of jobs in commercial settings.
Do not create such rules, you do not have to simultaneously study maths and CS, work, think of business. You do not have to struggle for the next degree dreaming that one day you will a real programmer. You already are as you write code and try to be better at it.
Life is happening now, focus on living your days now: code if you like it, study your minimum to get a paper if you want to relocate. There is no goal in life, no direction, only process that you can try enjoying.
Read Courage to Be Disliked. It is a good book, it may address your anxiety. Seek for someone to share your thoughts and problems, or seek how you can help people around.
Jobs in tech can be varied. You could be writing code, you could be testing code or you could become an architect or work with customers in some technical capacity or even teaching. The most important part in coding is getting the design. With any design there is no one correct solution necessarily and you have to view software development as iterative, even more so in a collaborative environment. So go easy on yourself.
I would recommend you look into cognitive behavioral therapy as well. Pick up a book from the library.
Find time for you friends and keep a regular social routine. It could be lunch or coffee, I would avoid alcohol.
I have several degrees, but that's not how I judge someone a professional. There are lots of people with degrees that nonetheless are quite unprofessional. A professional is someone who reliably solves people's problems.
Although your story is rather similar to my own, not sure what to advise career-wise. If you haven't already looked, you might check out various kinds of system administration. Knowing how to program and a bit of math are super-powers in that realm.
Good luck.
Start with that feeling. Why do you feel your life must go somewhere?
You might be medically depressed. Im no doctor. Consider visiting a therapist rather than seeking answers from internet strangers.
If manage to come to Germany it's a nice country to live in.