Switching from C# to python need advice self taught developer (2.9+ years experience )
Posted by Professional-Cry6299@reddit | learnprogramming | View on Reddit | 14 comments
Guys, I'm mostly self-taught in practice. The past 2.9 years I've spent most of my time on my laptop — barely celebrated festivals, lived in a PG, ate bad food, grinded alone. I have a CS degree but COVID hit us hard — only 1 semester was offline, the rest were online or straight up cancelled. So I built my skills the hard way, on the job.
I started with C# MVC and grew into .NET Core and Angular. I'm not perfect but I know my stack and I built that confidence myself.
Recently I left my job to move to another country for better opportunities. I'm applying for .NET/Angular roles but sometimes my experience feels just short of what they want. A family friend suggested I add Python to my profile — and while I know I can learn it, the fear is real: what if I join a team where everyone already knows it better than me? What if there's a toxic colleague who sees me as a threat? What if I can't answer something in an interview?
The deeper fear is this — do I go deep on .NET/Angular and become genuinely strong in one stack, or do I keep adding things and end up master of none?
For those who switched languages mid-career — how did you handle the transition? How did you deal with feeling behind? What actually helped?
TumbleweedTiny6567@reddit
I switched from Java to Python about a year ago and it was a huge boost to my productivity, I'm curious what specifically is drawing you to Python after 2.9 years of C# experience, is it the data science aspect or something else?
Achereto@reddit
python is popular, but also extremely slow. You will build programs that have very poor performance and you won't have any good possibilites to optimize your code. You'll just be 100x to 1000x slower just because your program is written in python.
Instead, if you want to do web development, I would start with Go and maybe even think about libraries like HTMX instead of those big Web Frameworks. It'll give you a fundamentally different perspective on web development with will then translate to a deeper understanding of it.
Professional-Cry6299@reddit (OP)
Damn its like i knew English but I will need to speak spanish for since I am in other country just to earn and stay
Achereto@reddit
All programming languages are just assignments, if-statements and while-loops. The rest are idioms about how to organize your code. I learned python within a weekend for a job and got the job. Before that my programming experience was mostly php.
It's the idioms of the language that make people think those are completely different things, but they are not (e.g. "Dependency Injection" just means "passing object instances as arguments to a constructor"). These aren't fancy concepts, they are just fancy names for simple things.
Professional-Cry6299@reddit (OP)
Hey how long have you been coding since I felt your answer is great like most of time we are just twiking those loops and if statements but company are like we need some person with x years of expertise why don’t they give person a chance to go into their code base and have some work instead of guys knowing everything I know framework matter but html CSS and js that’s common in entire tech still after 4 rounds they tell a person no is heartfelt discouraging
Achereto@reddit
I started programming in 1998.
mancunian101@reddit
I think performance of the language isn’t really a consideration for most apps.
Compiled languages are faster than python, in most scenarios no one will notice.
Achereto@reddit
Unfortunately, most developers don't consider performance for their apps, yes. This is why programs are way too slow today compared to 20 years ago.
Well, I certainly keep noticing how slow a lot of programs are today. One reason why people don't "notice" is because they don't have a proper frame of reference.
To give you an example: If you start a program that uses less than 1GB RAM, you should expect it to start up instantly and be fully functional within less of a second.
If you open a website, the entire content should be available within less than a second as well. You should never under any circumstances have to look at any placeholders for the actual content.
Bad performance also harms your business significantly. If you develop the same service in Go and in python, you will be able to serve 100x as many customers per server when your service is developed in Go (compared to python). This means, you can cut your server cost by a factor of 100 if your product is successful and you need multiple servers.
Also Performance only ever doesn't matter until it does. I had that exact issue with one of the projects I worked on. It was written in python and since it was supposed to run as a background task, we never considered performance. A 300MB files taking 20 minutes to process was okay, because nobody was looking at a progress bar and waited for it to finish. It was just a tool that would run once a day... until a customer wanted "live" updates where "live" meant that the data should be at most 15 minutes old.
I had to completely rewrite how the tool processes the data and managed to get it under 15 minutes using python, but I also experimented with other languages. If we had chosen Go instead of python, we would have been able to process files as large as 3GB within a second or two.
So today we are stuck with the python solution and we can't really add new features to our tool, because with python we risk that this would slow down our tool for that customer.
I consider handwaving performance away with "in most scenarios no one will notice" is really bad advice. Instead, when programming anything you should always start with a baseline of a "best case". When it comes to processing files, your baseline should be reading data into memory and looping over the data once. This will give you the frame of reference you need to evaluate how much performance you lost with your implementation.
If you do that, you will notice that the performance loss can be significant even if you're not doing anything complex.
NeitherRecognition27@reddit
You’re overthinking it a bit - you already have solid experience!
Don’t “switch” fully. Keep your .NET/Angular as your main strength and add Python on the side:
Companies don’t expect you to be senior in both - they want strong fundamentals.
Also, that fear of being behind or judged? Everyone feels it when switching. It fades once you start building and shipping.
So go deep in your current stack, and layer Python gradually. That’s the safest and most effective path.
Backtawen@reddit
honestly go deep on .net/angular first. adding python because a family friend suggested it is not a strategy
the “what if everyone knows it better” fear goes away fast once youre actually on the job. nobody expects you to know everything day one
being genuinely strong in one stack beats being okay in three, at least for getting that first role,
And u don t wanna be asked questions you don t know how to answer
Professional-Cry6299@reddit (OP)
But the country I am in has less C# opening and yes may be I will f*ck my interview if they ask me why do you want to go with python sort also my family is just telling me to work in this country since it will just provide me some money better then my home country and I can build my home in my home country with it
Glad_Persimmon3448@reddit
that 2.9 though ...XD
bootyhole_licker69@reddit
language switch is fine, core concepts transfer fast, you’ll catch up. focus on one main stack though. and yeah finding any dev job now is a headache
Professional-Cry6299@reddit (OP)
Its like i will be junior with new stack like do they need one person who can do java,c#,python,php,javascipt,html,css everything nowdays from web to mobile development I am new to this sub but I need a guidance I will turn 25 next month and hell a its gone be 3 to 6 month hell for me again from what I became stable like our parents where atleast happy with one skill current market is so soul crushing