IT outsourcing: Java, С#/С++, .NET, Python, JavaScript, React, Go

Seldemirov Aleksandr / 05.08.2019

How to become a Senior Developer. Path of development.

Where do programmers start from?

According to an ideal scenario, a programmer starts his education in school already. Specialized mathematical education becomes a foundation and base of a programmer’s education. This is either information technology, mathematical education or physics. These are three big fields where one learns fundamental mathematical things, different theoretical concepts and what underlies a creation of program work logic.

A “Program Logic” is an algorithm which efficiency is a main driver influencing a program working speed. For example, there are algorithms that allow writing 10-line code which would work ten thousand time units. It’s possible to write a 5-line code which would solve the same problem a hundred times faster. Without fundamental higher technical education, it’s very difficult to know such algorithms and understand the models and mathematical apparatus to be used. Therefore it is very important for a programmer or a developer to have a higher specialized education:

  • Technical
  • Mathematics
  • Physics

Where do programmers start from in terms of real projects?

At present moment, the lion’s share of these projects is websites, namely website creation. Those who create websites are called web-developers. The people who do web-development start from creating simple websites. It means they are Juniors who can do small tasks without involving related complex systems, using various website builders. If a person did only web development, he, at best, is just a Junior.

What are web technologies?

Next level of development is a creation of more complex systems. For example, online education systems which use web technologies. Everything that a user sees in a browser is actually web technology. As a counter to them, there are so-called native applications working on a computer without a browser. For example, if you start Slack or Zoom on a computer, this is already a native client and not a web technology. However, if we dig deeper, these applications can use web technologies too. In other words, this is a program shell which uses a web interface.

For example, you can log in to Slack either through a browser or through an application. A program, an application, is necessary when a resource contains, for example, a lot of graphics. An application containing all graphical components is downloaded and stored in the computer, and occupies space. When we open a program, all graphics become available. But, for example, in online games, a program sends to the server the coordinates at minimum size, then takes from the local disk its own graphical components, and quickly processes them and displays them on the screen. Therefore, online games use web technologies only in data transferring.

Next step of a programmer’s development is realized by fulfilling more complex tasks. For example, a landing page which is visited by 50-70 people is one story, but a website which is simultaneously accessed by 1000 people is already another story, then you need to know how to work with a series of technologies under heavy load.

What should a Senior Developer be able to do?

  • to work with technologies under heavy load
  • to integrate a website with a complex database
  • to create, not just a simple landing page, but a site with complex functionality and logic, working under a heavy load

For example, the online game developer has two issues during the process: the game site itself is a complex mechanism requiring high performance, while at the same time it must be able to work under heavy load when there are more than 1000 people using the resource. Therefore, a developer without mathematical and technical education will not be able to solve these problems. Moreover, a minimum of 5 years of experience of working in these fields is required.

What is the difference between developers of different levels?

The difference between web developers and programmers is that a programmer is a common definition, but a web developer is a particular case of a beginner programmer.

Senior, Middle and Junior programmers differ by the experience of working on complex wide scale projects.

A ”Middle Programmer” is a person who worked from 3 to 5 years on complex projects. A “Senior Developer” has from 5 to 7 years.

During this period, a Senior programmer has been working on several wide scale projects and on projects with different technological histories. While working in one project, a person acquires a quite specific experience of using a technology. During 5 to 7 years, a programmer has accomplished dozens of projects and has experienced different technologies including their pitfalls. He evaluated how a technology works in real time. He not only studied technical manuals, but saw a big number of discrepancies between theory and practice. Having acquired this real experience during 10-15 projects, a programmer can become a “Senior Programmer”.

As another distinctive high-level criteria, we can name the following:

  • A Junior must know 50-70% of a theory; and during real working experience he may have used 25% of theoretical knowledge of technologies
  • A Middle knows 80-90% of a theory, respectively, and he has experience of using about 50% of technologies which he knows from the theory
  • A Senior knows 95-100% of a theory, at the same time, he understands the origin of the theory, knows application of fundamental concepts and their shortcomings. A Senior practiced about 75% of his knowledge.

Latest

Reading lists
Seldemirov Aleksandr / 28.04.2020

Episode #5. The 'Locomotive' Roles in the IT project. What is a difference between O/PO/PM/TL and why are they all necessary?

Today we will talk about a responsibility assignment matrix. We will also discuss in more details the roles which in the previous article were named as ‘locomotive’, which are pul ...

Seldemirov Aleksandr / 28.04.2020

Episode #4. Roles and Responsibilities in an IT project. Why are all those roles necessary (Team Lead, Project Manager, Product Owner, etc.)?

Roles and Responsibilities in an IT project. Why are all those roles necessary (Team Lead, Project Manager, Product Owner, etc.)?  Sometimes big number of roles scares a c ...

Seldemirov Aleksandr / 28.04.2020

