{"id":494,"date":"2021-12-23T20:57:46","date_gmt":"2021-12-23T20:57:46","guid":{"rendered":"https:\/\/www.computerscience.org\/?p=494"},"modified":"2022-09-12T16:30:41","modified_gmt":"2022-09-12T16:30:41","slug":"c-education-resources","status":"publish","type":"post","link":"https:\/\/www.computerscience.org\/resources\/c-sharp\/","title":{"rendered":"C# Education &#038; Resources"},"content":{"rendered":"<p>C# (pronounced C Sharp) is a powerful language that offers solutions to several small and large business development needs. Some would argue that it\u2019s one of the most valuable programming languages to learn. According to the PYPL Popularity of Programming Language Index, which identifies how often a tutorial for a particular coding language is searched on Google, the interest in C# continues to grow. Additionally, compared to other coding languages, it\u2019s relatively simple and easy to learn, making it a top choice for aspiring and even senior developers.<\/p>\r\n\r\n\r\n\r\n<p>But where does one start when he or she wants to learn this language? With so many options now available, it can be overwhelming. In this guide, aspiring C# programmers will find the answer to that question and more. Provided are resources on how and where to learn C# as well as an overview of various learning options, from coding games to college degrees. Whether you\u2019re new to the game or a longtime developer, this guide covers the essentials of the C# coding language.<\/p>\r\n\r\n\r\n\r\n<div data-preamp-lantern-cta=\"\"><\/div>\r\n\r\n\r\n\r\n<h2>Understanding C#, Visual C#, and .NET<\/h2>\r\n\r\n\r\n\r\n<p>Students might hear developers use the terms .NET and C# interchangeably. However, .NET is the framework for both C# and VB.NET, whereas C# is the language. When a developer starts an application, he or she can choose the language but will always use the .NET framework\u2019s libraries throughout the code. One of the most difficult parts of learning the C# language is the .NET framework libraries \u2014 they\u2019re large and there are hundreds of methods and resources within the platform.<\/p>\r\n\r\n\r\n\r\n<p>Another common mix up is C# and Visual C#. While these two are similar in some ways, they do have different implementations. C# refers to the language for developing within Visual Studio. Visual C#, on the other hand, refers to the development interface provided by Microsoft. Visual C# is the IDE used in Microsoft\u2019s Visual Studio software, which is the foundation for developers to create their applications. It offers numerous tools to build web-based and desktop applications. It includes a debugger, the development IDE, integration with a database (usually Microsoft\u2019s SQL Server), and a testing platform. Students can download Visual Studio Express for free from Microsoft\u2019s website. As a matter of fact, students need the <a href=\"https:\/\/www.visualstudio.com\/downloads\/download-visual-studio-vs\" target=\"_blank\" rel=\"noreferrer noopener\">Visual Studio<\/a> software before they can get started with C# development, so it\u2019s recommended that students download and install it before they begin the learning process.<\/p>\r\n\r\n\r\n\r\n<div class=\"relative py-3 my-10\">\n  <div class=\"sonic-editorial-bg absolute top-0 right-1\/2 left-1\/2 block h-full w-screen -mr-1\/2vw -ml-1\/2vw bg-gray-50\"><\/div>\n    <h2 class=\"text-center mb-8\">Top Online Programs<\/h2>\n      <p class=\"text-center mb-8\">Explore programs of your interests with the high-quality standards and flexibility you need to take your career to the next level.<\/p>\n    <sonic-editorial-listings\n    limit=\"4\"\n    layout=\"grid\"\n    offset=\"0\"\n  ><\/sonic-editorial-listings>\n<\/div>\n\n\n\r\n\r\n\r\n\r\n<h2>Uses and Benefits of C#<\/h2>\r\n\r\n\r\n\r\n<p>Each language in the coding world has its own benefits and pitfalls. C# is a versatile language, so students can dive into almost any type of application environment without too many limitations. One limitation, however, is that .NET is a Microsoft framework so students should want to work with Windows platforms if it\u2019s the language they learn. This means Windows desktops, servers, and cloud environments are needed for their applications.<\/p>\r\n\r\n\r\n\r\n<h4>C# and the Cloud<\/h4>\r\n\r\n\r\n\r\n<p>The most common use for C# is cloud applications. The cloud is overtaking desktop environments because of its reliability, security, stability, and scalability. As a result, understanding C# in the cloud is a must for most coders and is often a recommended starting point for new developers.<\/p>\r\n\r\n\r\n\r\n<p>There are two types of cloud applications \u2014 apps for end users and apps for other developers. Cloud applications for end users are similar to desktop software, except the client uses a web browser to work with the application. Cloud applications are similar to building websites, except instead of building something such as an ecommerce or content site, the programmer builds tools for customers. Windows-based companies use C# developers to build internal cloud applications. These applications usually tie in with a public-facing application, so students need to understand the business as well as the customer base.<\/p>\r\n\r\n\r\n\r\n<p>APIs (application programming interfaces) are cloud components that plug in to other developer applications. For instance, Twitter has an API that lets developers display tweets in their own application. C# developers often refer to C# APIs as web services or WCF services.<\/p>\r\n\r\n\r\n\r\n<h4>Server Applications<\/h4>\r\n\r\n\r\n\r\n<p>C# is also used in server applications. If students work with automation, C# allows them to create Windows services, which are programs that run in the background of a machine. Students can also write Windows services for regular desktops, but most professional C# developers use services as an automation tool for servers. For example, if a student wants to automate an import of emails every five minutes, they can use C# to manage this task.<\/p>\r\n\r\n\r\n\r\n<h4>Desktop Applications<\/h4>\r\n\r\n\r\n\r\n<p>Desktop applications are the last common use for C#. These applications, however, aren\u2019t as popular as they were a decade ago. Software development is moving towards the cloud and cloud-based infrastructure, which makes desktop development much less attractive for programmers. Cloud applications can be run from anywhere in the world, whereas desktop applications coded in C# can only run on Windows machines.<\/p>\r\n\r\n\r\n\r\n<p>Nonetheless, students may still run into desktop applications from time to time as a developer, so it\u2019s good for a C# developer to have general knowledge about the way they work. Occasionally, an organization might have a C# developer create a custom tool or application that runs on internal Windows client machines.<\/p>\r\n\r\n\r\n\r\n<h2>Distinguishing Features<\/h2>\r\n\r\n\r\n\r\n<p>While C is the foundation for the C# language, C is not an object-oriented programming language. C is used for embedded systems and low-level programming, whereas C# is a higher level programming language. Some .NET framework libraries include low level options for hardware and software components, but programmers wouldn\u2019t use C# for something such as device driver creation.<\/p>\r\n\r\n\r\n\r\n<p>C++ is another option, but it\u2019s considered a more difficult language to use. It\u2019s also not convenient for web applications. While a programmer could write C++ services to run on a web server, it\u2019s not meant for cloud applications like C#. C# is an out-of-the-box cloud platform language that makes it easy to create browser-based apps.<\/p>\r\n\r\n\r\n\r\n<p>The most similar language to C# is Java. The languages are so similar that students can use the same class names and methods between both languages. If students learn one language, learning the other will likely take very little time.<\/p>\r\n\r\n\r\n\r\n<p>The main difference between C# and Java is the libraries. Students must also learn a different IDE. Most Java developers use Eclipse while C# developers need Visual Studio. As a matter of fact, students must use Visual Studio with C#, but they have several options with Java. However, Visual Studio is far more programmer-friendly and makes it much easier to learn the language.<\/p>\r\n\r\n\r\n\r\n<h2>Coding Language Comparisons<\/h2>\r\n\r\n\r\n\r\n\r\n    <table class=\"sonic-table\">\r\n        <thead>\r\n            <tr><\/tr>\r\n            <tr>\r\n                <th><\/th>\r\n                <th>C#<\/th>\r\n                <th>C<\/th>\r\n                <th>C++<\/th>\r\n                <th>Java<\/th>\r\n            <\/tr>\r\n        <\/thead>\r\n        <tbody>\r\n            <tr>\r\n                <td>Level of difficulty<\/td>\r\n                <td data-title=\"C#\">Difficult<\/td>\r\n                <td data-title=\"C\">Intermediate<\/td>\r\n                <td data-title=\"C++\">Difficult<\/td>\r\n                <td data-title=\"Java\">Intermediate<\/td>\r\n            <\/tr>\r\n            <tr>\r\n                <td>Object-Oriented<\/td>\r\n                <td data-title=\"C#\"><img decoding=\"async\" loading=\"lazy\" alt=\"Yes\" src=\"https:\/\/res.cloudinary.com\/highereducation\/image\/upload\/f_auto,fl_lossy,q_auto\/v1\/ComputerScienceOnline.org\/guidebooks\/c-sharp\/yes.png\">\r\n                <\/td>\r\n                <td data-title=\"C\"><img decoding=\"async\" loading=\"lazy\" alt=\"No\" src=\"https:\/\/res.cloudinary.com\/highereducation\/image\/upload\/f_auto,fl_lossy,q_auto\/v1\/ComputerScienceOnline.org\/guidebooks\/c-sharp\/No.png\">\r\n                <\/td>\r\n                <td data-title=\"C++\"><img decoding=\"async\" loading=\"lazy\" alt=\"Yes\" src=\"https:\/\/res.cloudinary.com\/highereducation\/image\/upload\/f_auto,fl_lossy,q_auto\/v1\/ComputerScienceOnline.org\/guidebooks\/c-sharp\/yes.png\">\r\n                <\/td>\r\n                <td data-title=\"Java\"><img decoding=\"async\" loading=\"lazy\" alt=\"Yes\" src=\"https:\/\/res.cloudinary.com\/highereducation\/image\/upload\/f_auto,fl_lossy,q_auto\/v1\/ComputerScienceOnline.org\/guidebooks\/c-sharp\/yes.png\">\r\n                <\/td>\r\n            <\/tr>\r\n            <tr>\r\n                <td>Used for cloud apps<\/td>\r\n                <td data-title=\"C#\"><img decoding=\"async\" loading=\"lazy\" alt=\"Yes\" src=\"https:\/\/res.cloudinary.com\/highereducation\/image\/upload\/f_auto,fl_lossy,q_auto\/v1\/ComputerScienceOnline.org\/guidebooks\/c-sharp\/yes.png\">\r\n                <\/td>\r\n                <td data-title=\"C\"><img decoding=\"async\" loading=\"lazy\" alt=\"No\" src=\"https:\/\/res.cloudinary.com\/highereducation\/image\/upload\/f_auto,fl_lossy,q_auto\/v1\/ComputerScienceOnline.org\/guidebooks\/c-sharp\/No.png\">\r\n                <\/td>\r\n                <td data-title=\"C++\"><img decoding=\"async\" loading=\"lazy\" alt=\"No\" src=\"https:\/\/res.cloudinary.com\/highereducation\/image\/upload\/f_auto,fl_lossy,q_auto\/v1\/ComputerScienceOnline.org\/guidebooks\/c-sharp\/No.png\">\r\n                <\/td>\r\n                <td data-title=\"Java\"><img decoding=\"async\" loading=\"lazy\" alt=\"Yes\" src=\"https:\/\/res.cloudinary.com\/highereducation\/image\/upload\/f_auto,fl_lossy,q_auto\/v1\/ComputerScienceOnline.org\/guidebooks\/c-sharp\/yes.png\">\r\n                <\/td>\r\n            <\/tr>\r\n        <\/tbody>\r\n    <\/table>\r\n\r\n\r\n\r\n\r\n<h2>How and Where to Learn C#<\/h2>\r\n\r\n\r\n\r\n<p>The Internet has opened up several learning paths for aspiring software developers. Twenty years ago, the only way to learn a coding language would have been to go to college, but now aspiring and new coders can learn any programming language, including C#, in a number of different ways. Below is a breakdown of some of those options:<\/p>\r\n\r\n\r\n\r\n<h3>Colleges and Universities<\/h3>\r\n\r\n\r\n\r\n<p>Going to college is probably the first option that comes to mind when one decides to learn C# or any other coding language. Most aspiring software developers pursue <a href=\"\/degrees\/\">degrees in computer science<\/a>, computer information science, or computer engineering. A degree program can be a great option, as it prepares students for not only software development careers, but also provides a well-rounded education. Additionally, some employers require <a href=\"\/resources\/software-developer-vs-software-engineer\/\">software engineers and developers<\/a> to hold a degree in computer science or a related field. While it isn\u2019t always required, a college degree can help open the doors to a greater variety of programming careers including junior, intermediate, and senior level C# positions.<\/p>\r\n\r\n\r\n\r\n<p>Developers with a college degree have a competitive edge, but this route is also the most expensive and time-consuming. The typical minimum is four years, and it could take longer if the student can only attend part time due to other commitments.<\/p>\r\n\r\n\r\n\r\n<p>Another drawback with a degree program is that most focus more on theory than application. Some schools don\u2019t even offer C# as a language option. C, C++, and Java are more prominent in academia, so be sure to research course curriculum before choosing to attend <a href=\"\/resources\/computer-science-before-college\/\">college<\/a> for C#.<\/p>\r\n\r\n\r\n\r\n<p>For the aspiring programmer, pursing a CS degree is ideal if he or she wants a well-rounded education in science and engineering and not just language syntax. If students have the time and financial backing to make the commitment, it can be well worth the effort.<\/p>\r\n\r\n\r\n\r\n<h3>Online Tutorials<\/h3>\r\n\r\n\r\n\r\n<p>For aspiring developers who want to focus on learning one language, another option is online tutorials. This option is ideal for current developers who want to learn a new language or someone interested in simply testing the waters. Online tutorials alone cannot lead to a career as an engineer, but they do provide valuable hands-on learning for C# and its syntax.<\/p>\r\n\r\n\r\n\r\n<p>Most people search Google for <a href=\"\/bootcamps\/rankings\/best-value-online-bootcamps\/\">online coding<\/a> tutorials, but it can be difficult to know which ones are good or bad. It\u2019s also easy to browse blogs and dedicated programmer sites for general references that cover C# concepts, but these aren\u2019t always ideal for learning a new language. Websites don\u2019t take the student step-by-step through the process or focus on building a foundation for learning. For instance, sites such as <a href=\"http:\/\/stackoverflow.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Stack Overflow<\/a> teach students how to work through problems, but they don\u2019t offer the learning environment necessary to build skills with the language.<\/p>\r\n\r\n\r\n\r\n<p>There are, however, some great online tutorials that give students a solid foundation for C#. What\u2019s great about these tutorials is that the student can learn at his or her own pace. He or she can go through them as quickly or slowly as needed and also take the time to revisit tutorials that may be more challenging to ensure he or she fully understands the material.<\/p>\r\n\r\n\r\n\r\n<p>Below are a few sites that provide quality online tutorials for aspiring and novice C# coders. All of these sites allow users to sign up for access to free versions. Users can also explore their libraries without paying for a subscription.<\/p>\r\n\r\n\r\n\r\n<p><strong><a href=\"http:\/\/www.pluralsight.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Pluralsight<\/a><\/strong><\/p>\r\n\r\n\r\n\r\n<p>Pluralsight is a well known online tutorial site specifically for developers. They offer other learning courses, but it\u2019s mainly marketed as an environment for IT and software developers. Several companies offer free Pluralsight access through corporate accounts because it benefits them to continually educate their employees.<\/p>\r\n\r\n\r\n\r\n<p><strong><a href=\"http:\/\/www.lynda.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Lynda<\/a><\/strong><\/p>\r\n\r\n\r\n\r\n<p>Lynda is similar to Pluralsight, but it offers more general tutorials. In other words, it doesn\u2019t only focus on software development. Lynda offers development and web design courses, but it also offers video, 3D animation, education, business, and photography. If the student wants to learn more than just C#, Lynda is a great option.<\/p>\r\n\r\n\r\n\r\n<p><strong><a href=\"http:\/\/code.tutsplus.com\/courses\" target=\"_blank\" rel=\"noreferrer noopener\">TutsPlus<\/a><\/strong><\/p>\r\n\r\n\r\n\r\n<p>TutsPlus is a newer online tutorial site. It\u2019s owned by the popular Envato company, which is a place for coders to sell their scripts, designs, and animations. TutsPlus was made by independent developers who like to share information. TutsPlus users can find several online tutorials for free, so this option is ideal for aspiring C# developers on a budget.<\/p>\r\n\r\n\r\n\r\n<h3>Coding Bootcamps<\/h3>\r\n\r\n\r\n\r\n<p>Coding bootcamps are focused, classroom-oriented learning environments. They are also a fast-paced \u2013 but intense \u2013 alternative to a CS degree. In coding bootcamp, students receive a crash course on C# and can fully immerse themselves in learning it without any other distractions.<\/p>\r\n\r\n\r\n\r\n<p>The similarity between code bootcamps and a CS degree program is the instructor-based benefits. Both bootcamps and a computer science degree give students the ability to ask the instructor questions for immediate feedback, which some students may prefer.<\/p>\r\n\r\n\r\n\r\n<p>Although bootcamps are much shorter than a degree, it doesn\u2019t mean they don\u2019t require a lot of time, effort, and commitment. Bootcamps are intense, consisting of long days for several weeks. These courses are meant for the student who wants to learn everything about the C# language quickly and through hands-on experience.<\/p>\r\n\r\n\r\n\r\n<sonic-callout title=\"Pros and Cons of Coding Bootcamps\">\r\n<div class=\"grid lg:grid-cols-2 gap-5 my-8\"> \n  \r\n<div>\r\n<h3 style=\"color:white; text-align:center;\">Pros<\/h3><br><hr>\r\n<ul><li>Bootcamps are more affordable than a four-year degree<\/li><li>Focus is on C# only, instead of several classes for a well-rounded education<\/li><li>Instructors are usually also programmers so are knowledgeable in the most current real world issues and application<\/li><li>Can be more practical than theory-based education<\/li><\/ul>\r\n<\/div>\r\n\r\n<div>\r\n<h3 style=\"color:white; text-align:center;\">Cons<\/h3><br><hr>\r\n<ul><li>Bootcamps may not be recognized by some employers as a legitimate form of education. Some employers may prefer a CS or related degree.<\/li><li>Because bootcamps have a shorter overall timeline than CS degree programs, classes meet frequently (e.g. every day and even weekends) and days are long<\/li><li>Fewer on-site options<\/li><li>Less well-rounded education<\/li><\/ul>\r\n<\/div>\r\n<\/div>\r\n\n<\/div>\n\r\n\r\n<\/sonic-callout>\r\n\r\n\r\n<h3>Coding Games<\/h3>\r\n\r\n\r\n\r\n<p>A new trend in programming tutorials is the use of coding games. The student can either challenge him or herself or play against other coders. These games are usually meant for people who already have a grasp on the C# language, but they can also be used to teach programming.<\/p>\r\n\r\n\r\n\r\n<p>One of the most popular code gaming sites is <a href=\"http:\/\/www.codewars.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Code Wars.<\/a> The site even has clans, so coders can come together to fight other coders. Code Wars displays coding problems that players must solve. These solutions are then peer reviewed, so the player can learn from other more advanced programmers. The game has a C# section, so the student can choose to be a part of C#-specific coding wars.<\/p>\r\n\r\n\r\n\r\n<p>Another coding game on the Internet is Code Hunt. <a href=\"https:\/\/www.codehunt.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Code Hunt<\/a> takes users through a maze of \u201ccoding fragments\u201d that are captured and fixed by the gamer. It teaches developers how to troubleshoot and debug code that doesn\u2019t return the right output.<\/p>\r\n\r\n\r\n\r\n<p>For more advanced programmers, <a href=\"https:\/\/www.codingame.com\/start\" target=\"_blank\" rel=\"noreferrer noopener\">Coding Game<\/a> gives the developer puzzles that are used to improve coding skills. This is a more advanced option, but it\u2019s useful for developers looking to improve on basic coding skills.<\/p>\r\n\r\n\r\n\r\n<h2>Certification<\/h2>\r\n\r\n\r\n\r\n<p>Certifications have been an alternative \u2013 or enhancement \u2013 to CS degree programs since the 1990s. Like bootcamps, they may not be fully recognized by some employers, and some may prefer more formal education. However, many companies pay for certification training as a benefit for both the developer and the knowledge gained by the development department.<\/p>\r\n\r\n\r\n\r\n<p>Most companies see certifications as a benefit to the coder as it demonstrates knowledge and skill in C#. Certifications are especially essential for C# developers. Since C# is a backend coding language primarily used in internal applications and API integration, experience is typically gained within an organization and applications aren\u2019t available publicly. This means the coder may not be able to prove experience through a portfolio. Instead, the coder can use certifications that test knowledge of C# and display test results to potential employers.<\/p>\r\n\r\n\r\n\r\n<p>There are several ways to study for C# certification, but, ultimately, the student must take an exam at an official location. Since C# is a Microsoft-specific coding language, the student can only take the test at an official testing center, which is <a href=\"http:\/\/www.pearsonvue.com\/microsoft\/\" target=\"_blank\" rel=\"noreferrer noopener\">PearsonVue.<\/a> The disadvantage for these certifications is that official test centers are limited, so the student might need to drive several hours to find the closest location.<\/p>\r\n\r\n\r\n\r\n<p>The way a C# beginner learns the language is irrelevant. Videos, books, and even instructor-led bootcamps are available for training. The Internet also has several practice tests to prepare the student for the official exam day.<\/p>\r\n\r\n\r\n\r\n<h3>Certification Resources<\/h3>\r\n\r\n\r\n\r\n<p>Microsoft offers several certifications, but the C# exams are specific for the Microsoft Certified Professional (MCP) and the Microsoft Certified Solutions Developer (MCSD). This means that taking the exams counts towards credit for both of these certifications. The cost for one exam is $150 and students can sign up through <a href=\"https:\/\/www.microsoft.com\/en-us\/learning\/exam-70-483.aspx\" target=\"_blank\" rel=\"noreferrer noopener\">Microsoft\u2019s website.<\/a> <\/p>\r\n\r\n\r\n\r\n<p><p>Here are a few study resources for the C# certification exam:<\/p>\r\n\r\n<p><strong><a href=\"http:\/\/www.amazon.com\/MCSD-Certification-Toolkit-Exam-70-483\/dp\/1118612094\" target=\"_blank\" rel=\"noreferrer noopener\">Books<\/a><\/strong><\/p><\/p>\r\n\r\n\r\n\r\n<p>Some students prefer reading technical books to learn new languages. Amazon has dozens of C# certification books that guide the student from new programmer to passing the certification exam.<\/p>\r\n\r\n\r\n\r\n<p><strong><a href=\"http:\/\/www.microsoftvirtualacademy.com\/colleges\/c_cert\" target=\"_blank\" rel=\"noreferrer noopener\">Microsoft Virtual Academy<\/a><\/strong><\/p>\r\n\r\n\r\n\r\n<p>The best place for students to prepare for an exam is through the company\u2019s official resources. Microsoft offers training that prepares you for all three C# certifications.<\/p>\r\n\r\n\r\n\r\n<p><strong><a href=\"http:\/\/www.newhorizons.com\/courses\/microsoft\/visual-studio-training.aspx\" target=\"_blank\" rel=\"noreferrer noopener\">New Horizons<\/a><\/strong><\/p>\r\n\r\n\r\n\r\n<p>New Horizons is an official Microsoft certified learning partner. The advantage to this option is that they also offer on-site training for people who prefer instructor-led courses.<\/p>\r\n\r\n\r\n\r\n<p><strong><a href=\"http:\/\/shop.oreilly.com\/category\/learning-path\/c-sharp.do\" target=\"_blank\" rel=\"noreferrer noopener\">O\u2019Reilly<\/a><\/strong><\/p>\r\n\r\n\r\n\r\n<p>There are several webinars and videos specific to certifications. O\u2019Reilly is a popular technical book publisher that also offers video training specific to the C# certification tests.<\/p>\r\n\r\n\r\n\r\n<p><strong><a href=\"http:\/\/blog.pluralsight.com\/learning-path-c-microsoft-exam-70-483\" target=\"_blank\" rel=\"noreferrer noopener\">Pluralsight<\/a><\/strong><\/p>\r\n\r\n\r\n\r\n<p>Pluralsight was mentioned previously as a good way for students to learn C#, but the site also has specific courses for C# certification. Students can combine learning C# with preparing for C# certifications. Today<\/p>\r\n\r\n\r\n\r\n<h2>The History of C#<\/h2>\r\n\r\n\r\n\r\n<p>The C# language is all about understanding a platform\u2019s nuts and bolts. It\u2019s not about design with C# \u2014 it\u2019s about understanding the engineering side of applications and how to build robust solutions that automate backend development. As a backend development language, C# is the virtual mechanics of a website. Developers work closely with designers, but don\u2019t need to be designers in order to work with the language, although a familiarity with design doesn\u2019t hurt.<\/p>\r\n\r\n\r\n\r\n<p>C# was originally developed as a Java competitor and is one of the youngest languages on the market. C# has its foundations from C, and was original named \u201cCool\u201d for \u201cC-like Object Oriented Language\u201d. Additionally, because it\u2019s a Java competitor, it\u2019s also similar to Java in some ways.<\/p>\r\n\r\n\r\n\r\n<p>Microsoft began its introduction of cloud programming with the ASP (Active Server Pages) framework, which was based on the Visual Basic language. Originally, this was the only way for a developer to create dynamic web pages using Microsoft technology. The company later developed the .NET initiative that completely changed the way Windows developers coded. Within the .NET framework, Microsoft released the C# language, which used object-oriented programming (OOP) syntax contrary to the previous ASP language. C# along with VB.NET were released in January 2002 as the .NET framework. Originally, VB.NET was more popular likely due to its similarities to the Visual Basic language, but C# eventually gained traction primarily because of its direct competition with <a href=\"\/resources\/java\/\">Java<\/a>. Developers that preferred a C-style language could create Microsoft-specific applications without using Visual Basic. It is now the preferred language in the Windows coding world.<\/p>\r\n\r\n\r\n\r\n<h2>The Future of C#<\/h2>\r\n\r\n\r\n\r\n<p>C# is still considered a new language, but it\u2019s already engrained in several corporate systems, and it now works with the MVC (Model-View-Control) framework, which is a trending way to design software. MVC is a framework that lets coders create web-based applications using C#. It still uses the .NET framework libraries, but MVC reduces the overhead that previous .NET versions required. Programmers no longer need to keep track of page load state and can focus on the backend code.<\/p>\r\n\r\n\r\n\r\n<p>In April 2015, Microsoft announced its <a href=\"http:\/\/www.infoworld.com\/article\/2913960\/c-sharp\/microsoft-hints-at-potential-c-7-features.html\" target=\"_blank\" rel=\"noreferrer noopener\">plans for the next version of C#.<\/a> Some characteristics of the new version will include:<\/p>\r\n\r\n\r\n\r\n<ul>\r\n<li>Pattern matching<\/li>\r\n<li>Record and algebraic data types<\/li>\r\n<li>Nullability tracking<\/li>\r\n<li>Async streams<\/li>\r\n<li>Covariant return types<\/li>\r\n<li>Array slicing<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<h2>Resources for Beginners<\/h2>\r\n\r\n\r\n\r\n<p><p>Unless the student has some kind of formal training, knowing where to go to begin studying and learning C# can be overwhelming. Type \u201clearn C#\u201d into Google and there are millions of results. To help narrow down the process, here are some solid tips and resources to help aspiring and beginner programmers get started:<\/p>\r\n\r\n<p><strong><a href=\"https:\/\/www.visualstudio.com\/en-US\/products\/visual-studio-express-vs\" target=\"_blank\" rel=\"noreferrer noopener\">Download Visual Studio Express<\/a><\/strong><\/p><\/p>\r\n\r\n\r\n\r\n<p><p>Microsoft gives developers the ability to get started for free. An essential resource is the Visual Studio site where the student can get familiarized with the coding environment.<\/p>\r\n\r\n<p><strong><a href=\"https:\/\/www.codecademy.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Sign up for Code Academy<\/a><\/strong><\/p><\/p>\r\n\r\n\r\n\r\n<p><p>Code Academy is a popular site for beginners who want to learn any language, including C#. The site takes beginners step-by-step through the learning process and tests them as each chapter is completed.<\/p>\r\n\r\n<p><strong><a href=\"https:\/\/www.microsoftvirtualacademy.com\/en-US\/training-courses\/c-fundamentals-for-absolute-beginners-8295\" target=\"_blank\" rel=\"noreferrer noopener\">Watch official Microsoft training<\/a><\/strong><\/p><\/p>\r\n\r\n\r\n\r\n<p><p>Microsoft offers its own training site for C#. This resource is ideal for beginners looking to learn the very basics.<\/p>\r\n\r\n<p><strong><a href=\"https:\/\/github.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Get a GitHub account<\/a><\/strong><\/p><\/p>\r\n\r\n\r\n\r\n<p><p>GitHub is a collaboration tool for developers to publish programming projects. GitHub is the main resource for developers that publish projects as open-source. It\u2019s also available as a local installation. In addition to publishing coding projects, users can also get valuable feedback from other coders.<\/p>\r\n\r\n<p><strong><a href=\"http:\/\/www.learnvisualstudio.net\/courses\/\" target=\"_blank\" rel=\"noreferrer noopener\">Learn the .NET framework<\/a><\/strong><\/p><\/p>\r\n\r\n\r\n\r\n<p><p>This site helps developers learn the .NET framework as well as concepts related to C# programming. C# developers can find classes for core fundamentals and the MVC framework.<\/p>\r\n\r\n<p><strong><a href=\"https:\/\/www.udemy.com\/courses\/\" target=\"_blank\" rel=\"noreferrer noopener\">Find video tutorials at Udemy<\/a><\/strong><\/p><\/p>\r\n\r\n\r\n\r\n<p><p>Udemy is a user-generated video site that hosts several C# learning tutorials. It\u2019s a paid site, but the student can purchase videos one-by-one instead of paying for a subscription to the full site.<\/p>\r\n\r\n<p><strong><a href=\"http:\/\/www.codeproject.com\/Articles\/22769\/Introduction-to-Object-Oriented-Programming-Concep\" target=\"_blank\" rel=\"noreferrer noopener\">Understand object-oriented programming<\/a><\/strong><\/p><\/p>\r\n\r\n\r\n\r\n<p><p>C# is an object-oriented programming language. The student must understand these concepts to learn C#. Code Project has an excellent review of OOP concepts.<\/p>\r\n\r\n<p><strong><a href=\"https:\/\/www.reddit.com\/r\/csharp\/\" target=\"_blank\" rel=\"noreferrer noopener\">Join C# communities<\/a><\/strong><\/p><\/p>\r\n\r\n\r\n\r\n<p><p>Every developer gets stuck at some point or needs a different perspective. Fortunately, there are numerous communities where developers can ask questions and get help from peers.<\/p>\r\n\r\n<p><strong><a href=\"http:\/\/stackoverflow.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Get a Stack Overflow account<\/a><\/strong><\/p><\/p>\r\n\r\n\r\n\r\n<p><p>Stack Overflow is the go-to site for asking C# coding questions. The site is well known as a place to help programmers with simple as well as complex problems.<\/p>\r\n\r\n<p><strong><a href=\"https:\/\/docs.microsoft.com\/en-us\/\" target=\"_blank\" rel=\"noreferrer noopener\">Read Microsoft\u2019s references<\/a><\/strong><\/p><\/p>\r\n\r\n\r\n\r\n<p>Microsoft offers numerous references to C# and how to get started with the language. It also has a forum where developers can ask questions when they get stuck on a problem.<\/p>\r\n\r\n\r\n\r\n<h2>Advanced C# Resources<\/h2>\r\n\r\n\r\n\r\n<p><p>Once a student moves into intermediate and advanced concepts, they need a place to find references and solutions to more complex concepts. Advanced programming is more about concepts than a language, so most advanced resources focus on the student finding a solution to a problem using C#. Below is a roundup of tips and resources for more advanced programmers:<\/p>\r\n\r\n<p><strong><a href=\"https:\/\/www.khanacademy.org\/computing\/computer-science\/algorithms\" target=\"_blank\" rel=\"noreferrer noopener\">Learn algorithms<\/a><\/strong><\/p><\/p>\r\n\r\n\r\n\r\n<p><p>Algorithms are a set of steps that tell a computer how to accomplish a task. Algorithms power many of the successful applications on the Internet. Advanced coders must understand algorithms and how to use them in C#.<\/p>\r\n\r\n<p><strong><a href=\"https:\/\/docs.microsoft.com\/en-us\/previous-versions\/visualstudio\/visual-studio-2008\/ff652506(v=orm.10)\" target=\"_blank\" rel=\"noreferrer noopener\">Review advanced C# concepts<\/a><\/strong><\/p><\/p>\r\n\r\n\r\n\r\n<p><p>Microsoft has its own resources available for advanced programmers. Read through these concepts to understand them.<\/p>\r\n\r\n<p><strong><a href=\"http:\/\/www.codeproject.com\/Chapters\/15\/Cloud-Computing.aspx\" target=\"_blank\" rel=\"noreferrer noopener\">Understand cloud computing<\/a><\/strong><\/p><\/p>\r\n\r\n\r\n\r\n<p><p>The development world is moving towards the cloud as the main platform that hosts applications. Developers should understand how cloud architecture works as it relates to C#.<\/p>\r\n\r\n<p><strong><a href=\"http:\/\/www.codewars.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Play Code Wars<\/a><\/strong><\/p><\/p>\r\n\r\n\r\n\r\n<p><p>Code Wars is an advanced coding game for developers who still want to learn but also have a firm grasp of C#. It\u2019s a fun way to develop advanced skills with the language.<\/p>\r\n\r\n<p><strong><a href=\"http:\/\/www.pearsonitcertification.com\/articles\/article.aspx?p=98149&amp;seqNum=5\" target=\"_blank\" rel=\"noreferrer noopener\">Answer practice exam questions<\/a><\/strong><\/p><\/p>\r\n\r\n\r\n\r\n<p><p>Pearson has practice exam questions students can use to test skills for the C# certification exam.<\/p>\r\n\r\n<p><strong><a href=\"https:\/\/blog.udemy.com\/hashtable-in-c-sharp\/\" target=\"_blank\" rel=\"noreferrer noopener\">Understand hash tables<\/a><\/strong><\/p><\/p>\r\n\r\n\r\n\r\n<p><p>Hash tables are used in several complex coding applications. C# has its own hash table class that programmers can use, but it\u2019s important to conceptually understand a hash table\u2019s structure.<\/p>\r\n\r\n<p><strong><a href=\"https:\/\/docs.microsoft.com\/en-us\/previous-versions\/ms379564(v=vs.80)\" target=\"_blank\" rel=\"noreferrer noopener\">Read Microsoft\u2019s source on Generics<\/a><\/strong><\/p><\/p>\r\n\r\n\r\n\r\n<p><p>Generics are an important concept in C# development. Most complex programs have at least one generic in the system.<\/p>\r\n\r\n<p><strong><a href=\"http:\/\/www.amazon.com\/s\/ref=nb_sb_noss_2?url=search-alias%3Daps&amp;field-keywords=advanced+c%23&amp;rh=i%3Aaps%2Ck%3Aadvanced+c%23\" target=\"_blank\" rel=\"noreferrer noopener\">Read a technical book<\/a><\/strong><\/p><\/p>\r\n\r\n\r\n\r\n<p><p>Amazon now offers students the ability to rent books or download them to Kindle. Find an advanced C# book that\u2019s interesting and use it to boost skills.<\/p>\r\n\r\n<p><strong><a href=\"http:\/\/www.entityframeworktutorial.net\/Querying-with-EDM.aspx\" target=\"_blank\" rel=\"noreferrer noopener\">Learn LINQ to Entity framework<\/a><\/strong><\/p><\/p>\r\n\r\n\r\n\r\n<p><p>LINQ and EF are used to interact with a database. EF maps to database tables and LINQ is used to query those tables. It\u2019s an advanced yet important factor in C# programming.<\/p>\r\n\r\n<p><strong><a href=\"http:\/\/www.pluralsight.com\/courses\/practical-data-modeling-csharp-sql-server\" target=\"_blank\" rel=\"noreferrer noopener\">Understand databases with C#<\/a><\/strong><\/p><\/p>\r\n\r\n\r\n\r\n<p>Microsoft SQL and C# go hand-in-hand to create interactive dynamic applications. The student needs to know database concepts as they relate to C#.<\/p>\r\n\r\n\r\n\r\n<h2>C# Careers and Salaries<\/h2>\r\n\r\n\r\n\r\n<p>Developers who learn C# have numerous career opportunities. C# developers are in demand, so it\u2019s a good language to learn even as a beginner. The market is also in need of junior, intermediate, and senior level developers. The salaries are above average, and developers that step into lead positions can earn salaries in the upper range of the salary curve.<\/p>\r\n\r\n\r\n\r\n<p><p>Here are a few sample job descriptions for C# developers:<\/p>\r\n\r\n<h3>Junior Software Engineer<\/h3><\/p>\r\n\r\n\r\n\r\n<ul><li><strong>Average Salary:<\/strong> <a href=\"http:\/\/www.payscale.com\/research\/US\/Job=Junior_Software_Engineer\/Salary\" target=\"_blank\" rel=\"noreferrer noopener\">$54,000<\/a><\/li><\/ul>\r\n\r\n\r\n\r\n<p>All programmers start at a junior engineering level. This position usually involves fixing bugs and debugging code with senior engineers to familiarize the applicant with the code and structure. They also work with senior engineers to design new modules for new software projects.<\/p>\r\n\r\n\r\n\r\n<ul><li><strong>Education<\/strong> Junior developers don\u2019t necessarily need a CS or related degree, but hands-on experience is definitely beneficial.<\/li><\/ul>\r\n\r\n\r\n\r\n<p><h3>C# Developer<\/h3><\/p>\r\n\r\n\r\n\r\n<ul><li><strong>Average Salary:<\/strong> <a href=\"http:\/\/www.payscale.com\/research\/US\/Job=C%23_Developer\/Salary\" target=\"_blank\" rel=\"noreferrer noopener\">$66,000<\/a><\/li><\/ul>\r\n\r\n\r\n\r\n<p>This position is the most common job title. It includes intermediate and senior level applicants. C# developers design, test, and code existing and new modules for a variety of software \u2013 usually browser-based applications. This position requires engineering of new applications, so the developer must understand the full development life cycle.<\/p>\r\n\r\n\r\n\r\n<ul><li><strong>Education<\/strong> Intermediate developers usually need a computer science degree, several years of experience, or a certification.<\/li><\/ul>\r\n\r\n\r\n\r\n<p><h3>WPF Developer<\/h3><\/p>\r\n\r\n\r\n\r\n<ul><li><strong>Average Salary:<\/strong> <a href=\"http:\/\/www.simplyhired.com\/salaries-k-wpf-developer-jobs.html\" target=\"_blank\" rel=\"noreferrer noopener\">$79,000<\/a><\/li><\/ul>\r\n\r\n\r\n\r\n<p>WPF is the framework for Windows desktop applications. C# uses the WPF framework to create applications that run on desktops. These developers are responsible for designing and creating applications, performing bug fixes, and deploying code to numerous desktops.<\/p>\r\n\r\n\r\n\r\n<ul><li><strong>Education<\/strong> CS degree and\/or certifications to help prove competency in the framework and language.<\/li><\/ul>\r\n\r\n\r\n\r\n<p><h3>Senior Software Engineer<\/h3><\/p>\r\n\r\n\r\n\r\n<ul><li><strong>Average Salary:<\/strong> <a href=\"http:\/\/www.payscale.com\/research\/US\/Job=Sr._Software_Engineer_\/_Developer_\/_Programmer\/Salary\" target=\"_blank\" rel=\"noreferrer noopener\">$92, 000<\/a><\/li><\/ul>\r\n\r\n\r\n\r\n<p>Senior level engineers drive much of the new software design and user experience. They also help train and mentor junior level engineers. They sometimes lead teams of developers for bigger projects. Their job involves designing software, creating algorithms, documentation, and building data-driven analysis tools.<\/p>\r\n\r\n\r\n\r\n<ul><li><strong>Education<\/strong> Most senior level development positions require a computer science, computer information science, or computer engineering degree.<\/li><\/ul>\r\n\r\n\r\n\r\n<p><h3>Lead Software Engineer<\/h3><\/p>\r\n\r\n\r\n\r\n<ul><li><strong>Average Salary:<\/strong> <a href=\"http:\/\/www.payscale.com\/research\/US\/Job=Lead_Software_Engineer\/Salary\" target=\"_blank\" rel=\"noreferrer noopener\">$100,000<\/a><\/li><\/ul>\r\n\r\n\r\n\r\n<p>Most development shops have a lead developer that manages the team. This position is part development and part management. Lead developers work with project managers to design small and large scale applications. They don\u2019t usually code the projects, but they do help with solutions to complex situations where developers aren\u2019t able to figure out problems with applications.<\/p>\r\n\r\n\r\n\r\n<ul><li><strong>Education<\/strong> Most lead developers need several years of experience on top of a CS, computer information science, or computer engineering degree.<\/li><\/ul>","protected":false},"excerpt":{"rendered":"C# (pronounced C Sharp) is a powerful language that offers solutions to several small and large business development needs. Some would argue that it\u2019s one of the most valuable programming languages to learn. According to the PYPL Popularity of Programming Language Index, which identifies how often a tutorial for a particular coding language is searched [&hellip;]","protected":false},"author":1,"featured_media":699,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"templates\/template-dcs.php","format":"standard","meta":{"_cloudinary_featured_overwrite":false,"footnotes":""},"categories":[1],"bootcamps":[],"states":[],"resources":[21],"careers":[],"degrees":[],"class_list":["post-494","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","resources-all"],"acf":[],"menu_order":0,"_links":{"self":[{"href":"https:\/\/www.computerscience.org\/wp-json\/wp\/v2\/posts\/494","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.computerscience.org\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.computerscience.org\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.computerscience.org\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.computerscience.org\/wp-json\/wp\/v2\/comments?post=494"}],"version-history":[{"count":0,"href":"https:\/\/www.computerscience.org\/wp-json\/wp\/v2\/posts\/494\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.computerscience.org\/wp-json\/wp\/v2\/media\/699"}],"wp:attachment":[{"href":"https:\/\/www.computerscience.org\/wp-json\/wp\/v2\/media?parent=494"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.computerscience.org\/wp-json\/wp\/v2\/categories?post=494"},{"taxonomy":"bootcamps","embeddable":true,"href":"https:\/\/www.computerscience.org\/wp-json\/wp\/v2\/bootcamps?post=494"},{"taxonomy":"states","embeddable":true,"href":"https:\/\/www.computerscience.org\/wp-json\/wp\/v2\/states?post=494"},{"taxonomy":"resources","embeddable":true,"href":"https:\/\/www.computerscience.org\/wp-json\/wp\/v2\/resources?post=494"},{"taxonomy":"careers","embeddable":true,"href":"https:\/\/www.computerscience.org\/wp-json\/wp\/v2\/careers?post=494"},{"taxonomy":"degrees","embeddable":true,"href":"https:\/\/www.computerscience.org\/wp-json\/wp\/v2\/degrees?post=494"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}