SlideShare a Scribd company logo
1 of 11
Download to read offline
Interview With a Senior C# Developer: Creating
a Better Code
Mobile and software development is an extremely lucrative field. Many
businesses transfer their products online, creating applications and
websites. That’s why the demand for skilled app developers is still quite
high and will continue growing till 2030. However, it’s not easy to win a
place under the sun and get your hands on a promising project. Trends
and requirements are constantly changing. How to keep growing as an
experienced specialist? Are the C programming languages still worth
learning, or are they slowly getting outdated?
We discussed those and other intriguing questions with the Shakuro
senior C# developer, Fedor. He has more than 10 years of experience in
software development and participated in a variety of projects. Fedor
also spent quite a bit of time teaching juniors cool coding tricks and tips.
Let us start with icebreakers. What is your ordinary
workday as a C# developer look like?
For starters, I set my mind on work: look through the plans, calendar,
emails, and messages. This helps me remember the context of
yesterday’s tasks. If I have another free minute, I grab a cup of coffee
and talk a bit with my colleagues. Only after I’m refreshed and energized
I get to work.
During the day, I try to plan my tasks according to the Eisenhower
Matrix. This method divides assignments into four groups: important and
urgent, important and not urgent, urgent and not important, and finally,
not urgent and not important.
Eisenhower Matrix from Slab
It’s not surprising that I prioritize urgent and important tasks. Then, if I
have time left, I switch to other assignments. Of course, there are
different situations, but still, basing the plan on importance is key.
During app development, we often have meetings, and it’s crucial to get
ready for them. Revise the current tasks, stay up to date with the project
course, etc. Overall, it’s better to gather meetings connected with
technical aspects in the morning. The same goes for overseeing junior
software developers and other people’s work: you have more chances to
notice a mistake.
Why did you choose to study the C# programming
language?
I started writing code with Adobe Flash, which was used to create simple
browser games. I also tried out Turbo Pascal and Delphi while studying
at the university. But when it came to choosing the primary programming
language, C# was already a great option back in the day.
The .NET platform got the new framework version, and it offered a
versatile integrated environment for developing web applications. There
were many pre-installed options, and one could build web pages in a few
clicks. As a novice, I was amazed by that feature and started learning
the ĐĄ# language. I liked .NET for its convenience. A developer just
needed to deploy the platform and install Visual Studio — and they were
all set. One didn’t have to adjust anything, create access, etc. Moreover,
.NET soon became open-source.
Also, C# is still one of the most popular programming languages. In
2022, almost 28% of mobile and web developers worldwide are coding
in this language.
Therefore, I think that the .NET platform and the C# programming
language are the easiest way for newbies to get into app development.
These tools don’t require knowing some special architectures, drivers,
and other high-level coding magic.
_________________________________________________________
A great developer team is nice, but one programmer in the field is still a
warrior.
_________________________________________________________
Does C# language have any disadvantages?
Sure, it does. For example, if a developer needs extremely high
performance, they need to upgrade their skills in order to get that speed
from the .NET platform. Usually, that advancement takes lots of time: a
programmer has to discover new approaches, ways, and protocols, like
‘unsafe’, etc. And more importantly, they should be able to implement
them into the code.
Nevertheless, I think the pros outweigh all cons. The C# language just
requires patience and learning, like all other things.
What programming languages do you consider popular in
mobile and web development?
There are several of them, each has its pros and cons. For example, I
often come across:
Python
Machine learning is one of the most promising spheres nowadays.
Around 65% of businesses consider adopting this technology to help
decision-making. Most of such algorithms are running on Python
programming language, so it has a spike. It also has a low learning
curve for beginners: there are lots of pre-made libraries and frameworks
to ease the work. However, Python is different from C#. It is an
interpreted language, while C# is a complied one.
JavaScript
Lots of developers use JavaScript for website server deployment or for
creating browser applications. Small businesses and startups work with a
JavaScript runtime environment (Node.js) to write different scripts for the
server and client sides. It allows them to create dynamic web page content
before the page appears in the client’s browser. This programming language
helps reduce the load on the server while still providing various tools to create
nice interfaces.
Programming Languages App by Ali Ezzati
TypeScript
It is an open-source programming language that is very popular in web
development. Developed by Microsoft, it’s a superset of JavaScript.
TypeScript gives strict and structural typing, which makes code
management easier. It also increases team performance since one
needs less time to integrate a new developer into the existing project.
TypeScript is usually used to create JavaScript applications, both for the
client and server side.
Go (Golang)
Go is aimed at high performance and operates well with various systems
located in different networks. So it is vastly used in processing large
amounts of information. However, it has other implementations as well.
For example, many companies choose the Go programming language
for their messengers, online video games, conferencing software,
microservices, networking, and even cloud computing services.
C++
Despite all speculations, it’s still alive and demanded by startups and
medium-sized companies. Skilled developers that create fast and
complex desktop or mobile applications quite often rely on C++. This
popular programming language also works well for building low-level
systems. C++ is extremely popular in the video game industry because it
gets on with the Unity engine. That’s why companies implement it in VR
and video or mobile games.
Still, setting one language as a goal is not really productive. Today
developers can switch from one language to another since they have
lots of similar things, approaches and methods.
What other languages, toolkits, and frameworks do you
use?
I tried out neural networks and machine learning, mostly with those
algorithms that had .NET optimization. Also, I had experience working
with PHP in one of my projects. As for my recent work, I used the
Arduino platform. It allows the developers to build their own devices
using the C programming language. I really liked Arduino because it
offers a convenient working environment.
As for the test applications, I often use Postman for checking requests
and building certain scenarios. From front-end applications, I tried out
Angular - it’s a platform for creating mobile and web apps. When our
team has to work with database servers, we implement Microsoft SQL or
PostgreSQL.
How do you deal with time estimations?
Giving relevant time estimations is a crucial skill for software developers
because other people depend on them. For instance, a project manager
needs to foresee any risks with development costs.
In the early stages, when there are few details about the project, it’s
better to use a top-down estimate: when you pick an approximate period
and divide the task into several parts. This method creates a certain
expectation, although it’s not always precise. When the team lead gives
you specific details and requirements about the project, then you can
rely on your estimates on previous experience with similar projects.
During the project development, the requirements can change, and so
can your estimations. In this case, if you are familiar with the
technological stack, you can start analyzing tasks, create plain designs,
and give more precise numbers based on bottom-up estimating.
For example, we need to create a weather forecast service for a website
banner that will appear on all pages. So, we look at all the detailed
requirements and say — in the best scenario, we will build the service in
3 days. If things go south, we give a more pessimistic estimation — 6
days. So the real numbers will be something in between. The key idea is
to get into that realistic estimation. If the app developer doesn’t know the
tech stack, they have to fit at least into the longest time they’ve given.
Another tip I can give is to always check what knowledge you’re missing
if you fail with estimations. This is especially vital for junior developers.
_________________________________________________________
A good programmer is a lazy programmer. They strive to do
everything correctly at first take to avoid redoing the tasks.
_________________________________________________________
How to cope with deadlines efficiently?
Let’s look at two situations. The first one — the employer asked us to do
something in 7 days without checking our estimations. The second one
is similar, but we estimated the task for 7 days ourselves.
In the first case, the team will experience an enormous amount of stress
and will most likely make more mistakes. So this is a negative scenario,
which I do not recommend at all. As for the second one, it’s a positive
situation. People will be more productive because of the given
estimation, and the timing is more flexible. However, communication skill
here is also very important. A person may be extremely knowledgeable
in programming, but they can let down the team because of character. A
well-established communication is vital for proper teamwork in any
condition.
Team Management Dashboard by Conceptzilla
For a junior C# programmer, the key thing is to have a solid list of tasks
that they know how to do. If the mentor gives assignments the newbie
doesn’t understand, then the missing piece here is on the senior’s side.
This is not teamwork. Everyone should know what and how they are
doing.
How do you ensure the code quality?
The quality is based on several criteria that all team members should
know and share. There should be certain methods and ways to write the
code. It’s a codex they agree to follow. The first rule is the code should
be readable both by you and your colleagues. The second rule is the
absence of any architectural errors. The mobiles and web applications
have many layers, like pies, so they should be ‘cooked’ according to the
recipe. This practice will help integrate people with lower skills into the
team and assist in avoiding any mistakes. The third one is code review.
Your team members and senior developers should check the code you
create for any errors and leave feedback.
For sure, some programmers won’t like the codex you offer because it’s
inconvenient for them. They have got used to doing things the other way.
Here, you need to find a golden middle or exercise in convincing people.
Moreover, many programming languages like C# have official standards
for code quality, as well as automatic systems for their testing. For
instance, SonarQube for the .NET platform. I think it’s a wise decision to
integrate them into the app development process.
Summing the answer up: the team imports the metrics from SonarQube
(as an example), takes the official code quality standard, and
synchronizes them in the working environment and in the developers’
brains. Everyone is happy.
What are the best ways to keep the C# developer’s skills
sharp?
There are tons of different resources. I check out news and
advertisements in Microsoft magazine — MSDN. It is free and sent by
e-mail. Habr is another great website where you can discover new ways
to solve issues and find certain cases about specific frameworks, tools,
etc.
I like web development, so I study Blazor in my spare time. I’m also
interested in server-side development, so I look for news resources in
that field. Alternatively, I dive into creating multithreaded applications.
This is a very complex topic, however, I prefer considering it a challenge.
Junior developers should have a list of topics they need to learn in order
to upgrade their level. It’s better if such a list is given by the mentor.
During this time, one understands what they like to do most. So, if turns
out you don’t like to code desktop apps for Windows, do not continue
that path and switch to a different one. Usually, senior developers have
one main specialization where they constantly evolve and a couple of
other skills just for experimenting.
Moreover, do not be afraid of negative feedback, like — hey, you have
an error here and here in the code. It helps you polish your skills and
become better at development.
What do you think about no-code technologies? Are they
the future of development?
I think it’s a really cool technology, however, keep in mind that no-code is
not as simple as it sounds. Such platforms are just an attempt to bring
business process management to a new level where the knowledge of
any programming language is not a must. Still, people should still be
familiar with the coding field. They need to understand how to build
schemes, blocks, algorithms, diagrams, etc. It requires IT skills.
In its current form, no-code eases the development process and saves
up time and costs. But it can’t replace the programming itself. It’s more
of a helping tool.
No Code Constructor Design Concept by Conceptzilla
What advice would you give to newbie programmers?
If a person wants to be a .NET and C# developer, then I advise finding a
good team and a complex project. This method boosts skills much better
than any IT course. Try open-source projects or start your own to get
experience in the early stages. Joining a devoted community also works:
they will stimulate your studies and suggest solutions.
As for the team, it’s better to join a company with an established
workflow, not a startup. This way, you will learn certain standards for
writing code, ensuring its quality, etc. In startups, there is too much
background noise, and high chances are you will get a mess in your
head.
At the same time, if a junior developer has the possibility to join any
team and get on-field experience, it’s a go-to option. For sure, not
everyone finds a great company on the first try, but the more knowledge
you gain, the better conditions you will find.

