C# Fundamentals Skill Check - Full App in 1 Video with just 62 lines of code!

Поделиться
HTML-код
  • Опубликовано: 14 ноя 2024

Комментарии • 54

  • @umer.on.youtube
    @umer.on.youtube Месяц назад +8

    Damn, COREY --- you beauty! You're the man! A legend for us C Sharpers !!!!!

    • @IAmTimCorey
      @IAmTimCorey  Месяц назад +4

      Thanks!

    • @umer.on.youtube
      @umer.on.youtube Месяц назад +1

      @@IAmTimCorey What platforms do you suggest for interactive learning? For newer stuff like Blazor and MAUI. Also, please create some courses on MAUI and Blazor (forgetting about older versions of Blazor and focusing only on the latest things like the new template that allows to write once, run on Web, Mobile, Desktop, as previously web was missing).

  • @ramansehdev8235
    @ramansehdev8235 Месяц назад +4

    This is awesome. Foundation is key.

  • @itodobien1396
    @itodobien1396 Месяц назад

    I have the DEV pass for the C# Master Course. I was told that was the best course for learning C#. I made it mostly though it until about Winforms. I wasn't super interested in that so I cancelled Dev pass. However, now that I am seeing much more updated material here on your YT channel, I may renew. I am wondering why the Master Class has the older material if you've made much newer stuff with net 8.0/9.0? I'm in plural sight now to continue on my C# learning, but I would have preferred to stay on your site! Also, when is the C# for Unity gonna be published? I have been looking forward to that for some time now :)

    • @IAmTimCorey
      @IAmTimCorey  Месяц назад +1

      There are a few things to answer here. First, WinForms isn't the old way of doing things. In fact, at Build 2024, Microsoft recommended it as the way to build desktop apps with WPF being another way if you needed the extra power. While WinForms has been around for a long time, it is still a modern way of building desktop apps. You can use .NET 8 with WinForms and WPF.
      Second, the C# Mastercourse intentionally covers everything from .NET Framework up through .NET 6 right now because when you actually get a job in software development, you will probably be working with something in that range. Yes, the cutting edge is nice, and the latest way to do things is always a draw, but if you only learn that then you will be ill-equipped to work in today's job market. That's why I cover such a range.
      Third, the C# Mastercourse is a course that I keep updated. I'll be putting out a new version of it sometime in 2025. It will still have .NET Framework in it, but it will also cover .NET through .NET 9.
      Keeping content updated with the latest version of .NET isn't the goal, since again, businesses don't typically use the latest version. However, I'm constantly releasing new courses with the latest stuff. My Blazor course is in .NET 8. I just released a C# Fundamentals training course where we build three small applications and debug a fourth. That uses .NET 8. I've got another course where we build an app in WinForms, WPF, and Blazor WebAssembly (the same app three times) that will come out in about a week.
      As for the Game Development Mastercourse, that is still under production. That's actually what I'm working on recently. New modules of that should come out shortly. As for the final date, I would like to complete it early next year, if not sooner. It all depends on how much work it takes to create the new .NET 9 content (which comes out the middle of November) and how the holidays interfere. I've been taking my time in that course because I want to teach the latest and greatest. We just switched over to Unity 6, which officially releases soon.

    • @itodobien1396
      @itodobien1396 Месяц назад

      @@IAmTimCorey Hi! thank you for taking the time to answer. I think I poorly worded my questions. I didn't mean to imply winforms was the old way of doing things. I just stopped the Master Class right around there because I am more interested in learning pure coding for now and I (just my preference) am not keen on learning winforms at this stage. What I meant by 'older' was the class has a lot of framework stuff (which I understand through your lessons that it's great to learn that, and not a lot is different) but then this class here is .NET 8. I guess I was just confused that if you have new classes why they weren't in the master class is all. I didn't even see them until I came here. I apologize if my tone/delivery came across poorly. I really like your teaching style and going through all the projects. I learned a TON in a short time.
      Now that I know there's more C# material on your site (I was under the assumption all C# content was rolled under the MC), I am stoked to keep pushing on. I am retired (for now) and just started learning everything from scratch. I started making a video game for my son and that's how this all started. Now I'm hooked. I am really looking forward to the Unity course and appreciate that you post so much here (which I only found today). So, to sum up: Thank you for replying, I am sorry if my message sounded combative, and I am stoked to continue learning from you.

    • @IAmTimCorey
      @IAmTimCorey  28 дней назад +1

      No worries. I'm glad I was able to help. And yes, the C# Mastercourse is just a course. It is an extremely comprehensive course, and covers a LOT of topics around C#, but I have many other courses that cover other areas of C# or that go into much greater depth in specific areas.

  • @michaelnorris2522
    @michaelnorris2522 Месяц назад +1

    You aren't there yet! How about checking what happens when a negative number is entered? I added a && clause to the evaluation of validGuess. Another tiny thing - how about {guessCount} guess{(guessCount == 1 ? "" : "es")} to make it more like writing "guess(es)"?
    Great video, though, and much appreciated.

    • @IAmTimCorey
      @IAmTimCorey  Месяц назад +2

      I was ok with people entering negative guesses. At that point, you are punishing yourself. The way to "win" is to get the lowest number of guesses. Going backwards won't win you anything. It will just increase your guess count.
      As for the guess suggestion, yep, you could do that.

    • @robinheyer708
      @robinheyer708 Месяц назад

      Console.Write("Please enter a number: ");
      int firstGuess;
      while (!int.TryParse(Console.ReadLine(), out firstGuess) || firstGuess

  • @gurudaki
    @gurudaki Месяц назад

    Nice work!Is this video for beginners?

    • @IAmTimCorey
      @IAmTimCorey  Месяц назад

      Beginners can absolutely do this, although people with more experience will still find value in it as well.

  • @trustingod0
    @trustingod0 Месяц назад

    Hey Tim. I was wondering do you have any video covering debugging?

    • @IAmTimCorey
      @IAmTimCorey  Месяц назад +1

      This video is one of four apps in the paid course. In that course, one of the apps is pre-existing. The section is called bug hunt. We hunt down bugs by reading the code and fixing them. I also have a whole section in the C# Mastercourse on debugging. I also have a number of videos on RUclips that cover debugging: www.youtube.com/@IAmTimCorey/search?query=debugging

    • @trustingod0
      @trustingod0 Месяц назад

      @@IAmTimCorey Thank You Kindly Sir !!!

  • @ramansehdev8235
    @ramansehdev8235 Месяц назад +1

    Are there more courses coming like this to test foundational knowledge?

    • @IAmTimCorey
      @IAmTimCorey  Месяц назад +3

      Not just foundational knowledge, but yes.

    • @ramansehdev8235
      @ramansehdev8235 Месяц назад +1

      @@IAmTimCorey music to my ears. Coming across your channel in 2018 was the best thing for my professional career.

  • @devoiddude
    @devoiddude Месяц назад

    Very nice video Tim, I found this really helpful, thank you, just one question, how come you don't separate the code into individual methods?

    • @IAmTimCorey
      @IAmTimCorey  Месяц назад

      Why would we need the additional complexity of methods?

  • @anddav123
    @anddav123 Месяц назад

    Not used to ””” always used @“ for literal string, is it right assume it equal to the same thing?

    • @IAmTimCorey
      @IAmTimCorey  Месяц назад +3

      No, they aren't the same thing. The verbatim string literal (@ symbol) allows for single-line literal strings. You can do multi-line, but it is messy. You also have to escape double quotes still. The verbatim string literal (""" characters) allow you to easily do multi-line and you do not need to escape double quotes. Also, if you decide that you want to have two double quotes in a row, you can use four double quotes to start and end the raw string literal.

    • @anddav123
      @anddav123 Месяц назад

      @@IAmTimCorey thanks for your reply, good to know

  • @عروضوهميزات-ل5غ
    @عروضوهميزات-ل5غ Месяц назад

    Hello Tim how to register in your website to buy a course ?

    • @IAmTimCorey
      @IAmTimCorey  Месяц назад

      No need to register. Just go to the course and click buy. It will set up the accounts you need automatically.

  • @esparda07
    @esparda07 Месяц назад

    What keyboard do you use?

    • @IAmTimCorey
      @IAmTimCorey  Месяц назад

      I use the MX Keys by Logitech. I absolutely love it. Whenever one of my team members needs a keyboard, that's what they get. They love it too.

  • @IreneSmith
    @IreneSmith Месяц назад +1

    I'm curious why your do while loop test isn't while(!validGuess) which does the same thing and, in this context should be completely clear.

    • @IAmTimCorey
      @IAmTimCorey  Месяц назад

      We don't test validGuess before we've put a "real" value into the variable. Otherwise, we can accidentally never go through the while loop because we set it to the "wrong" initial value. That's why we have a do loop. So we can set the validGuess variable with real data, not just starter data, before we test it.

    • @IreneSmith
      @IreneSmith Месяц назад

      @@IAmTimCorey The initial value of a boolean is false.Since it is a do loop, we know it will run at least once, so why write out != false when !false does the same exact thing. Tell me how that's any different. I'm not just trying to argue, I want to understand what the difference is.

    • @IAmTimCorey
      @IAmTimCorey  Месяц назад

      Ah, I see. I thought you were saying to use a while loop instead of a do loop. Instead, if I understand you now, you were saying that we could write "!validGuess" instead of "validGuess == false". That's a good question. The reason is because code is meant to be read by humans. When you are reading code, especially when you are quickly scanning it, the bang character (!) is easy to miss. So then it looks like you are looping if they give a valid guess rather than an invalid guess. By saying "== false", it is much easier to see. The compiler treats it the same, but it is easier to see as a human. I've seen people introduce bugs a number of times because they missed the bang character somewhere and thought the statement did the opposite of what it actually does.

  • @studentsheaven-d8v
    @studentsheaven-d8v Месяц назад

    hh...that NOPE is message from users to the developer, am I joke to you. loving it

  • @OneIdeaTooMany
    @OneIdeaTooMany Месяц назад +1

    Code is meant to be read by humans said no python expert ever...

  • @Zakaria_TheWolf
    @Zakaria_TheWolf Месяц назад +1

    Amazing Lessons ✅
    the $"" "" ""
    "" "" "" Is The Most Information Value That I learn Today Thank You

  • @aron-gx9mh
    @aron-gx9mh Месяц назад

    it would be nice to have a shorter version of your tutorials. maybe without explaining anything just right the code in ten minutes and explain as minimal as possible.
    long versions are good too but can drain my energy

    • @IAmTimCorey
      @IAmTimCorey  Месяц назад +5

      I have a whole series called 10-minute training. You can find the playlist on this channel.

    • @keyser456
      @keyser456 Месяц назад

      His 10-minute series is actually pretty amazing. Great for introductions (and sometimes more) to every relevant topic.

    • @IAmTimCorey
      @IAmTimCorey  Месяц назад

      Also, just so you know, if you have the DevPass (or if you buy this course), this video is broken up into short videos. I believe this section is 12 videos instead of the one it is on RUclips. The other three apps are the same way. Most lessons are under 10 minutes.

  • @adam4733
    @adam4733 Месяц назад

    😂

  • @NaftuliSinger
    @NaftuliSinger Месяц назад +2

    56:21 Why did it set the currentValue to 0 and not to 1 as specified for null values in your code at line 15?

    • @IAmTimCorey
      @IAmTimCorey  Месяц назад +1

      Because it wasn't a null value. It was an empty string. An empty string is not null, so it tests it to see if it can convert the empty string to an integer. When it cannot, it returns false (which we are ignoring), and it sets the value of the integer to zero. Thus, zero for our first guess.

    • @NaftuliSinger
      @NaftuliSinger Месяц назад

      ​@@IAmTimCoreySo in which case would it actually add 1 (as specified in ?? "1") ?

    • @ChrisRS7
      @ChrisRS7 Месяц назад

      @@NaftuliSinger Try F6 and hit "Enter"

    • @IAmTimCorey
      @IAmTimCorey  Месяц назад

      @NaftuliSinger - No, because that is a null check. Like I said, it isn't null. Since it isn't null, it uses the value we gave it from the console, not the fallback value. Therefore, it is zero.

    • @NaftuliSinger
      @NaftuliSinger Месяц назад

      @@IAmTimCorey Gotcha