Hello to all of you :)
I have been following this portal for quite some time then registered and tried to talk to some of you.
To be honest, this is my first post around here. I would like to know your opinion about my learning curve which in my case is very different. I have read articles of people doing one thing and moving to another after a big amount of time. Actually, I am not that person but I am trying to do my best.
I have seen a post of a girl who was a little annoyed that she is getting declined on a job interview, but people did leave her some suggestions. I think that it does take courage to leave such a post on such a big portal like dev.to
So I thought about sharing my problems and maybe getting any suggestions or action points from all of you :)
Let's go. I have started learning Linux quite some time ago but it was never a development operating system for me. I always have ended up installing the system on a virtual machine and doing apt-get update and apt-get install, leaving the machine un-touched and then removing it. Due to my passion for photography, I was always using Windows. Games where always the point of my interest.
Then I went to become an engineer. I had csharp at my University and even wrote some small projects in it. Mostly console application without any superb purpose. I have even written a calendar with sync for windows phones - it was that time when Nokia was bought by Microsoft.
I was learning csharp for quite some time but never used it commercially. I have worked for a company which did use a SharePoint with csharp but I was on the front-end with typescript and kendo.
Nowadays I went through a rough road and bought so many great books to start learning csharp from scratch. Created a big curve for my own development and started to push toward .net with all the possible knowledge I could get.
I work in the QA department, in a company where they make network hardware. Linux is the host environment I am using all the time and to say it louder I love it. I have become lazy to learn csharp but instead, I have learned rust, bash, and even python become my close friend with Tkinter GUI stuff to mess around.
Is this the wrong approach and should I leave the whole Linux stuff and come back to reading and learning csharp?
Or is it ok to stay close to Linux and sometime later try csharp again?
I would like to know if someone had the same road? Was it hard? or was it ok for you?
Did it take so much time?
I would like to hear some opinions and suggestions on this because going deeper with rust and python makes me feel a little (to be honest) overwhelmed.
Thanks in return.
Top comments (3)
Welcome to the dark side, we have the best of all worlds (YMMV!):
docs.microsoft.com/en-us/dotnet/core/
At work I'm currently porting a large project onto .NET Core / Linux from .NET Framework / Windows, so we can component-ise & scale it in AWS or other public cloud hosting - it's fun!
Advice (with a pinch of salt): always follow your interests, read widely, learn with a purpose (set a goal, solve a problem at home or at work) and only measure yourself against you yesterday, never others. Find your own pace & find a mentor!
Personally, I've grown up with the changes from the early 80's (eg: worked with VMS, MS-DOS, Windows, MacOS, Solaris, Linux, while learning C, ASM, Java, CS theory, C++, Perl, Python, Ruby, C#, Rust, Go, design patterns, ...) thus my learning has only had to keep up with the technology, not catch up! My learning has always been in bursts, driven by immediate need, to pick up the useful 20% of a technology, then if I continue to use it (hello vim!) I slowly learn the remaining 80%, while trying to make real use of it. What I found for me is that I learn best focussing on one thing at a time, eg: working through the basics of a language such as the dive-into-python course, or reading through a good book on database refactoring (no really), then applying it immediately to something concrete - this either helps it stick or I decide it's not going to work for me - failure is an option :)
Linux is a pretty essential piece of the software development world. I wouldn't recommend "abandoning" it at all. You should take the time to master it. And anyway, as @phlash909 said, you can develop with C# on Linux thanks to .NET Core.
With that said, Python and Rust are both excellent languages to learn. You should learn languages based on your interests and needs, NOT based on popularity. Fads come and go, so don't factor them in. Find what you love and do it.
If you keep finding yourself feeling "caught" between Windows and Linux, you should consider dual-booting your system, wherein both operating systems are installed directly on the hard drive. This way, every time you turn on your computer, you can decide whether you want to boot to Windows or Linux. (Send me a DM here on DEV if you'd like some help; I've done this quite a few times.)
Alternatively, if you have two laptops around, you can put Linux on one, and Windows on another. That's my current scheme: my main laptop,
TARDIS
, runs Ubuntu MATE 19.04, and I have another machine,PANDORICA
, running Windows (although I rarely use it). I actually also have a third laptop,ENIGMA
, for Slackware. I buy all my laptops used and repair them.P.S. Since you're into photography, on Linux, I recommend you check out Darktable and RawTherapee.
I'm not really sure what you mean by asking whether or not it's ok for you to stick with Linux? This all depends on your own personal and professional preference. As Phil Ashby has pointed out, .NET Core is cross-platform and you can write C# on Linux. That being said, there was MONO before that so you always could.
You say that "going deeper with rust and python makes me feel a little (to be honest) overwhelmed" - you will experience the same thing going deeper into C#.
I think delving deeper into any subject is going to become overwhelming.
Here's what I would say - If you enjoy doing python and rust and find that those skills are marketable for you then stick with it. Even if it's overwhelming. Why do you feel like you must learn C#?