Episode #3. Can we trust outsource developers? How do we select a contractor?

Let’s discuss the mental barriers which most entrepreneurs, owners and directors encounter when they hear the word "outsourcing."  Lack of trust:I don't understand how man ...

Seldemirov Aleksandr / 28.04.2020

Episode #2. Outsource vs Development Team in the Company. Advantages and Disadvantages

Why and when you would hire an outsourced teamThere are several hidden advantages of outsourcing which we constantly use in our own company.There are preconceptions about outsourc ...

Seldemirov Aleksandr / 28.04.2020

Episode #1. What are the current events on the IT market? Remote work and the concept of distributed development. The future of the economy in a digitalized society.

All of us realize the reality of irreversible changes in the world around us. The majority of companies in the world are entering or already have entered the world of online busin ...

Seldemirov Aleksandr / 02.02.2020

BIMLIB case. BIM-content platform

Case: BIMLIB — Building Information Modeling Library Customer: A construction holding Task: Create simple and convenient system of quick preparation of a bill of materials f ...

Seldemirov Aleksandr / 15.01.2020

ERP for Business. Do I really need it?

Pondering over prospects of ERP platform integration into your business, you need to understand precisely which tasks you are planning to use it for. Do you evaluate your manuf ...

Seldemirov Aleksandr / 18.09.2019

Teamwork and roles in IT projects

Any project goes through initial overview steps, called “presale”: Conceptual foresight of the output productEstimated project budgetTime required for completion of the project ...

Seldemirov Aleksandr / 05.08.2019

How to become a Senior Developer. Path of development.

Where do programmers start from? According to an ideal scenario, a programmer starts his education in school already. Specialized mathematical education becomes a foundation an ...

Seldemirov Aleksandr / 19.07.2019

How to estimate IT system development time?

How can a client be sure that the payment for the development guarantees the same amount of working efforts, and all declared time is used for solving the task? Such a question ...

Seldemirov Aleksandr / 06.06.2019

How to involve a freelancer into teamwork?

Can a solo freelancer become a team player? Personal inclination for a team play has an important role. There are people who are comfortable to work alone and there are those w ...

Seldemirov Aleksandr / 24.05.2019

When is outsource development more effective than in-house, and especially, when should we look for it?

Creation of any project, big company, corporation, as well as start-up can be compared to a construction of a building. For an implementation, we would need the following:  ...

Seldemirov Aleksandr / 24.05.2019

Why do programmers inside of a company say “No” to you?

We are often approached by companies with unfinished software development IT projects which actually need to be redone from the scratch. Our statistics: 3 of 4 projects are like t ...

Seldemirov Aleksandr / 24.01.2019

Fix Price or Time & Material models?

As our experience shows: Fix Price model in general is 2-2,5 more expensive than Time & Material. With T&M model, everyone is satisfied with results and execution ...

Seldemirov Aleksandr / 17.12.2018

Oracle Hyperion Software

Oracle Hyperion Planning Software Oracle Corporation is an American company, the biggest producer of software in the worldOracle Hyperion is a software product line which is ...

Seldemirov Aleksandr / 28.11.2018

International Conference A2IC-2018

Main Hall of A2IC-2018 Conference  During the conference ITQuick Company presented one of the client projects. A2IC covered the following themes: Machine learningArt ...

Seldemirov Aleksandr / 01.08.2018

Development Principles — Agile and Waterfall.

If we talk about project development approaches we can highlight these two: Agile and Waterfall. These two development models are applied, not only during software development, bu ...

Seldemirov Aleksandr / 31.05.2018

CRM system. Client category 2. Continuation.

Previous articles: CRM system. Selection and setup. General information.CRM system. Client category 1. Continuation. This category of entrepreneurs understands that it is ne ...

Seldemirov Aleksandr / 31.05.2018

CRM system. Client category 3. Continuation.

Previous articles: CRM system. Selection and setup. General information.CRM system. Client category 1. Continuation.CRM system. Client category 2. Continuation. The third ca ...

Seldemirov Aleksandr / 28.05.2018

CRM system. Selection and setup. General information.

CRM is a Customer Relationship Management system. It also can be called a client database. This is not just a database, but a more coherent software solution which, with correct s ...

Seldemirov Aleksandr / 28.05.2018

CRM system. Client category 1. Continuation.

Beginning is here: CRM system. Selection and setup. General information.   Category 1. Very cool guys. As the best, they keep their data in a cloud or in the worst c ...

Seldemirov Aleksandr / 30.04.2018

How to solve a problem “URGENTLY”

We always want to solve a potential client's problem. In the beginning, we are trying hard to communicate with a client in order to clarify details, because if a client fully unde ...

Seldemirov Aleksandr / 28.04.2018

Sales channels from small to big

It happened that our company has been working mainly with small and medium-sized businesses (from 100 people) which were our clients. We look for clients through various channels ...