C#: THE PROGRAMMING LANGUAGE THAT OPENS UP DOORS!
Home » C#: The programming language that opens up doors

What are the uses and benefits of C# in programming? CFG Ambassador Addi shares her insights and tips.
QA Engineer and CFG Ambassador Adelaide Baron shares how C# (C sharp) opens up career opportunities for aspiring developers, and common use cases of C#. Addi also shares her advice for learning and working with C#, applicable to those who are experienced in working with C#, or total beginners! Connect with Addi on LinkedIn or Instagram.
SIX QUICK FIRE QUESTIONS!
What is your favourite coding language?
Anything C based!
What is your favourite season?
Autumn
What is your comfort food?
Cheesy chips
What is your favourite flower?
Peony
What is your favourite way to destress after a long day of coding
Exercise – particularly rowing! Really helps clear the mind, and get active after a stationary, wfh, day

Hi Addi! Please give a brief intro about yourself and your tech experience.
Hey, I’m Addi👋 I’m a software engineer, with a passion for developing and testing solutions, data, and AI! My journey into tech began in 2022, when I joined the CFG Kickstarter Class program. I later completed the CFGdegree in data, and I’m currently on the Mid-Level Accelerator.
I got into tech during my undergraduate degree, when I was struggling with a project that involved coding – a skill I didn’t yet have! That’s when I discovered CFG, and took the Python and SQL Kickstarter Classes. Not only did they help me with my project (I got a first!) but they also opened my eyes to careers in tech.
In 2022 I started teaching the courses, and decided to become an ambassador too to share the love of CFG to develop others careers. Whether you’re chasing a new career or enhancing your current one, I truly believe coding is a skill everyone can benefit from.
How can proficiency in C# open up career opportunities for aspiring developers?
C# is one of the most popular languages at the moment (#5 on the GitHub since 2020, up from #8 in 2014), making it a great choice for breaking into and advancing your career as a developer.
C# isn’t new – but you wouldn’t be able to tell. It’s a high-level language, meaning it’s written in a more natural human-readable way, making it a great beginner’s language.
Did you know, C# is a millennium (2000) baby, created by Microsoft? As such, it has a huge support network, both from integrating tools, to the community and documentation. If you’re interested in the Microsoft suite, such as Azure cloud computing, or the AI/ML offerings, then C# is a fantastic language to utilise. It also has a huge user network – with most cities offering a monthly meetup!
C# is popular in multiple industries, learning it opens up so many doors! Here’s a few areas where C# leads:
- Gaming
- Web & App Development
- AI & ML
- Enterprise applications (those used by organisations)
Being C-based, C# is also a great gateway language. The syntax and style is similar to other major languages, such as C++, Java, And JavaScript! So, by learning C# – you’ll be able to pick up these other languages with more ease, too.
Keep an eye out on the CFG Intro courses and Kickstarter Classes website pages to begin your C# learning!
By learning C# - you’ll be able to pick up these other languages with more ease, too.
What are some common tasks or projects you work on using C# in your day-to-day tasks?
My current role is in a Software as a Service (SaaS) company, meaning we create software for customers to use. SaaS provides cloud-based apps, for example emails or calendars. In my case, we have a small frontend (maintained by a specific team), and the rest is backend (behind the scenes). For that reason, we don’t use C#, but rather Java across the board for consistency.
However, in my personal projects, I use C# for microservices – predominantly web APIs. For example, I’m making a small app for my local sports team, and C# integrates really nicely as a whole system (several microservices).
If I were to split my work code bases between Java and C# I’d use Java for the larger, complex, enterprise applications (e.g. a customer relationship management system). You really can’t beat Spring (a Java framework) for complex development. Any microservices, or anything with a front end (e.g. order processing service, a desktop photo editor, a user authentication service), may be better suited to C#. Additionally, I’d use C# without a doubt if we had other Microsoft technologies – like SQL server.
What do you enjoy most about working with C#?
How readable it is! I didn’t learn C# using any particular resources, I just picked it up whilst working with Java. I found it quite easy to experiment with and get it working, as it’s similar to most modern languages. But take another language like C++, there’s no way my mind would say “print, yes – that must be cout << “message”;”.
Additionally, the documentation. Something about the Microsoft documentation seems a lot more supportive and user-friendly than the Oracle (Java) guides.
I found it quite easy to experiment with and get it working, as it’s similar to most modern languages.
How does C# differ from other programming languages, especially those in the C family like C++ and Java?
All languages are constantly evolving, but modern C# has adopted many features to make it even more expressive and concise. C# is high-level (more human-readable), which can be seen in a comparison of the print messages:
- C#: Console.WriteLine()
- Java: System.out.println()
- C++: cout << “message”;
Regarding the code base, C# can be written in different styles of programming to suit your needs, whereas the other languages are stricter. Looking at applications, C# is usually for desktop apps or games, whilst Java is reserved for backend development and mobile apps. C++ is even more backend, think OS and web browsers behind the scenes.
Getting a bit deeper beyond the syntax, while C# is compiled like Java and C++, it doesn’t have the same level of platform independence as Java, being more Windows-based. However, it still offers cross-platform capabilities through tools like .NET Core. Memory and performance-wise, the difference is negligible between C#, Java, and C++, although C++ is considered to have a slight edge due to its low-level (less human-readable) nature.
This being said, they’re all super similar – especially Java and C#. If you know Java, you’ll pick up C# nicely, to me it feels virtually the same but with subtle differences in architecture and general code. If you know C++, the same applies – but it might be a bigger difference (but c’mon, you know C++).
Are there any particular challenges or barriers that developers should be aware of when working with C#?
I initially found the structural differences between C# and other languages, even within the broader .NET ecosystem, is a bit challenging. However, understanding the underlying architecture is crucial for adhering to best practices early in a project.
Given the rapid pace of C# and .NET framework releases, staying updated with breaking changes is essential. This requires more active monitoring compared to languages like Java or Python.
They’re all super similar - especially Java and C#. If you know Java, you’ll pick up C# nicely.
Can you share any tips for working with C# (e.g. best practices, debugging/troubleshooting)?
The usual tips apply for an object-oriented programming (OOP) language, adhere to SOLID principles and the four pillars of OOP, and use typical casing conventions (or whatever your team uses).
For debugging, and pre-emptive troubleshooting, start with logging! This is only going to help you debug moving forward, and can also help with monitoring further down the line. Additionally, adopt unit testing early on. I found this the best way for me to ensure my code ran smoothly from the start, using a loose TDD approach.
C# has a unique architecture, so utilise design patterns – these are proven layouts for particular coding problems. No point in reinventing the wheel!
What advice would you give to someone just starting with C# development?
C# isn’t just about writing code; the overall application structure plays a huge role. While it’s tempting to dive straight into advanced topics like architecture, it’s best to start with the basics.
I recommend beginning with C# syntax (like the grammar of code) and control flow, followed by OOP and application structure. Once you have a solid foundation, you should adopt unit testing – the earlier the better.
Thank you to Addi for providing such a thorough introduction to C#! Interested in learning C#? Keep an eye out on our Intro Courses or Coding Kickstarter Classes for C#! 🤩