DevQuestions with Tim Corey
I am Tim Corey. I teach coding online and my inbox is full of questions from current and future developers. I wish I could sit down with each of you and share the answers I know will help you go further, faster in the world of development. This podcast is the next best thing. On this podcast, I will answer the biggest questions people are asking! Send us to your suggestion for a future Dev Questions at https://suggestions.iamtimcorey.com/ To keep the podcast coming, like, subscribe, rate, and share it with your friends and colleagues. See why thousands of students have chosen to learn to think and code like a professional developer at www.DevForge.com.
DevQuestions with Tim Corey
124 Should I Know Linux as a C# Developer?
Use Left/Right to seek, Home/End to jump to start or end. Hold shift to jump forward or backward.
Should I know how to work with Linux as a C# developer? Is it important to know how to use Linux if you are building cross-platform C# applications? Should I use Linux? These are the questions we are going to answer in today's episode of Dev Questions.
Website: https://www.DevForge.com/
Ask Your Question: https://suggestions.iamtimcorey.com/
Sign Up to Get More Great Developer Content in Your Inbox: https://signup.iamtimcorey.com/
Welcome to the Dev Questions Podcast with Tim Corey. Join us each episode as we tackle the questions you are asking about a career in software development, understanding the industry, and new technology. If you're just starting out or you want to grow stronger as a developer, this is the place to get your questions answered. Now, here's your host, expert developer and online educator, Tim Corey.
SPEAKER_02As a C sharp developer, should I know Linux? That's a question that came up on the suggestion site, and it's one that I think we should dive into in today's episode of Dev Questions. Now, if you have a suggestion you'd like to see answered on a future episode of DevQuestions, go to suggestions.imtimcorey.com and leave your suggestion there or upvote an existing one. Hopefully you'll see your question answered on a future episode of DevQuestions. Okay, let's talk about Linux. Do you need to know it as a C sharp developer? I think maybe it depends. That's probably the answer you're gonna get for every question, right? But I think the answer really is eventually. Sure. That's a thing you should learn at some point as a C sharp developer. But when it comes to learning anything, it's easy to get distracted. It's easy to get the shiny object syndrome, where you start learning something and it's all fun and it's enjoyable. And then you're like, ooh, I need to go over here and learn that because that's now shiny. Because I kind of got bogged down over here. And then you start learning that, and ooh, I'm getting bogged down, but that's over there. I need to learn that. And you kind of bounce around and never really learn anything. So I think you should learn Linux and know how to at least interact with it. But when you learn it is important. So let's talk about, first of all, uh why you should learn something, and then when you should learn Linux specifically. So why should you ever learn anything? Well, you need to have a reason for it. You need to have some purpose behind it. Now, that purpose may be just, I want to do something for fun. Cool, that's great. It might not be, you know, for your job, it might not be the next specific thing you want to learn, but sometimes it's just fun to learn stuff. And that can be totally okay and a perfect thing to do. So in that case, do whatever. Do it whatever you want to learn. If you're just doing for fun, then sure, experience it, try it, learn something new. It's a new operating system to you, then go for it. Um, but usually the reason to learn something is that you want to use it at some point. So let's look deeper into what the order should be, because that's the next thing is if you're not just learning it for fun, if you're learning it because you think it's gonna benefit you, you should figure out where it fits in the order. So I'm gonna approach this as a C sharp developer. If you're learning C sharp, where does learning Linux fit in? Well, let's talk about the the general order for learning C sharp. I think you should start with C sharp on Windows in Visual Studio, if you can't. Start there. It's the easiest place to start. Visual Studio on Windows is designed to be the best possible experience for building C sharp applications. Now there are other tools out there like JetBrain's Writer. Maybe you like that tool, great, but I wouldn't start there. I'd start with Visual Studio. Learn the free tool that's been designed for the last 20 years to build C sharp applications. Start there because it's the easiest place to get started. Then learn the actual language. Don't focus in on the shiny stuff, focus on the actual code because the code is what powers every user interface. So learn the code. Then, once you have a pretty firm grasp on the code and the syntax, and you started that, build a few small practice applications. Kind of get a feel for how to build a real application in practice. And then maybe from there you start into web projects. I highly encourage every developer, whether or not you think you're ever going to use the web, whether you think, oh no, I'm always focused on the desktop, learn the web too. If you decide I want to learn the web only, learn desktop too. But when you get to the point of learning web development, which should not be until after you have a really firm grasp of C sharp itself, including object-oriented programming. But once you get there, and once you have a firm grasp of HTML and CSS, and maybe even a little bit of a JavaScript, but have that firm foundation, then go into C Sharp web development. At that point, learn how to build some applications, but then learn how to deploy them to Linux hosts. Now you can deploy to a Azure Linux instance, very easy, and there's not much you have to know. But then you can start working on deploying to a general Linux host, a one that's not associated with Microsoft. And then from there, I would encourage you to learn Docker and learn how to deploy to a Linux Docker container. You're going to start to learn a little bit about Linux, especially the command line of Linux, the shell, and you're going to learn how to work with the Linux operating system for a specific purpose, for a use, and that is to host uh containers of your web application on Linux. Once you do that, then I would look into Windows Subsystem for Linux, which is a way to install Linux on Windows and really run a lot of Linux uh systems and applications on Windows, but it's using Linux. It's actually an installation of Linux. I would encourage you to go there next because you can do a lot of things with Linux tooling, but in a Windows environment still. So you're not you're kind of putting one foot in, but you still have that one foot firmly on Windows that you're used to and know how to interact with. So you're starting to kind of go there again for a purpose, to use tools to expand your ability to do things on Windows, but using Linux tooling. And then if you decide, you know what, I really want to understand this desktop, I really want to use a full Linux desktop, go for it. Install Linux on a machine or in a virtual machine, whatever you want to do, and just try it out. But at that point, it's optional, and that's more for broadening your experience even further, not necessarily for any specific tool or use in C Sharp. You might want to build a desktop app using uh the Uno platform to put it onto a Linux desktop, in which case, sure, you need to know Linux and know how to use it, and so try it out. But I think that's kind of the order you want to go into, where you are learning it for a purpose. And so you're learning more specific things than just general, oh, I've got Linux installed and it looks kind of like Windows, but different. You learn it for a purpose and learn to use it in a way that makes sense and that pushes your career forward and pushes your applications forward and broadens your experience as a developer. So, should C sharp developers learn Linux? Yeah, eventually. So that's the way I see the answer to that question. I hope that answers your question. If you have a question, again, go to suggestions.iamtimcorey.com and leave it there. Thanks for listening. And as always, I am Tim Corey.
SPEAKER_01Thank you for joining us for this episode of Def Questions. Tim is committed to making it easier for you to become a developer. If you would like to help make more content like this possible, please like, subscribe, rate, and share Dev Questions. You can also send your questions to questions at IamTimcore.com. Until next time, remember, you are too smart and your time too valuable to waste it making all the mistakes Tim did. When you're ready to learn to think and code like a professional developer, head over to Iamtimcorey.com and enroll in a course.