@Matt, I was kinda unsure of which language I should focus on for my Desktop apps, currently I heavily used Java for both desktop and mobile, but people keep telling me that i should instead focus on .net based language for windows desktop app, from all of th options I picked C# since I am currently also learning unity with that, but reading more and more articles on the internet did me more doubts, saying that WPF / UWP is obsolete bla bla and difficult to do, so Iam kinda stuck between wanting something that is not obsolete but also having better access to windows low level features integration using .net languages. I am not good at explaining things, hope u get it, and I am indeed a real person. I thought C++ will be way hard for me since it has low level features and no automatic garbage collector.
@@RedNightronif you are building desktop applications wpf is the best option if you are building for windows. Uwp is for cross platform deployments. I have not pushed something to desktop with. Net core since the .net core 3.0 update. So that may be an option as well.
Sure C# is a good first language to learn, but you would also never go wrong with Java (Google and Amazon core language) or C (Ask a currently working dev. Blogs will tell you its in everything, but it's more complicated than that)
I'm a C# programmer @ MS and it's great to know this language as a developer; and modern C++ is in demand too. That said, you really have to be able to have fantastic problem solving skills and ability to integrate with Azure services. Knowing a language is the baseline, being able to independently solve problems and execute E2E will make you successful.
Lately i see Microsoft giving more attention to modern C++ now. Because modern C++ syntax is alot easier. Also, it is going towards as much as possible compile time. This means very high performance during runtime. While C# does alot of its tricks during runtime waisting resources. Also most products at Microsoft are made with C++. And there is a very good reason why C# isnt used for large programs. I now work also with some large IDE from industrial programming system that is programmed in modern C#. It has a huge startup time. Its super slow. I never seen big C# programs that are fast. Never ever. Im talking about big programs like MS Excel etc.
You bring up great points. As a pure technical exercise, pick a language. Learn it’s features well. Then pick another language with a different feature set, and learn it well. By the third language, you’ll see that they’re all mostly the same, and you can just look up the syntax for the features you want to use.
I’ve been using Java since college and also for my first job which lasted 2 years. This year I switched to C# and .NET. Man, I’m just gonna say, I will never go back.
Switched jobs recently, started doing c# after 15 years of Java. So far not impressed... Some features nice (properties, unsigneds), some feel awkward, will see after I learn more of the ecosystem. Even started appreciating some features in Java that are different in dotnet (erased generics, enums).
I've been using C# for a long time but then the company was bought by a corporation that used Java and we had to maintain the 20GB Java project, needless to say it was cumbersome. I moved on to another C# job.
Then why they used a garbage collector. Why do you have a certain abstraction layer that doesnt let you do real performance stuff on massive datasets or extreme fast algorithms for super computers. When fast languages these days get better more user friendly syntax... why would you still choose for C#? U also dont have first citizen support for linux. Windows is more important which is stupid. In C# you also learn nothing of your memory and how to deal with memory efficiently...
@@HermanWillems windows is only more "important" as far as UI is concerned -- simply because the UI system is not something that's easily portable. Basically everything else is cross-platform; just look at .net core and the upcoming .net 5
@@minuslr C# and the .NET frameworks are the brain-child of Anders Hejlsberg. He first created Turbo Pascal and then Delphi. I know all of them and C#/.Net is more like Delphi than Java. It may have a Java-esque syntax, but the whole framework and language have more in common with Delphi than anything else. en.wikipedia.org/wiki/Anders_Hejlsberg
Thank you! This is what I’ve been telling people for so long. I’m a c# dev that was hired by a fortune 100. I have gone from a contractor in 2013 to a senior dev making 2.5x my prev salary. This video is great advice.
I work for an airline and I have worked with our Software Engineers on projects. Knowing my front end experience they are trying to pull me over there, all I need to do is get a basic level of understanding of C# applications, web dev with ASP.NET, and a little more SQL and I'm in. I don't need to be an expert, they said they'd teach me the high level stuff, just know how to make basic elementary things. I've been working on learning C# for a month so far...it's great, and this video is spot on, C# devs are in high demand.
I've been trying to learn Unity and C# for about a year, on and off. Always debating in my head if I should learn another language. Just this month I decided to dedicate some of my free time every day to learning C#. Then this video gets recommended to me by RUclips. The timing of this was perfect and really made me feel more confident in pursuing this language. Now I got that ambition to travel the road from noob to pro!
This is one of the best videos to this topic I’ve seen so far. A programming language is just a tool to reach a given goal. In you’re career as a software developer you will „collect“ programming languages like every craftsman will collect tools on his way to cover what he needs to get the job done. Greetings from Germany
I have 11 year programming experience (with PHP and C#) and on the last 2 years using only C#. With PHP, you could offer the most cheap full-stack system to your client.. All novice programmer always trained with PHP, thus make developer-wage of this language on average cheaper. In PHP the code structure is loosely regulated, thus security is always in question.. This is also a back-draw to almost all other lang, except for C#. So many bigger company who take more concern of make sure their system to be safe always goes to C#.
I decided to learn .NET and C# during University after a brief stint with Java. I quickly realised that C# is just so widely used that it doesn't make sense to not learn it. Got a job straight out of uni and I owe it (at least partly) to learning the right language! That being said, as someone who's not learning their "first language", it's so important to widen your knowledge pool and give yourself more employability breadth. Really good video!
@@daudfauzywidiyatno5288 JavaScript is literally invented in less than a week and the community has been trying hard to fix its shortcomings ever since.
Learnt C# when i was 17 , I got my first Development job in my 19 ...Now i am 22 I earn more money than my friends and seniors who are Graduating from university and also some experienced in other languages !
@@akssagir5411: If you want to learn ASP.Net easily through self-study, go to the link I'm giving you here, save the playlist and start learning one chapter every day. It's so nice & easy, that any beginner can build their basic knowledge strong from it in a month. I literally learnt web development and Bootstrap from this playlist. But yes, your basic concepts of OOP and C# need to be good. Good luck. ruclips.net/video/mhYv3jJ66EY/видео.html
I'd say C# is one of the best way to go: - Well designed, extremely productive language. - Supported by a growing open source community and Microsoft - Multiplatform support growing: right now Windows, Linux, MacOS, Android, IOs and x86,x64,ARM architectures - Can be used to develop everything: Desktop Applications, Mobile Applications, Web Development (both Sever Side and now even Client Side replacing JavaScript with Blazor), IoT (see Medow or Windows IoT for Raspberry like boards), Games or Machine Learning (with ML framework).
C# Uses a garbage collector which makes it not usefull for alot of things. People tend to forget how much impact a garbage collector has. Its destroys your deterministic code. Also look at how the Unity game engine struggles with garbage collection. C# also uses way more resources both memory and cpu wise. Which makes it not the first choice for smaller systems. Its just waisting resources. While more performant languages are not more difficult to use.
To be fair c# is a managed language so if your needs making using it not possible then c and c++ may be better for your situation. But c# fits the bill for many things that you would not want use c or c++ for like full stack web dev. So as we say right tool for the right job.
@@HermanWillems I do not disagree. I haven't said C# can replace everything. I learned programming in C++ and used it for ~20 years now. I also learned many other languages (Delphi, Python, Lua, Java, JavaScript, LISP). I work with both C++ (mostly) and C#. So I do not have much of a bias here. If you need to squeeze every bit of performance C++/ASM all the way sure. But 90% of the applications do not need it. Writing a C++ application is way harder than a C# one. Writing in C# will save you tons of time (at writing, at compiling and at debugging nasty memory related bugs such as corruption and leaks) and there are ways to minimize garbage collection. It's an advanced topic, you need to get to know how it work internally but you can obtain very good performances. C# is well designed, easy, clean, and powerful, so overall I think C# should be your main language with backup of C++ or RUST if you really have to.
15 seconds in and I got my answer. :p Before I started in this field, I asked a coder friend which language I need to learn. He said that he uses around 25 different languages depending on what the project needs, and that they're all fundamentally the same apart from the syntax. Now that I'm just a few years in, I know what he meant. I tell people these days that they should learn whatever they're getting paid to use, whether it's C# or COBOL.
imo just getting paid more money than average is one of the worst reasons to become a dev / learn a new language. you shouldn't become a developer if you don't actually enjoy coding, and if you do, a good salary is just one more bonus
I've been coding in C# since it was first released in 2002, and I've never regretted it. It always seems to be one step ahead of Java, such that Java is following C# when it comes to innovation. It's concise, yet intuitive and easy to read and write. And the language has evolved so it's pretty easy to use all those CPU cores with asynchronous programming and maximize performance.
But Modern C++ again destroys both Java and C#. It has easy to use syntax. It doesnt have a garbage collector but uses unique_ptr so the C++ code is both more efficient with memory, and deteministic. C++ focuses on doing things in compile time rather than C# tries to do things in runtime making C++ way more performant. It has no ties to any OS. Even though C# is multiplatform... u can feel Windows is #1 priority. And that sucks. They need to make linux the most important. Also C++ has gui frameworks that work truly multiplatform. C# Doesnt really have good multiplatform GUI frameworks available. Before you couldnt even do remote debugging. U can now with .net core but try to migrate to it. Its not that easy!!!!!
@@HermanWillems "beeing more efficient with memory" - that's not exactly true. First of all, weak_ptr takes more memory than dotnet reference, and you still need to convert it to uniqe_ptr to use the object inside. On the other hand, making it efficient is on your hands, while in C# it just works. Yes, you can make a leaky program, but in C++ you have to make it not leaky. Not leaky is default in C#. Also, good luck with deleteing huge arrays of complex objects - c++ being deterministic, you have to wait for it to get deleted. With GC, you can have it deleted in few batches, without much toll on CPU. I mean, yes, you can write faster programs in C++. But I can bet you thatn a junior/mid dev will write faster programs in C# (and in much shorter times) than in C++. Then single senior may optimize some single method/function if needed. C++ has nothing to even compete with LINQ, async/await, ReactiveExtensions. Also, google OzCode, Visual Studio plugin, watch some features presentations and tell me if you have it in C++ :)
@@memberwhen22 what does it have to do with anything that we were discussing? yes, Java has more or less the same advantages and disadvantages over c++ as C#. Still, I like c# much more :)
I personally love C# but I have had Java on my first year at university. It was the time when Java 8 was released. Everybody were so enthusiastic about streams (which to be fair are still far beyond LINQ in terms of capabilities), but if you know LINQ syntax which resembles SQL (Select, Where, etc.) syntax with Stream() Collectors and all those 'magic' variables seemed to me really odd (I suppose strange syntax is Oracle's recognizable mark - hateful PL/SQL ;) ). Moreover I was pretty amused when I read inspiration behind those Java 8 features and I saw something like "lambda expressions - it is present in many languages like C#, Python, C++, etc. and lambdas work well so we decided to implement it in Java too" :) I suppose Oracle spoiled Java and it's potential when they bought Sun :/ Edit: It is also funny to look at what Java creators call 'pattern matching' especially if you compare it with another JVM-based language Scala which has far better 'real' pattern matching years ago.. C# is making progress with pattern matching probably inspired by F# (OCaml). Despite C#'s pattern matching is not yet F#-level it is still light years ahead of Java :P
@@memberwhen22 Wow, I'm not used to toxicity at programming videos. But can you at least tell us were the mistakes are? So that we all can benefit from your wisdom.
Good to hear this. I've been doing C# coding for about a decade now, but since I'm not a kid anymore, I'm always concerned that I should be moving to something newer. That'll happen one day, but knowing my skills are still marketable elsewhere is good.
@@memberwhen22 People code in c because it's cross platform and a compiled language. Maybe someday it will be replaced by GO. Who knows? We know .net isn't going to be the cross-platform successor. It's not like MS writes operating systems in C#.
Actually C# in .NetCore is taking over, it's open source and platform agnostic so the age old argument that c# only works on windows is now defunkt and also .NetCore is faster and lighter framework than the older full fat frameworks and the development IDE's such as Visual Studio Code are free which is why so many people are using it and coming back to the language and framework. That's not to say we like 'all' the stuff microsoft peddles 'like sql server which is over priced and aged' but c# and .Net Core is the way forward and my company has been using it since the first version 'about 3 years ago' and never looked back.
I talk to recruiters all the time. Here in Texas the unemployment rate for a .Net dev is ~12%. I've been doing .Net since 2001. When I put my resume online I get over 200 emails and over 100 calls from recruiters a day. If I job jump it takes me on average 14 days from job board to offer letter. Now I'm not making the most as a dev even with my experience but I'll be employable for the foreseeable future. If you have C# with WebAPI, Angular 2+/React you will have companies line up for you. If you're not already jumping on .Net Core as a .Net dev, you're going to have a bad time because almost everything new is being developed in Core to run on Linux servers to save the company licensing money.
I used C# around 2017, it was ok. Then I've found .Net Core and it is great! Now I choose to focus on C# for my server side technologies. The performance~ superb!
Thanks so so much sir for this great video. I'am just six months before start to learn to C#. I'dont know, why I selected this launguage but understand now better I did it good selection. I'am 42 years old and hopeful I can learn.
Been using .NET since 2003 (VB.NET) and moved to C# in 2008 after taking a contract job with Microsoft and they required all code be written in C#. I haven't looked back since. C# is amazing and so happy I was forced to learn it. Thank you Microsoft!
Getting paid to use my talent to create powerful software solutions. Never heard it being described like this. But this is a perfect description! I love the creativity I can put into the job, make customers happy, and last but not least make a very good living out of it.
This is one of the few pieces of legitimately good advice you'll hear when asking the question of which language to learn. Also one of the reasons businesses love .NET is the Microsoft stack works so harmoniously together. Every other vendor's stacks I've worked with has required tons of expensive vendor support (IBM, Oracle, SAP) but Microsoft's just works. With .NET developers spend time building what matters rather than trying to keep the platform running.
I was insanely lost and couldn't decide which one to focus on learning between java and .net.Java is massively popular and used by the big companies in the world for a long time and that was concerning me a lot.Deep down i knew and share your view in the video but i'm a beginner and little bit skeptical.Hearing all this from a trusted reliable source gave me chills.Thank you a lot!Now i can continue to learn .NET environment.But first i think i should improve myself on html,css and js to be more confident in the learning phase.
Dotnet is an amazing and convenient technology I started with NodeJ (express) and moved to Dotnet for the server side in all my of projects And I do not regret that decision for a moment
I don't write C#. I like how you pictured the situation by doing logical choices. I also think that getting a job might not be the only thing a young developer targets to, in order to learn a language. And only the ether knows how much I'd like more people come into code not because of jobs, but to have some fun.
Damn it...he read my mind. I started with python3 to learn the bare-bone basics. Once I got to the point where I can create without a tutorial, I went to C#. C# because I wanted to learn to code while having fun. Since video games are fun, I "Udemied" a course in game dev using Unity...which uses C#.
Mate, you are 30 year old, not 80. Your life just have started and you are still in the investment period of it. It is obvious that it not too late for you to learn something new and do something about your life. In fact: it is exactly what you are suppose to do when you are 20 to 35 years old. Later on it maybe too late since you will have expensive commitments so you will have to work your ass off, but when you are 30? Even if you have kids it is not like they are 15-20 years old and you have to fulfil their very expensive needs (like collage). If you were thinking you maybe too old for learning how to code then you are clearly wrong. Good luck. It will be fun journey. if I would be you I would started with Python, not c#, since it is easier to learn. Then you can switch to any language you want to with ease.
Hello, im communication engineering student i love networking more than programming, im good at both of them i always thinking which path should i take? if both at same time should i go for python + networking? i know its gonna be hard in my country most jobs are isp and telecome companys any suggetion?
This is masterfully broken down with reasoning for business owners to make the right decision and jr. devs.... Ima look into this, I always thought enterprise companies looked away from Jr. Devs. thanks for this vid!!
Hmm would have liked a comparison to the actual rival in the enterprise, the elephant in the room, which is Java and its massive ecosystem, not RoR. I did my homework, and though both seem like great options, my impression is that all those battle tested java libraries tip the balance, in addition to the fact that it has managed to preserve back compatibility for decades, no breaking changes, which hasn't been the case for C#/.Net; these two factors are extremelly important in the enterprise, as they result in time/money savings. The main reason for choosing C# seems to be that, although there is less demand in general, the developers/vacancies ratio is more favourable. In a way, it seems to me that the tradeoff is similar to the one between React and Angular: with React (Java) there is a plethora of options available for pretty much everything, giving more architectural flexibility and better integration with all kinds of different systems, but stacks at different companies can vary wildly, whereas with Angular (C#) there is not much to think about, pretty much one (or two) architectural options, so most stacks are almost identical, but integration with third parties is not as smooth. Both approaches have strengths and weaknesses, the former being more flexible and adaptable but also changeable, the latter being more stable (other than those changes that broke back compatibility). I also believe that, contrary to popular opinion, learning Angular first, instead of React, is preferrable for beginners. It may seem like the learning curve is steeper, but not more so than learning React+Redux+Router+etc, and will teach you how all pieces fit in a SPA without having to make any rabbithole choices at every step. The same reasoning could be applied to C#/.Net vs Java/EEorSpring+etc. In terms of vendor lock-in, .Net is on its way to becoming an open and portable system (because of the cloud), while there seems to be some uncertainty with Java under Oracle. It would be great if someone mentioned more pros/cons of both, so that people can make a more informed decision, the video seems to focus only on the strengths of C#, more like a sales pitch (an excellent one, by the way, the presentation is fantastic). All that being said, I am sure you'll be just fine if you choose C#. Or Java. C# was originally based on Java, and most concepts are the same in all enterprise software, and they seem to be, more or less, evolving together, so it doesn't seem too hard to switch if you later on regret your choice (or if you have to). At the end of the day, the focus here seems to be to get that first junior enterprise dev job, and these days JS/TS/Node, not Java, seems to be the main contender for beginner web devs. My impression is that true statically typed languages will make you a better programmer, and are the way to go in the enterprise, so in this context C# seems to me like a very fine choice.
Is C# still a good option if you're fully self taught? I am slightly worried about picking up a language that is more popular in the enterprise area when a lot of those companies list degrees as a requirement on their postings. I know not everything on the job postings is always a strict requirement but its a trend I am starting to notice specifically with C#/.NET jobs
We place our bootcamp grads into C# jobs all the time without a CS degree. Don’t be discouraged by the job description requirements. Apply anyway! Also, you would be surprised how many non-enterprise companies use C#. We have plenty of local smaller and mid-sized companies that use .NET.
As a programmer and from Java point of view C# is indeed awesome and I like it. It didn't occur to me that I did not have to learn anything substantive to get started with C#. The way C# is engineered, everything is gathered and put in place for you. However depending on your goal this might be good and bad at the same time if you know what I mean.
I'm a Software Architect for one of the largest Media Conglomerates in the world and have been involved in Enterprise Software Engineering for over 19 years, everything Bobby Davis is saying in this video is true! To add a few thoughts: When you see a lot of media attention around trending languages like Python, Rust, GoLang, etc.. Keep in mind what's driving those stories. Startups in Silicon Valley, Austin, etc... are in part using bleeding edge (read: high risk) trending languages and frameworks in hopes of gaining an edge and that also helps their marketing narrative in terms of innovation. Outside the Startup culture in Enterprise where the majority of the coding positions exist, risk mitigation is extremely important, so proven languages/frameworks/patterns are critical to success. In this world, .NET/C# and Java dominate the playing field. Bobby is absolutely right about Microsoft taking care of developers. When Ruby on Rails was gaining moment, Microsoft distilled that data scaffolding was the biggest value ad and they created Entity Framework. When node.js started to trend, Microsoft introduced async methods. Microsoft has done a phenomenal job of watching trends, allowing them to prove their value then adapting those trends into the .NET Framework and when needed the C# language. Java may have more overall market share in Enterprise, but Java was purchased by Oracle in large part so Larry Ellison could sue Google over Andriod's use of Java APIs. From their actions, it's clear Oracle has no interest in maintaining Java the same way Microsoft cares for C# and .NET so with Java it's much less consistent, you have to mix and match third-party tools and frameworks.
One of the biggest reasons why C#/.NET/SQL is so popular is because they are all run on Windows. And like it or not, Windows dominates the business world. OSs like Linux are very well suited to headless apps (ie, command line utils), R&D environments, and especially internet backbone technologies. While "internet technologies" might sound cool (and it is), the number of jobs available in that area are outnumbered hundreds to one, if not more, by business development developer jobs. So, one question I ask of people wanting to know how to be a developer is, "Do you want to be a developer? Or do you want to get *paid* to be a developer? Code camps that limit you to open source products may make you a competent novice developer, but in a platform that very few (comparatively speaking) employers actually use.
You touched on something that I think should be stressed. Figure out what you want to do, then learn the skills necessary. Do you want to create web apps for enterprises? C# is a safe bet. Do you want to create embedded software or other real time software? C/C++ might serve you better. Artificial intelligence? Python is what you need. Although, to be honest, the lions share of domestic devs seem to do Information System work for big business using C# or Java.
One thing: C# is rather verbose with a persnickety syntax. Much more so than, say, JavaScript. But no worries, Visual Studio and IntelliSense to the rescue. It helps you as you type, offering suggestions and actually writing much of the code for you. When you pick a project type it creates a ton of background code before you type your first line. And it helps all along the way. A true Rapid Application Development (RAD) tool. Without it, I would never have dared to use C#.
The "too verbose" argument is a meme and not a real problem. This goes for both Java and C#. Verbosity makes those languages very easy to read and maintain. Can't say the same for other in vogue less "verbose" languages like Kotlin for example.
Thanks for this. I kinda already knew it, but nice to hear from someone else in the dev industry. :) I was using C# when it came out, and it was a welcomed change from my VB days (ugh, I hate to even mention that!). It has grown up into a massively versatile language with all of the integrations you mentioned. I have been learning everything, Azure, Angular, SignalR, and even Xamarin. There is nothing it can't do (in my mind).
i didn't know which language to pick id started learning c# slowly, then i saw the Microsoft surface hub 2 introduction video i said to myself, Microsoft is really cool it would be cool if i empowered myself in their language
I'm surprised you didn't mention Unity earlier(you waited until the end of your video). It might be the most popular 3d and 2d game development engine. C# is the native language of Unity.
In our interviews, we look for C#, ASP.Net, JavaScript, and SQL Server Experience. A real bonus is the candidate that has said skills plus "R" experience.
In my country C# has on average a much more jobs available. Not to mention with a strong understanding of C# you would pick up java, swift and other languages fairly easily
Hi Bobby, This is Shishir a software engineer from India..Thanks a lot sharing your experience. I had seen a lot of tech spitters who just try to discourage people, as I was also asking people about the same java or .net. I learned both lead teams on both java and .net platforms. I agree with you that Microsoft had planned .Net tools and c# in a very integrated way and I am telling this after working in its applications and web both sides. Oops concepts are same front end works same in view side on both Java and .Net.
One of my teacher was saying "THE MOST IMPORTANT TO KNOW IS WHAT TO DO? HOW TO DO IT IS THE SECONDARY THING" we can not memorize the whole things e.i. the syntax, the methods the codes etc. But the most IMPORTANT is the logic and knowing our goal.
The logic is important, but you can't just stay in theory land. No employer is going to hire you because you understand the theory of a loop or array. If you can show practical concrete knowledge of those things they're far more likely to hire you.
I remember way back in 2000, in the .Net v1.0 beta days. I had a demo running, c# browser client (at work) and MS SQL database C# server app (at home), connecting to each other using web services. Only had the MS documentation to use and a text editor, all compiled with the CLI compiler. I was doing R+D to push the company away from VB6 (DLL hell) and classic ASP. Now i'm doing R+D with Blazor WASM, as a self employed contractor.
I am a c++ dev, I have a couple pet projects in various languages, such as Rust, Go, and Javascript... I started a c# project a month ago and I am in love with c# 8.0. LINQ is amazing, object.?etc. Love it.
i keep telling people who want to start programming to learn c++. sure it will take them a year to finally be able to build a decent project with c++ but the knowledge they gain will be worth it. after that depending on which field they want to work in/study/choose as a hobby they should learn a second language which is going to be extremely easy to do once you know c++. for web dev they can learn javascript and that's enough thanks to NodeJs. for AI/ML/Sciency stuff they can learn Python,if they like hardware development/OS development/robotics they can go for C. if they wanna be game developers they should keep learning c++ and 3d modelling at the same time. i myself started learning programming by learning Javascript 6 months ago but if i knew what i know now, i would have started with c++. for networking you don't really need to be a good programmer but if for whatever reason you want to be able to write your own scripts/softwares instead of 10000s already available i recommend Python cuz it is easy to understand/learn and has good libraries and that's about all the available career paths available.
Another reason, not mentioned in the video, Microsoft also have a certification process so you can prove a level proficiency, e.g. with exams 483 or 486. These can bolster your resume, even if you are starting out and have limited commercial experience.
the choice was made easy for me, i googled the average salaries between C#, PHP, Java, C++ and coldfusion. I then googled the most "in demand" devs. In my findings, its a close race between Java and C#. The salaries are similar too. For me personally I then narrowed down what it was i wanted to be (in this case a full stack dev). So C# took the biscuit!
To add, its irrelevant if microsoft goes bust because C# burns OO into your brain, so if c# does get ditched overnight, the OO principals it placed in your mind will apply to the likes of Java, php and even c++ (except with c++ being a lower level language, you wont be able to use cool abstract features)
C# is a tool like any other. While the language is fun and easy to use. I often find myself having to recode sections because C# is too user friendly. It's really easy to reinvent the wheel. EG In one program I found myself accidently re-createing bubble sort in linq. Needless to say that code didn't scale very well. But in the end C# is not anything special, I haven't found anything unique to the language. There are things I like and things I don't like. (The biggest of which would be a delete command to tell the garbage collector you are done with an object. Having to coax it is annoying.) So if businesses want me to use a language I picked up in a less than a day, then fine, it isn't a big deal. It's no different from Java, c++, basic, python, scheme, lisp, prolog, heck even Cobol, if you know what you are doing.
I'm an old-school VB developer starting to teach myself C#. Long story short I was out of programming for many years now trying to make a comeback. Is it possible to break back into software development when you're competing against both overseas coding farms and young bootcamp graduates? Is there a spot for older developers who are new to C# but good in tangential areas like programming in general, and in databases? I've almost given up trying to apply for .NET dev jobs because they seem to all want someone who has 25 different skills and can hit the ground with all of them on day 1. I always hear that employers love people with basic skills and are willing to teach them, but I haven't seen that in practice. I can't even get a foot in the door, and I'm too old (i.e. not living with parents, have to earn a living) to do internships and boot camps.
Bobby, I am in the data and analytics space. They say for us, we need to know Python, R, and/or Scala. I did a project for my company for 6 months where I wrote C# scripts and I've been coding in Python and R (mostly) for my grad school assignments. I do like C#, but they are saying that Scala is a big deal and of course Python and R are a big deal in our space. Every data scientist job description wants a combination of these 3. What should I do?
If you want to do data science that is what you are going to be using currently. Microsoft does have ml dot net that utilizes c#. I will say their is a lot of work going on the makes data science projects easier to do and c# will be the language they (MS) will target. The reason is they want current c# devs to be able to deliver data science projects utilizing azure. But currently this space is dominated with the languages you mentioned and you can use these languages on Azure as well. For more info see: dotnet.microsoft.com/apps/machinelearning-ai/ml-dotnet
Well... If you want to have a stable reliable language, shouldn't you use a functional language like Haskell or Clojure? If you want .NET you can also use F# or if you want something, that's easier to adopt for Java/C# Programmers you could use Scala. For me as a Developer, who learnt C# as my first programming language, .NET is just a bit too focused on Windows. I know, you can use it on linux with .NET Core or Mono, but you can't use VS on Linux and at that point, it's going to be easier to use a different Language (Scala for example)
You can use .net for way more than windows. But if you are using other things that is fine. We want people to have the most opportunities possible. Functional languages, while promising, today is not the most in demand tech out there. So break with web dev first then adopt something like that 2nd. Visual studio does not run on linux but vs code does so there are options out there for you.
This is very very very true. Finally, someone sane. In my state, pretty much every single job I've looked at on the job market has C#/.NET listed as a requirement. I've just always fought the urge to learn it because of all of these RUclips hooligans pushing us newcomers towards JavaScript and python. I feel like I've wasted 3 years of my life learning the wrong languages. Oh well, at least I've built a developer mentality and now I can probably learn C# quicker. Thanks for the confirmation.
@Arianit Krasniqi lol. You got me for a second there. I've been hammering at javascript for almost 3 years now, so, I think I'm safe to say that I got a very good understanding of it. Now to C#, my only issue now is that I don't run windows on my machine, I run linux and VS code community is not available on linux. Only monodevelop is and it doesn't look so good. I do have visual studio code, though. Would that suffice for C# development and learning?
Bobby, appreciating the content and approach. I was leaning toward the idea of freelancing, starting with serving SMB clients in a niche, and wondering if ASP.Net Core offers a reasonable option vs. Wordpress, even for obviously smaller SMB sites that you would normally consider Wordpress for. I would like use a customized Bootstrap theme or something similar on the front. That way as things develop, I could maybe continue using ASP.Net core as the same environment to develop new functionalities both for these sites, and larger projects over time. What do you think?
Business actually use .NET I program in few programs . I play with Go or Golang....I program a ton and mostly in C# . Never get locked into anything look at trends but where I am C# will likely get you a job and you'll be employed because business internally often use C#
c# and .NET framework are amazing, you can code pretty much anything from console utilities to complex web apps passing by class libraries usable in older environments. you just have to master the language itself wich is very easy because everyone has base C knowledge then the .NET framework itself. if you come from Java it will be easy to learn, basically the same core language but different class namespace plus cool features, a little closer to C++
.... also .... .net had a "free" version for people to use. Company I had worked at, those who coded projects and weren't in IT, downloaded the free versions of .net to begin coding. As time went along ... Many many many projects were done on .net and thus became a fairly standard platform.
I would recommend Java or C# for starters. And if you chose one language, first get deep knowledge of it. Then you'll be able to relatevely fast learn any other languages/technoligy stacks, because you will be having grasped all the key concepts of programming and learned some technology stack.
I appreciate your thoughts on C#!!! You really have encouraged to learn C#. Next question is, there are just too tutorials in C#, where do I start to become a C# self taught developer?
With C# .NET and SharePoint from the start my monthly salary (in ph peso) progess is like this: 0-2nd year - 15k 2nd-3.5years - 50k 3.5 - 5th year - 100k With other technologies it takes 8-12 years to reach my current salary and I'm not even senior dev yet. SAP however is close or some case better than that, yet you hardly hear SAP. Point is, enterprise tech is lowkey but when in demand, those huge companies can be generous since they have a budget in the hundreds of millions.
I was wondering about that you mentioned, why there are a lot of articles mentioning the great that is python, and why few .C# evangelists in the web, all are working hard
Python has its place as well. Python has a broad support in machine learning. C# is a general purpose language that can be used to build almost anything. Azure machine learning dotnet.microsoft.com/apps/machinelearning-ai/ml-dotnet is also a powerful player. I just believe that knowing c# really helps you in your career in the long run.
@@sharadskywalker c# is quite free. there's .net core and asp.net core, also f# (in .net core) that are open source. they work just fine on win/mac/linux as well. you have azure, etc. python is great though, as well as javascript ;) but anyway the design patterns and tools that you use are very much the same / very similar. the main difference is in the syntax. you can do functional or object oriented coding in all of these i mentioned. last i checked there was this thing called ironpython which is a python compiler written in c# :) it still exists.
Get your first job as a software developer - www.coderfoundry.com/jobroadmap
Hi, awesome video, cleared some of my doubt, What about C# for desktop, which one should I use making the UI, WPF, WinForms or UWF ?
@@RedNightron so wpf uses xaml as the markup and I like the power of building the gui with it. Uwp is more cross platform runs on mono. Both use xaml.
@Matt, I was kinda unsure of which language I should focus on for my Desktop apps, currently I heavily used Java for both desktop and mobile, but people keep telling me that i should instead focus on .net based language for windows desktop app, from all of th options I picked C# since I am currently also learning unity with that, but reading more and more articles on the internet did me more doubts, saying that WPF / UWP is obsolete bla bla and difficult to do, so Iam kinda stuck between wanting something that is not obsolete but also having better access to windows low level features integration using .net languages.
I am not good at explaining things, hope u get it, and I am indeed a real person.
I thought C++ will be way hard for me since it has low level features and no automatic garbage collector.
@@RedNightronif you are building desktop applications wpf is the best option if you are building for windows. Uwp is for cross platform deployments. I have not pushed something to desktop with. Net core since the .net core 3.0 update. So that may be an option as well.
Sure C# is a good first language to learn, but you would also never go wrong with Java (Google and Amazon core language) or C (Ask a currently working dev. Blogs will tell you its in everything, but it's more complicated than that)
I'm a C# programmer @ MS and it's great to know this language as a developer; and modern C++ is in demand too. That said, you really have to be able to have fantastic problem solving skills and ability to integrate with Azure services. Knowing a language is the baseline, being able to independently solve problems and execute E2E will make you successful.
Lately i see Microsoft giving more attention to modern C++ now. Because modern C++ syntax is alot easier. Also, it is going towards as much as possible compile time. This means very high performance during runtime. While C# does alot of its tricks during runtime waisting resources. Also most products at Microsoft are made with C++. And there is a very good reason why C# isnt used for large programs. I now work also with some large IDE from industrial programming system that is programmed in modern C#. It has a huge startup time. Its super slow. I never seen big C# programs that are fast. Never ever. Im talking about big programs like MS Excel etc.
You bring up great points.
As a pure technical exercise, pick a language. Learn it’s features well. Then pick another language with a different feature set, and learn it well. By the third language, you’ll see that they’re all mostly the same, and you can just look up the syntax for the features you want to use.
I’ve been using Java since college and also for my first job which lasted 2 years. This year I switched to C# and .NET. Man, I’m just gonna say, I will never go back.
Java? You mean xml config files 😉
Shafer Hart lol 100% accurate 😂
Switched jobs recently, started doing c# after 15 years of Java. So far not impressed... Some features nice (properties, unsigneds), some feel awkward, will see after I learn more of the ecosystem. Even started appreciating some features in Java that are different in dotnet (erased generics, enums).
I've been using C# for a long time but then the company was bought by a corporation that used Java and we had to maintain the 20GB Java project, needless to say it was cumbersome. I moved on to another C# job.
*C# is one of the most well-designed languages out there, kudos!!*
that's the main reason I like it best - it may be a copy of java originally but also started with a cleaner sheet!
Then why they used a garbage collector. Why do you have a certain abstraction layer that doesnt let you do real performance stuff on massive datasets or extreme fast algorithms for super computers. When fast languages these days get better more user friendly syntax... why would you still choose for C#? U also dont have first citizen support for linux. Windows is more important which is stupid. In C# you also learn nothing of your memory and how to deal with memory efficiently...
@@HermanWillems windows is only more "important" as far as UI is concerned -- simply because the UI system is not something that's easily portable. Basically everything else is cross-platform; just look at .net core and the upcoming .net 5
Until you try F#
@@minuslr C# and the .NET frameworks are the brain-child of Anders Hejlsberg. He first created Turbo Pascal and then Delphi. I know all of them and C#/.Net is more like Delphi than Java. It may have a Java-esque syntax, but the whole framework and language have more in common with Delphi than anything else.
en.wikipedia.org/wiki/Anders_Hejlsberg
I'm NodeJs developer, and I have to admit this guy say the truth!
Which part is the truth?
Thank you! This is what I’ve been telling people for so long.
I’m a c# dev that was hired by a fortune 100. I have gone from a contractor in 2013 to a senior dev making 2.5x my prev salary.
This video is great advice.
I work for an airline and I have worked with our Software Engineers on projects. Knowing my front end experience they are trying to pull me over there, all I need to do is get a basic level of understanding of C# applications, web dev with ASP.NET, and a little more SQL and I'm in. I don't need to be an expert, they said they'd teach me the high level stuff, just know how to make basic elementary things. I've been working on learning C# for a month so far...it's great, and this video is spot on, C# devs are in high demand.
I agree c# is in very high demand. Keep learning c# and keep coding!
C# is in very high demand. Keep learning it. Focus on full stack web dev with MVC. Build a project with it. We hope this helps.
My brother learned C# and scored two competing job offers with no prior experience
C# and what else? .NET,JS,MVC ??
@@newworldstream1259 .net and ASP.net are both in demand my friend. this is no lie, that C#, hell even JAVA is in big demand in my area.
@@newworldstream1259 All of the above
Awesome! How old was he?
@@christopherLife late 30s
I've been trying to learn Unity and C# for about a year, on and off. Always debating in my head if I should learn another language. Just this month I decided to dedicate some of my free time every day to learning C#. Then this video gets recommended to me by RUclips. The timing of this was perfect and really made me feel more confident in pursuing this language. Now I got that ambition to travel the road from noob to pro!
Why unity? Why not unreal engine?
@@HermanWillems I tried it before unity. Was deeply unsatisfied and frustrated. I took to unity much easier.
C++ is my favorite language, particulary when using it the Qt library but I have to admit that C# is a beautifully designed and productive language.
No BS, just straight talk. Love to see it.
This is one of the best videos to this topic I’ve seen so far. A programming language is just a tool to reach a given goal. In you’re career as a software developer you will „collect“ programming languages like every craftsman will collect tools on his way to cover what he needs to get the job done.
Greetings from Germany
Hi, nice comment. Your use of quotation marks gave you away as German before I read your "greetings". 😃
I have 11 year programming experience (with PHP and C#) and on the last 2 years using only C#.
With PHP, you could offer the most cheap full-stack system to your client..
All novice programmer always trained with PHP, thus make developer-wage of this language on average cheaper.
In PHP the code structure is loosely regulated, thus security is always in question..
This is also a back-draw to almost all other lang, except for C#.
So many bigger company who take more concern of make sure their system to be safe always goes to C#.
I decided to learn .NET and C# during University after a brief stint with Java. I quickly realised that C# is just so widely used that it doesn't make sense to not learn it. Got a job straight out of uni and I owe it (at least partly) to learning the right language! That being said, as someone who's not learning their "first language", it's so important to widen your knowledge pool and give yourself more employability breadth. Really good video!
Thanks for sharing your personal journey James.
C# is a perfect language Javascript is beautiful once you master both you are a killer. Dont forget SQL better TSQL
"Javascript is beautiful" Nope.
@@josephbrandenburg4373 Can you tell me what is the reason, please?
@@daudfauzywidiyatno5288 JavaScript is literally invented in less than a week and the community has been trying hard to fix its shortcomings ever since.
@@daudfauzywidiyatno5288
1+"1"
C#: Are you crazy?
JS: 11!
"Javascript is beautiful" aaaaand you lost me.
Learnt C# when i was 17 , I got my first Development job in my 19 ...Now i am 22
I earn more money than my friends and seniors who are Graduating from university and also some experienced in other languages !
How you can learn c# asp.net from self study?
Someone told me you can not learn asp.net from self study as it is very difficult.
@@akssagir5411 anything can be learned from self-study
@@akssagir5411: If you want to learn ASP.Net easily through self-study, go to the link I'm giving you here, save the playlist and start learning one chapter every day. It's so nice & easy, that any beginner can build their basic knowledge strong from it in a month. I literally learnt web development and Bootstrap from this playlist. But yes, your basic concepts of OOP and C# need to be good. Good luck.
ruclips.net/video/mhYv3jJ66EY/видео.html
I'd say C# is one of the best way to go:
- Well designed, extremely productive language.
- Supported by a growing open source community and Microsoft
- Multiplatform support growing: right now Windows, Linux, MacOS, Android, IOs and x86,x64,ARM architectures
- Can be used to develop everything: Desktop Applications, Mobile Applications, Web Development (both Sever Side and now even Client Side replacing JavaScript with Blazor), IoT (see Medow or Windows IoT for Raspberry like boards), Games or Machine Learning (with ML framework).
Yes, yes, yes, and yes!
We constantly say there isn’t one best solution to everything. But C# is getting closer!
C# Uses a garbage collector which makes it not usefull for alot of things. People tend to forget how much impact a garbage collector has. Its destroys your deterministic code. Also look at how the Unity game engine struggles with garbage collection.
C# also uses way more resources both memory and cpu wise. Which makes it not the first choice for smaller systems. Its just waisting resources. While more performant languages are not more difficult to use.
To be fair c# is a managed language so if your needs making using it not possible then c and c++ may be better for your situation. But c# fits the bill for many things that you would not want use c or c++ for like full stack web dev. So as we say right tool for the right job.
You you see someone using blazor for web, fire them, reactjs is yhe way to go
@@HermanWillems I do not disagree. I haven't said C# can replace everything. I learned programming in C++ and used it for ~20 years now. I also learned many other languages (Delphi, Python, Lua, Java, JavaScript, LISP). I work with both C++ (mostly) and C#. So I do not have much of a bias here. If you need to squeeze every bit of performance C++/ASM all the way sure. But 90% of the applications do not need it. Writing a C++ application is way harder than a C# one. Writing in C# will save you tons of time (at writing, at compiling and at debugging nasty memory related bugs such as corruption and leaks) and there are ways to minimize garbage collection. It's an advanced topic, you need to get to know how it work internally but you can obtain very good performances.
C# is well designed, easy, clean, and powerful, so overall I think C# should be your main language with backup of C++ or RUST if you really have to.
15 seconds in and I got my answer. :p
Before I started in this field, I asked a coder friend which language I need to learn. He said that he uses around 25 different languages depending on what the project needs, and that they're all fundamentally the same apart from the syntax. Now that I'm just a few years in, I know what he meant. I tell people these days that they should learn whatever they're getting paid to use, whether it's C# or COBOL.
imo just getting paid more money than average is one of the worst reasons to become a dev / learn a new language. you shouldn't become a developer if you don't actually enjoy coding, and if you do, a good salary is just one more bonus
@@jebsl8923 Four years ago and I was learning Ruby and Bootstrap. Now I'm using TypeScript and Angular. It's always changing.
I agree. But salary is a strong motivator to start and see if you like it
@@CoderFoundry Salary puts food on the table.
I've been coding in C# since it was first released in 2002, and I've never regretted it. It always seems to be one step ahead of Java, such that Java is following C# when it comes to innovation. It's concise, yet intuitive and easy to read and write. And the language has evolved so it's pretty easy to use all those CPU cores with asynchronous programming and maximize performance.
But Modern C++ again destroys both Java and C#. It has easy to use syntax. It doesnt have a garbage collector but uses unique_ptr so the C++ code is both more efficient with memory, and deteministic. C++ focuses on doing things in compile time rather than C# tries to do things in runtime making C++ way more performant. It has no ties to any OS. Even though C# is multiplatform... u can feel Windows is #1 priority. And that sucks. They need to make linux the most important. Also C++ has gui frameworks that work truly multiplatform. C# Doesnt really have good multiplatform GUI frameworks available. Before you couldnt even do remote debugging. U can now with .net core but try to migrate to it. Its not that easy!!!!!
@@HermanWillems "beeing more efficient with memory" - that's not exactly true. First of all, weak_ptr takes more memory than dotnet reference, and you still need to convert it to uniqe_ptr to use the object inside. On the other hand, making it efficient is on your hands, while in C# it just works. Yes, you can make a leaky program, but in C++ you have to make it not leaky. Not leaky is default in C#.
Also, good luck with deleteing huge arrays of complex objects - c++ being deterministic, you have to wait for it to get deleted. With GC, you can have it deleted in few batches, without much toll on CPU.
I mean, yes, you can write faster programs in C++. But I can bet you thatn a junior/mid dev will write faster programs in C# (and in much shorter times) than in C++. Then single senior may optimize some single method/function if needed.
C++ has nothing to even compete with LINQ, async/await, ReactiveExtensions. Also, google OzCode, Visual Studio plugin, watch some features presentations and tell me if you have it in C++ :)
@@memberwhen22 what does it have to do with anything that we were discussing? yes, Java has more or less the same advantages and disadvantages over c++ as C#. Still, I like c# much more :)
I personally love C# but I have had Java on my first year at university. It was the time when Java 8 was released. Everybody were so enthusiastic about streams (which to be fair are still far beyond LINQ in terms of capabilities), but if you know LINQ syntax which resembles SQL (Select, Where, etc.) syntax with Stream() Collectors and all those 'magic' variables seemed to me really odd (I suppose strange syntax is Oracle's recognizable mark - hateful PL/SQL ;) ). Moreover I was pretty amused when I read inspiration behind those Java 8 features and I saw something like "lambda expressions - it is present in many languages like C#, Python, C++, etc. and lambdas work well so we decided to implement it in Java too" :) I suppose Oracle spoiled Java and it's potential when they bought Sun :/
Edit: It is also funny to look at what Java creators call 'pattern matching' especially if you compare it with another JVM-based language Scala which has far better 'real' pattern matching years ago.. C# is making progress with pattern matching probably inspired by F# (OCaml). Despite C#'s pattern matching is not yet F#-level it is still light years ahead of Java :P
2 Billion $ for creating C#
5 Million Hour for creating
3 years for creating C#
Now C#.NET Core 3
I love c#. I started learning it because there a lot of jobs for it but I felt in love with it afterwards.
I learned the basics of programming in Java. Now ive excepted a job in C#! I'm Hyped!
Im not a pro, but seems to me the basic concepts are the same with all languages just differing syntax. Frameworks? /bangshead :)
@@jsmythib You're definitely right.
@@memberwhen22 Wow, I'm not used to toxicity at programming videos. But can you at least tell us were the mistakes are? So that we all can benefit from your wisdom.
Silvan don’t worry about memberwhen, his grey matter threw an ID-10 T error 🤷♂️
Accepted instead of expected? 😂
TL;DR: Yes
Good to hear this. I've been doing C# coding for about a decade now, but since I'm not a kid anymore, I'm always concerned that I should be moving to something newer. That'll happen one day, but knowing my skills are still marketable elsewhere is good.
We still code in COBOL. C# is already new.
@@memberwhen22 People code in c because it's cross platform and a compiled language. Maybe someday it will be replaced by GO. Who knows? We know .net isn't going to be the cross-platform successor. It's not like MS writes operating systems in C#.
Actually C# in .NetCore is taking over, it's open source and platform agnostic so the age old argument that c# only works on windows is now defunkt and also .NetCore is faster and lighter framework than the older full fat frameworks and the development IDE's such as Visual Studio Code are free which is why so many people are using it and coming back to the language and framework. That's not to say we like 'all' the stuff microsoft peddles 'like sql server which is over priced and aged' but c# and .Net Core is the way forward and my company has been using it since the first version 'about 3 years ago' and never looked back.
I talk to recruiters all the time. Here in Texas the unemployment rate for a .Net dev is ~12%. I've been doing .Net since 2001. When I put my resume online I get over 200 emails and over 100 calls from recruiters a day. If I job jump it takes me on average 14 days from job board to offer letter. Now I'm not making the most as a dev even with my experience but I'll be employable for the foreseeable future. If you have C# with WebAPI, Angular 2+/React you will have companies line up for you. If you're not already jumping on .Net Core as a .Net dev, you're going to have a bad time because almost everything new is being developed in Core to run on Linux servers to save the company licensing money.
I used C# around 2017, it was ok. Then I've found .Net Core and it is great! Now I choose to focus on C# for my server side technologies. The performance~ superb!
I'm currently studying c# and this video suddenly popped in my recommendation, and I love it. This was very useful and informative! Thank you!
Thanks for watching Randel. We appreciate the kind words.
My first programming language. Gotta love C#
Thanks so so much sir for this great video. I'am just six months before start to learn to C#. I'dont know, why I selected this launguage but understand now better I did it good selection. I'am 42 years old and hopeful I can learn.
Been using .NET since 2003 (VB.NET) and moved to C# in 2008 after taking a contract job with Microsoft and they required all code be written in C#. I haven't looked back since. C# is amazing and so happy I was forced to learn it. Thank you Microsoft!
Getting paid to use my talent to create powerful software solutions. Never heard it being described like this. But this is a perfect description! I love the creativity I can put into the job, make customers happy, and last but not least make a very good living out of it.
You are great sir.
You are clear all my doubts.
Finally I decided built my career in C#.
This is one of the few pieces of legitimately good advice you'll hear when asking the question of which language to learn. Also one of the reasons businesses love .NET is the Microsoft stack works so harmoniously together. Every other vendor's stacks I've worked with has required tons of expensive vendor support (IBM, Oracle, SAP) but Microsoft's just works. With .NET developers spend time building what matters rather than trying to keep the platform running.
Thanks Kieran
I was insanely lost and couldn't decide which one to focus on learning between java and .net.Java is massively popular and used by the big companies in the world for a long time and that was concerning me a lot.Deep down i knew and share your view in the video but i'm a beginner and little bit skeptical.Hearing all this from a trusted reliable source gave me chills.Thank you a lot!Now i can continue to learn .NET environment.But first i think i should improve myself on html,css and js to be more confident in the learning phase.
Dotnet is an amazing and convenient technology
I started with NodeJ (express) and moved to Dotnet for the server side in all my of projects
And I do not regret that decision for a moment
That duck looks like he wants to interrupt and say something about Java.
@@backroomsorigin Ha, never heard that before, I like it, Thank you.
It is the CS50 duck
I don't write C#. I like how you pictured the situation by doing logical choices. I also think that getting a job might not be the only thing a young developer targets to, in order to learn a language. And only the ether knows how much I'd like more people come into code not because of jobs, but to have some fun.
Have been using C# since 2006. Visual studio makes it more powerful and beautiful. Very easy to learn,develop, test and deploy. ❤️ C#
Damn it...he read my mind.
I started with python3 to learn the bare-bone basics. Once I got to the point where I can create without a tutorial, I went to C#.
C# because I wanted to learn to code while having fun. Since video games are fun, I "Udemied" a course in game dev using Unity...which uses C#.
Started learning C# and I’m 30 years old. I’ve got big dreams! It’s never too late!
Mate, you are 30 year old, not 80. Your life just have started and you are still in the investment period of it. It is obvious that it not too late for you to learn something new and do something about your life. In fact: it is exactly what you are suppose to do when you are 20 to 35 years old. Later on it maybe too late since you will have expensive commitments so you will have to work your ass off, but when you are 30? Even if you have kids it is not like they are 15-20 years old and you have to fulfil their very expensive needs (like collage). If you were thinking you maybe too old for learning how to code then you are clearly wrong.
Good luck. It will be fun journey. if I would be you I would started with Python, not c#, since it is easier to learn. Then you can switch to any language you want to with ease.
Jarosław Zięba thanks for the encouragement
Jarosław Zięba great encouragement thank you
@@F1WW13 How you got any progress? : >
C# got me into simulation and game development industry. All hail the c#
Learned C# prior to release ;) I think the code name was COOL. C++ was a leg up. Nice progression from C to C++ to C# over the years.
10 years working with .net c#, today I’m an IT manager in a telecom company, it’s true C# is amazing
Thanks for the comment.
Sir i want to learn java Spring web framework . is it good in 2020 ????
@@javaprogrammingmastery look at jobs in your area for that stack. Compare that to asp.net c$ openings
Hello, im communication engineering student
i love networking more than programming, im good at both of them
i always thinking which path should i take?
if both at same time should i go for python + networking?
i know its gonna be hard
in my country most jobs are isp and telecome companys
any suggetion?
This is masterfully broken down with reasoning for business owners to make the right decision and jr. devs.... Ima look into this, I always thought enterprise companies looked away from Jr. Devs. thanks for this vid!!
C# is love
like F# too
Hmm would have liked a comparison to the actual rival in the enterprise, the elephant in the room, which is Java and its massive ecosystem, not RoR.
I did my homework, and though both seem like great options, my impression is that all those battle tested java libraries tip the balance, in addition to the fact that it has managed to preserve back compatibility for decades, no breaking changes, which hasn't been the case for C#/.Net; these two factors are extremelly important in the enterprise, as they result in time/money savings. The main reason for choosing C# seems to be that, although there is less demand in general, the developers/vacancies ratio is more favourable.
In a way, it seems to me that the tradeoff is similar to the one between React and Angular: with React (Java) there is a plethora of options available for pretty much everything, giving more architectural flexibility and better integration with all kinds of different systems, but stacks at different companies can vary wildly, whereas with Angular (C#) there is not much to think about, pretty much one (or two) architectural options, so most stacks are almost identical, but integration with third parties is not as smooth. Both approaches have strengths and weaknesses, the former being more flexible and adaptable but also changeable, the latter being more stable (other than those changes that broke back compatibility). I also believe that, contrary to popular opinion, learning Angular first, instead of React, is preferrable for beginners. It may seem like the learning curve is steeper, but not more so than learning React+Redux+Router+etc, and will teach you how all pieces fit in a SPA without having to make any rabbithole choices at every step. The same reasoning could be applied to C#/.Net vs Java/EEorSpring+etc. In terms of vendor lock-in, .Net is on its way to becoming an open and portable system (because of the cloud), while there seems to be some uncertainty with Java under Oracle.
It would be great if someone mentioned more pros/cons of both, so that people can make a more informed decision, the video seems to focus only on the strengths of C#, more like a sales pitch (an excellent one, by the way, the presentation is fantastic).
All that being said, I am sure you'll be just fine if you choose C#. Or Java. C# was originally based on Java, and most concepts are the same in all enterprise software, and they seem to be, more or less, evolving together, so it doesn't seem too hard to switch if you later on regret your choice (or if you have to). At the end of the day, the focus here seems to be to get that first junior enterprise dev job, and these days JS/TS/Node, not Java, seems to be the main contender for beginner web devs. My impression is that true statically typed languages will make you a better programmer, and are the way to go in the enterprise, so in this context C# seems to me like a very fine choice.
Is C# still a good option if you're fully self taught? I am slightly worried about picking up a language that is more popular in the enterprise area when a lot of those companies list degrees as a requirement on their postings. I know not everything on the job postings is always a strict requirement but its a trend I am starting to notice specifically with C#/.NET jobs
We place our bootcamp grads into C# jobs all the time without a CS degree. Don’t be discouraged by the job description requirements. Apply anyway!
Also, you would be surprised how many non-enterprise companies use C#. We have plenty of local smaller and mid-sized companies that use .NET.
Thank you Sir ,huge respect.
I was really worried about my career but you cleared many confusions.
not not mention, that you can invoke C# libraries in PowerShell, which is also very useful for DevOps and such.
As a programmer and from Java point of view C# is indeed awesome and I like it. It didn't occur to me that I did not have to learn anything substantive to get started with C#. The way C# is engineered, everything is gathered and put in place for you. However depending on your goal this might be good and bad at the same time if you know what I mean.
I'm a Software Architect for one of the largest Media Conglomerates in the world and have been involved in Enterprise Software Engineering for over 19 years, everything Bobby Davis is saying in this video is true! To add a few thoughts: When you see a lot of media attention around trending languages like Python, Rust, GoLang, etc.. Keep in mind what's driving those stories. Startups in Silicon Valley, Austin, etc... are in part using bleeding edge (read: high risk) trending languages and frameworks in hopes of gaining an edge and that also helps their marketing narrative in terms of innovation. Outside the Startup culture in Enterprise where the majority of the coding positions exist, risk mitigation is extremely important, so proven languages/frameworks/patterns are critical to success. In this world, .NET/C# and Java dominate the playing field. Bobby is absolutely right about Microsoft taking care of developers. When Ruby on Rails was gaining moment, Microsoft distilled that data scaffolding was the biggest value ad and they created Entity Framework. When node.js started to trend, Microsoft introduced async methods. Microsoft has done a phenomenal job of watching trends, allowing them to prove their value then adapting those trends into the .NET Framework and when needed the C# language. Java may have more overall market share in Enterprise, but Java was purchased by Oracle in large part so Larry Ellison could sue Google over Andriod's use of Java APIs. From their actions, it's clear Oracle has no interest in maintaining Java the same way Microsoft cares for C# and .NET so with Java it's much less consistent, you have to mix and match third-party tools and frameworks.
Jeremy - Thanks for taking the time to write such a concise and valuable comment. We appreciate it!
One of the biggest reasons why C#/.NET/SQL is so popular is because they are all run on Windows. And like it or not, Windows dominates the business world. OSs like Linux are very well suited to headless apps (ie, command line utils), R&D environments, and especially internet backbone technologies. While "internet technologies" might sound cool (and it is), the number of jobs available in that area are outnumbered hundreds to one, if not more, by business development developer jobs. So, one question I ask of people wanting to know how to be a developer is, "Do you want to be a developer? Or do you want to get *paid* to be a developer? Code camps that limit you to open source products may make you a competent novice developer, but in a platform that very few (comparatively speaking) employers actually use.
I love working on .net using c# which is very clean , feature rich.
What I recently realized is .net applications are very much maintainable.
You touched on something that I think should be stressed. Figure out what you want to do, then learn the skills necessary. Do you want to create web apps for enterprises? C# is a safe bet. Do you want to create embedded software or other real time software? C/C++ might serve you better. Artificial intelligence? Python is what you need.
Although, to be honest, the lions share of domestic devs seem to do Information System work for big business using C# or Java.
my first language was VB back in 1997.
This is my first video ive come across from your channel. I love it.
Thank God I learnt it in 2011 😂🤣
One thing: C# is rather verbose with a persnickety syntax. Much more so than, say, JavaScript. But no worries, Visual Studio and IntelliSense to the rescue. It helps you as you type, offering suggestions and actually writing much of the code for you. When you pick a project type it creates a ton of background code before you type your first line. And it helps all along the way. A true Rapid Application Development (RAD) tool. Without it, I would never have dared to use C#.
The "too verbose" argument is a meme and not a real problem. This goes for both Java and C#. Verbosity makes those languages very easy to read and maintain. Can't say the same for other in vogue less "verbose" languages like Kotlin for example.
Thanks for this. I kinda already knew it, but nice to hear from someone else in the dev industry. :) I was using C# when it came out, and it was a welcomed change from my VB days (ugh, I hate to even mention that!). It has grown up into a massively versatile language with all of the integrations you mentioned. I have been learning everything, Azure, Angular, SignalR, and even Xamarin. There is nothing it can't do (in my mind).
I don't get to use it that much lately but C# is really beautiful language :)
such a relief knowing i am in the right track.
i didn't know which language to pick
id started learning c# slowly,
then i saw the Microsoft surface hub 2 introduction video
i said to myself, Microsoft is really cool it would be cool if i empowered myself in their language
I'm surprised you didn't mention Unity earlier(you waited until the end of your video). It might be the most popular 3d and 2d game development engine. C# is the native language of Unity.
Unity is a big deal. Improves with every release.
In our interviews, we look for C#, ASP.Net, JavaScript, and SQL Server Experience. A real bonus is the candidate that has said skills plus "R" experience.
C# Dev here ! I love it
Great Video! Thank you. True, a lot of spitting out there. I had a hard time choosing a stack. I guess I will make the C# change next year.
In my country C# has on average a much more jobs available. Not to mention with a strong understanding of C# you would pick up java, swift and other languages fairly easily
Hi Bobby, This is Shishir a software engineer from India..Thanks a lot sharing your experience.
I had seen a lot of tech spitters who just try to discourage people, as I was also asking people about the same java or .net.
I learned both lead teams on both java and .net platforms. I agree with you that Microsoft had planned .Net tools and c# in a very integrated way and I am telling this after working in its applications and web both sides. Oops concepts are same front end works same in view side on both Java and .Net.
Shishir, you're welcome! thanks for sharing your experience.
C# is in the top 3 OOP languages. It will get even better when .NET Core will be more popular than the classic one.
C# is amazing. It's so easy to migrate from Java to C#, but going back is almost impossible, lol
One of my teacher was saying "THE MOST IMPORTANT TO KNOW IS WHAT TO DO? HOW TO DO IT IS THE SECONDARY THING" we can not memorize the whole things e.i. the syntax, the methods the codes etc. But the most IMPORTANT is the logic and knowing our goal.
The logic is important, but you can't just stay in theory land.
No employer is going to hire you because you understand the theory of a loop or array. If you can show practical concrete knowledge of those things they're far more likely to hire you.
I remember way back in 2000, in the .Net v1.0 beta days.
I had a demo running, c# browser client (at work) and MS SQL database C# server app (at home), connecting to each other using web services.
Only had the MS documentation to use and a text editor, all compiled with the CLI compiler. I was doing R+D to push the company away from VB6 (DLL hell) and classic ASP.
Now i'm doing R+D with Blazor WASM, as a self employed contractor.
Blazor is the next big thing in web dev.
I am a c++ dev, I have a couple pet projects in various languages, such as Rust, Go, and Javascript... I started a c# project a month ago and I am in love with c# 8.0. LINQ is amazing, object.?etc. Love it.
i keep telling people who want to start programming to learn c++. sure it will take them a year to finally be able to build a decent project with c++ but the knowledge they gain will be worth it. after that depending on which field they want to work in/study/choose as a hobby they should learn a second language which is going to be extremely easy to do once you know c++. for web dev they can learn javascript and that's enough thanks to NodeJs. for AI/ML/Sciency stuff they can learn Python,if they like hardware development/OS development/robotics they can go for C. if they wanna be game developers they should keep learning c++ and 3d modelling at the same time. i myself started learning programming by learning Javascript 6 months ago but if i knew what i know now, i would have started with c++. for networking you don't really need to be a good programmer but if for whatever reason you want to be able to write your own scripts/softwares instead of 10000s already available i recommend Python cuz it is easy to understand/learn and has good libraries and that's about all the available career paths available.
As 5 years of C# developer with .net technologies ,im very happy to see the video for praise.
Thanks Chandana - we appreciate the comment.
I've been using c# for about 3 months now self taught..and I'm loving it..seemed like Mayan glyphs to me at first but It's getting easier and easier.
Another reason, not mentioned in the video, Microsoft also have a certification process so you can prove a level proficiency, e.g. with exams 483 or 486. These can bolster your resume, even if you are starting out and have limited commercial experience.
Great point. If you're breaking in a cert may help you get the trust of a recruiter. Not needed if you make a good project, but every bit helps
c# is a beautiful language...typesafe,managed and object oriented ...we can dispose objects at will...what more one wants....
Plus its got the awesome C syntax
the choice was made easy for me, i googled the average salaries between C#, PHP, Java, C++ and coldfusion. I then googled the most "in demand" devs. In my findings, its a close race between Java and C#. The salaries are similar too. For me personally I then narrowed down what it was i wanted to be (in this case a full stack dev). So C# took the biscuit!
To add, its irrelevant if microsoft goes bust because C# burns OO into your brain, so if c# does get ditched overnight, the OO principals it placed in your mind will apply to the likes of Java, php and even c++ (except with c++ being a lower level language, you wont be able to use cool abstract features)
Those are all great points!
C# is a tool like any other. While the language is fun and easy to use. I often find myself having to recode sections because C# is too user friendly. It's really easy to reinvent the wheel. EG In one program I found myself accidently re-createing bubble sort in linq. Needless to say that code didn't scale very well. But in the end C# is not anything special, I haven't found anything unique to the language. There are things I like and things I don't like. (The biggest of which would be a delete command to tell the garbage collector you are done with an object. Having to coax it is annoying.)
So if businesses want me to use a language I picked up in a less than a day, then fine, it isn't a big deal. It's no different from Java, c++, basic, python, scheme, lisp, prolog, heck even Cobol, if you know what you are doing.
I'm an old-school VB developer starting to teach myself C#. Long story short I was out of programming for many years now trying to make a comeback. Is it possible to break back into software development when you're competing against both overseas coding farms and young bootcamp graduates? Is there a spot for older developers who are new to C# but good in tangential areas like programming in general, and in databases? I've almost given up trying to apply for .NET dev jobs because they seem to all want someone who has 25 different skills and can hit the ground with all of them on day 1. I always hear that employers love people with basic skills and are willing to teach them, but I haven't seen that in practice. I can't even get a foot in the door, and I'm too old (i.e. not living with parents, have to earn a living) to do internships and boot camps.
Bobby, I am in the data and analytics space. They say for us, we need to know Python, R, and/or Scala. I did a project for my company for 6 months where I wrote C# scripts and I've been coding in Python and R (mostly) for my grad school assignments. I do like C#, but they are saying that Scala is a big deal and of course Python and R are a big deal in our space. Every data scientist job description wants a combination of these 3. What should I do?
If you want to do data science that is what you are going to be using currently. Microsoft does have ml dot net that utilizes c#. I will say their is a lot of work going on the makes data science projects easier to do and c# will be the language they (MS) will target. The reason is they want current c# devs to be able to deliver data science projects utilizing azure. But currently this space is dominated with the languages you mentioned and you can use these languages on Azure as well. For more info see:
dotnet.microsoft.com/apps/machinelearning-ai/ml-dotnet
C# is really more comfortable to work with than java or any other language i worked with.
Nice vedio.
C# is the maximum a programmer can go in music theory 🐒
You forgot about F# :)
Being an MS hater I must admit that their enterprise-facing software is great, and so is C#
I learned VB in College. Got my first job out of college and learned C#. I prefer C#.
Well... If you want to have a stable reliable language, shouldn't you use a functional language like Haskell or Clojure? If you want .NET you can also use F# or if you want something, that's easier to adopt for Java/C# Programmers you could use Scala. For me as a Developer, who learnt C# as my first programming language, .NET is just a bit too focused on Windows. I know, you can use it on linux with .NET Core or Mono, but you can't use VS on Linux and at that point, it's going to be easier to use a different Language (Scala for example)
You can use .net for way more than windows. But if you are using other things that is fine. We want people to have the most opportunities possible.
Functional languages, while promising, today is not the most in demand tech out there. So break with web dev first then adopt something like that 2nd.
Visual studio does not run on linux but vs code does so there are options out there for you.
This is very very very true. Finally, someone sane. In my state, pretty much every single job I've looked at on the job market has C#/.NET listed as a requirement. I've just always fought the urge to learn it because of all of these RUclips hooligans pushing us newcomers towards JavaScript and python. I feel like I've wasted 3 years of my life learning the wrong languages. Oh well, at least I've built a developer mentality and now I can probably learn C# quicker. Thanks for the confirmation.
@Arianit Krasniqi lol. You got me for a second there. I've been hammering at javascript for almost 3 years now, so, I think I'm safe to say that I got a very good understanding of it. Now to C#, my only issue now is that I don't run windows on my machine, I run linux and VS code community is not available on linux. Only monodevelop is and it doesn't look so good. I do have visual studio code, though. Would that suffice for C# development and learning?
Bobby, appreciating the content and approach. I was leaning toward the idea of freelancing, starting with serving SMB clients in a niche, and wondering if ASP.Net Core offers a reasonable option vs. Wordpress, even for obviously smaller SMB sites that you would normally consider Wordpress for. I would like use a customized Bootstrap theme or something similar on the front. That way as things develop, I could maybe continue using ASP.Net core as the same environment to develop new functionalities both for these sites, and larger projects over time. What do you think?
Business actually use .NET I program in few programs . I play with Go or Golang....I program a ton and mostly in C# . Never get locked into anything look at trends but where I am C# will likely get you a job and you'll be employed because business internally often use C#
c# and .NET framework are amazing, you can code pretty much anything from console utilities to complex web apps passing by class libraries usable in older environments.
you just have to master the language itself wich is very easy because everyone has base C knowledge
then the .NET framework itself. if you come from Java it will be easy to learn, basically the same core language but different class namespace plus cool features, a little closer to C++
I've always felt C# is the new COBOL and the logical evolution of Visual Basic. It's perfect for line-of-business apps.
.... also ....
.net had a "free" version for people to use. Company I had worked at, those who coded projects and weren't in IT, downloaded the free versions of .net to begin coding. As time went along ... Many many many projects were done on .net and thus became a fairly standard platform.
I would recommend Java or C# for starters. And if you chose one language, first get deep knowledge of it. Then you'll be able to relatevely fast learn any other languages/technoligy stacks, because you will be having grasped all the key concepts of programming and learned some technology stack.
I totally agree!. Excellant insight. Focus your learning!
I appreciate your thoughts on C#!!! You really have encouraged to learn C#. Next question is, there are just too tutorials in C#, where do I start to become a C# self taught developer?
The C# reference and VS's or Rider's auto competition tools.
I am a C# Programmer in Bangladesh.C# is really cool
With C# .NET and SharePoint from the start my monthly salary (in ph peso) progess is like this:
0-2nd year - 15k
2nd-3.5years - 50k
3.5 - 5th year - 100k
With other technologies it takes 8-12 years to reach my current salary and I'm not even senior dev yet. SAP however is close or some case better than that, yet you hardly hear SAP. Point is, enterprise tech is lowkey but when in demand, those huge companies can be generous since they have a budget in the hundreds of millions.
Thanks for sharing your personal insight and perspective.
I was wondering about that you mentioned, why there are a lot of articles mentioning the great that is python, and why few .C# evangelists in the web, all are working hard
Python has its place as well. Python has a broad support in machine learning. C# is a general purpose language that can be used to build almost anything. Azure machine learning dotnet.microsoft.com/apps/machinelearning-ai/ml-dotnet is also a powerful player. I just believe that knowing c# really helps you in your career in the long run.
C# had a bad reputation of being closed source and by Microsoft. Just a marketing smear campaign. Nothing to do with technicalities
@@sharadskywalker c# is quite free. there's .net core and asp.net core, also f# (in .net core) that are open source. they work just fine on win/mac/linux as well. you have azure, etc. python is great though, as well as javascript ;) but anyway the design patterns and tools that you use are very much the same / very similar. the main difference is in the syntax. you can do functional or object oriented coding in all of these i mentioned. last i checked there was this thing called ironpython which is a python compiler written in c# :) it still exists.