More Related Content

Similar to Interview With a Senior C# Developer_ Creating a Better Code.pdf

Full Stack Developer Interview Questions
Full Stack Developer Interview QuestionsFull Stack Developer Interview Questions
Full Stack Developer Interview QuestionsRock Interview
 
Programming vs Coding: Unveiling The Key Differences
Programming vs Coding: Unveiling The Key DifferencesProgramming vs Coding: Unveiling The Key Differences
Programming vs Coding: Unveiling The Key DifferencesFredReynolds2
 
How Much Does Hiring Remote React Native Developers Cost.pdf
How Much Does Hiring Remote React Native Developers Cost.pdfHow Much Does Hiring Remote React Native Developers Cost.pdf
How Much Does Hiring Remote React Native Developers Cost.pdfArtistixe IT Solution LLP
 
7 reasons why flutter might be the best choice for your next project
7 reasons why flutter might be the best choice for your next project7 reasons why flutter might be the best choice for your next project
7 reasons why flutter might be the best choice for your next projectConcetto Labs
 
Software Development Simplified - A Beginner's Guide.pdf
Software Development Simplified - A Beginner's Guide.pdfSoftware Development Simplified - A Beginner's Guide.pdf
Software Development Simplified - A Beginner's Guide.pdfSeasiaInfotech2
 
