I have used Python, Java, JavaScript, C# and I love C# more than any of them in the list. That is the only reason I keep learning C#. "I try to become back-end dev."
I've used them all except for C# (which I'm considering to learn at the moment) and I'm not surprised that you like C# better than Java or JavaScript. I do love Python though, so I wonder if I can come to like C# better than that.
Same here. When I first saw Java and experienced the "everything is an object" paradigm, I was in love!! I think Microsoft saw a lot of VB developers like myself jumping ship over to Java, so they set out to make something that would be close enough to it - but added something extra, and in my opinion better. And for me, that strategy worked. Haven't looked back since!
Even though I've been programming C# professionally for years now I still feel drawn back to Java from time to time, even if I do miss several features when I do
@@Qrzychu92 Kotlin wasn't even close to being around at the time. I started using Java before 1.0 was released. Worked concurrently with Java and VB6 (depending on whether it was web or desktop) up to the early days of .NET. I used VB.NET for a short time, but once I started using C# there was no looking back. Unless I'm doing something small(ish) and could really speed things up with a dynamically-typed language (where I'd use Python), C# checks all the boxes for me!
From a self taught to University student, I can say, Tim is the guy that have had explained the most about each topic, it is like seeing a summary video of a full semester the key aspects that you need to understand from the topic he is talking about.
I have been a professional c# developer since it came out. I have been a developer since around 85. C# is the right tool for everything in user space. Blew my mind when I was able to compile to Linux a few years back. Just so good its ridiculous
I am a C# developer and at some point switched to JavaScript ( For cross platform as there was no .Net Core then ) and developed a desktop application using electronJS but my app was not compatible with the new version of electronJS in just three months. Therefore, C# with Microsoft on its back is an advantage because your code will be compatible mostly. If not then there will be a tool to port your old code to the next version. And if non of the above works, you will have a good documentation to help you out. And if all fails, believe me help will be on its way.
Hi im an aspiring software developer, started with c now learning c# . Since c# and java are pretty similar to what i hear why is c# considered a better option by so many people ?
My career is the same as yours. Thank you for explaining what I have practiced for these many years so eloquently. I hope that others realize the benefits of thinking as you do.
Seriously love c#, I am really happy with it in so many ways, and I am so excited that they are really focused on getting some of those great functional style ideas in the language lately. The pattern matching is freaking great, so succinct and readable, and yet, because of the default case implementation, if something happens that you don't expect, you're still not sacrificing any of the full-featuredness. I love lambdas like mad, and I had such a hard time understanding them at first, but now that I have a grasp on what's going on, I see how absolutely brilliant they are as an idea. I'm trying to get more a grasp on things like expression trees and source generators, and I am looking forward to some nicer tooling for all of that. Anyway, thanks for the training!
I would add a very important reason why I would chose a language and not an another: a teacher I love. Whether he is a person or a book, the right teacher can make me chose one language if I hesitate between many. And here is a fifth reason: whether or not I feel part of the community of the language users. For example, I could not feel I belong to the html/css/javascript community, especially when javascript frameworks emerged.
Coming from 15 years PHP to C#. Job opportunities here in The Netherlands are fairly similar. Really starting to like the language and syntax, not so different from PHP 8 but then again, both have come a long way.
I would have to agree. I learned assembly language on various processors and to cross develop with macros when I started, but learned COBOL and I loved it. Then I learned Pascal and loved it more. Then I learned C and loved it more. I learned Java along the way. It was OK, but I didn't love it. When I learned C# I fell deep for it. Over the years, I have learned over 30 programming languages. Some were more enjoyable than others.
One of the biggest problems I faced as a computer consultant was the fact that I wasn't the one who picked the language/development tool. My first job was to write an application to track a 3 million dollar parts crib. What I NEEDED was a relational database. What was picked for me was a flat file database named Q&A 4 because the purchaser who oversaw the crib belonged to a bowling league and they used Q&A 4 to keep track of the peoples' scores. I managed to make it work by creating a script that, at the end of the day, would use to parts DB to update all the other tables in the system.
One of my first jobs was working as an employee of a consulting company for six years. I stopped counting after writing production code in my 24th different language.
Got my first job in machine vision, and everything is in C#. Industrial protocols, vision software, and Windows UIs. Great language all around, and the code looks very aesthetic as well.
As a new developer, I'm facing a problem with the mindset that I need to learn nonstop if I stop, I just feel missing something or doesn't feel right!! Can you give some advice.
You're right about learning nonstop, you have to keep learning but practice is more important, the only reason you feel this way is because you're trying to learn too many things at the same time, just focus on a programming language at a time, focus on a particular framework or concept, don't rush yourself, we can't learn it all. Wish you all the best.
You do need to continue to learn and grow. However, approach it as a marathon, not a sprint. Don’t exhaust yourself trying to hurry up and learn everything. Learn a bit at a time and let it sink in.
You do need to learn non stop as a developer but when starting out it’s best to get comfortable with each thing you learn first before moving on. It makes the things you need to learn in the future easier to understand. I’m learning C# right now but because I’m comfortable in Python and C++ the concepts are easier for me since I can equate it to something I already know. Don’t be hasty when learning programming.
Thanks for great philosophy. And I'm with you in the "meh Java". Having worked in Java and now in C#. I cannot name many things which would be better in Java than in C# other than more old libraries and the the idea of the free open source world at the same time when we had full Windows reliance. But that is over now.
Hi Tim, since December 2021. I've been learning JavaScript, HTML and CSS. I love the syntax of C# because the way the language is structured and also, I wouldn't mind learning C# for game development as a hobby. Getting to the point I want to become a web developer. Question? If I learn C# how much JavaScript, HTML and CSS should I know? Also, when should I begin to learn C#? Also, Do I even need JavaScript for web development if I learn C#? I already know JavaScript fundamentals. But I don't know high order array functions, modules, state management, and my skills in constructor functions and class function suck. I know HTML very well and CSS I am decent. I know flexbox but I suck at grid. Finally, I don't know a library or a framework like React. Finally, I know the language, but I don't feel 100% comfortable with JavaScript. I could use your guidance, with what I know already for almost the 6 months of as a self-taught developer in JavaScript. How should I learn C# and the tech required for this technology?
I'll do my best to give you general advice that will apply. You will need to figure out what will be best for you. If your goal is to become a web developer, you need to identify what type of web developer. Do you want to be a front-end developer (focused mainly on writing JavaScript in a framework like React, Angular, or Vue), a front-end designer (focused mainly on making things look good using HTML and CSS, possibly with Figma or Photoshop), a back-end developer (focused mainly on business logic and data access using JavaScript or C# or another language), or a full-stack developer (someone who can do a bit of everything - HTML, CSS, JavaScript, and C# or other backend language)? Here are my thoughts on that list - full-stack is crazy-difficult to do right away. It takes knowing multiple languages and frameworks really well. I find that it is better to move toward full-stack by picking one of the other stacks first and adding to it. I'm assuming you aren't anticipating doing design-only work, so we can ignore front-end designer. That leaves back-end and front-end developer. Here's my personal opinion - the market is full of rookie front-end developers. I personally think that starting with the back-end development will give you a more solid foundation, it will give you a broader reach, and it will allow you to grow into a full-stack more easily. I would recommend learning C# because it will give you the skills you need to be a developer doing just about anything (desktop, web, mobile, IoT, Cloud, etc.) That way, you can have a broader reach when looking for a job (unless you choose not to, but it will be your choice). Your HTML and CSS skills will serve you well when working with C# web applications. There are a couple different ways you can learn C#. The most important thing, though, will be to practice everything you learn no matter how you approach it. That practice will be the difference between thinking you know something and actually knowing it. The first way you can learn C# is to piece it together on your own. This is how I learned. It can be tricky, but you can definitely do it. I recommend you start by learning C# syntax. Start small (variables, if/else, loops, lists/arrays, etc.) and practice everything in the Console app project type. That will keep things simple. From there, learn how to debug C# applications. Learn about breakpoints and other Visual Studio features that will make your life easier when debugging. Then learn about object oriented programming. It is important that you understand OOP because you cannot gain the true power of C# without knowing it well. Learn about static vs instantiation, interfaces, inheritance, abstract classes, overloads, value types vs reference types, and more. From there, start learning the various project types. Up until now, I would recommend you stick with the Console app project type because it keeps things simple. Now you should learn about the class library, the five ASP.NET Core web project types, and the desktop project types (WinForms, WPF, and maybe UWP). I know you don't anticipate doing desktop development, but you should at least build a few just so you know how they work. That broadens your skills and it sets you up for success in the future. After that, focus on data access. Learn how to talk to SQL, SQLite, MySQL, MongoDB, CosmosDB, text files, and APIs at the very least. Learn how to use Dapper and Entity Framework (at least the basics). Learn what LINQ is and how to use it. By this time, your brain should be crammed full of things that you have learned. You should also have about 100 practice projects under your belt (tiny ones that just focus on the code, not on doing anything useful). Build a few small projects that actually do something to practice putting the various pieces together. A second way to learn is to go through a course. I sell the C# Mastercourse, where I follow the above plan (plus a LOT more) and teach you step-by-step: www.iamtimcorey.com/p/c-mastercourse Whichever way you choose, you can do web development with C# that can be back-end focused, front-end focused, or full-stack focused without ever leaving C#. You don't NEED JavaScript in a lot of cases. Some people still prefer it, and that's fine. You can integrate Angular, React, or Vue into the front-end of a C# web application quite easily.
@@IAmTimCorey Wow, thank you so much for the excellent advice! I greatly appreciate all the wisdom you have offered. I will look over your link for the course and I will journal the proper course to take for learning C#. I will try to learn everything you texted me to gain a better understanding of the path I need to take and next week Friday I will begin my learning Path in C#, thank you for the guidance. Truthfully, I am more focused on mastering a few things versus having a broad spectrum of knowledge. You were correct I am not interested in web Designing I am interested in web development and I wouldn't mind starting as a back-end developer and Desktop development sounds pretty interesting as well. My end goal truthfully is not to fail but to reach my goal as a software developer. I am eager to learn. Well on the positive side at least I will be learning a language with an authentic OOP language versus a prototypical language. After I am finished writing you this message. I will check out your site. Also, I already purchased just the other day the Headfirst C# book. I guess this will be my starting point? Thank you once again, I am truly thank for your wisdom and guidance.
Some people are concerned about the constant stream of new features in C#, and that it's becoming overly complex, and hard to keep up with. I personally love the language and most of the new features, but I sometimes think it would be overwhelming for an entry level person. (Despite the new "top-level statements" feature.) I've heard people say just use a subset, like just through C# 7, but then what if you have to maintain code that uses the full feature set?
Change is inevitable and important. A language has to grow and evolve with the times. Otherwise, it falters and fails and gets pushed aside. If that happens, your investment in the language mostly goes away since the market starts to dry up for jobs in that language. Yes, keeping up with the changes can be difficult but it is a part of being a developer. In the case of C# and .NET, changes come once a year. That isn't a big deal, really. It isn't a constant flood of new changes. Yes, if you try to keep track of the pre-release versions of things then changes come more quickly but that's not wise.
@@IAmTimCorey I'm not concerned for myself as a developer, rather my concern is for the ongoing viability of the language, if it's not embraced by new developers because it gets the reputation of being "too complex". Talking to developers and reading on-line, I think there's definitely a growing sentiment that the constant barrage of new features is making the language bloated and difficult to learn.
Don't think this has been mentioned, but the majority of Visual Studio is now written in C# (using WPF, I believe, for the UI). I doubt the C/C++ compilers are... but most everything else is probably C# (if anyone know more details on this, please comment!). Seeing killer software like Visual Studio written in a certain language is a definite testament to that language.
Great video as always! I started learning Python first and switched to C# because it's what was used in my first software developer job and I've just run with it since. It's funny how despite a person's preference or experience, opportunity can really be the main driving force behind language uptake. Granted if I hated C# I probably wouldn't have stayed in a job working on it though too
My first Kang I used was C and then passed almost 9 years in C++. Currently i use C# and seriously I get get off of C++ I prefer C++ but dont hate C# But I really do about Java
I have tried many times with other languages but they all never "sit right" with me. Many would consider C# to be overly verbose but I actually find this makes it easier to understand instead of harder. I've tried to get into JavaScript and PHP but the syntax honestly makes me cringe. Not to mention the developer experience using Visual Studio IDE.
Awesome, as usual Mr. Tim corey This is the best answer I've heard ever about the Byzantine controversy on which best programming language. Three major factors should guide you to the right choice. Just answer these three questions frankly and go.
hello Tim, i m currently being offered a contract to be a product manager and i would like to understand the basics or the common rules of being one, obviously this is my first time going over such contract and i would like to be thourough with contract. i understand that companies have their own idea of contracts, still, some points should be common and if not, is there a standard contract that one can agree upon. always a fan
When you see C# or Java you see very stable and backed languages by companies, when you see some other languages everyday you see a lot of instability to look for the flavor of the month because of need trends and forks of same languages over and over haha
True, problem is support. Microsoft or Oracle(Java) for that matter will provide support that others don't (JavaScript/Python). Good luck debugging production issues with dynamically typed languages.
Bjarne Stroustrup, the inventor of C++, said, 'inside C++, there's a simpler language dying to come out.' He's right--it's C#. I wish it was a first class language of the web, mobile and desktop.
@@IAmTimCorey Unfortunately, some of the language features like records makes no sense to me. It seems like they added it to make the C# more functional programming friendly. That's fine, but why not just add a modifier to classes and structs.
Did you see my video on records? ( ruclips.net/video/9Byvwa9yF-I/видео.html ) Records are basically just modifiers on classes (and structs in .NET 6). They are just classes with extra "stuff".
@@IAmTimCorey Yes, but why introduce a new datatype instead of a new modifier like: public immutable [class/struct] Dog { } Records don't work with classes and structs interchangeably. You can't inherit from a record , nor can a record inherit from either a class or struct.
Hey Tim love your videos and I’ve taken some of your training courses. You talked about C# being on all kinds of platforms. I’m curious, do you know if C# is being used at all in the Blockchain space? I’ve tried looking it up and I don’t see a whole lot.
Hello sir. I love c#. I now want to insert graphs and visualize the data through c#. But I have no idea how to insert graphs and charts in c#. Can you please make a video or atleast leave a comment about how can I do the data visualization in c# and what are the best possible options. Love you sir❤️❤️
You have to use WPF with its classes: Canvas, Line, Ellipse, Polyline,... You can develop your own charts or you can use 3-d party controls like SciCharts.
I'm a Sr Software Engineer... I've been around long enough to hear the dinosaurs griping about the object oriented non-sense that C++ was pushing on everyone and how the world would function just fine on C. Having spent over a decade of java development professionally, I do have a strong preference for C#.
I've been programming for 20+ years, and I was indoctrinated that OOP is "how we write software now" so that was all I did for many years. Then I started listening to other developers and having an open mind, and then I saw that among other things, functional programming and programming in C without classes can do anything that OOP can do, sometimes even more performant. Don't stick to just one paradigm your whole career and think it's the key to all answers. I'm mainly a C# developer nowadays, but both C++ and C are fine, C++ is not automatically better than C at anything just because it's OOP. C# has been moving away from being so tied to the OOP ideas for a long time now, and that is one of the main reasons i'll keep betting on C# in my work-life, it's not a one-trick pony.
@@Vreth6 Well when you have complete control over gc and low level caches, you can increase performance. Which is why that is still possible in C++ and which is why most MCUs will maintain the C/C++ naive code. I am not sure what you mean that C# is moving toward procedural. Even the .NET seems to be pushing a more OOP approach towards wrapping the markup code. It might render down to a markup on the client, but from the developer's point of view, its going more and more towards wrapping markup away and handling the markup in the framework.
C# as a language is very good but the supporting features and tools on Linux is poor and confusing. Until the Linux commuity adopts C# (which will not happen) it's never going to beat the PHP, Java,Python, etc on Linux. For example just try to find a Linux shared hosting provider that supports .Net Core. None.
I get that, but that's not really a thing. That's like saying "a hammer is better than a screwdriver." Different languages have different strengths, but "better" isn't a great descriptor. A car and a truck will perform differently in different situations, which means one is not better than the other. That's an apples to oranges comparison. You probably don't want to tow large trailers with a car and a car will probably give you much better gas mileage for your commute. Each has its strengths depending on the situation. Languages are the same way. I personally like C# a lot and have used it primarily whenever I could in the past 15+ years (when it first came out, I didn't primarily use it). But that doesn't mean that I didn't use other languages. I've used PHP in the past 5 years and I just had dinner with a guy who built his site using PHP in the past year. I wouldn't push him to change that. In fact, I'm interested in seeing more of how he did it because it might be a solution for one situation I have coming up. When you are choosing a language, you need to choose one that you like, that you can get a job using, and that is continuing to grow. C# is definitely growing and changing. You can definitely get a job with C#, although each area will be different. So it comes down to if you like it. Personally, I like it because I can work on almost any platform using one language. I don't have to switch languages to work on client-side web, or on Mac, or on Linux, or in the cloud, or on the desktop, or on a mobile device. That's pretty incredible, and it makes me more efficient as a developer.
I love C#, but I don't like what it's used for: mainly backend for enterprise companies, I'm more of a visual person, so maybe I should stick with JavaScript, which I don't really like compared to C#. Let me know what you think of that down below in the comments. Thanks!
I used to say to my colleagues, backend is like going to the gym to lift weights and frontend is like going to have a haircut. No offense here, we all need the visuals and we love it too.
@@focl2003 writing Html+Css isn't the only thing regarding frontend development. Complex logic can still be in frontend as well. Maybe you think about frontend as of 1990-2010 frontend when there wasn't too much complex business logic. It's grown a lot since then.
The limited platform scope I think makes .Net a poor choice. However .Net Core is really a game changer, now it can run on a much wider array of platforms and as a production language C# can start to compete properly with the likes of Java.
It would only be a poor choice if you actively needed your application on other platforms. For instance, ASP.NET (the .NET Framework version) might only run on Windows servers, but it still supports any client. Xamarin always worked on iOS and Android. The only non-cross-platform client-facing piece was desktop apps and console apps. Even those worked on the most common operating system on the planet for business. Yes, .NET Core extends the reach to more platforms but that doesn't mean that the .NET Framework was a "poor choice" before.
@@IAmTimCorey Fair point. But I am thinking about it from the perspective of finding work. The more uses for a language you specialise in and places that language can execute, the more opportunity for work there is. I ended up in .net not necessarily by choice but that's just sort of how my career panned out. I think you are looking at it from a business/employer perspective, which is valid too. Although my thoughts on that perspective is to choose the technology based on the available talent pool. No point building some sweet Haskell app if you can't find the programmers to scale out the business.
Please guys give me advice. I’m a new developer and I don’t choose any types of language which is the best language why I don’t choose exact language because I'm afraid to choose a specific language if you good advice tell me
I've been trying to learn cross platform mobile apps with c# in xamarin forms and all ive noticed its really not compatible with anything cool and if it is such as mapbox its really glitchy. also not many resources online to learn c# above a basic level that are streamlined. but I'm still trying to learn it. always down to hear differing opinions though.
Xamarin is becoming .NET MAUI in Q2 2022. At that point, it will be much more widely useful. They will still focus first on business use-cases so some of the "cool" things might not work but you should have all you need for a traditional business application.
@@IAmTimCorey I didn’t ask about which is best, I’m asking if it has good application for processing data. E.g. I know using C# with spark applications is very lacklustre compared to something like PySpark
Sorry for the confusion. Whey you asked if it was "good over others", in my mind that means "which is the best". How good C# is in a "data engineering" depends a lot on the meaning. Some people use that term to mean "big data" like Machine Learning. C# has some really powerful tools for ML. If you are talking about processing enterprise data (the typical process of ingesting information, running it through business logic, and then storing it in a database) then C# also is really good at that.
I am starting my career as a C# developer, and I am planning to use a Macbook with Apple Silicon to work. Can I have your advices in .Net development using Apple Silicon? Thank you!
I believe c# or .net dev in Mac is pretty well supported. M1 arm is well supported with the new launching of .net 6 in coming months . I’m planning to develop on Mac as well.
@ghost mall just this week, I was developing a small tool in C# and . Net Core 5 on my Macbook Pro 16 using JetBrains Rider - I dont generally like virtualization - but man that development experience using Rider was smooth as silk. Can’t recommend it enough.
Hey Tim, should I accept a job offer that uses older tech but pays decently and the company is stable enough to last several decades, then I can upskill on my own with tech stack Im interested in, OR stay jobless indefinitely until I find a job that uses new tech and hope that by joining them I'll get to acquire the skills, possibly?
I only have a little bit to work on, so you need to take this as just one opinion and make your own choice. However, it would seem that taking a paying job that will give you work experience is better than not having a job. You can continue to look while working for the new job. That will allow you to have money while you search. It will be important that you develop and practice your skills in newer technologies. Just remember that a LOT of jobs use older technologies. That's common because upgrading versions can be difficult.
@IAmTimCorey Thanks heaps Tim, your advice is much appreciated, as I consider you an authority on anything .Net/Core., and the old tech I'm talking about is web forms - VB net and net Framework, this company has a long list of inhouse-built systems a decade old, used by many departments and so they can't just upgrade/abandon these as I believe they don't have the budget to do so yet, but they are looking at Blazor for their R and D in a couple of years, as they told me. I guess it's better to have something to pay the bills for now and just resume my learning on my own free time and pace.
Hi Tim, I live in the Czech republic. I am working in the automotive industry as a quality engineer however, I would like to become IT Developer, Therefore i am studying WPF which I am interested in now. 1. Can I become a C# WPF Software developer as a junior developer by studying myself? 2. Is it good to study WPF which is still demanding in IT industry? 3. Can you please give me some advice to become IT Developer?
1. Yes, you can. I did. I am fully self-taught in C#. By that I mean that I didn't go to school for it, or a bootcamp for it. However, I did learn from a lot of people on RUclips, in blogs, and in books. 2. There is a demand for everything. How much of a demand depends on a lot of factors, including what area you are in. Just remember, you only need one job, not millions. The less jobs there are in a field, the better in some ways. Less jobs means less competition. So learn what you want to work in for the next few years. Then apply for jobs using it. 3. Keep learning, even after you get a job. Jobs come and go. Be prepared for your job not being there by keeping yourself trained. Your employer is not responsible for your education, you are. When you learn something, practice it. Otherwise, you haven't really learned something. Until you practice it, you won't know if you missed a part, if it works like you think it does, and what the edge cases are. It makes your learning feel slower, but it actually grows your skills much faster than someone who watches videos and thinks they have learned topics.
@@IAmTimCorey Thank you very much. for me, honestly i work 10 hours a day, so it is a bit tough time to study after work.. but i really want to become IT developer THANK YOU VERY MUCH !!
The sad part is when you spend 5 days making a job interview test using great C# techniques and after you get hired you spend most you day leading with legacy C/C++. The bills need to getting paid.
Learning a programming language gives you the knowledge of how to assemble logic. That applies to any other programming language, regardless of the syntax. The syntax similarities of C++ and C# make even that transition easier.
@@IAmTimCorey My current goal is to just work with API's (and pretty simply stuff at that) but watching your video's I'm really gaining interest in C# (and programming in general). Enough so much that I might set higher goals (maybe transitioning to C++). Syntax itself isn't my bottleneck so much as piecing everything together. A few years ago I started to learn C# but was so confused about .NET framework that I threw in the towel; your video on the .NET confusion cleared that up really well! C++ being so similar to C# that the transition would be quite easy, save for memory management? Would you say that requires a big leap in ability/knowledge level?
Sir can anybody advise me, is it possible to get a remote job with c#. I live in a 3rd world country and if I can make 12000$ annually then it would be more than enough for me. So right now I love unity development. Working on my first mobile commercial game.
The code is very similar. However, the ecosystems are very different. I wasn't a fan of the JVM. I also wasn't a fan of the IDE options. On the other side, I like the power of Visual Studio. I also like Microsoft's focus on open-source contributions.
Why do you think that C# took off instead of VB.NET? Why is it that VB and VBA which I use a lot as an Access developer, is considered by many the "annoying little brother" of programming languages?
I think C# fit better into the community (C, C++, Java, etc.) with its syntax so it was an easier transition to come from other languages and start in on C#. For instance, a lot of colleges teach Java, which means it isn't that big of a leap to C#. VB is really a Microsoft-only thing. It isn't very common to learn it in school and there aren't many languages that are similar to it (outside of the other "flavors" such as VBA).
In the past time I was a vb developer, but i learn c# with the blog el guille from spain. And now I love c#, I'm testing net core blazor i really like. Thanks for sharing Tim, congratulation for your personal advice.
Absolutely. I think it is a great first language. You can definitely learn it on your own, or if you want an easier path, you can take this course, which will take you from knowing nothing to being real-world ready as a developer: www.iamtimcorey.com/p/c-mastercourse
@@IAmTimCorey wow really fast reply I have been really wondering what language to start with all I can hear from people is learn python start with html, the javascript I learned html,Css back in 2017 but I dropped and went to wordpress but just drag and drop nothing much until recently I completed my diploma In electrical engineering I want to do something that I feel will be of relevance and also will help he get into a software engineering pat. I thank you for your point of view...
I would suggest you also put a roadmap to different paths because over here in Kenya bootcamps show learn git shell, then mvc I dont know what that is but I think a roadmap would be nice thanks.
I was hoping you would go into more detail about what you dont like in Java and also cover Python, because it seems like Python is taking off right now.
@@IAmTimCorey Let's say you have a few number ranges you want treated the same. In VB you could have a very easy to read line "Case 2 to 3, 5 to 12, 15 to 20" match the ranges you want, whereas it's messy looking in C#.
@@IAmTimCorey I'll admit, C# switch got better at this with VS2017 / C# 7. Can you have a variable in a case statement in C# now, or is that still a problem?
I know alot of people refuse to use C# because they hate Microsoft!! I really feel all of them think that hating Microsoft makes thim looks smarter and unique!! I did an interview with biggest Dutch company in the Netherlands who uses Java, the interviewer told me "you can switch to Java easily since Microsoft has copied Java as it is and made some stupid changes and called it C#"!!!
I understand the love of VB6 as I was stunned years ago when my business partner threw together a GUI in a matter of minutes as I was fighting with MFC and cursing Hungarian Notation. We agreed I would stop that and just build him libraries as needed in C++. As for 'loved' language... I don't really have one but I do strongly believe in using 'the right tool for the job'. To a lesser degree, I have 'annoyances' in other languages such as the fifteen million long reverse domain names (com.xxx.xxx.xxx.xxx.xxx...) in namespaces in Java or the "Lost In Stupid Parentheses" ((L)(I)(S)(P)) or the 'just().because().you().can().chain().functions() in functional languages DOESN'T MEAN YOU SHOULD!
C# is only like Java on the surface. C# is way better just because it has structs and delegates. However, it doesn't unify class and struct, and people say that that's by design, but it's a design that I don't like. Go is far better than C#, but the best is Rust. Rust has a steep initial learning curve, unlike most languages that have a linearly increasing curve. C++ is a great language, but it's learning curve is exponential, which is very bad when you need to do something advanced, like compile time template evaluation. The constexpr feature was added to flatten it a bit, but C++ doesn't have reflection. Rust has macros as powerful as Lisp that run at compile time, and the borrow checker allows you to provably write parts of your app or library in safe code that's more than just memory safe, it's also thread safe. Once you're over the "fighting with the borrow checker" phase of learning Rust, I'm sure that you'll agree that it really is the one of the best languages for systems, scripting, mission critical, and pretty much any project category. It also runs on more platforms than C#, and C# can run on almost anything. Only C and Rust have it beat. I agree that diversity of languages is a good thing. I do want more languages that don't rely on a garbage collector, and they're really hard to find. I know that .Net was supposed to fix that problem, but those languages are still not as safe as they could be, and have less interop (C, C++, Rust, and Zig can interop with pretty much any other language).
C# is only good for writing applications. In terms of speed it's slower than C++/Fortran. It's also not very good at Data Science/Machine Learning area. I assume as long as Microsoft is around, C# developers wouldn't have trouble finding jobs.
I have used Python, Java, JavaScript, C# and I love C# more than any of them in the list. That is the only reason I keep learning C#. "I try to become back-end dev."
Great!
I've used them all except for C# (which I'm considering to learn at the moment) and I'm not surprised that you like C# better than Java or JavaScript.
I do love Python though, so I wonder if I can come to like C# better than that.
My first love is Java, just moved to c# and I'm actually loving it.
Same here. When I first saw Java and experienced the "everything is an object" paradigm, I was in love!! I think Microsoft saw a lot of VB developers like myself jumping ship over to Java, so they set out to make something that would be close enough to it - but added something extra, and in my opinion better. And for me, that strategy worked. Haven't looked back since!
Even though I've been programming C# professionally for years now I still feel drawn back to Java from time to time, even if I do miss several features when I do
@@PerryCodes why did you skip Kotlin?
Java? #shivers
@@Qrzychu92 Kotlin wasn't even close to being around at the time. I started using Java before 1.0 was released. Worked concurrently with Java and VB6 (depending on whether it was web or desktop) up to the early days of .NET. I used VB.NET for a short time, but once I started using C# there was no looking back. Unless I'm doing something small(ish) and could really speed things up with a dynamically-typed language (where I'd use Python), C# checks all the boxes for me!
From a self taught to University student, I can say, Tim is the guy that have had explained the most about each topic, it is like seeing a summary video of a full semester the key aspects that you need to understand from the topic he is talking about.
Thanks!
My regular go to RUclipsr for C#. Your knowledge is very mature and the explanation is very elegant. Love your videos, Sir!
Thanks for watching and the great endorsement.
I have been a professional c# developer since it came out. I have been a developer since around 85. C# is the right tool for everything in user space. Blew my mind when I was able to compile to Linux a few years back. Just so good its ridiculous
It is pretty awesome.
I am a C# developer and at some point switched to JavaScript ( For cross platform as there was no .Net Core then ) and developed a desktop application using electronJS but my app was not compatible with the new version of electronJS in just three months. Therefore, C# with Microsoft on its back is an advantage because your code will be compatible mostly. If not then there will be a tool to port your old code to the next version. And if non of the above works, you will have a good documentation to help you out. And if all fails, believe me help will be on its way.
Thanks for sharing that. I am sure it will help some folks have more confidence
I am choosing c# because it is sitting on a huge ecosystem, backed by a company that will not die anytime soon. I'm betting on longevity.
That's actually well said lol +1
+1
Although .NET is not truly cross platform
Valid perspective
@@bity-bite ??
The ending seconds though :D Good video!
Whoops. Forgot to cut the end.
I used Java a good bit in school then got on internship doing C# and it just felt like a straight upgrade across the board.
Haha, I had the same experience, Java in college then internship and job in C# and I've never looked back.
Thanks for sharing.
Me too, java, But After I try c#1.0-1.2! I loved it.
Hi im an aspiring software developer, started with c now learning c# . Since c# and java are pretty similar to what i hear why is c# considered a better option by so many people ?
I am on the same way. :)
My career is the same as yours. Thank you for explaining what I have practiced for these many years so eloquently. I hope that others realize the benefits of thinking as you do.
You are welcome.
Seriously love c#, I am really happy with it in so many ways, and I am so excited that they are really focused on getting some of those great functional style ideas in the language lately. The pattern matching is freaking great, so succinct and readable, and yet, because of the default case implementation, if something happens that you don't expect, you're still not sacrificing any of the full-featuredness.
I love lambdas like mad, and I had such a hard time understanding them at first, but now that I have a grasp on what's going on, I see how absolutely brilliant they are as an idea.
I'm trying to get more a grasp on things like expression trees and source generators, and I am looking forward to some nicer tooling for all of that.
Anyway, thanks for the training!
You are welcome.
I would add a very important reason why I would chose a language and not an another: a teacher I love. Whether he is a person or a book, the right teacher can make me chose one language if I hesitate between many.
And here is a fifth reason: whether or not I feel part of the community of the language users. For example, I could not feel I belong to the html/css/javascript community, especially when javascript frameworks emerged.
Good points.
Coming from 15 years PHP to C#. Job opportunities here in The Netherlands are fairly similar. Really starting to like the language and syntax, not so different from PHP 8 but then again, both have come a long way.
Thanks for sharing.
Learned Basic, then Turbo Pascal, VBA, PhP: you can read C# easily.
C# is wonderful, use it everyday and feel like I learn something new all the time.
Excellent!
Similar path of language evolution. Mine was qb45, vb 1-6, vb.net, now c#.net love C#.
The access to high quality programming lessons on your channel, is one of the main reasons that I am working in C#.
Awesome!
I would have to agree. I learned assembly language on various processors and to cross develop with macros when I started, but learned COBOL and I loved it. Then I learned Pascal and loved it more. Then I learned C and loved it more. I learned Java along the way. It was OK, but I didn't love it. When I learned C# I fell deep for it. Over the years, I have learned over 30 programming languages. Some were more enjoyable than others.
I'm met other folks that mastered multiple languages. I am always inspired.
One of the biggest problems I faced as a computer consultant was the fact that I wasn't the one who picked the language/development tool. My first job was to write an application to track a 3 million dollar parts crib. What I NEEDED was a relational database. What was picked for me was a flat file database named Q&A 4 because the purchaser who oversaw the crib belonged to a bowling league and they used Q&A 4 to keep track of the peoples' scores. I managed to make it work by creating a script that, at the end of the day, would use to parts DB to update all the other tables in the system.
One of my first jobs was working as an employee of a consulting company for six years. I stopped counting after writing production code in my 24th different language.
I moved from VB to C#, at the beginning I found it hard to understand but now I love it.
Great!
Got my first job in machine vision, and everything is in C#. Industrial protocols, vision software, and Windows UIs. Great language all around, and the code looks very aesthetic as well.
Thanks for sharing!
As a new developer, I'm facing a problem with the mindset that I need to learn nonstop if I stop, I just feel missing something or doesn't feel right!! Can you give some advice.
You're right about learning nonstop, you have to keep learning but practice is more important, the only reason you feel this way is because you're trying to learn too many things at the same time, just focus on a programming language at a time, focus on a particular framework or concept, don't rush yourself, we can't learn it all. Wish you all the best.
@@adeizayusuf thank buddy!!
That's not a problem. That's how it is. You need to be learning nonstop, especially when just starting out.
You do need to continue to learn and grow. However, approach it as a marathon, not a sprint. Don’t exhaust yourself trying to hurry up and learn everything. Learn a bit at a time and let it sink in.
You do need to learn non stop as a developer but when starting out it’s best to get comfortable with each thing you learn first before moving on. It makes the things you need to learn in the future easier to understand. I’m learning C# right now but because I’m comfortable in Python and C++ the concepts are easier for me since I can equate it to something I already know. Don’t be hasty when learning programming.
Also one had 21 years on experience in VB and now developing im C#! Great to hear not to be alone.
Excellent!
Thanks for great philosophy. And I'm with you in the "meh Java". Having worked in Java and now in C#.
I cannot name many things which would be better in Java than in C# other than more old libraries and the the idea of the free open source world at the same time when we had full Windows reliance. But that is over now.
Thanks for sharing.
Sounds like we took a similar path :). I got into C# when it came out in Beta, and once it was good to go, I switched :)
Thanks for sharing
Hi Tim, since December 2021. I've been learning JavaScript, HTML and CSS. I love the syntax of C# because the way the language is structured and also, I wouldn't mind learning C# for game development as a hobby. Getting to the point I want to become a web developer. Question? If I learn C# how much JavaScript, HTML and CSS should I know? Also, when should I begin to learn C#? Also, Do I even need JavaScript for web development if I learn C#?
I already know JavaScript fundamentals. But I don't know high order array functions, modules, state management, and my skills in constructor functions and class function suck. I know HTML very well and CSS I am decent. I know flexbox but I suck at grid. Finally, I don't know a library or a framework like React. Finally, I know the language, but I don't feel 100% comfortable with JavaScript.
I could use your guidance, with what I know already for almost the 6 months of as a self-taught developer in JavaScript. How should I learn C# and the tech required for this technology?
I'll do my best to give you general advice that will apply. You will need to figure out what will be best for you. If your goal is to become a web developer, you need to identify what type of web developer. Do you want to be a front-end developer (focused mainly on writing JavaScript in a framework like React, Angular, or Vue), a front-end designer (focused mainly on making things look good using HTML and CSS, possibly with Figma or Photoshop), a back-end developer (focused mainly on business logic and data access using JavaScript or C# or another language), or a full-stack developer (someone who can do a bit of everything - HTML, CSS, JavaScript, and C# or other backend language)?
Here are my thoughts on that list - full-stack is crazy-difficult to do right away. It takes knowing multiple languages and frameworks really well. I find that it is better to move toward full-stack by picking one of the other stacks first and adding to it. I'm assuming you aren't anticipating doing design-only work, so we can ignore front-end designer. That leaves back-end and front-end developer.
Here's my personal opinion - the market is full of rookie front-end developers. I personally think that starting with the back-end development will give you a more solid foundation, it will give you a broader reach, and it will allow you to grow into a full-stack more easily.
I would recommend learning C# because it will give you the skills you need to be a developer doing just about anything (desktop, web, mobile, IoT, Cloud, etc.) That way, you can have a broader reach when looking for a job (unless you choose not to, but it will be your choice). Your HTML and CSS skills will serve you well when working with C# web applications.
There are a couple different ways you can learn C#. The most important thing, though, will be to practice everything you learn no matter how you approach it. That practice will be the difference between thinking you know something and actually knowing it.
The first way you can learn C# is to piece it together on your own. This is how I learned. It can be tricky, but you can definitely do it. I recommend you start by learning C# syntax. Start small (variables, if/else, loops, lists/arrays, etc.) and practice everything in the Console app project type. That will keep things simple. From there, learn how to debug C# applications. Learn about breakpoints and other Visual Studio features that will make your life easier when debugging. Then learn about object oriented programming. It is important that you understand OOP because you cannot gain the true power of C# without knowing it well. Learn about static vs instantiation, interfaces, inheritance, abstract classes, overloads, value types vs reference types, and more. From there, start learning the various project types. Up until now, I would recommend you stick with the Console app project type because it keeps things simple. Now you should learn about the class library, the five ASP.NET Core web project types, and the desktop project types (WinForms, WPF, and maybe UWP). I know you don't anticipate doing desktop development, but you should at least build a few just so you know how they work. That broadens your skills and it sets you up for success in the future. After that, focus on data access. Learn how to talk to SQL, SQLite, MySQL, MongoDB, CosmosDB, text files, and APIs at the very least. Learn how to use Dapper and Entity Framework (at least the basics). Learn what LINQ is and how to use it. By this time, your brain should be crammed full of things that you have learned. You should also have about 100 practice projects under your belt (tiny ones that just focus on the code, not on doing anything useful). Build a few small projects that actually do something to practice putting the various pieces together.
A second way to learn is to go through a course. I sell the C# Mastercourse, where I follow the above plan (plus a LOT more) and teach you step-by-step: www.iamtimcorey.com/p/c-mastercourse
Whichever way you choose, you can do web development with C# that can be back-end focused, front-end focused, or full-stack focused without ever leaving C#. You don't NEED JavaScript in a lot of cases. Some people still prefer it, and that's fine. You can integrate Angular, React, or Vue into the front-end of a C# web application quite easily.
@@IAmTimCorey Wow, thank you so much for the excellent advice! I greatly appreciate all the wisdom you have offered. I will look over your link for the course and I will journal the proper course to take for learning C#. I will try to learn everything you texted me to gain a better understanding of the path I need to take and next week Friday I will begin my learning Path in C#, thank you for the guidance.
Truthfully, I am more focused on mastering a few things versus having a broad spectrum of knowledge. You were correct I am not interested in web Designing I am interested in web development and I wouldn't mind starting as a back-end developer and Desktop development sounds pretty interesting as well. My end goal truthfully is not to fail but to reach my goal as a software developer. I am eager to learn. Well on the positive side at least I will be learning a language with an authentic OOP language versus a prototypical language.
After I am finished writing you this message. I will check out your site. Also, I already purchased just the other day the Headfirst C# book. I guess this will be my starting point? Thank you once again, I am truly thank for your wisdom and guidance.
@@IAmTimCoreywhich language is well versed in generative ai or coding halftime updates in sport video games? I want to build a startup. Java vs c#
I been working on C# for 11 years now and I still loving it, I'm glad is growing to the next level of multi platform support
Please enjoy that ride with Tim. So much more to come!
Some people are concerned about the constant stream of new features in C#, and that it's becoming overly complex, and hard to keep up with. I personally love the language and most of the new features, but I sometimes think it would be overwhelming for an entry level person. (Despite the new "top-level statements" feature.) I've heard people say just use a subset, like just through C# 7, but then what if you have to maintain code that uses the full feature set?
Change is inevitable and important. A language has to grow and evolve with the times. Otherwise, it falters and fails and gets pushed aside. If that happens, your investment in the language mostly goes away since the market starts to dry up for jobs in that language. Yes, keeping up with the changes can be difficult but it is a part of being a developer. In the case of C# and .NET, changes come once a year. That isn't a big deal, really. It isn't a constant flood of new changes. Yes, if you try to keep track of the pre-release versions of things then changes come more quickly but that's not wise.
@@IAmTimCorey I'm not concerned for myself as a developer, rather my concern is for the ongoing viability of the language, if it's not embraced by new developers because it gets the reputation of being "too complex". Talking to developers and reading on-line, I think there's definitely a growing sentiment that the constant barrage of new features is making the language bloated and difficult to learn.
Don't think this has been mentioned, but the majority of Visual Studio is now written in C# (using WPF, I believe, for the UI). I doubt the C/C++ compilers are... but most everything else is probably C# (if anyone know more details on this, please comment!). Seeing killer software like Visual Studio written in a certain language is a definite testament to that language.
Yep, Visual Studio is C#/WPF primarily.
@@RooterDelWifiXs Really? in what way? I think it's better than the Eclipse/IntelliJ for Java though
Another good and balance episode. In this episode I felt audio was little perturbed. Some background noise is there.
Thanks!
You explained everything well especially for beginners. I like your videos and will work hard to be like you if not more than you soon.
I am glad it was helpful.
My first seriously learned is Java. Now I am using C# and might always do! :) It is cool!
Thanks for sharing, you seem to be inline with many others sharing that pattern
7:45 There were books written in C# ?! Wow, that would probably be a hell of a read! 😜
Great video as always!
I started learning Python first and switched to C# because it's what was used in my first software developer job and I've just run with it since. It's funny how despite a person's preference or experience, opportunity can really be the main driving force behind language uptake. Granted if I hated C# I probably wouldn't have stayed in a job working on it though too
Opportunity is always a big driver.
I just started an evening class at my local community college. Gonna see where this takes me
Great!
My first Kang I used was C and then passed almost 9 years in C++. Currently i use C# and seriously I get get off of C++
I prefer C++ but dont hate C# But I really do about Java
I'm glad you found what you like.
Aymen, I have a similar feeling. I also like go and elixir.
I have tried many times with other languages but they all never "sit right" with me. Many would consider C# to be overly verbose but I actually find this makes it easier to understand instead of harder. I've tried to get into JavaScript and PHP but the syntax honestly makes me cringe. Not to mention the developer experience using Visual Studio IDE.
Thanks for sharing.
Nice said Mr. Corey, thank you
You are welcome.
Awesome, as usual Mr. Tim corey
This is the best answer I've heard ever about the Byzantine controversy on which best programming language. Three major factors should guide you to the right choice. Just answer these three questions frankly and go.
Thanks for looking to Tim and for the great encouragement
Love your shirt 👔! Love your content!
Rare that he goes that formal.
@@tomthelestaff-iamtimcorey7597 Is not formal 😀 Is Professional!😝
hello Tim,
i m currently being offered a contract to be a product manager and i would like to understand the basics or the common rules of being one, obviously this is my first time going over such contract and i would like to be thourough with contract.
i understand that companies have their own idea of contracts, still, some points should be common and if not, is there a standard contract that one can agree upon.
always a fan
When you see C# or Java you see very stable and backed languages by companies, when you see some other languages everyday you see a lot of instability to look for the flavor of the month because of need trends and forks of same languages over and over haha
True, problem is support. Microsoft or Oracle(Java) for that matter will provide support that others don't (JavaScript/Python). Good luck debugging production issues with dynamically typed languages.
You got me, will try C#
Great!
Bjarne Stroustrup, the inventor of C++, said, 'inside C++, there's a simpler language dying to come out.' He's right--it's C#. I wish it was a first class language of the web, mobile and desktop.
It is a pretty great language.
@@IAmTimCorey Unfortunately, some of the language features like records makes no sense to me. It seems like they added it to make the C# more functional programming friendly. That's fine, but why not just add a modifier to classes and structs.
Did you see my video on records? ( ruclips.net/video/9Byvwa9yF-I/видео.html )
Records are basically just modifiers on classes (and structs in .NET 6). They are just classes with extra "stuff".
@@IAmTimCorey Yes, but why introduce a new datatype instead of a new modifier like:
public immutable [class/struct] Dog {
}
Records don't work with classes and structs interchangeably. You can't inherit from a record , nor can a record inherit from either a class or struct.
I'm first teaching PHP5, HTML, CSS3 but i love c#.
Great!
Thank you Tim very good video
You are welcome.
I used and love Python, and learning JavaScript and of course C# cross platform and Gaming!
Great!
Thank you sir for your valuable speech.
You are welcome.
Hey Tim love your videos and I’ve taken some of your training courses. You talked about C# being on all kinds of platforms. I’m curious, do you know if C# is being used at all in the Blockchain space? I’ve tried looking it up and I don’t see a whole lot.
It can be, yes.
Nice episode I loved it thank you sir 🙏
Thanks for trusting Tim
I liked the fact that in VB there is a definitive end to statements eg "end if". Makes for clearer programming in my opinion
Hello sir. I love c#. I now want to insert graphs and visualize the data through c#. But I have no idea how to insert graphs and charts in c#. Can you please make a video or atleast leave a comment about how can I do the data visualization in c# and what are the best possible options.
Love you sir❤️❤️
I will add it to the list. Thanks for the suggestion.
@@IAmTimCorey Thank you
You have to use WPF with its classes: Canvas, Line, Ellipse, Polyline,...
You can develop your own charts or you can use 3-d party controls like SciCharts.
Corey you a good man :)
I agree
I'm a Sr Software Engineer... I've been around long enough to hear the dinosaurs griping about the object oriented non-sense that C++ was pushing on everyone and how the world would function just fine on C. Having spent over a decade of java development professionally, I do have a strong preference for C#.
Thanks for sharing.
I've been programming for 20+ years, and I was indoctrinated that OOP is "how we write software now" so that was all I did for many years. Then I started listening to other developers and having an open mind, and then I saw that among other things, functional programming and programming in C without classes can do anything that OOP can do, sometimes even more performant.
Don't stick to just one paradigm your whole career and think it's the key to all answers.
I'm mainly a C# developer nowadays, but both C++ and C are fine, C++ is not automatically better than C at anything just because it's OOP.
C# has been moving away from being so tied to the OOP ideas for a long time now, and that is one of the main reasons i'll keep betting on C# in my work-life, it's not a one-trick pony.
@@Vreth6 Well when you have complete control over gc and low level caches, you can increase performance. Which is why that is still possible in C++ and which is why most MCUs will maintain the C/C++ naive code. I am not sure what you mean that C# is moving toward procedural. Even the .NET seems to be pushing a more OOP approach towards wrapping the markup code. It might render down to a markup on the client, but from the developer's point of view, its going more and more towards wrapping markup away and handling the markup in the framework.
thank you , can I do asp.net core projects ; mvc-rest api-ef core-entity-linq ... on Mac?
I really love javascript for web web development but I can't choose between asp.net core and node js can you help me?
C# as a language is very good but the supporting features and tools on Linux is poor and confusing. Until the Linux commuity adopts C# (which will not happen) it's never going to beat the PHP, Java,Python, etc on Linux. For example just try to find a Linux shared hosting provider that supports .Net Core. None.
AWS?
Thank you! 😊
You are welcome.
Expected more why using C# over C++, PhP. Shy to explain why C# is better 🤔
I get that, but that's not really a thing. That's like saying "a hammer is better than a screwdriver." Different languages have different strengths, but "better" isn't a great descriptor. A car and a truck will perform differently in different situations, which means one is not better than the other. That's an apples to oranges comparison. You probably don't want to tow large trailers with a car and a car will probably give you much better gas mileage for your commute. Each has its strengths depending on the situation. Languages are the same way. I personally like C# a lot and have used it primarily whenever I could in the past 15+ years (when it first came out, I didn't primarily use it). But that doesn't mean that I didn't use other languages. I've used PHP in the past 5 years and I just had dinner with a guy who built his site using PHP in the past year. I wouldn't push him to change that. In fact, I'm interested in seeing more of how he did it because it might be a solution for one situation I have coming up.
When you are choosing a language, you need to choose one that you like, that you can get a job using, and that is continuing to grow. C# is definitely growing and changing. You can definitely get a job with C#, although each area will be different. So it comes down to if you like it.
Personally, I like it because I can work on almost any platform using one language. I don't have to switch languages to work on client-side web, or on Mac, or on Linux, or in the cloud, or on the desktop, or on a mobile device. That's pretty incredible, and it makes me more efficient as a developer.
I love C#, but I don't like what it's used for: mainly backend for enterprise companies, I'm more of a visual person, so maybe I should stick with JavaScript, which I don't really like compared to C#. Let me know what you think of that down below in the comments. Thanks!
I used to say to my colleagues, backend is like going to the gym to lift weights and frontend is like going to have a haircut. No offense here, we all need the visuals and we love it too.
@@focl2003 writing Html+Css isn't the only thing regarding frontend development. Complex logic can still be in frontend as well. Maybe you think about frontend as of 1990-2010 frontend when there wasn't too much complex business logic. It's grown a lot since then.
Blazor is an option if you like c# and frontend.
@@veec1539 or TypeScript
@@dimitridoroshko Yes, I'm sure of that.
that is fantastic video thanks very much
Thank you!
Love your content !
Thanks for the endorsement and for trusting Tim
C# looks interesting, I'm currently learning C so I can move to C ++ later, but I might just move to C# directly.
Sounds good.
@@IAmTimCorey sounds depressing, why would anyone learn C in 2023.
The limited platform scope I think makes .Net a poor choice. However .Net Core is really a game changer, now it can run on a much wider array of platforms and as a production language C# can start to compete properly with the likes of Java.
It would only be a poor choice if you actively needed your application on other platforms. For instance, ASP.NET (the .NET Framework version) might only run on Windows servers, but it still supports any client. Xamarin always worked on iOS and Android. The only non-cross-platform client-facing piece was desktop apps and console apps. Even those worked on the most common operating system on the planet for business. Yes, .NET Core extends the reach to more platforms but that doesn't mean that the .NET Framework was a "poor choice" before.
@@IAmTimCorey Fair point. But I am thinking about it from the perspective of finding work. The more uses for a language you specialise in and places that language can execute, the more opportunity for work there is. I ended up in .net not necessarily by choice but that's just sort of how my career panned out. I think you are looking at it from a business/employer perspective, which is valid too. Although my thoughts on that perspective is to choose the technology based on the available talent pool. No point building some sweet Haskell app if you can't find the programmers to scale out the business.
Tim, I actually still have a copy of VB3, which ran on Windows 3.1! LOL
Backed up on a floppy disc? 😊
@@tomthelestaff-iamtimcorey7597 No, the original floppies when I bought it.
I’ve got Visual Basic for DOS
Please guys give me advice. I’m a new developer and I don’t choose any types of language which is the best language why I don’t choose exact language because I'm afraid to choose a specific language if you good advice tell me
There isn't a "best" language. Figure out what is popular in your area and what you enjoy. The intersection of those two can be a good option.
I've been trying to learn cross platform mobile apps with c# in xamarin forms and all ive noticed its really not compatible with anything cool and if it is such as mapbox its really glitchy. also not many resources online to learn c# above a basic level that are streamlined. but I'm still trying to learn it. always down to hear differing opinions though.
Xamarin is becoming .NET MAUI in Q2 2022. At that point, it will be much more widely useful. They will still focus first on business use-cases so some of the "cool" things might not work but you should have all you need for a traditional business application.
Is it good (over others) for data engineering?
It isn’t about which one is best. It is about which one do you prefer. In your career, you will probably end up working with multiple languages.
@@IAmTimCorey I didn’t ask about which is best, I’m asking if it has good application for processing data. E.g. I know using C# with spark applications is very lacklustre compared to something like PySpark
Sorry for the confusion. Whey you asked if it was "good over others", in my mind that means "which is the best". How good C# is in a "data engineering" depends a lot on the meaning. Some people use that term to mean "big data" like Machine Learning. C# has some really powerful tools for ML. If you are talking about processing enterprise data (the typical process of ingesting information, running it through business logic, and then storing it in a database) then C# also is really good at that.
I am starting my career as a C# developer, and I am planning to use a Macbook with Apple Silicon to work. Can I have your advices in .Net development using Apple Silicon? Thank you!
I'm sorry, but your first name is an obscene word in my native language...
That platform should be fine. Tim has MANY students/coders on Apple products.
I believe c# or .net dev in Mac is pretty well supported. M1 arm is well supported with the new launching of .net 6 in coming months . I’m planning to develop on Mac as well.
@ghost mall just this week, I was developing a small tool in C# and . Net Core 5 on my Macbook Pro 16 using JetBrains Rider - I dont generally like virtualization - but man that development experience using Rider was smooth as silk. Can’t recommend it enough.
Hey Tim, should I accept a job offer that uses older tech but pays decently and the company is stable enough to last several decades, then I can upskill on my own with tech stack Im interested in, OR stay jobless indefinitely until I find a job that uses new tech and hope that by joining them I'll get to acquire the skills, possibly?
I only have a little bit to work on, so you need to take this as just one opinion and make your own choice. However, it would seem that taking a paying job that will give you work experience is better than not having a job. You can continue to look while working for the new job. That will allow you to have money while you search. It will be important that you develop and practice your skills in newer technologies. Just remember that a LOT of jobs use older technologies. That's common because upgrading versions can be difficult.
@IAmTimCorey Thanks heaps Tim, your advice is much appreciated, as I consider you an authority on anything .Net/Core., and the old tech I'm talking about is web forms - VB net and net Framework, this company has a long list of inhouse-built systems a decade old, used by many departments and so they can't just upgrade/abandon these as I believe they don't have the budget to do so yet, but they are looking at Blazor for their R and D in a couple of years, as they told me. I guess it's better to have something to pay the bills for now and just resume my learning on my own free time and pace.
Hi Tim, I live in the Czech republic. I am working in the automotive industry as a quality engineer however, I would like to become IT Developer, Therefore i am studying WPF which I am interested in now. 1. Can I become a C# WPF Software developer as a junior developer by studying myself? 2. Is it good to study WPF which is still demanding in IT industry? 3. Can you please give me some advice to become IT Developer?
1. Yes, you can. I did. I am fully self-taught in C#. By that I mean that I didn't go to school for it, or a bootcamp for it. However, I did learn from a lot of people on RUclips, in blogs, and in books.
2. There is a demand for everything. How much of a demand depends on a lot of factors, including what area you are in. Just remember, you only need one job, not millions. The less jobs there are in a field, the better in some ways. Less jobs means less competition. So learn what you want to work in for the next few years. Then apply for jobs using it.
3. Keep learning, even after you get a job. Jobs come and go. Be prepared for your job not being there by keeping yourself trained. Your employer is not responsible for your education, you are. When you learn something, practice it. Otherwise, you haven't really learned something. Until you practice it, you won't know if you missed a part, if it works like you think it does, and what the edge cases are. It makes your learning feel slower, but it actually grows your skills much faster than someone who watches videos and thinks they have learned topics.
@@IAmTimCorey Thank you very much. for me, honestly i work 10 hours a day, so it is a bit tough time to study after work.. but i really want to become IT developer THANK YOU VERY MUCH !!
I start with scheme, later c++, Java desktop, later python web, Javascript and now i work with c# ,😁
Great!
The sad part is when you spend 5 days making a job interview test using great C# techniques and after you get hired you spend most you day leading with legacy C/C++. The bills need to getting paid.
Yeah, that can be discouraging (it happened to me too).
Can you make a tutorial on Identity server
Thank you. I have added this to Tim's list of possible future topics.
@@tomthelestaff-iamtimcorey7597 Thanks
C# is easy to learn if you're familiar with C++; would you say the opposite is also true?
Learning a programming language gives you the knowledge of how to assemble logic. That applies to any other programming language, regardless of the syntax. The syntax similarities of C++ and C# make even that transition easier.
@@IAmTimCorey My current goal is to just work with API's (and pretty simply stuff at that) but watching your video's I'm really gaining interest in C# (and programming in general). Enough so much that I might set higher goals (maybe transitioning to C++). Syntax itself isn't my bottleneck so much as piecing everything together. A few years ago I started to learn C# but was so confused about .NET framework that I threw in the towel; your video on the .NET confusion cleared that up really well! C++ being so similar to C# that the transition would be quite easy, save for memory management? Would you say that requires a big leap in ability/knowledge level?
Sir can anybody advise me, is it possible to get a remote job with c#. I live in a 3rd world country and if I can make 12000$ annually then it would be more than enough for me. So right now I love unity development. Working on my first mobile commercial game.
It is possible, but it is not easy.
Can you explain why you like C# more than Java although you say that they're practically the same?
The code is very similar. However, the ecosystems are very different. I wasn't a fan of the JVM. I also wasn't a fan of the IDE options. On the other side, I like the power of Visual Studio. I also like Microsoft's focus on open-source contributions.
How can I learn C#
Here you go: ruclips.net/video/hnjly9iBHso/видео.html
Tim: There are some people that love a language you hate.
Me: (screams) PHP!
😂 😂 😂 I hate PHP 😂 😂
And see, I don’t mind PHP. In fact, there are times when it is really useful to me.
Why do you think that C# took off instead of VB.NET? Why is it that VB and VBA which I use a lot as an Access developer, is considered by many the "annoying little brother" of programming languages?
I think C# fit better into the community (C, C++, Java, etc.) with its syntax so it was an easier transition to come from other languages and start in on C#. For instance, a lot of colleges teach Java, which means it isn't that big of a leap to C#. VB is really a Microsoft-only thing. It isn't very common to learn it in school and there aren't many languages that are similar to it (outside of the other "flavors" such as VBA).
In the past time I was a vb developer, but i learn c# with the blog el guille from spain. And now I love c#, I'm testing net core blazor i really like. Thanks for sharing Tim, congratulation for your personal advice.
You are welcome.
ty Tim
You are welcome.
Hey tim can I learn c# as my first language?
Absolutely. I think it is a great first language. You can definitely learn it on your own, or if you want an easier path, you can take this course, which will take you from knowing nothing to being real-world ready as a developer: www.iamtimcorey.com/p/c-mastercourse
@@IAmTimCorey wow really fast reply I have been really wondering what language to start with all I can hear from people is learn python start with html, the javascript I learned html,Css back in 2017 but I dropped and went to wordpress but just drag and drop nothing much until recently I completed my diploma In electrical engineering I want to do something that I feel will be of relevance and also will help he get into a software engineering pat. I thank you for your point of view...
I would suggest you also put a roadmap to different paths because over here in Kenya bootcamps show learn git shell, then mvc I dont know what that is but I think a roadmap would be nice thanks.
I was hoping you would go into more detail about what you dont like in Java and also cover Python, because it seems like Python is taking off right now.
I'm not big on bashing other languages. Each language has its quirks and its value. Which you choose often comes down to personal preference.
I like C# but sure wish it had VB's "Select Case" which is superior to "switch".
Why is that?
@@IAmTimCorey Let's say you have a few number ranges you want treated the same. In VB you could have a very easy to read line "Case 2 to 3, 5 to 12, 15 to 20" match the ranges you want, whereas it's messy looking in C#.
You can do this: case (>= 2 and =5 and =15 and
@@IAmTimCorey I'll admit, C# switch got better at this with VS2017 / C# 7. Can you have a variable in a case statement in C# now, or is that still a problem?
It can use constants but not variables.
Thank you
You're welcome.
😇 C# is my Baby😘😍
Thanks for watching
You should go with Db instead :)
Only if you enjoy it better.
Another reason is the IDE. I don't dislike java as much as eclipse lol.
I agree. I love Visual Studio.
No one:
Me watching this right after applying for a COBOL position: ಠ_ಠ
That can be a great niche opportunity, though.
@@IAmTimCorey Thanks haha, my real love is C# so I'm thinking of doing stuff with it on the side.
Game programming (graphics programming) C++ HLSL and GLSL os the way to go, everything else C#.
Thanks for sharing!
I love C#
c# is garbage but it's hot garabage
A lot of folks around here do to.
I know alot of people refuse to use C# because they hate Microsoft!!
I really feel all of them think that hating Microsoft makes thim looks smarter and unique!!
I did an interview with biggest Dutch company in the Netherlands who uses Java, the interviewer told me "you can switch to Java easily since Microsoft has copied Java as it is and made some stupid changes and called it C#"!!!
Yeah, that's a pretty poor mindset.
Deploying your projects to windows 11 store 👈Next Topic #Csharprocks #Alllanguagesrock
We will probably cover that at some point.
@@IAmTimCorey awesome 👍
Why choose C#? Because then you can watch Tim Corey videos… duh!
lol thanks!
I understand the love of VB6 as I was stunned years ago when my business partner threw together a GUI in a matter of minutes as I was fighting with MFC and cursing Hungarian Notation. We agreed I would stop that and just build him libraries as needed in C++.
As for 'loved' language... I don't really have one but I do strongly believe in using 'the right tool for the job'. To a lesser degree, I have 'annoyances' in other languages such as the fifteen million long reverse domain names (com.xxx.xxx.xxx.xxx.xxx...) in namespaces in Java or the "Lost In Stupid Parentheses" ((L)(I)(S)(P)) or the 'just().because().you().can().chain().functions() in functional languages DOESN'T MEAN YOU SHOULD!
👏👏👏
Thanks!
C# is a great language and still growing and improving.
I agree.
C# Bonus - If you ever wanna get into games, Unity Game Engine uses C#!
Yep. I'm actually considering covering Unity at some point.
Perfect
Thanks!
@@IAmTimCorey
Thank you,
I have learnt a lot from you, sir.
C# is only like Java on the surface. C# is way better just because it has structs and delegates. However, it doesn't unify class and struct, and people say that that's by design, but it's a design that I don't like. Go is far better than C#, but the best is Rust. Rust has a steep initial learning curve, unlike most languages that have a linearly increasing curve. C++ is a great language, but it's learning curve is exponential, which is very bad when you need to do something advanced, like compile time template evaluation. The constexpr feature was added to flatten it a bit, but C++ doesn't have reflection. Rust has macros as powerful as Lisp that run at compile time, and the borrow checker allows you to provably write parts of your app or library in safe code that's more than just memory safe, it's also thread safe. Once you're over the "fighting with the borrow checker" phase of learning Rust, I'm sure that you'll agree that it really is the one of the best languages for systems, scripting, mission critical, and pretty much any project category. It also runs on more platforms than C#, and C# can run on almost anything. Only C and Rust have it beat. I agree that diversity of languages is a good thing. I do want more languages that don't rely on a garbage collector, and they're really hard to find. I know that .Net was supposed to fix that problem, but those languages are still not as safe as they could be, and have less interop (C, C++, Rust, and Zig can interop with pretty much any other language).
C# is only good for writing applications. In terms of speed it's slower than C++/Fortran. It's also not very good at Data Science/Machine Learning area. I assume as long as Microsoft is around, C# developers wouldn't have trouble finding jobs.
Well, the world needs applications.
C# sometimes performs faster than C++, hint: Look at the gRPC benchmarks
You seem to have a very specific perspective or lens thru which you are looking at things.
je suis un francais les gars car il y a la traduction en francais ceux qui sont francais mais qui ne comprend un tout petit peut la langue
Are you asking for a French translation? I don't have the resources to provide one, unfortunately.