Im a C# senior dev manager who makes hiring decisions. If you follow this video's advice for 6 months, you will guaranteed get a mid to senior level dev job.
I would definitely question "guaranteed get a mid to senior level dev job" - If i interviewed a dev for a junior role and they told me they'd been following this advice i would definitely consider them since at that level i think enthusiasm and ability to self learn is more important than experience, for a mid/senior role they wouldn't even get an interview tbh. This is a great video Tim and i would happily recommend it to anyone looking at learning C# (a lot is applicable to any language)
I am 73. I have started 'some time' ago the . Time and life have me do things in 'fits and starts.' However, the advice you're giving will serve the 'young ones' in the crowd immensely. Especially, the advice to 'focus' on an area until one has the 'fundamentals.' And, there is no doubt, that 'Time' is the commodity that must be expended (that is -- put in work) to get 'solid' in key areas. For the beginners -- really take a hard look/listen to this advice. Now, I must 'get back' to going through the C# Mastercourse. For me -- I am at the 'entertained' (learning for learning's sake) point. For those who have their careers / lives ahead of them, the hours spent listening is an hour well spent).
I started the C# mastercourse 3 months ago, and I make sure I don't rush through it. If you don't practice something consistently, you forget. So I make sure I repeat the modules until I am 100% sure the information is second nature. What I absolutely love about Tim Corey's courses is that it is very easy to understand. It is developed in a step-by-step sequence. You can start with module 1, lesson 1, and be sure you will not have skipped information or not have learned anything that you will need when you start with the next lesson or step. It is definitely for someone who is a beginner and progresses to more advanced levels. I wasted so much money, time on other books, videos, and courses. This is absolutely worth your time, energy, and money.
Its been 6-8 months since i started to learn coding&c#. I started with your c# videos then learnt how to read documents. I am now able to make some kinda intermediate c# projects, like store web api etc. Thanks for everything.
If there is anything that I've learned about learning to write code in any given language or writing code for any specific framework or concept it's that repetition is key and that it always helps to learn the same concept from various resources so you can have a wider understanding of the concept
Yes. Completely agree. Back in the day, I had every book, magazine, and newsletter about FoxPro. I was so proud of my collection…it served me well. I am now navigating the .Net ecosystem with the same approach.
Practice, practice, practice! Build that braincell "muscle memory" I'm 62, been in programming since 1986, first 10 years just as fun for myself, since 1997 supported myself and my family with it and I learn new things every day! :) Just discovered Tim and he is a fantastic teacher! XAML finally clicked for me after watching his videos!
Ahhhh, that's why I have 3123123213 Udemy courses! Thanks, now I feel less bad about how much money I spent on them over the years! 🤣 But seriously, despite it sometimes maybe being overkill.. Whenever I wanted to learn a new topic/skill, I try to study it with different courses from different people to see it from different angles and often times one courses fixes the flaws of the other! 🙂
Excellent video, thanks. I began my C# journey over the last couple months and have a terrible videos:real practice ratio. I have a saying that I feel may apply to coding, among many things. “Nothing is hard. You just don’t know what to do yet.” Never give up when things get “hard.” Take the opportunity to learn more about what you are trying to accomplish.
I do C# dev for my company (an engineering firm) and can absolutely confirm the point that winforms is still widely used, especially for custom software that runs in an AutoCAD/Revit environment. They don't care how your application looks, they just want something that works and solves the problem or completes the task. I still use WPF, though! I've been at it for a couple years now and my path looks nothing like the steps outlined in this video and i have a lot of mistakes and gaps in my knowledge to prove it. However, the more I code, the better I get. It's absolutely been a journey. ALL of my advancement came from riding the struggle bus and stumbling through mistakes. Looking up syntax you forget or how to type out a particular LINQ query you can't quite remember is one thing, but looking for actual answers to problems in your specific code is usually impossible. The only way to get better is to try, fail, and try again. Debugging too!
I had to “learn” C# very quickly in my job because we only had 1 developer who actually knew C# well and so I did not get all the fundamentals. This has been great for helping me determine what gaps I need to fill. Thanks
I always wanted to be a programmer but my parents forced me to have a bachelor degree in Chemistry. They wanted me to be a professor. I completed my degree with 3.72 CGPA out of 4.0. After a year of teaching i gave up! That wasn't something i wanted to do. I started my programming journey by 8 months ago by learning C++.i was very lost and didn't know where to start and what to learn. I gave almost 5 months to C++ just to get used to programming, how to code and how it all works. I jumped into learning C# and now i have completed concepts from basics to OOP. I love it. Looking forward to learn more and more ❤
Hey Tim, since I started my journey with .Net in 2021, your videos have truly helped me navigate my path. It is also encouraging to realize that others more experienced than I share similar basic thoughts about development. Thank you very much for your efforts...they are not lost. Wishing you well.
Tim just wanted to say thanks. I followed your c# masterclass and web development masterclass courses as part of a career change and landed a great mid level job 3 months ago. Have used a lot of the knowledge on the job too. Your general advice on how to manage a developer job is also right on the money.
Thank you Tim ! Good way to start 2024!! 👍 - I am half the way of the C# MasterCourse and expecting to finish this month and move forward to another of your courses! Thank you for the great content !
Regarding doing small practice projects, I just found this quote from Friedrich Nietzsche cited in the book Mastery by Robert Greene: " ... the efficient workman who first learns to construct the parts properly before it ventures to fashion a great whole; they allowed themselves time for it, because they took more pleasure in making the little, secondary things well than in the effect of a dazzling whole."
The strategy of exhausting all one's knowledge before seeking outside help to resolve a problem is very powerful. Sometimes possible solutions are revealed after waking from sleep and/or working on some other part of the application.
I signed up for Tim's full course. Mastercourse in Web Development despite being 15 year Senior Developer, because Tim is very knowledgable and even if you know most of the stuff, it never hurts to have a checklist to keep your skillset fresh. He provides so much help with these videos let alone his paid courses, which are exceptional value for money. Thank you Tim!
Man this is some good advice, and I love the form and depth of the way you present the topic. Not only do you give actionable advice on how to learn things, but you couple it with generally applicable life advice (that one will learn the hard way anyways). Thank you for pointing us in the right direction - Looking forward to learning more from you!
I have gone through your C# Mastercourse it is really good, it can be better or updated but it doesn't make you c# developer ready for jobb today, beacuse, you know what can you become of it? maybe backend developer but then you need to learn more deeply about Sql, Webb Api, if you want to work with webb development such as Blazor or MVC then you still need to know SQL, Webb api,HTML,CSS and maybe even JS it takes absolute more then a year.
Just because you are prepared to be a junior (or even mid-level) developer doesn't mean you will be able to apply to any junior or mid-level C# position. You are ready to start applying. You need to continue studying and broadening your skills. However, you are more prepared to get a job than someone that just graduated from college since you have more actual, practical experience than they do and you know more about how to do the actual job. A junior-level position in C# should require just an understanding of C#, not a bunch of extras. I know a lot of companies say a job is for a junior but ask for a senior-level of knowledge and experience. Some of those jobs you would still be right for. They are just publishing a wish list. I used to work for a company that hired junior developers right from college. I had to train them afterwards. The C# Mastercourse was heavily influenced by what I wanted to see developers have for skills before they started.
Thanks Tim for all the content that you shared, I following your free content several years ago and Now I need more deeply comprehension for several topics(azure, git, etc) and I get the all access Monthly.
Glad I found this, just bought a book C# Players Guide, and already made some console apps, once I go through this definitely gonna check out one of your courses.
Thanks for the great video. I've been trying to break into the industry for more than a year but haven't succeeded yet. I now realize that I haven't practiced each concept I learned enough. I will definitely apply your advice. One thing I'd like to ask: where would you categorize third-party libraries like Fluent Validation, loggers, etc.? Would you classify them under 'Web project types'? In other words, when should we learn about them? In addition to them, there is also SignalR. I don't know if I have to know it.
I would add them in after you have learned C# itself (so after you have gone through the entire list for learning C# itself). Third party libraries are great, but which ones you will use will change. The underlying C# will not. As for SignalR, it is a wrapper for Web Sockets (and others). It is good to know later on for real-time web communication.
Thanks for the helpful video Tim ! I was struggling to figure out how to go beyond the C# basic/intermediate stuff, but now I have a way clearer idea of where to go next :)
This is awesome. Could you please create something for intermediate C# developers? Maybe Distributed Systems, Security, Performance, Design Patterns, DevOps etc
Hey Tim, my team and I were discussing the benefits between having a collections class per business object. We always create a triad of objects. Dog, Dogs, and DogFactory. A new guy brought up the idea of using extension methods on a list instead of our collections class. Is there any benefit to one over the other? Dogs either inherits from List or encapsultes it. We didnt see any benefit to the extension model and left our collections alone
Imma start learning C#. I already know Javascript/react stuff , but there is a huge competition in that field . Might as well learn a new language . Was debating between Java and C#
I'm 39. I want to shift career to programming. Is it possible to work on a C# course for 6 - 12 month and get a job in web development at my age? And...thanks for the great organized and clear content.
I have an idea for a course (if you haven't built one already). Basically, build a monolithic application (bad design), then refactor the code and apply design patterns. You can easily break this down into several sections / topics by design patterns. This would be a good way to learn design patterns. If you already have this, please share the link. Thanx!!!
They are important, but often very misunderstood. A data structure is how you store data in your application. It could be as simple as string or DateTime. It could be more complex, like Dictionary, Array, etc. However, understanding these is important. When you understand them, though, shouldn't be at a single point in time. Rather, you should learn them throughout your training in C#. Someday I may do a dedicated course on them, but that will only be to help people understand what they are and how to use them properly. But when I teach, I interweave these topics into learning C#. As for algorithms, what are they? What is an algorithm. That's something that most classes or other training doesn't really define. They show you algorithms, but they don't say what makes it an algorithm. An algorithm is just a bit of code logic. That's it. It is code that solves a problem. So again, you learn how to create algorithms as you learn C#. As you grow in your understanding, you get better at writing more efficient algorithms (logic code) that solves problems. When you get good enough, you start to see patterns emerge in your code. Things that you do repeatedly or situations that you often face. This is where common algorithms end up happening. Common solutions to common problems. In those cases, we call the common algorithm a design pattern. A somewhat standardized logic design to fit a common problem. This is why I don't push learning design patterns early on. In my opinion, you really need to see the problems a few times before you can appreciate WHEN to use the design pattern. Too often, people learn design patterns too early and they start using them every time they can. This leads to horribly inefficient code and over-engineered, buggy junk code. I hope that helps.
@@IAmTimCorey thank you Tim for the long reply, I did a few of algorithms and data structures (with python) and I have to say that it was a good training about how to think when I have to solve a problem (especially using the loops). Maybe I'll continue in the future but with C#. Congratulations again for your channel!
Hey tim can i tweak your path a litle bit? This is i want to do: 1. Html css 2. Javascript 3. C# 4. Sql 5. Git 6. Docker 7. Azure What do you think tim?
It depends on your goals and your timeline. HTML, CSS, and JavaScript should take you six months or more to learn well. In fact, if you go beyond the basics in JavaScript, you should probably plan on a year. After that, you will be employable as a purely front-end developer but only for a small percentage of those jobs and the pay will be pretty low (front-end pay is low in general). Adding C# will take you another year. At that point, you will be able to apply for C# jobs (entry-level). Adding SQL and Git will elevate your skills and allow you to broaden your appeal to employers. So I would expect that this path would take you an extra year or more to get a job if you are looking to be a C# developer. If you are looking to be a web developer who also does C#, this might get you a job faster, but you will probably need to add Angular, React, or Vue to this list before C#, thus pushing your timeline back out another six months to a year. As far as pay goes, you will be paid better as a C# developer than you will as a purely front-end developer until you at least add a JavaScript framework.
Another reason to learn programming is to augment your current job. This is the primary reason I started and continue to learn. It has added real value to the department and allows me to solve problems I wouldn't have been able to do otherwise. Also, lying to the FBI could be extremely problematic. Just saying, lol
So good advice, it really helped me because i lost my way how and from where to start, actually i am a finance manager (MBA) and sometimes i don't like use other people software because doesn't fulfill my requirements and sometimes need to develop my own anyway thanks so much, And one request, could you please make videos according to the path which you mentioned it would be so helpful
Hi Tim Corey you are great. I have a problem practising topics, because of lack of problems to get. How do I get problems on topics I am reading or watching with its answers?
The biggest thing I am fighting is "52 is too old to learn anything and no one is going to hire a 52-year-old with little programming experience." Actually, I am not sure if this is a lie considering I see this all the time. But, I would like to learn for myself so I can build my own projects. I got through a lot of your Tournament Tracker but quit because of Impostor Syndrome. Ugh lol. We'll see how it goes this time.
It sounds like the first person you need to convince is yourself. Do that, and then you will have a much easier time making it a reality.
8 місяців тому
Hi @IAmTimCorey I am a new c# programmer in c# and your videos are very helpful thanks a lot!! a couple of doubts in the "paid path" why should I learn Blazor and not Angular or React? anddo you have updated videos that follow the paths that you mentioned in this video?
If you are learning C#, I would recommend against learning Angular or React before you have a rock-solid understanding of C#. By learning Blazor, you are using your C# skills and deepening them. If you use Angular or React, you are introducing a LOT more complexity to get similar results, plus you are taking time away from learning C#.
Without any job experience, how will an organization or recruiter even consider hiring you just based on just “home projects” assuming you don’t attend any bootcamps which are typically recommended or represented by a hiring team if you attend that specific bootcamp? It appears that organizations/recruiters only look for reputable or recognizable software company’s on your resume and if they don’t see that in your experience section, the resume gets overlooked. Makes sense if there is one job posting and over 50 applicants and easy to cherry pick looking for that experience background?
Getting that first job is always tricky. Adding a bootcamp won't really improve the odds that much. The biggest thing, actually, will be networking with other developers. But here is a video on how to get work experience before your first job: ua-cam.com/video/HLEeK212uXw/v-deo.htmlsi=LL4omSeTiwckiqdM Here is how to build a network of connections: ua-cam.com/video/OeMDhUN7xvQ/v-deo.htmlsi=jd8MaRdGDp6KqPJn
Additionally who you worked with in the past doesn’t really matter. What matters is, knowing how to solve problems and providing solutions. You can easily demonstrate this by building projects that demonstrate your skills. Other thing to do is volunteer to build solutions for small businesses, charities etc something that people can use at a free cost or a small fee.
Thank you Tim. How do you think, when I watching some tutorials, but I writing the same code by watching it and also trying to understand parts even if they are hard it is practicing?
Following along and doing what the person does on the video can be really helpful for retaining the information. It can also be distracting. It all depends on how well you listen while you type. You can also pause and resume to help with that. However, that's not the only practicing you need to do. You need to build things on your own that use the topic you are learning, but in a different way than what you saw. Otherwise, you will just be copying what you saw, and you won't be prepared to use that item in the real world.
Check if any institutions around you offer free (government paid) courses/certificates/diplomas. I’m in Australia and I am currently enrolled in a course for programming for free.
Question, can you skip point 5 for web project types? I am not interested in anything related to web, that's one of the reasons i want to learn C# and not the most usual route with other languages, was thinking about more back end and maybe desktop and mobile type of work maybe gaming with Unity. I guess one extra tool would be useful, can't take that long anyways right? Don't want to be competing with another C# junior developer that would have point 5 and then he gets chosen over me of course!
Hi Tim! I'm a relatively experienced programmer. Learned Java 10 years ago in HS, got my BS in comp sci, have some years of industry SE experience, and recently just taught at a bootcamp for Web Development (MERN stack). I'm looking to learn C# for a new job. Any recommendations for where to best jump in given my experience?
Here is what I would recommend: speed run this path until you can't. What I mean is watch a video on the topic, create a quick practice project to ensure you actually know how to use it and how to implement the syntax, then move on to the next topic. I'd love to tell you to jump into the middle somewhere, but the problem is that there are probably foundational things that you will miss that way, which will leave important gaps in your knowledge. By speed running, you will ensure you know the topics and then when you start to make mistakes or not understand a topic, you can slow down, practice more, and ensure that you are grasping what may be new concepts for you. You will probably find that you speed up and slow down a number of times.
A great approach to what? Building things is an important part of the learning journey, but it doesn't replace the entire learning journey. For instance, I don't recommend people learn by just building things. That's how you get significant gaps in your education and misunderstandings in your application of principles.
One huge thing you did not mention and I think it should be mentioned is Authentication and Authorization since pretty much every web application today needs it. Also you did not mention anything about testing, CI/CD and in extension Devops. Do you not think those are as important as the other things in the list? Did you not mention them, because they focus too much on the back end? Also what about some other more minor things such as design patterns, architectural patterns, software architecture and in extension software engineering. What about logging and caching? You are giving me hope about the small list you gave about becoming junior developer, but I am of the perception that that list today is too small. Am I wrong? P.S It seems that I did miss that, but you did mention authentication when you spoke about blazor, so that was my bad.
Those are smaller parts of the picture. We are really zoomed out here in this path. There is a LOT that isn't said just because it would take a lot longer to cover. But beyond that, some of these things are outside of the scope of learning C# even though they are really good to know. For example, CI/CD is a massive topic unto itself and isn't language-specific and it also isn't something that everyone needs to dive deep into. Everyone should use it with their production projects, but that's beyond a junior-level understanding of development. Authentication/Authorization is a tough one - it is really a senior-level concern, even though people will probably end up doing it earlier. As for software architecture, design patterns, etc., I recommend people wait on these until after they have significant experience building projects. That should happen before your first job (we build two "full" projects together in the C# Mastercourse, for example, in addition to the smaller ones I encourage you to do at every lesson). Once you've built applications multiple times, you will start to see where things could be better. That's when you will be able to learn about patterns and apply them. If you do it too early, you will apply patterns before they are needed, which means you will make your applications worse, not better. Architecture is the same way. Trying to study it or learn before doing is a mistake. Build tiny applications. Make mistakes. Learn from them. Learn how to make them better. Otherwise, you will try to apply complex architectural patterns onto an app that does not need it. You will make things worse, not better.
@@IAmTimCorey Thanks for the response. In my current test project(as you said, it is all about trying and personally I have built more than 50+ projects until this point) I have 10+ projects/modules with 5000+ lines of code in total and I am touching on a lot of complicated stuff. I talked to my teacher and he told me that I have done more than enough and I should stop and consolidate before jumping to new things. That being said I am pretty comfortable with that level of complexity and to be fair I kinda enjoy it, which is the reason as to why I keep on adding things. I hope you are right about the requirements of juniors and hopefully when I get to my first job since I have touched on these issues I will be overqualified, which will make my imposter syndrome go away :).
Great! Make sure to keep up with the practice. Once you find out what exactly you are working on, practicing that more will be really helpful too. Congratulations!
Every Thursday I put out a podcast/UA-cam episode of Dev Questions where I cover the non-coding side of software development. That's basically mass coaching for developers. That's all I have time for right now, though.
C# is still very widely used (especially enterprise), so is Python, Java, C++, etc… It also depends on the country you live in. Most jobs out there are for JS but most of them are also either freelance/temp or smaller companies.
Absolutely. First, C# is actually a rather popular language, and it is growing in popularity. Second, every new developer flocked to front-end development with a framework (Angular, React, or Vue). The problem is that you need back-end developers to supply those front-end developers with data. You also have a flooded market where there are too many JS developers and not enough jobs. That makes it hard to stand out. It also makes those jobs less valuable, which is why front-end development pays so much less than full stack development (Angular, React, and Vue are front-end development only - full stack requires building back-end code that talks directly to the database, not just calling an API). Don't get distracted by trying to pursue the most popular. That changes constantly and popularity doesn't equal best money or best positions. Your depth of skill will be much more valuable than chasing after the next hot thing.
Looks like I'm kind of stuck on step 3. Trying to understand delegates and events. I've been over it a few times with a few tutorials but something just isn't clicking. More grinding I guess.
Build a simple example. Watch what it does. Practice it. See if that helps. Also, try tutorials from different people to see if a different way of saying something might help it click. I have videos on them on this channel if you haven't seen them yet.
I had a similar experience when starting out with interfaces. Or most dummy tutorials really. I just could see wth it was ment to do and how DI relied on it. Then I got a job where I some real world code to work with. Within a few days it just started to click like a gear slowly, but exponentially starting to rotate. That’s when I learned that I most likely need to dive into real world production-level code
You cannot build .NET Framework apps if you aren't on Windows. You also cannot build WinForms or WPF apps unless you are on Windows. However, you can build Console apps, web apps, and mobile apps. You can also build desktop apps with Avalonia or Uno if you are looking to add those skills to your inventory. If you want to practice those Windows-only skills, though, you will need to get access to a copy of Windows. Just so you know, you can use VS Code as well. It is free. If you already have access to Rider, use it. I just wanted to make sure you didn't think you had to pay to develop in C# when not on Windows.
What is the path if a person has completed all of the parts mentioned? I have gotten to the point where I know nearly everything there is to know about c#. If there are parts I am still missing, not sure what else there is to learn. I would think if a person was able to complete the steps faster, that would be bad because it would mean they would get to the end with nothing else sooner which is bad.
Then build something great. You've been complaining about knowing it all and having nothing to do for years now. I gave you a challenge going on two years ago now and I've renewed it repeatedly and you still haven't actually accomplished it. No employer cares if you have memorized what every C# command does. No employer cares if you have built a practice app with every project type in C#. What employers care about is what you can actually do with those skills. And they aren't going to just take your word for it. You need to prove what you can do. I've tried to help you do that for years and you still haven't done it. I think what you are missing is that you telling yourself lie #4 - "I'll advance even if I give up when things get hard." For you, the getting hard seems to be building a complete business application. Not a demo. Not a game. Not something that has an unintuitive UI and limited functionality. A complete line of business application. Do that and you will have something to show potential employers.
There are a few things. The teaching is at the same level of completeness. However, it is structured to be a complete course instead of just a complete lesson. So instead of learning about one topic from me in a UA-cam video and then searching for what you should learn next and then figuring out which UA-cam video might fit it (and possibly getting a different creator with a different style), you get a complete course where we follow an outline to take you from knowing little or even nothing on a given topic to understanding it well enough to use it in production. For instance, here is the outline to the Blazor From Start to Finish course that I released less than a year ago (it covers .NET 8 Blazor): 1. Course Introduction 1. Introduction 2. Who This Course Is For 3. What This Course Covers 4. What Is Not Covered 5. What Outcomes Should You Expect 2. Web Application Basics 1. Introduction 2. Server Side Sites 3. Client-Side Apps 4. Hybrid Apps 5. Where Blazor in .NET 8 Fits 3. Blazor Render Types 1. Introduction 2. Server 3. Server Side Rendered 4. WebAssembly 5. Hybrid 4. Understanding the Template 1. Introduction 2. Template Options 3. Authentication Type 4. Interactivity Type 5. Interactivity Location 6. Top Level Statements 5. Server Side Rendered 1. Introduction 2. Program.cs 3. App.razor 4. Routes.razor 5. MainLayout.razor 6. NavMenu.razor 7. wwwroot 8. Bootstrap 9. Appsettings.json 10. _Imports.razor 11. launchSettings.json 12. SSR Only 13. Stream Rendering 6. Blazor Key Concepts 1. Introduction 2. Hot Reload 3. Components 4. Razor Syntax 5. Dependency Injection 6. Head Components 7. Code Behind 8. Visual Studio Debugging 9. CSS Isolation 10. Calling JavaScript 7. Creating a Component 1. Introduction 2. Component Basics 3. Routing 4. Parameters 5. Startup Methods 6. Managing State 7. Component Events 8. QuickGrid 8. Razor Class Libraries 1. Introduction 2. Creating a RCL 3. Consuming a RCL Component 4. Using Static Assets 5. Packaging for NuGet 9. Forms 1. Introduction 2. EditForm 3. Validation 4. InputTextArea 5. InputCheckbox 6. InputDate 7. InputNumber 8. InputRadioGroup 9. InputSelect 10. InputFile 11. HTML Forms 10. Data Access 1. Introduction 2. Setting Up a SQL Database 3. Data Access in C# 4. Creating a Record 5. Reading Records 6. Updating a Record 7. Deleting a Record 8. Virtualization 11. Blazor WebAssembly 1. Introduction 2. WebAssembly Specific Project 3. PWA 4. Calling an API 12. Authentication and Authorization 1. Introduction 2. Authentication Overview 3. Authentication Parts 13. Deployment 1. Introduction 2. Local IIS 3. Azure Web App 4. Azure Static Web App 14. Course Conclusion 1. Conclusion Now imagine trying to find specific UA-cam videos on each of these topics in order to piece together this information. You would have a lot of overlap, you would be missing pieces, and it would not fit together well. Beyond this major benefit, courses also give you a certificate of completion, ad-free videos, tracked progress, and more.
Absolutely. The only thing you cannot do is Windows-specific development such as .NET Framework, WinForms, and WPF. You can build Console apps, Web apps, mobile apps, and more.
As I am not a professional programmer I often find myself at a loss where I could benefit from input from others on even simple matters. I have tried various groups on both Google groups and Facebook but it feel more that the groups there are more focused on selling new products and ideas and "frown" upon more fundamental challenges. Does anyone here know on any good places where to communicate with others on issues and ideas?
@@IAmTimCorey not so many people like it around where I live - and I'm unfortunately "blessed" with a condition called Asperger's syndrome which makes it a bit more challenging.
It depends on the type of application you are building. There is a publish menu option on the right-click menu on the project name. You can publish your project and then distribute it from there (whether that is a desktop application and distributing the exe and supporting files or a web application and you are putting it on a web server or something else).
i can upload source but still somebody with knowedge need look at it and told whats heppen. aplication writed in Net framework4.7.2 (Windows forms C#) with a loots additional stuff to run and render 3d models play sounds and generate scripts @@IAmTimCorey
No to reflection (that's beyond the foundational topics we cover and not something you should be using that often anyway). Not sure what you mean by attributes. In the multi-threading area, we cover async/await and how they work, but I do not go into threading, since again, that isn't something you should be doing directly that often.
It’s all about perspective, right? A boot camp will cost you over $10,000 and you won’t get better training than this course. If you can find the quality and cohesive training over multiple courses on Udemy, though, go for it.
@@IAmTimCoreylol please excuse my stupid joke. Around 1:50 you’re talking about valid reasons to learn C# and briefly say “not that there’s invalid reasons to learn C#”. I know lots of Rustbros that look down on my C# journey, so that invalid reason popped in my head. The video is over an hour so idk why I thought anyone would even know what I’m referring to without a timestamp. Love your uploads btw
Most of the advice does, yes. The same is true of my Dev Questions podcast. Most of the advice I give covers all of software development, not just C# development.
Nah, I'm very sorry but a big NO to certain parts of this video. This method is too slow. Now is the age of AI, we should directly dive into real world projects or small tutorial projects. The basics, foundations, such as `for loop`, `if else`, syntax, those are too easy and basic, I mean we can just look up for syntax in the "modern dictionary": AI. Got anything hard to understand? Just ask AI. And for the debugging part, of course debugging yourself is very good for gaining experience, but I also think if you can find a solution online that would also be very good, the only problem is we should not completely throw the problem to another person without getting involved in the solving of the problem. The key is to solve the problem, either by debugging or searching online, debug by hand is not the only way, searching online, reading documents, even asking AI, are all solutions nowadays, in the AI age. Also talk about debugging, IDEs are also evolving, so the difficulty to debug nowadays are also way easier than years ago, especially when there is copilot around. Anyway the video is very good, thanks a lot on the video! But I don't think everyone should start from the basics now, because in this age everything is evolving too fast, basics are easy to catch up to, while learning fast is the key of this age. Utilizing all you can utilize, AI and IDEs, those can boost the process of learning, making "directly dive into projects without basics" a possible thing.
I would encourage you to rethink your beliefs because that is really bad advice. You even alluded to one of the reasons in your response. The basics are called the foundation for a reason - all other code is built upon this foundation. This is like saying "I don't need to learn to use a mouse because voice commands exist." You seem to be under the mistaken view that software developers primarily write code. That's not true. The primary role of a software developer is to express logic. You identify a problem and then identify how you will solve that problem. The code is just the tool to get the job done. You are skipping out on learning the foundational code pieces that will help you express even basic logic. Beyond that, learning how to write code (the actual syntax of it) is probably the easiest part of software development. The thing that is the hard part is learning how to use that syntax to create more and more complex logic. When it comes to debugging, it is never going to be easy to debug. No matter how advanced the tools get, they aren't going to be able to do the debugging for you. Again, debugging is about logic, not code. It is about identifying how a system is failing, identifying why it is failing, and identifying the solution to that failure. As for AI, no. Just no. AI is not going to be the junior developer for you. You have to not only drive it, but you also have to identify when it is wrong. A recent study found that ChatGPT is wrong about coding solutions 52% of the time and 39% of the time, developers didn't realize the solution was wrong. That means that AI will lead you down the wrong path. If you don't know what the right path is, you are going to create a mess (at best). Here is the full article: gizmodo.com/chatgpt-answers-wrong-programming-openai-52-study-1851499417 It sounds like you are new or newer to software development. I would encourage you to actually start to learn how to write C# code. Build real applications. You will find out that you need the foundational syntax and that debugging isn't just something the IDE does for you. That idea might live on when you are a beginner, but once you get into real-world development at any scale, it will quickly change.
If you don’t mind paying, the C# Mastercourse is the way to go. If you want to pay with your time instead, you will need to do some research. Https://docs.com is a good place to start. So is UA-cam.
Sure Tim, I like your content, it’s high quality,thanks for making it available. For this particular video, I think you could convey all of the same great arguments in a much shorter time. Just my 2 cents, please continue the good work
Then you are watching the wrong videos. GPT will not replace developers. The only way it could replace developers is if it replaced practically every other profession first. Don't believe the hype from people who are inexperienced in the industry and don't actually understand what developers do.
And unqualified developers apply for roles that are beyond them and ask for money they don’t deserve. Thats how things work. It will always be a push/pull.
Excellent video! Trying to repeat these steppes and learning even more stuff like RabbitMQ and MassTransit, Redis and I am still learning and have fear to apply for the job. 2 years and six months passed. Maybe I am dumb 😂I don’t know.
Practice builds confidence. When you've done something 100 times, you are more confident doing it than when you have done it 2 times. Beyond that, though, you will just need to take the leap without being fully confident. Almost no one is fully confident. We do it anyway. You can do it.
Im a C# senior dev manager who makes hiring decisions. If you follow this video's advice for 6 months, you will guaranteed get a mid to senior level dev job.
Thanks for sharing!
as a C# lead dev / manager: no, you will not, at least not on the us market and not in 2024.
As a C# student I appreciate both the video and this comment! Most of the content we see on the internet are really discouraging.
Guaranteed is a strong word here. It depends a lot on their resume and networking.
I would definitely question "guaranteed get a mid to senior level dev job" - If i interviewed a dev for a junior role and they told me they'd been following this advice i would definitely consider them since at that level i think enthusiasm and ability to self learn is more important than experience, for a mid/senior role they wouldn't even get an interview tbh. This is a great video Tim and i would happily recommend it to anyone looking at learning C# (a lot is applicable to any language)
I am 73. I have started 'some time' ago the . Time and life have me do things in 'fits and starts.'
However, the advice you're giving will serve the 'young ones' in the crowd immensely. Especially, the advice to 'focus' on an area until one has the 'fundamentals.'
And, there is no doubt, that 'Time' is the commodity that must be expended (that is -- put in work) to get 'solid' in key areas.
For the beginners -- really take a hard look/listen to this advice.
Now, I must 'get back' to going through the C# Mastercourse. For me -- I am at the 'entertained' (learning for learning's sake) point. For those who have their careers / lives ahead of them, the hours spent listening is an hour well spent).
Thanks for sharing!
I started the C# mastercourse 3 months ago, and I make sure I don't rush through it. If you don't practice something consistently, you forget. So I make sure I repeat the modules until I am 100% sure the information is second nature. What I absolutely love about Tim Corey's courses is that it is very easy to understand. It is developed in a step-by-step sequence. You can start with module 1, lesson 1, and be sure you will not have skipped information or not have learned anything that you will need when you start with the next lesson or step. It is definitely for someone who is a beginner and progresses to more advanced levels. I wasted so much money, time on other books, videos, and courses. This is absolutely worth your time, energy, and money.
Thanks for sharing!
Its been 6-8 months since i started to learn coding&c#. I started with your c# videos then learnt how to read documents. I am now able to make some kinda intermediate c# projects, like store web api etc. Thanks for everything.
I'm glad my content has been helpful.
If there is anything that I've learned about learning to write code in any given language or writing code for any specific framework or concept it's that repetition is key and that it always helps to learn the same concept from various resources so you can have a wider understanding of the concept
Absolutely.
Yes. Completely agree. Back in the day, I had every book, magazine, and newsletter about FoxPro. I was so proud of my collection…it served me well. I am now navigating the .Net ecosystem with the same approach.
Practice, practice, practice! Build that braincell "muscle memory" I'm 62, been in programming since 1986, first 10 years just as fun for myself, since 1997 supported myself and my family with it and I learn new things every day! :) Just discovered Tim and he is a fantastic teacher! XAML finally clicked for me after watching his videos!
Ahhhh, that's why I have 3123123213 Udemy courses! Thanks, now I feel less bad about how much money I spent on them over the years! 🤣
But seriously, despite it sometimes maybe being overkill.. Whenever I wanted to learn a new topic/skill, I try to study it with different courses from different people to see it from different angles and often times one courses fixes the flaws of the other! 🙂
Excellent video, thanks. I began my C# journey over the last couple months and have a terrible videos:real practice ratio.
I have a saying that I feel may apply to coding, among many things.
“Nothing is hard. You just don’t know what to do yet.”
Never give up when things get “hard.” Take the opportunity to learn more about what you are trying to accomplish.
You can do it!
@@IAmTimCorey thank you 🙌🏻 I agree 😅
I do C# dev for my company (an engineering firm) and can absolutely confirm the point that winforms is still widely used, especially for custom software that runs in an AutoCAD/Revit environment.
They don't care how your application looks, they just want something that works and solves the problem or completes the task. I still use WPF, though!
I've been at it for a couple years now and my path looks nothing like the steps outlined in this video and i have a lot of mistakes and gaps in my knowledge to prove it. However, the more I code, the better I get. It's absolutely been a journey.
ALL of my advancement came from riding the struggle bus and stumbling through mistakes. Looking up syntax you forget or how to type out a particular LINQ query you can't quite remember is one thing, but looking for actual answers to problems in your specific code is usually impossible. The only way to get better is to try, fail, and try again. Debugging too!
Thanks for sharing!
1) IDENTIFY YOUR MOTIVATION 00:00 - 3:22
2) COMMON LIES ⭕3:22 - 11:55
3) THE PREPARATION ⭕ 11:56 - 15:12
4) THE PROCESS ⭕ 15:13 - 24:59
5) THE PATH TO C# ⭕ 25:00 - 40:29
6) THE PATH AFTER C# ⭕ 40:30 - 53:22
7) THE PAID PATH ⭕53:23 - 1:03:24
Thanks!
I had to “learn” C# very quickly in my job because we only had 1 developer who actually knew C# well and so I did not get all the fundamentals. This has been great for helping me determine what gaps I need to fill. Thanks
Thanks for sharing!
It's great to have you on UA-cam. I learn so many things from your lessens and hope to be a junior developer in a year. Keep teaching please. 😊
Thank you! Will do!
I always wanted to be a programmer but my parents forced me to have a bachelor degree in Chemistry. They wanted me to be a professor. I completed my degree with 3.72 CGPA out of 4.0. After a year of teaching i gave up! That wasn't something i wanted to do. I started my programming journey by 8 months ago by learning C++.i was very lost and didn't know where to start and what to learn. I gave almost 5 months to C++ just to get used to programming, how to code and how it all works. I jumped into learning C# and now i have completed concepts from basics to OOP. I love it. Looking forward to learn more and more ❤
Great! Best wishes on your journey.
Hey Tim, since I started my journey with .Net in 2021, your videos have truly helped me navigate my path. It is also encouraging to realize that others more experienced than I share similar basic thoughts about development. Thank you very much for your efforts...they are not lost. Wishing you well.
I’m glad that my content has been so helpful.
Tim just wanted to say thanks. I followed your c# masterclass and web development masterclass courses as part of a career change and landed a great mid level job 3 months ago. Have used a lot of the knowledge on the job too. Your general advice on how to manage a developer job is also right on the money.
I'm so happy for you! Thanks so much for sharing.
Thank you Tim ! Good way to start 2024!! 👍 - I am half the way of the C# MasterCourse and expecting to finish this month and move forward to another of your courses! Thank you for the great content !
Fantastic!
Regarding doing small practice projects, I just found this quote from Friedrich Nietzsche cited in the book Mastery by Robert Greene: " ... the efficient workman who first learns to construct the parts properly before it ventures to fashion a great whole; they allowed themselves time for it, because they took more pleasure in making the little, secondary things well than in the effect of a dazzling whole."
Thanks for sharing!
The strategy of exhausting all one's knowledge before seeking outside help to resolve a problem is very powerful. Sometimes possible solutions are revealed after waking from sleep and/or working on some other part of the application.
And those are the best lessons.
I love you Tim, I started to watch C# Mastercourse and I can say it's so great course and I'm so happy about it. Thank you for everything ❤🎉
You are welcome.
I signed up for Tim's full course. Mastercourse in Web Development despite being 15 year Senior Developer, because Tim is very knowledgable and even if you know most of the stuff, it never hurts to have a checklist to keep your skillset fresh.
He provides so much help with these videos let alone his paid courses, which are exceptional value for money. Thank you Tim!
Thanks for sharing!
Man this is some good advice, and I love the form and depth of the way you present the topic.
Not only do you give actionable advice on how to learn things, but you couple it with generally applicable life advice (that one will learn the hard way anyways).
Thank you for pointing us in the right direction - Looking forward to learning more from you!
You are welcome.
Thanks for being a reliable source of knowledge and inspiration in the coding community. Your videos are truly appreciated!
Glad you like them!
I have gone through your C# Mastercourse it is really good, it can be better or updated but it doesn't make you c# developer ready for jobb today, beacuse, you know what can you become of it? maybe backend developer but then you need to learn more deeply about Sql, Webb Api, if you want to work with webb development such as Blazor or MVC then you still need to know SQL, Webb api,HTML,CSS and maybe even JS it takes absolute more then a year.
Just because you are prepared to be a junior (or even mid-level) developer doesn't mean you will be able to apply to any junior or mid-level C# position. You are ready to start applying. You need to continue studying and broadening your skills. However, you are more prepared to get a job than someone that just graduated from college since you have more actual, practical experience than they do and you know more about how to do the actual job. A junior-level position in C# should require just an understanding of C#, not a bunch of extras. I know a lot of companies say a job is for a junior but ask for a senior-level of knowledge and experience. Some of those jobs you would still be right for. They are just publishing a wish list.
I used to work for a company that hired junior developers right from college. I had to train them afterwards. The C# Mastercourse was heavily influenced by what I wanted to see developers have for skills before they started.
Thanks Tim for all the content that you shared, I following your free content several years ago and Now I need more deeply comprehension for several topics(azure, git, etc) and I get the all access Monthly.
You are welcome!
I got a C# job without ever writing a single line of C# code. Will be starting in a few days hopefully I can manage with your video
Best wishes.
Glad I found this, just bought a book C# Players Guide, and already made some console apps, once I go through this definitely gonna check out one of your courses.
Great!
Brilliant video! A must watch for anyone interested in learning C# (or coding in general) either as a hobby or professional.
Thanks!
Tim's video is sound advice from start to finish. However, I must confess that I prefer MVC to Blazor.
That's totally fine. We have options for a reason.
Common Lies part is very good
I'm glad you think so.
Common lies #3 stands out the most! Thank you!
You are welcome.
Taking a developer course with a friend of yours! Rafael from Portugal
Nice!
Thanks for the great video. I've been trying to break into the industry for more than a year but haven't succeeded yet. I now realize that I haven't practiced each concept I learned enough. I will definitely apply your advice.
One thing I'd like to ask: where would you categorize third-party libraries like Fluent Validation, loggers, etc.? Would you classify them under 'Web project types'? In other words, when should we learn about them? In addition to them, there is also SignalR. I don't know if I have to know it.
I would add them in after you have learned C# itself (so after you have gone through the entire list for learning C# itself). Third party libraries are great, but which ones you will use will change. The underlying C# will not. As for SignalR, it is a wrapper for Web Sockets (and others). It is good to know later on for real-time web communication.
@@IAmTimCorey Thank you very much!
Thanks for the helpful video Tim ! I was struggling to figure out how to go beyond the C# basic/intermediate stuff, but now I have a way clearer idea of where to go next :)
Im glad it was helpful.
Very honest, sincere and practical suggestions.
Thanks!
This is awesome. Could you please create something for intermediate C# developers? Maybe Distributed Systems, Security, Performance, Design Patterns, DevOps etc
Thanks for the suggestion. Please add it to the list on the suggestion site so others can vote on it as well: suggestions.iamtimcorey.com/
@@IAmTimCorey Okay. I tried to now, but the send code feature is not working
We are looking into it.
Isn't there a DevOps course? I am sure I saw it.
Hey Tim, my team and I were discussing the benefits between having a collections class per business object.
We always create a triad of objects.
Dog, Dogs, and DogFactory.
A new guy brought up the idea of using extension methods on a list instead of our collections class. Is there any benefit to one over the other? Dogs either inherits from List or encapsultes it.
We didnt see any benefit to the extension model and left our collections alone
Imma start learning C#. I already know Javascript/react stuff , but there is a huge competition in that field . Might as well learn a new language . Was debating between Java and C#
Great!
Glad to see your new video. It's great!
Thanks!
I'm 39. I want to shift career to programming. Is it possible to work on a C# course for 6 - 12 month and get a job in web development at my age? And...thanks for the great organized and clear content.
Yes it is. The key will be how much you practice and apply what you learn.
I'm so excited to continue learning from your creative insights this year!
Great!
I have an idea for a course (if you haven't built one already). Basically, build a monolithic application (bad design), then refactor the code and apply design patterns. You can easily break this down into several sections / topics by design patterns. This would be a good way to learn design patterns. If you already have this, please share the link. Thanx!!!
It`s gonna be a great 2024!
Excellent!
Thank you for this video, I'm learning C# and I'm really enjoying it..What about algorithms and data structures? It is not important to learn?
They are important, but often very misunderstood. A data structure is how you store data in your application. It could be as simple as string or DateTime. It could be more complex, like Dictionary, Array, etc. However, understanding these is important. When you understand them, though, shouldn't be at a single point in time. Rather, you should learn them throughout your training in C#. Someday I may do a dedicated course on them, but that will only be to help people understand what they are and how to use them properly. But when I teach, I interweave these topics into learning C#.
As for algorithms, what are they? What is an algorithm. That's something that most classes or other training doesn't really define. They show you algorithms, but they don't say what makes it an algorithm. An algorithm is just a bit of code logic. That's it. It is code that solves a problem. So again, you learn how to create algorithms as you learn C#. As you grow in your understanding, you get better at writing more efficient algorithms (logic code) that solves problems.
When you get good enough, you start to see patterns emerge in your code. Things that you do repeatedly or situations that you often face. This is where common algorithms end up happening. Common solutions to common problems. In those cases, we call the common algorithm a design pattern. A somewhat standardized logic design to fit a common problem. This is why I don't push learning design patterns early on. In my opinion, you really need to see the problems a few times before you can appreciate WHEN to use the design pattern. Too often, people learn design patterns too early and they start using them every time they can. This leads to horribly inefficient code and over-engineered, buggy junk code.
I hope that helps.
@@IAmTimCorey thank you Tim for the long reply, I did a few of algorithms and data structures (with python) and I have to say that it was a good training about how to think when I have to solve a problem (especially using the loops). Maybe I'll continue in the future but with C#. Congratulations again for your channel!
Hey tim can i tweak your path a litle bit? This is i want to do:
1. Html css
2. Javascript
3. C#
4. Sql
5. Git
6. Docker
7. Azure
What do you think tim?
It depends on your goals and your timeline. HTML, CSS, and JavaScript should take you six months or more to learn well. In fact, if you go beyond the basics in JavaScript, you should probably plan on a year. After that, you will be employable as a purely front-end developer but only for a small percentage of those jobs and the pay will be pretty low (front-end pay is low in general). Adding C# will take you another year. At that point, you will be able to apply for C# jobs (entry-level). Adding SQL and Git will elevate your skills and allow you to broaden your appeal to employers. So I would expect that this path would take you an extra year or more to get a job if you are looking to be a C# developer. If you are looking to be a web developer who also does C#, this might get you a job faster, but you will probably need to add Angular, React, or Vue to this list before C#, thus pushing your timeline back out another six months to a year. As far as pay goes, you will be paid better as a C# developer than you will as a purely front-end developer until you at least add a JavaScript framework.
Another reason to learn programming is to augment your current job. This is the primary reason I started and continue to learn. It has added real value to the department and allows me to solve problems I wouldn't have been able to do otherwise.
Also, lying to the FBI could be extremely problematic. Just saying, lol
I lumped "improving your job" in with "get a job" in my list, but you are correct. As for lying to the FBI, what is that in reference to?
@@IAmTimCorey lol. You said lying to yourself is the worst thing you can do, sort of at the beginning. Just joking with you.
😆 got it. I was like, I'm pretty sure I didn't say to lie to the FBI. That would definitely be bad.
@@IAmTimCorey lol.
So good advice, it really helped me because i lost my way how and from where to start, actually i am a finance manager (MBA) and sometimes i don't like use other people software because doesn't fulfill my requirements and sometimes need to develop my own anyway thanks so much,
And one request, could you please make videos according to the path which you mentioned it would be so helpful
I did make all of these videos. They are in the C# Mastercourse.
Hi Tim, thank you for the very helpful videos. Could you also make a video on C# exercises and practice problems? Thank you!
Thanks for the suggestion. Please add it to the list on the suggestion site so others can vote on it as well: suggestions.iamtimcorey.com/
Hi Tim Corey you are great. I have a problem practising topics, because of lack of problems to get. How do I get problems on topics I am reading or watching with its answers?
Here is a video to help: ua-cam.com/video/viigJ9NwJ2o/v-deo.html
The biggest thing I am fighting is "52 is too old to learn anything and no one is going to hire a 52-year-old with little programming experience." Actually, I am not sure if this is a lie considering I see this all the time. But, I would like to learn for myself so I can build my own projects. I got through a lot of your Tournament Tracker but quit because of Impostor Syndrome. Ugh lol. We'll see how it goes this time.
It sounds like the first person you need to convince is yourself. Do that, and then you will have a much easier time making it a reality.
Hi @IAmTimCorey I am a new c# programmer in c# and your videos are very helpful thanks a lot!! a couple of doubts in the "paid path" why should I learn Blazor and not Angular or React? anddo you have updated videos that follow the paths that you mentioned in this video?
If you are learning C#, I would recommend against learning Angular or React before you have a rock-solid understanding of C#. By learning Blazor, you are using your C# skills and deepening them. If you use Angular or React, you are introducing a LOT more complexity to get similar results, plus you are taking time away from learning C#.
Happy New Year Tim.
Happy new year!
Thanks Tim, you're the Best. I appreciate 🎉❤
You are welcome.
Thanks Tim, for everything!
You are welcome.
Without any job experience, how will an organization or recruiter even consider hiring you just based on just “home projects” assuming you don’t attend any bootcamps which are typically recommended or represented by a hiring team if you attend that specific bootcamp? It appears that organizations/recruiters only look for reputable or recognizable software company’s on your resume and if they don’t see that in your experience section, the resume gets overlooked. Makes sense if there is one job posting and over 50 applicants and easy to cherry pick looking for that experience background?
Getting that first job is always tricky. Adding a bootcamp won't really improve the odds that much. The biggest thing, actually, will be networking with other developers. But here is a video on how to get work experience before your first job: ua-cam.com/video/HLEeK212uXw/v-deo.htmlsi=LL4omSeTiwckiqdM
Here is how to build a network of connections: ua-cam.com/video/OeMDhUN7xvQ/v-deo.htmlsi=jd8MaRdGDp6KqPJn
Additionally who you worked with in the past doesn’t really matter. What matters is, knowing how to solve problems and providing solutions. You can easily demonstrate this by building projects that demonstrate your skills. Other thing to do is volunteer to build solutions for small businesses, charities etc something that people can use at a free cost or a small fee.
thanks, will come in handy for sure
You are welcome.
Thank you Tim.
How do you think, when I watching some tutorials, but I writing the same code by watching it and also trying to understand parts even if they are hard it is practicing?
Following along and doing what the person does on the video can be really helpful for retaining the information. It can also be distracting. It all depends on how well you listen while you type. You can also pause and resume to help with that. However, that's not the only practicing you need to do. You need to build things on your own that use the topic you are learning, but in a different way than what you saw. Otherwise, you will just be copying what you saw, and you won't be prepared to use that item in the real world.
Thank you!
Check if any institutions around you offer free (government paid) courses/certificates/diplomas. I’m in Australia and I am currently enrolled in a course for programming for free.
Thanks for sharing!
Sir can you share me the link where u r providing the C# course for beginners
I linked to the C# Mastercourse in the video itself, but you can go to www.IAmTimCorey.com to find my courses.
Question, can you skip point 5 for web project types? I am not interested in anything related to web, that's one of the reasons i want to learn C# and not the most usual route with other languages, was thinking about more back end and maybe desktop and mobile type of work maybe gaming with Unity. I guess one extra tool would be useful, can't take that long anyways right? Don't want to be competing with another C# junior developer that would have point 5 and then he gets chosen over me of course!
Hi Tim!
I'm a relatively experienced programmer. Learned Java 10 years ago in HS, got my BS in comp sci, have some years of industry SE experience, and recently just taught at a bootcamp for Web Development (MERN stack). I'm looking to learn C# for a new job. Any recommendations for where to best jump in given my experience?
Here is what I would recommend: speed run this path until you can't. What I mean is watch a video on the topic, create a quick practice project to ensure you actually know how to use it and how to implement the syntax, then move on to the next topic. I'd love to tell you to jump into the middle somewhere, but the problem is that there are probably foundational things that you will miss that way, which will leave important gaps in your knowledge. By speed running, you will ensure you know the topics and then when you start to make mistakes or not understand a topic, you can slow down, practice more, and ensure that you are grasping what may be new concepts for you. You will probably find that you speed up and slow down a number of times.
@@IAmTimCorey yes, this sounds logical to me. Really appreciate the response!
2024 comes with gift🎉
Happy 2024!
Hi Tim, is building personnal projects a great approach? Even if there is repetition?
A great approach to what? Building things is an important part of the learning journey, but it doesn't replace the entire learning journey. For instance, I don't recommend people learn by just building things. That's how you get significant gaps in your education and misunderstandings in your application of principles.
Where should i start in programming? From your C# course?
Absolutely. I outline that in this video.
One huge thing you did not mention and I think it should be mentioned is Authentication and Authorization since pretty much every web application today needs it. Also you did not mention anything about testing, CI/CD and in extension Devops. Do you not think those are as important as the other things in the list? Did you not mention them, because they focus too much on the back end? Also what about some other more minor things such as design patterns, architectural patterns, software architecture and in extension software engineering. What about logging and caching?
You are giving me hope about the small list you gave about becoming junior developer, but I am of the perception that that list today is too small. Am I wrong?
P.S It seems that I did miss that, but you did mention authentication when you spoke about blazor, so that was my bad.
Those are smaller parts of the picture. We are really zoomed out here in this path. There is a LOT that isn't said just because it would take a lot longer to cover. But beyond that, some of these things are outside of the scope of learning C# even though they are really good to know. For example, CI/CD is a massive topic unto itself and isn't language-specific and it also isn't something that everyone needs to dive deep into. Everyone should use it with their production projects, but that's beyond a junior-level understanding of development. Authentication/Authorization is a tough one - it is really a senior-level concern, even though people will probably end up doing it earlier.
As for software architecture, design patterns, etc., I recommend people wait on these until after they have significant experience building projects. That should happen before your first job (we build two "full" projects together in the C# Mastercourse, for example, in addition to the smaller ones I encourage you to do at every lesson). Once you've built applications multiple times, you will start to see where things could be better. That's when you will be able to learn about patterns and apply them. If you do it too early, you will apply patterns before they are needed, which means you will make your applications worse, not better. Architecture is the same way. Trying to study it or learn before doing is a mistake. Build tiny applications. Make mistakes. Learn from them. Learn how to make them better. Otherwise, you will try to apply complex architectural patterns onto an app that does not need it. You will make things worse, not better.
@@IAmTimCorey Thanks for the response. In my current test project(as you said, it is all about trying and personally I have built more than 50+ projects until this point) I have 10+ projects/modules with 5000+ lines of code in total and I am touching on a lot of complicated stuff. I talked to my teacher and he told me that I have done more than enough and I should stop and consolidate before jumping to new things. That being said I am pretty comfortable with that level of complexity and to be fair I kinda enjoy it, which is the reason as to why I keep on adding things.
I hope you are right about the requirements of juniors and hopefully when I get to my first job since I have touched on these issues I will be overqualified, which will make my imposter syndrome go away :).
I just accepted an offer for a .NET role with 0 experience.
Great! Make sure to keep up with the practice. Once you find out what exactly you are working on, practicing that more will be really helpful too. Congratulations!
Ain't no way, in which of the planets in our solar system did someone give you a job with 0 experience @moonmanao2376?
Thank you Tim !
You are welcome.
I'm really interested right now if Tim does coaching for developers 😂
Every Thursday I put out a podcast/UA-cam episode of Dev Questions where I cover the non-coding side of software development. That's basically mass coaching for developers. That's all I have time for right now, though.
I already have the job. I just want to learn to help automate a few things on the job and somethings python takes just way to long to get done.
Sounds good.
Honest question - Is C# worth picking up in 2024?. Most jobs out there are Javascript related.
C# is still very widely used (especially enterprise), so is Python, Java, C++, etc… It also depends on the country you live in. Most jobs out there are for JS but most of them are also either freelance/temp or smaller companies.
Bro just learn, take off all these thoughts about which language is better to learn by x or y. Just stick to the plan and have fun
Absolutely. First, C# is actually a rather popular language, and it is growing in popularity. Second, every new developer flocked to front-end development with a framework (Angular, React, or Vue). The problem is that you need back-end developers to supply those front-end developers with data. You also have a flooded market where there are too many JS developers and not enough jobs. That makes it hard to stand out. It also makes those jobs less valuable, which is why front-end development pays so much less than full stack development (Angular, React, and Vue are front-end development only - full stack requires building back-end code that talks directly to the database, not just calling an API).
Don't get distracted by trying to pursue the most popular. That changes constantly and popularity doesn't equal best money or best positions. Your depth of skill will be much more valuable than chasing after the next hot thing.
Sorry about the question, but do you know if is possible in Blazor Access method from string html using onclick? Thanks
I'm not sure what you are asking, sorry.
Happy new year 🎉
Happy New Year to you as well!
Looks like I'm kind of stuck on step 3. Trying to understand delegates and events. I've been over it a few times with a few tutorials but something just isn't clicking. More grinding I guess.
Build a simple example. Watch what it does. Practice it. See if that helps. Also, try tutorials from different people to see if a different way of saying something might help it click. I have videos on them on this channel if you haven't seen them yet.
I had a similar experience when starting out with interfaces. Or most dummy tutorials really. I just could see wth it was ment to do and how DI relied on it.
Then I got a job where I some real world code to work with. Within a few days it just started to click like a gear slowly, but exponentially starting to rotate.
That’s when I learned that I most likely need to dive into real world production-level code
I don't have windows, and I can only use rider. how can I use .NET framework and desktop apps?
Avalonia ui
You cannot build .NET Framework apps if you aren't on Windows. You also cannot build WinForms or WPF apps unless you are on Windows. However, you can build Console apps, web apps, and mobile apps. You can also build desktop apps with Avalonia or Uno if you are looking to add those skills to your inventory. If you want to practice those Windows-only skills, though, you will need to get access to a copy of Windows.
Just so you know, you can use VS Code as well. It is free. If you already have access to Rider, use it. I just wanted to make sure you didn't think you had to pay to develop in C# when not on Windows.
Excellent video!
Thank you!
i want to become game developer how much should i know so that i can use unity.Please reply
What is the path if a person has completed all of the parts mentioned? I have gotten to the point where I know nearly everything there is to know about c#. If there are parts I am still missing, not sure what else there is to learn. I would think if a person was able to complete the steps faster, that would be bad because it would mean they would get to the end with nothing else sooner which is bad.
Then build something great. You've been complaining about knowing it all and having nothing to do for years now. I gave you a challenge going on two years ago now and I've renewed it repeatedly and you still haven't actually accomplished it. No employer cares if you have memorized what every C# command does. No employer cares if you have built a practice app with every project type in C#. What employers care about is what you can actually do with those skills. And they aren't going to just take your word for it. You need to prove what you can do. I've tried to help you do that for years and you still haven't done it. I think what you are missing is that you telling yourself lie #4 - "I'll advance even if I give up when things get hard." For you, the getting hard seems to be building a complete business application. Not a demo. Not a game. Not something that has an unintuitive UI and limited functionality. A complete line of business application. Do that and you will have something to show potential employers.
Thank you!
You are welcome.
Where is the best time to learn Unit testing?
My recommendation would be after you have learned a lot of the syntax as well as how object oriented programming (OOP) works in depth.
Will jetbrain rider ide c# work well in linux Mint because i want to write programs in linux
Rider works on Linux. I don't know which flavors of Linux it works on, though.
Thank u
How to go through Mastercourse if I have Mac OS ?
Most of it will still apply, but the IDE will be different.
what's the difference between his paid course and his videos on youtube?
There are a few things. The teaching is at the same level of completeness. However, it is structured to be a complete course instead of just a complete lesson. So instead of learning about one topic from me in a UA-cam video and then searching for what you should learn next and then figuring out which UA-cam video might fit it (and possibly getting a different creator with a different style), you get a complete course where we follow an outline to take you from knowing little or even nothing on a given topic to understanding it well enough to use it in production. For instance, here is the outline to the Blazor From Start to Finish course that I released less than a year ago (it covers .NET 8 Blazor):
1. Course Introduction
1. Introduction
2. Who This Course Is For
3. What This Course Covers
4. What Is Not Covered
5. What Outcomes Should You Expect
2. Web Application Basics
1. Introduction
2. Server Side Sites
3. Client-Side Apps
4. Hybrid Apps
5. Where Blazor in .NET 8 Fits
3. Blazor Render Types
1. Introduction
2. Server
3. Server Side Rendered
4. WebAssembly
5. Hybrid
4. Understanding the Template
1. Introduction
2. Template Options
3. Authentication Type
4. Interactivity Type
5. Interactivity Location
6. Top Level Statements
5. Server Side Rendered
1. Introduction
2. Program.cs
3. App.razor
4. Routes.razor
5. MainLayout.razor
6. NavMenu.razor
7. wwwroot
8. Bootstrap
9. Appsettings.json
10. _Imports.razor
11. launchSettings.json
12. SSR Only
13. Stream Rendering
6. Blazor Key Concepts
1. Introduction
2. Hot Reload
3. Components
4. Razor Syntax
5. Dependency Injection
6. Head Components
7. Code Behind
8. Visual Studio Debugging
9. CSS Isolation
10. Calling JavaScript
7. Creating a Component
1. Introduction
2. Component Basics
3. Routing
4. Parameters
5. Startup Methods
6. Managing State
7. Component Events
8. QuickGrid
8. Razor Class Libraries
1. Introduction
2. Creating a RCL
3. Consuming a RCL Component
4. Using Static Assets
5. Packaging for NuGet
9. Forms
1. Introduction
2. EditForm
3. Validation
4. InputTextArea
5. InputCheckbox
6. InputDate
7. InputNumber
8. InputRadioGroup
9. InputSelect
10. InputFile
11. HTML Forms
10. Data Access
1. Introduction
2. Setting Up a SQL Database
3. Data Access in C#
4. Creating a Record
5. Reading Records
6. Updating a Record
7. Deleting a Record
8. Virtualization
11. Blazor WebAssembly
1. Introduction
2. WebAssembly Specific Project
3. PWA
4. Calling an API
12. Authentication and Authorization
1. Introduction
2. Authentication Overview
3. Authentication Parts
13. Deployment
1. Introduction
2. Local IIS
3. Azure Web App
4. Azure Static Web App
14. Course Conclusion
1. Conclusion
Now imagine trying to find specific UA-cam videos on each of these topics in order to piece together this information. You would have a lot of overlap, you would be missing pieces, and it would not fit together well.
Beyond this major benefit, courses also give you a certificate of completion, ad-free videos, tracked progress, and more.
can we do .net development in linux?
Absolutely. The only thing you cannot do is Windows-specific development such as .NET Framework, WinForms, and WPF. You can build Console apps, Web apps, mobile apps, and more.
i am eembarrassed by the code i wrote 6 months ago and the code i wrote today xD
😆
That means you’re learning :D
Okay instead of watching this hour-long video...imma go program
OK
As I am not a professional programmer I often find myself at a loss where I could benefit from input from others on even simple matters. I have tried various groups on both Google groups and Facebook but it feel more that the groups there are more focused on selling new products and ideas and "frown" upon more fundamental challenges.
Does anyone here know on any good places where to communicate with others on issues and ideas?
Get into a local user group if possible. Meeting people who are fellow developers can help, because you naturally bounce ideas off of each other.
@@IAmTimCorey not so many people like it around where I live - and I'm unfortunately "blessed" with a condition called Asperger's syndrome which makes it a bit more challenging.
its funn to make program. but problems start when my program is done and i want give everyone it program run only in my pc i have no idea whats heppen
It depends on the type of application you are building. There is a publish menu option on the right-click menu on the project name. You can publish your project and then distribute it from there (whether that is a desktop application and distributing the exe and supporting files or a web application and you are putting it on a web server or something else).
i can upload source but still somebody with knowedge need look at it and told whats heppen. aplication writed in Net framework4.7.2 (Windows forms C#)
with a loots additional stuff to run and render 3d models play sounds and generate scripts @@IAmTimCorey
No, don't upload source code. Use the publish dialog to generate a published output.
and after that its generated Instaler for this but sill not wok outside my pc@@IAmTimCorey
Does your course include topics like reflection,attributes,multi-threading task tim???
No to reflection (that's beyond the foundational topics we cover and not something you should be using that often anyway). Not sure what you mean by attributes. In the multi-threading area, we cover async/await and how they work, but I do not go into threading, since again, that isn't something you should be doing directly that often.
$500 for the C# master course? Hmm probably just do a Udemy course for 1/20th the price...
It’s all about perspective, right? A boot camp will cost you over $10,000 and you won’t get better training than this course. If you can find the quality and cohesive training over multiple courses on Udemy, though, go for it.
idk, learning C# because I only want to write programs in Rust seems like an invalid reason to learn C#
I'm not sure what you are referring to here. Why are you looking for "invalid" reasons to learn C#?
@@IAmTimCoreylol please excuse my stupid joke. Around 1:50 you’re talking about valid reasons to learn C# and briefly say “not that there’s invalid reasons to learn C#”. I know lots of Rustbros that look down on my C# journey, so that invalid reason popped in my head.
The video is over an hour so idk why I thought anyone would even know what I’m referring to without a timestamp. Love your uploads btw
I think this goes for every language, not just c#
Most of the advice does, yes. The same is true of my Dev Questions podcast. Most of the advice I give covers all of software development, not just C# development.
Nah, I'm very sorry but a big NO to certain parts of this video.
This method is too slow. Now is the age of AI, we should directly dive into real world projects or small tutorial projects. The basics, foundations, such as `for loop`, `if else`, syntax, those are too easy and basic, I mean we can just look up for syntax in the "modern dictionary": AI. Got anything hard to understand? Just ask AI.
And for the debugging part, of course debugging yourself is very good for gaining experience, but I also think if you can find a solution online that would also be very good, the only problem is we should not completely throw the problem to another person without getting involved in the solving of the problem. The key is to solve the problem, either by debugging or searching online, debug by hand is not the only way, searching online, reading documents, even asking AI, are all solutions nowadays, in the AI age.
Also talk about debugging, IDEs are also evolving, so the difficulty to debug nowadays are also way easier than years ago, especially when there is copilot around.
Anyway the video is very good, thanks a lot on the video! But I don't think everyone should start from the basics now, because in this age everything is evolving too fast, basics are easy to catch up to, while learning fast is the key of this age. Utilizing all you can utilize, AI and IDEs, those can boost the process of learning, making "directly dive into projects without basics" a possible thing.
I would encourage you to rethink your beliefs because that is really bad advice. You even alluded to one of the reasons in your response. The basics are called the foundation for a reason - all other code is built upon this foundation. This is like saying "I don't need to learn to use a mouse because voice commands exist."
You seem to be under the mistaken view that software developers primarily write code. That's not true. The primary role of a software developer is to express logic. You identify a problem and then identify how you will solve that problem. The code is just the tool to get the job done. You are skipping out on learning the foundational code pieces that will help you express even basic logic. Beyond that, learning how to write code (the actual syntax of it) is probably the easiest part of software development. The thing that is the hard part is learning how to use that syntax to create more and more complex logic.
When it comes to debugging, it is never going to be easy to debug. No matter how advanced the tools get, they aren't going to be able to do the debugging for you. Again, debugging is about logic, not code. It is about identifying how a system is failing, identifying why it is failing, and identifying the solution to that failure.
As for AI, no. Just no. AI is not going to be the junior developer for you. You have to not only drive it, but you also have to identify when it is wrong. A recent study found that ChatGPT is wrong about coding solutions 52% of the time and 39% of the time, developers didn't realize the solution was wrong. That means that AI will lead you down the wrong path. If you don't know what the right path is, you are going to create a mess (at best). Here is the full article: gizmodo.com/chatgpt-answers-wrong-programming-openai-52-study-1851499417
It sounds like you are new or newer to software development. I would encourage you to actually start to learn how to write C# code. Build real applications. You will find out that you need the foundational syntax and that debugging isn't just something the IDE does for you. That idea might live on when you are a beginner, but once you get into real-world development at any scale, it will quickly change.
where to learn the C# fundamentals??
If you don’t mind paying, the C# Mastercourse is the way to go. If you want to pay with your time instead, you will need to do some research. Https://docs.com is a good place to start. So is UA-cam.
one hour video to convey those few points...
There's an hour's worth of content here. It isn't a "few points" and a bunch of fluff. It is time-tested material based upon decades of experience.
Sure Tim, I like your content, it’s high quality,thanks for making it available. For this particular video, I think you could convey all of the same great arguments in a much shorter time. Just my 2 cents, please continue the good work
What is one hour compared to all the hours spend learning and practicing?
i watch more and more videos that programming is not a future anymore due Chat GPT 4 and soon 5
Then you are watching the wrong videos. GPT will not replace developers. The only way it could replace developers is if it replaced practically every other profession first. Don't believe the hype from people who are inexperienced in the industry and don't actually understand what developers do.
@IAmTimCorey is not going to replace developers if you adapt to the new technology, if not you might get replace.
Companies want to hire highly experienced but very cheap programmers.
And unqualified developers apply for roles that are beyond them and ask for money they don’t deserve. Thats how things work. It will always be a push/pull.
Excellent video! Trying to repeat these steppes and learning even more stuff like RabbitMQ and MassTransit, Redis and I am still learning and have fear to apply for the job. 2 years and six months passed. Maybe I am dumb 😂I don’t know.
Practice builds confidence. When you've done something 100 times, you are more confident doing it than when you have done it 2 times. Beyond that, though, you will just need to take the leap without being fully confident. Almost no one is fully confident. We do it anyway. You can do it.
@@IAmTimCorey thank you for inspiring words Mr. Corey! I really appreciate that.
Thank you for the awesome video and great suggestions.
You are welcome.