A .NET Developer is a person who primarily deals with the analysis, creation, and development of applications using Microsoft’s technology stack. The .NET platform is very broad and has undergone many modifications since its beginning, which took place in 2002. The platform offers us many possibilities, among others:
- object-oriented programming languages, e.g. C# and Visual Basic;
- functional programming languages, e.g. F#;
- Web applications – ASP.NET;
- cloud applications on the Azure platform, e.g. Websites, WebJobs, Cloud Services;
- Universal Windows UWP platform, allowing applications to be developed for many different devices;
- classic applications, based primarily on WinForms and WPF forms;
- mobile solutions for various platforms – Xamarin;
- .NET Core – modular open source software for various platforms.
The role of a developer depends on the project they are involved in and their position and skill level – junior, mid, senior. Depending on the needs, the developer must adapt to the requirements. At the beginning of a starting project, it is mainly the analysis of customer expectations, preparing the application architecture, writing documentation, and creating PoC, or Proof of Concept. This is to check whether it is possible to meet the requirements and whether the application will meet the needs of the client.
A developer works in a team, the members of which are usually people specialized in different fields. These may include:
- other developers;
- QA (Quality Assurance) – people responsible for analyzing the quality of the produced software;
- Architects, who prepare the main concepts of the application;
- PO (Product Owner) – a person responsible for collecting customer requirements concerning the application being built;
- UI/UX designer – a person responsible for creating graphic concepts;
- Scrum master in teams working in Agile methodology.
To become a good programmer you do not need to finish dedicated studies – the most important are the desire and motivation to work. The profession of a programmer requires constant broadening of knowledge. In the IT world new frameworks, libraries, programming languages are created every day. If you want to find yourself in these conditions, you should try to follow the new trends. Of course, such fields of study as computer science, automation, mechatronics, or mathematics will help you learn the basics of programming, but it’s up to you whether you do something outside the scope of what was discussed at the university and expand your knowledge on your own. Unfortunately, often the material taught in classes is outdated, general and without additional action on your part may not be sufficient to allow you to get an internship at a good company. An interesting option to broaden your knowledge are various such trainings, online courses or events organized by IT companies, e.g. Inetum Academy: Akademia Inetum | Inetum Polska.
Our company gives a lot of opportunities for development to people with all levels of experience. People without experience, who are still students, usually start their professional career as apprentices or interns. Under the supervision of more experienced employees they immerse themselves in the world of IT, learn programming and teamwork. The next step in their career is the position of junior programmer, which we offer to people with a very good internship grade. If the developer shows independence in performing the assigned tasks, he can move to the position of a regular programmer. The next steps in the career path depend mainly on what the person feels best in which direction he/she wants to go. Usually this is the position of a senior programmer, who can share his knowledge with younger colleagues, be the support of the team. At the same time, you can orientate yourself as a consultant, that is a person who puts more emphasis on contact with the client, or as an architect, that is decide how to design a given application. Besides, it is worth to develop soft skills in order to become a Team Leader and lead your team of developers.
As a Team Leader of one of the .NET teams in Poznan, I can divide my work into two main paths:
- Working as a Developer/Tech Lead in a project done for a client. I think that the biggest challenges here are contact with the client, collecting requirements and adjusting to the constant changes in the scope of work that the team focuses on. These changes are often dynamic and unplanned, resulting in the abandonment of the currently developed solution.
- Working as a Team Leader. In this role the challenges include the need to fairly evaluate team members and provide feedback on the work performed – both positive and negative.
In my opinion, the advantage of working as a developer is the ability to constantly expand your knowledge, which in this industry is very important. As I wrote above, every day there are new libraries, new technologies, with which as good programmers we should be up to date. By many people this may be perceived as a disadvantage, because this is not a mechanical work, which you can forget about by closing the lid of your laptop. But if programming is your passion, taking the extra time to learn should not be a big problem!