How Much Does Hiring Remote React Native Developers Cost.docx
How Much Does Hiring Remote React Native Developers Cost.docxHow Much Does Hiring Remote React Native Developers Cost.docx
How Much Does Hiring Remote React Native Developers Cost.docxArtistixe IT Solution LLP
 
Stop making these mistakes when using react native to build apps
Stop making these mistakes when using react native to build appsStop making these mistakes when using react native to build apps
Stop making these mistakes when using react native to build appsMoon Technolabs Pvt. Ltd.
 
4 Phases followed by the Android Application Development Company.pdf
4 Phases followed by the Android Application Development Company.pdf4 Phases followed by the Android Application Development Company.pdf
4 Phases followed by the Android Application Development Company.pdfJohn William
 
A Quick Guide to No Code Platforms
A Quick Guide to No Code PlatformsA Quick Guide to No Code Platforms
A Quick Guide to No Code PlatformsKashish Trivedi
 
Flutter App Performance Optimization_ Tips and Techniques.pdf
Flutter App Performance Optimization_ Tips and Techniques.pdfFlutter App Performance Optimization_ Tips and Techniques.pdf
Flutter App Performance Optimization_ Tips and Techniques.pdfDianApps Technologies
 
11 Reasons Why C# is the Right Choice for Your Next Project
11 Reasons Why C# is the Right Choice for Your Next Project11 Reasons Why C# is the Right Choice for Your Next Project
11 Reasons Why C# is the Right Choice for Your Next ProjectSofiaCarter4
 
