Latest / DevQuestions with Tim Corey / 151 How Do I Become a C# Expert? One Simple Trick!
Transcript
- 0:00SPEAKER_01: Welcome to the Dev Questions Podcast with Tim Corey.
- 0:03SPEAKER_01: Join us each episode as we tackle the questions you are asking about a career in software development, understanding the industry, and new technology.
- 0:12SPEAKER_01: If you're just starting out or you want to grow stronger as a developer, this is the place to get your questions answered.
- 0:19SPEAKER_01: Now, here's your host, expert developer and online educator, Tim Corey.
- 0:26SPEAKER_02: How do I become a C Sharp expert?
- 0:29SPEAKER_02: This is the question that comes up a lot because people are trying to figure out okay, I've started down the path towards becoming a C sharp developer, but how do I get to that lofty goal of actually being an expert developer?
- 0:42SPEAKER_02: How do I get there?
- 0:43SPEAKER_02: So that's the question we're going to answer on today's episode of DevQuestions.
- 0:47SPEAKER_02: Now, if you have a question, go to suggestions.imtimcorey.com, ask your question there, and hopefully you'll see your question answered, like this question is being answered from that site.
- 0:57SPEAKER_02: Okay, so let's talk about how you become a C sharp expert.
- 1:02SPEAKER_02: And really, you already know the answer to this, but I think there's a lot more nuance we can talk about.
- 1:08SPEAKER_02: So let's first start with I'm gonna ask you a different question.
- 1:13SPEAKER_02: And the answer to that question will help start the answer to your question.
- 1:18SPEAKER_02: So the question I'm gonna ask you is how do you become a marathon runner?
- 1:24SPEAKER_02: Now there's lots of depth you can go into about how to train, how to prepare, but at the end of the day, what's the answer?
- 1:32SPEAKER_02: The answer is to run.
- 1:34SPEAKER_02: It doesn't matter how great your shoes are, or what type of clothing you're wearing, or how many times you watch training videos on the right form and the right pattern to run and all the rest, at the end of the day, that doesn't really matter if you don't go out and run.
- 1:52SPEAKER_02: And in fact, those things will help you by percentage points, but the biggest thing that will help you, the vast majority of your expertise will come from running.
- 2:05SPEAKER_02: So as a I've observed, I'm not a marathon runner myself, but I've observed friends that are.
- 2:11SPEAKER_02: And one of the things that is interesting is that when you're trained to run a marathon, you don't just run 26.2 miles over and over again.
- 2:21SPEAKER_02: You don't run, you know, 13 miles over and over again and build up to 26.
- 2:27SPEAKER_02: Oftentimes you're running four to six miles, four to seven miles, and that's a good day if you run four to seven miles, really shorter runs.
- 2:36SPEAKER_02: And then there are times when after you've done that for a while, you do a longer run, maybe 11 miles or 13 miles, and then you go back to those short runs again.
- 2:46SPEAKER_02: And it's not just this, let's get to 26 by continually trying to get there, running, you know, 18, then 20, then 22, then 24.
- 2:55SPEAKER_02: You don't do that.
- 2:56SPEAKER_02: Instead, you run these short little spurts and then you run occasionally longer ones until you then run a full marathon or run a practice marathon.
- 3:08SPEAKER_02: So the same thing is true for software development.
- 3:12SPEAKER_02: When you are learning to become a C sharp developer, whatever stage you're at, whether you have just started C sharp development or maybe you've been working in C sharp for years, the way to become an expert is first to do little practice over and over and over again, consistently practicing new things.
- 3:34SPEAKER_02: And then occasionally putting those practices together into a bit larger of a project, not a real application.
- 3:43SPEAKER_02: This is another way that there's a parallel here between running and learning C sharp as an expert.
- 3:50SPEAKER_02: And that is that when you're running, you don't run anywhere specific.
- 3:55SPEAKER_02: Meaning you don't go down and find an event that's having a run and say that I'll only run in events.
- 4:03SPEAKER_02: I'll only run in races.
- 4:05SPEAKER_02: You don't do that.
- 4:06SPEAKER_02: In fact, that's not the place you'd run your first time or your 50th time.
- 4:10SPEAKER_02: Usually you run a race after you've prepared and spent a lot of time running just to run, just to practice.
- 4:17SPEAKER_02: And that same is true for software development.
- 4:20SPEAKER_02: When you're building these small projects and practicing what you're learning, you're not trying to build something real.
- 4:27SPEAKER_02: You're trying just to practice that one little thing.
- 4:30SPEAKER_02: You can write an application that does nothing important, is not even fully functional.
- 4:36SPEAKER_02: It just focuses in on what you're practicing.
- 4:40SPEAKER_02: So people ask me, well, how do I practice?
- 4:42SPEAKER_02: What things should I do?
- 4:44SPEAKER_02: What you should do is just use what you've learned.
- 4:48SPEAKER_02: If you're just learning about generics, create some generics.
- 4:52SPEAKER_02: They don't have to do anything.
- 4:54SPEAKER_02: They don't have to be uh, you know, valuable to an actual production application.
- 5:00SPEAKER_02: You just need to say, hey, how do I create a generic and then how do I use it?
- 5:04SPEAKER_02: How do I get information into it?
- 5:06SPEAKER_02: How do I use it with different uh classes?
- 5:08SPEAKER_02: How do I work with different values and just try it out?
- 5:13SPEAKER_02: So those little practice things are really important, those short little things that over time, the more you do those, the more strength you'll have in your expertise.
- 5:25SPEAKER_02: And then occasionally taking a few of those and putting them together into an application that kind of uses a few of them together to see how they interact.
- 5:34SPEAKER_02: At the same time, you're still not worrying about this application doing anything important.
- 5:40SPEAKER_02: It just has to fit those together and see how they interact and how they work together in order to get the most out of them.
- 5:48SPEAKER_02: And then occasionally, you run the full marathon.
- 5:52SPEAKER_02: Occasionally, you build a full working application from start to finish.
- 5:57SPEAKER_02: The thing is, you don't run marathons every day.
- 6:01SPEAKER_02: You don't try to run a marathon right after you finish a marathon.
- 6:05SPEAKER_02: You go back to training, you go back to take some time off, you rebuild yourself.
- 6:09SPEAKER_02: You don't just burn out trying to do it all at once.
- 6:12SPEAKER_02: But over time, you do another one and another one spaced out.
- 6:17SPEAKER_02: So you have some time to rebuild and some time to learn some new things and new techniques and come back to it and figure out how you can do it a little better next time.
- 6:25SPEAKER_02: So there's lots of similarities with software development.
- 6:30SPEAKER_02: And this is why you know there are things that you can do to make your progress better and faster.
- 6:37SPEAKER_02: For example, having the right plan is important.
- 6:41SPEAKER_02: Um, if you're a marathon runner, knowing when to run short days and when to run long days and how to run well and how to make sure that you're progressing properly, it's important.
- 6:53SPEAKER_02: Now, you still have to run, but having that plan will help you progress faster.
- 6:59SPEAKER_02: And so in C Sharp, having the right plan is important.
- 7:03SPEAKER_02: That's why you know in the C Sharp master course, so many people get such value out of it, is because it's not just that there's great training in there, and there is, but it's that plan to say, hey, here's the race path, here's the path to getting to becoming a marathon runner, here's the plan to becoming an expert C sharp developer.
- 7:23SPEAKER_02: Follow these steps.
- 7:24SPEAKER_02: You still have to do the work, you still have to do the exercises, you still have to do the practice, but it's all right there so that you know what to do next and what step to take next.
- 7:36SPEAKER_02: Now, you also will benefit if you see something you can emulate.
- 7:42SPEAKER_02: So sometimes it's very valuable when you hear about something new and you you don't know what it is or how it works to be able to see it.
- 7:50SPEAKER_02: And that's where tutorials can really be helpful.
- 7:53SPEAKER_02: Uh I create lots of tutorials.
- 7:54SPEAKER_02: I am not down on tutorials.
- 7:56SPEAKER_02: I am down on thinking that that's the only way to learn, because you absolutely do not need a tutorial to learn.
- 8:04SPEAKER_02: And you shouldn't have to have a tutorial for every specific thing you do.
- 8:09SPEAKER_02: But sometimes seeing how things can be done, seeing what techniques you can use and how to use something new can be really helpful.
- 8:16SPEAKER_02: And that's where a tutorial can help.
- 8:18SPEAKER_02: But the key, though, is to not say, okay, I have to see my exact situation.
- 8:26SPEAKER_02: Because then it's not really about learning techniques and learning to practice and grow and run on your own.
- 8:32SPEAKER_02: It's about somebody else running for you and you just saying, yep, they're doing a good job.
- 8:37SPEAKER_02: Okay.
- 8:37SPEAKER_02: So you gotta be careful here that you make sure that you are practicing and learning how to run on your own.
- 8:45SPEAKER_02: So you need that practice.
- 8:47SPEAKER_02: And every once in a while you need to put it together into a full project.
- 8:50SPEAKER_02: So you just make sure that things fit together.
- 8:52SPEAKER_02: All right.
- 8:53SPEAKER_02: So expertise comes from experience, not syntax knowledge.
- 8:58SPEAKER_02: This is actually a mistake that a lot of people make early on, is they think, oh, the syntax is what's important.
- 9:06SPEAKER_02: So when you're learning C sharp, when I learn that advanced syntax, when I learn about uh razor syntax, and I learned how to do things in Blazor, and it and once I know that, then I'm really a C sharp developer.
- 9:19SPEAKER_02: You're a C sharp developer when you start creating hello world applications.
- 9:24SPEAKER_02: But you're not gonna become an expert just by learning more syntax.
- 9:28SPEAKER_02: In fact, that's the least important thing about becoming an expert.
- 9:33SPEAKER_02: An expert, an expertise comes from experience.
- 9:38SPEAKER_02: And it does not mean you have to have a job in order to get that experience, but that expertise is important.
- 9:45SPEAKER_02: So this is why changing languages too early is a mistake.
- 9:49SPEAKER_02: And this is something I tell developers all the time.
- 9:51SPEAKER_02: Don't just switch to a new language as soon as you barely grasp C sharp.
- 9:56SPEAKER_02: Because again, the important part is not the language.
- 10:00SPEAKER_02: The important part is the experience of how to use logic, how to put things together in new and interesting ways.
- 10:09SPEAKER_02: And that only comes from really spending a lot of time doing those short little runs, those learning one new thing, putting together into larger things, and then running full marathons, building full applications.
- 10:23SPEAKER_02: It's then that you learn about the interactivity, about what makes a good system, what doesn't make a good system.
- 10:31SPEAKER_02: Being able to look back and say, hey, I made some mistakes there.
- 10:34SPEAKER_02: I put things together in the way I thought they would work well together, but when I put the pieces together, I realized that it created kind of a mess.
- 10:43SPEAKER_02: And I can learn from that.
- 10:44SPEAKER_02: And my next application, I'll do these things in order to not have as much of a mess.
- 10:49SPEAKER_02: And you learn and grow from that.
- 10:52SPEAKER_02: So doing that, spending that time building full applications, having the ability to put together full working applications that take the knowledge you've already practiced and learned and putting together in a larger whole is what gives you that expertise that you need.
- 11:10SPEAKER_02: So if you switch languages too too much, what you're doing is you're just learning syntax over and over again.
- 11:16SPEAKER_02: And that's not really a benefit to you.
- 11:18SPEAKER_02: Yes, you will definitely benefit from knowing the syntax of multiple languages eventually.
- 11:24SPEAKER_02: But if you don't have the depth first to have the logic necessary because of experience, then what happens is you're just kind of floundering in all the languages.
- 11:38SPEAKER_02: Where maybe even you it looks good.
- 11:40SPEAKER_02: It looks like, hey, I can build an application in React, and I can build one in ASP.NET Core and Blazor and in Console, and I know lots of C sharp syntax and JavaScript syntax, know NPM and NuGet and all this stuff.
- 11:55SPEAKER_02: And then you go to actually build an application, you're like, I don't know what I'm doing.
- 12:01SPEAKER_02: I've never actually built a full application.
- 12:03SPEAKER_02: I hear that a lot.
- 12:04SPEAKER_02: I've never actually built a full application.
- 12:06SPEAKER_02: Well, guess what?
- 12:07SPEAKER_02: That's the way to get deeper in your expertise.
- 12:10SPEAKER_02: That's the way to become an expert, is by building a full application, is by having those larger practices.
- 12:16SPEAKER_02: But you can't just start from let's build a large application.
- 12:20SPEAKER_02: You need to start from let's practice a little thing over and over again.
- 12:24SPEAKER_02: Let's have those short runs.
- 12:26SPEAKER_02: And then let's put those together into still a practice application.
- 12:30SPEAKER_02: Doesn't necessarily have to do much, but it has to put a few of these ideas together.
- 12:34SPEAKER_02: And only then do you practice the larger step of building still a small application, but an application that does end-to-end work.
- 12:44SPEAKER_02: So that's the way to do this.
- 12:47SPEAKER_02: Now, this is why just following tutorials is also a mistake.
- 12:52SPEAKER_02: Because when you're just following tutorials, then all you're doing is saying, hey, lead me by the hand.
- 12:59SPEAKER_02: And you know what?
- 13:01SPEAKER_02: That is important to do.
- 13:02SPEAKER_02: I watch tutorials a lot, but you can't stop there.
- 13:07SPEAKER_02: At some point, you have to walk on your own.
- 13:09SPEAKER_02: And at some point you have to go from walking to jogging and from jogging to running.
- 13:14SPEAKER_02: And the way to do that is practice over and over again.
- 13:17SPEAKER_02: Fall down.
- 13:18SPEAKER_02: It's okay.
- 13:18SPEAKER_02: You're doing practice stuff.
- 13:20SPEAKER_02: It's fine to fall down.
- 13:22SPEAKER_02: So learning on your own and learning to do it on your own is important.
- 13:27SPEAKER_02: So that's the way to become a C sharp expert.
- 13:30SPEAKER_02: It's not by just learning more syntax or knowing more complicated syntax.
- 13:34SPEAKER_02: It's about having the experience of having built full applications.
- 13:39SPEAKER_02: But just don't try and skip steps and go too far ahead that you actually make yourself frustrated and feel like you can't do things because you've not taken the intermediate steps along your journey.
- 13:51SPEAKER_02: Okay?
- 13:51SPEAKER_02: Having that path is important.
- 13:53SPEAKER_02: Having the right direction to go is important.
- 13:56SPEAKER_02: Having the tools like tutorials to help you along the way is important.
- 14:00SPEAKER_02: But the most important thing is going to be practice.
- 14:02SPEAKER_02: Okay?
- 14:03SPEAKER_02: So I hope that answers your question.
- 14:04SPEAKER_02: Thanks for asking the question.
- 14:06SPEAKER_02: And if you have a question, remember go to the suggestion site.
- 14:08SPEAKER_02: Thanks for listening.
- 14:09SPEAKER_02: And as always, I am Tim Corey.
- 14:11SPEAKER_00: Thank you for joining us for this episode of Dev Questions.
- 14:14SPEAKER_00: Tim is committed to making it easier for you to become a developer.
- 14:17SPEAKER_00: If you would like to help make more content like this possible, please like, subscribe, rate, and share Dev Questions.
- 14:24SPEAKER_00: You can also send your questions to questions at IamtimCore.com.
- 14:30SPEAKER_00: Until next time, remember, you are too smart and your time too valuable to waste it making all the mistakes Tim did.
- 14:37SPEAKER_00: When you're ready to learn to think and code like a professional developer, head over to imtimcore.com and enroll in a course.