How to Become a Front-End Developer? Step-by-Step Guide by Careervira
How to Become a Front-End Developer? Step-by-Step Guide by CareerviraHow to Become a Front-End Developer? Step-by-Step Guide by Careervira
How to Become a Front-End Developer? Step-by-Step Guide by CareerviraCareervira
 
Top .NET development companies to outsource
Top .NET development companies to outsourceTop .NET development companies to outsource
Top .NET development companies to outsourceMindfire LLC
 
Most in demand skills for software development staff augmentation
Most in demand skills for software development staff augmentationMost in demand skills for software development staff augmentation
Most in demand skills for software development staff augmentationKaty Slemon
 
How to hire flutter developers? A simple yet comprehensive guide
How to hire flutter developers? A simple yet comprehensive guideHow to hire flutter developers? A simple yet comprehensive guide
How to hire flutter developers? A simple yet comprehensive guideSnehaDas60
 
fullstack developer.pptx
fullstack developer.pptxfullstack developer.pptx
fullstack developer.pptxeduvolveindia
 
C Programming Online Training
C Programming Online TrainingC Programming Online Training
C Programming Online Trainingqts info
 
C Programming Online Training
C Programming Online TrainingC Programming Online Training
C Programming Online Trainingqts info
 

Similar to Interview With a Senior C# Developer_ Creating a Better Code.pdf (20)

Full Stack Developer Interview Questions
Full Stack Developer Interview QuestionsFull Stack Developer Interview Questions
Full Stack Developer Interview Questions
 
Programming vs Coding: Unveiling The Key Differences
Programming vs Coding: Unveiling The Key DifferencesProgramming vs Coding: Unveiling The Key Differences
Programming vs Coding: Unveiling The Key Differences
 
How Much Does Hiring Remote React Native Developers Cost.pdf
How Much Does Hiring Remote React Native Developers Cost.pdfHow Much Does Hiring Remote React Native Developers Cost.pdf
How Much Does Hiring Remote React Native Developers Cost.pdf
 
7 reasons why flutter might be the best choice for your next project
7 reasons why flutter might be the best choice for your next project7 reasons why flutter might be the best choice for your next project
7 reasons why flutter might be the best choice for your next project
 
Software Development Simplified - A Beginner's Guide.pdf
Software Development Simplified - A Beginner's Guide.pdfSoftware Development Simplified - A Beginner's Guide.pdf
Software Development Simplified - A Beginner's Guide.pdf
 
How Much Does Hiring Remote React Native Developers Cost.docx
How Much Does Hiring Remote React Native Developers Cost.docxHow Much Does Hiring Remote React Native Developers Cost.docx
How Much Does Hiring Remote React Native Developers Cost.docx
 
Stop making these mistakes when using react native to build apps
Stop making these mistakes when using react native to build appsStop making these mistakes when using react native to build apps
Stop making these mistakes when using react native to build apps
 
4 Phases followed by the Android Application Development Company.pdf
4 Phases followed by the Android Application Development Company.pdf4 Phases followed by the Android Application Development Company.pdf
4 Phases followed by the Android Application Development Company.pdf
 
A Quick Guide to No Code Platforms
A Quick Guide to No Code PlatformsA Quick Guide to No Code Platforms
A Quick Guide to No Code Platforms
 
Flutter App Performance Optimization_ Tips and Techniques.pdf
Flutter App Performance Optimization_ Tips and Techniques.pdfFlutter App Performance Optimization_ Tips and Techniques.pdf
Flutter App Performance Optimization_ Tips and Techniques.pdf
 
11 Reasons Why C# is the Right Choice for Your Next Project
11 Reasons Why C# is the Right Choice for Your Next Project11 Reasons Why C# is the Right Choice for Your Next Project
11 Reasons Why C# is the Right Choice for Your Next Project
 
How to Become a Front-End Developer? Step-by-Step Guide by Careervira
How to Become a Front-End Developer? Step-by-Step Guide by CareerviraHow to Become a Front-End Developer? Step-by-Step Guide by Careervira
How to Become a Front-End Developer? Step-by-Step Guide by Careervira
 
Top .NET development companies to outsource
Top .NET development companies to outsourceTop .NET development companies to outsource
Top .NET development companies to outsource
 
Full Stack Developers Hire.pptx
Full Stack Developers Hire.pptxFull Stack Developers Hire.pptx
Full Stack Developers Hire.pptx
 
Full Stack Developers Hire.pptx
Full Stack Developers Hire.pptxFull Stack Developers Hire.pptx
Full Stack Developers Hire.pptx
 
Most in demand skills for software development staff augmentation
Most in demand skills for software development staff augmentationMost in demand skills for software development staff augmentation
Most in demand skills for software development staff augmentation
 
How to hire flutter developers? A simple yet comprehensive guide
How to hire flutter developers? A simple yet comprehensive guideHow to hire flutter developers? A simple yet comprehensive guide
How to hire flutter developers? A simple yet comprehensive guide
 
fullstack developer.pptx
fullstack developer.pptxfullstack developer.pptx
fullstack developer.pptx
 
C Programming Online Training
C Programming Online TrainingC Programming Online Training
C Programming Online Training
 
C Programming Online Training
C Programming Online TrainingC Programming Online Training
C Programming Online Training
 

Recently uploaded

TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbuapidays
 
Navi Mumbai Call Girls đŸ„° 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls đŸ„° 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls đŸ„° 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls đŸ„° 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusZilliz
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 

Recently uploaded (20)

TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
Navi Mumbai Call Girls đŸ„° 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls đŸ„° 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls đŸ„° 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls đŸ„° 8617370543 Service Offer VIP Hot Model
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 

Interview With a Senior C# Developer_ Creating a Better Code.pdf

  • 1.
  • 2. Interview With a Senior C# Developer: Creating a Better Code Mobile and software development is an extremely lucrative field. Many businesses transfer their products online, creating applications and websites. That’s why the demand for skilled app developers is still quite high and will continue growing till 2030. However, it’s not easy to win a place under the sun and get your hands on a promising project. Trends and requirements are constantly changing. How to keep growing as an experienced specialist? Are the C programming languages still worth learning, or are they slowly getting outdated? We discussed those and other intriguing questions with the Shakuro senior C# developer, Fedor. He has more than 10 years of experience in software development and participated in a variety of projects. Fedor also spent quite a bit of time teaching juniors cool coding tricks and tips. Let us start with icebreakers. What is your ordinary workday as a C# developer look like? For starters, I set my mind on work: look through the plans, calendar, emails, and messages. This helps me remember the context of yesterday’s tasks. If I have another free minute, I grab a cup of coffee and talk a bit with my colleagues. Only after I’m refreshed and energized I get to work. During the day, I try to plan my tasks according to the Eisenhower Matrix. This method divides assignments into four groups: important and urgent, important and not urgent, urgent and not important, and finally, not urgent and not important.
  • 3. Eisenhower Matrix from Slab It’s not surprising that I prioritize urgent and important tasks. Then, if I have time left, I switch to other assignments. Of course, there are different situations, but still, basing the plan on importance is key. During app development, we often have meetings, and it’s crucial to get ready for them. Revise the current tasks, stay up to date with the project course, etc. Overall, it’s better to gather meetings connected with technical aspects in the morning. The same goes for overseeing junior software developers and other people’s work: you have more chances to notice a mistake. Why did you choose to study the C# programming language? I started writing code with Adobe Flash, which was used to create simple browser games. I also tried out Turbo Pascal and Delphi while studying at the university. But when it came to choosing the primary programming language, C# was already a great option back in the day. The .NET platform got the new framework version, and it offered a versatile integrated environment for developing web applications. There were many pre-installed options, and one could build web pages in a few
  • 4. clicks. As a novice, I was amazed by that feature and started learning the ĐĄ# language. I liked .NET for its convenience. A developer just needed to deploy the platform and install Visual Studio — and they were all set. One didn’t have to adjust anything, create access, etc. Moreover, .NET soon became open-source. Also, C# is still one of the most popular programming languages. In 2022, almost 28% of mobile and web developers worldwide are coding in this language. Therefore, I think that the .NET platform and the C# programming language are the easiest way for newbies to get into app development. These tools don’t require knowing some special architectures, drivers, and other high-level coding magic. _________________________________________________________ A great developer team is nice, but one programmer in the field is still a warrior. _________________________________________________________ Does C# language have any disadvantages? Sure, it does. For example, if a developer needs extremely high performance, they need to upgrade their skills in order to get that speed from the .NET platform. Usually, that advancement takes lots of time: a programmer has to discover new approaches, ways, and protocols, like ‘unsafe’, etc. And more importantly, they should be able to implement them into the code. Nevertheless, I think the pros outweigh all cons. The C# language just requires patience and learning, like all other things. What programming languages do you consider popular in mobile and web development? There are several of them, each has its pros and cons. For example, I often come across: Python
  • 5. Machine learning is one of the most promising spheres nowadays. Around 65% of businesses consider adopting this technology to help decision-making. Most of such algorithms are running on Python programming language, so it has a spike. It also has a low learning curve for beginners: there are lots of pre-made libraries and frameworks to ease the work. However, Python is different from C#. It is an interpreted language, while C# is a complied one. JavaScript Lots of developers use JavaScript for website server deployment or for creating browser applications. Small businesses and startups work with a JavaScript runtime environment (Node.js) to write different scripts for the server and client sides. It allows them to create dynamic web page content before the page appears in the client’s browser. This programming language helps reduce the load on the server while still providing various tools to create nice interfaces. Programming Languages App by Ali Ezzati
  • 6. TypeScript It is an open-source programming language that is very popular in web development. Developed by Microsoft, it’s a superset of JavaScript. TypeScript gives strict and structural typing, which makes code management easier. It also increases team performance since one needs less time to integrate a new developer into the existing project. TypeScript is usually used to create JavaScript applications, both for the client and server side. Go (Golang) Go is aimed at high performance and operates well with various systems located in different networks. So it is vastly used in processing large amounts of information. However, it has other implementations as well. For example, many companies choose the Go programming language for their messengers, online video games, conferencing software, microservices, networking, and even cloud computing services. C++ Despite all speculations, it’s still alive and demanded by startups and medium-sized companies. Skilled developers that create fast and complex desktop or mobile applications quite often rely on C++. This popular programming language also works well for building low-level systems. C++ is extremely popular in the video game industry because it gets on with the Unity engine. That’s why companies implement it in VR and video or mobile games. Still, setting one language as a goal is not really productive. Today developers can switch from one language to another since they have lots of similar things, approaches and methods. What other languages, toolkits, and frameworks do you use? I tried out neural networks and machine learning, mostly with those algorithms that had .NET optimization. Also, I had experience working with PHP in one of my projects. As for my recent work, I used the Arduino platform. It allows the developers to build their own devices
  • 7. using the C programming language. I really liked Arduino because it offers a convenient working environment. As for the test applications, I often use Postman for checking requests and building certain scenarios. From front-end applications, I tried out Angular - it’s a platform for creating mobile and web apps. When our team has to work with database servers, we implement Microsoft SQL or PostgreSQL. How do you deal with time estimations? Giving relevant time estimations is a crucial skill for software developers because other people depend on them. For instance, a project manager needs to foresee any risks with development costs. In the early stages, when there are few details about the project, it’s better to use a top-down estimate: when you pick an approximate period and divide the task into several parts. This method creates a certain expectation, although it’s not always precise. When the team lead gives you specific details and requirements about the project, then you can rely on your estimates on previous experience with similar projects. During the project development, the requirements can change, and so can your estimations. In this case, if you are familiar with the technological stack, you can start analyzing tasks, create plain designs, and give more precise numbers based on bottom-up estimating. For example, we need to create a weather forecast service for a website banner that will appear on all pages. So, we look at all the detailed requirements and say — in the best scenario, we will build the service in 3 days. If things go south, we give a more pessimistic estimation — 6 days. So the real numbers will be something in between. The key idea is to get into that realistic estimation. If the app developer doesn’t know the tech stack, they have to fit at least into the longest time they’ve given. Another tip I can give is to always check what knowledge you’re missing if you fail with estimations. This is especially vital for junior developers.
  • 8. _________________________________________________________ A good programmer is a lazy programmer. They strive to do everything correctly at first take to avoid redoing the tasks. _________________________________________________________ How to cope with deadlines efficiently? Let’s look at two situations. The first one — the employer asked us to do something in 7 days without checking our estimations. The second one is similar, but we estimated the task for 7 days ourselves. In the first case, the team will experience an enormous amount of stress and will most likely make more mistakes. So this is a negative scenario, which I do not recommend at all. As for the second one, it’s a positive situation. People will be more productive because of the given estimation, and the timing is more flexible. However, communication skill here is also very important. A person may be extremely knowledgeable in programming, but they can let down the team because of character. A well-established communication is vital for proper teamwork in any condition. Team Management Dashboard by Conceptzilla
  • 9. For a junior C# programmer, the key thing is to have a solid list of tasks that they know how to do. If the mentor gives assignments the newbie doesn’t understand, then the missing piece here is on the senior’s side. This is not teamwork. Everyone should know what and how they are doing. How do you ensure the code quality? The quality is based on several criteria that all team members should know and share. There should be certain methods and ways to write the code. It’s a codex they agree to follow. The first rule is the code should be readable both by you and your colleagues. The second rule is the absence of any architectural errors. The mobiles and web applications have many layers, like pies, so they should be ‘cooked’ according to the recipe. This practice will help integrate people with lower skills into the team and assist in avoiding any mistakes. The third one is code review. Your team members and senior developers should check the code you create for any errors and leave feedback. For sure, some programmers won’t like the codex you offer because it’s inconvenient for them. They have got used to doing things the other way. Here, you need to find a golden middle or exercise in convincing people. Moreover, many programming languages like C# have official standards for code quality, as well as automatic systems for their testing. For instance, SonarQube for the .NET platform. I think it’s a wise decision to integrate them into the app development process. Summing the answer up: the team imports the metrics from SonarQube (as an example), takes the official code quality standard, and synchronizes them in the working environment and in the developers’ brains. Everyone is happy. What are the best ways to keep the C# developer’s skills sharp? There are tons of different resources. I check out news and advertisements in Microsoft magazine — MSDN. It is free and sent by
  • 10. e-mail. Habr is another great website where you can discover new ways to solve issues and find certain cases about specific frameworks, tools, etc. I like web development, so I study Blazor in my spare time. I’m also interested in server-side development, so I look for news resources in that field. Alternatively, I dive into creating multithreaded applications. This is a very complex topic, however, I prefer considering it a challenge. Junior developers should have a list of topics they need to learn in order to upgrade their level. It’s better if such a list is given by the mentor. During this time, one understands what they like to do most. So, if turns out you don’t like to code desktop apps for Windows, do not continue that path and switch to a different one. Usually, senior developers have one main specialization where they constantly evolve and a couple of other skills just for experimenting. Moreover, do not be afraid of negative feedback, like — hey, you have an error here and here in the code. It helps you polish your skills and become better at development. What do you think about no-code technologies? Are they the future of development? I think it’s a really cool technology, however, keep in mind that no-code is not as simple as it sounds. Such platforms are just an attempt to bring business process management to a new level where the knowledge of any programming language is not a must. Still, people should still be familiar with the coding field. They need to understand how to build schemes, blocks, algorithms, diagrams, etc. It requires IT skills. In its current form, no-code eases the development process and saves up time and costs. But it can’t replace the programming itself. It’s more of a helping tool.
  • 11. No Code Constructor Design Concept by Conceptzilla What advice would you give to newbie programmers? If a person wants to be a .NET and C# developer, then I advise finding a good team and a complex project. This method boosts skills much better than any IT course. Try open-source projects or start your own to get experience in the early stages. Joining a devoted community also works: they will stimulate your studies and suggest solutions. As for the team, it’s better to join a company with an established workflow, not a startup. This way, you will learn certain standards for writing code, ensuring its quality, etc. In startups, there is too much background noise, and high chances are you will get a mess in your head. At the same time, if a junior developer has the possibility to join any team and get on-field experience, it’s a go-to option. For sure, not everyone finds a great company on the first try, but the more knowledge you gain, the better conditions you will find.