Answer the question
In order to leave comments, you need to log in
Evaluation of the level of the programmer?
Good afternoon,
How can you evaluate your level of knowledge in programming?
I am a fairly young specialist (21 years old, 6th year student, I have been working for a little less than a year), I work in a fairly large bank in the acquiring department (ATMs, POS-terminals), but in fact I am developing internal software for our department and partly for processing. I write mostly in Perl and Java. As a hobby, I study Python at home and, again, Java. By the nature of my work, I have to deal with all sorts of languages (human-combine), from C / C ++ to VB in Excel, JS, HTML, CSS. Plus server tracking, updates, networking. In general, a lot of diverse work and design, and layout, and programming.
I myself assess my knowledge as low, tk. I often use Google, I take most of the solutions from there and implement them to myself (trying to really understand how it works), I often meet unfamiliar words and methods on Habré, and I think that it’s impossible to understand everything well with all the variety of work.
On the other hand, I cope with all the tasks that I am entrusted with on time and they do not cause me great difficulties, ready-made solutions in most cases are built according to the same algorithm that I imagined, in half a year I grew from a specialist to a leading engineer (although in the bank accepted at least one year of work in the bank and 3 years of general experience).
In general, please tell me some resources for an objective assessment of your knowledge and skills, or any methods in general. I would like to go to an IT company later, but I can’t even imagine in which of the directions and for whom I can apply for Junior|Middle.
Answer the question
In order to leave comments, you need to log in
Each company has its own assessment of the cost and knowledge of an employee. Somewhere they will appreciate your understanding of design patterns and knowledge of the subject area where you will work more. Somewhere the most important will be your desire to develop and bring to the end.
For some companies, it is much more important that you understand the features and pitfalls of the language in which you will have to write. And there are companies that you will never get into if you have not worked with version control systems and bug tracking, even if you are a genius three times!
A person is worth exactly as much as they are willing to pay. I have seen this in my own skin. The worst thing that can happen to you is if you realize that you already know a lot. At this point, you will die as a specialist.
Personally, my advice would be this: be like interviews, not even for the sake of changing jobs, but just to talk to smart people and understand the basic needs of the market. I think after that you will make an adequate assessment for yourself.
Programming skills are very difficult to assess. Knowledge of the language, in general, almost does not correlate with the level of the programmer. Pattern knowledge too. The frequency of using Google - too. For example, I, being a programmer for 10 years, still use Google for every little thing, and this will always be the case.
A good programmer is determined by the ability to qualitatively solve various kinds of problems. The better the programmer, the wider the list of tasks he solves, and the better the quality of the solutions, but all this is not objective.
The only thing I can advise is to look for answers to questions of this kind.
Let me also express my point of view. As correctly noted above, it is probably impossible to objectively assess the knowledge of a programmer on a numerical scale (at least on a 100..0-point scale). Yes, and probably not necessary, since each company requires different knowledge (who else, besides companies, will evaluate you?).
Nevertheless, there are several categories of knowledge that can be used to form a more or less objective picture of a programmer. For example, here it is possible to carry:
— possession of various PL;
- experience with each of them;
- team work;
- participation in OpenSource projects;
— availability of own developments;
- knowledge of patterns;
— knowledge of algorithms, data structures;
— knowledge of development methodologies;
- Familiarity with version control systems, testing;
- etc.
Undoubtedly, the picture is far from complete - for example, personal qualities or other individual characteristics play an important role, + something different is required in each organization. But in the above categories, you can compare yourself and another programmer, understand your level relative to someone else.
About the place of work. Personally, my opinion is that if you want to be a highly qualified specialist in a particular area (in this case, a programmer), then it is better to look for work in “profile” organizations (in this case, involved in software development). Based on my (not very rich yet) experience, I can already say that the specifics of working in such “core” organizations are very different from “non-core” ones.
Probably, this can be explained by the fact that specialized companies live by getting money from their products, and programmers play a key role in them. Therefore, it is beneficial for the company itself that their specialists develop and be highly qualified and perform development tasks as efficiently as possible (“it works - not bad, but try to do it even better, think how”).
In non-core ones, the work of a programmer is most often necessary to maintain the internal information infrastructure; IT specialists are only required to simply do their job (“it works - well, it’s good, make sure it doesn’t break”).
From this it is obvious that in specialized companies it is much easier for you to grow as a specialist - both parties are interested in this (the “cooler” you are, the more they pay). In the second case, only you are interested in this, and even then not always (why, if they will pay the same amount).
About the interviews. Walking on them is fun if you choose the right attitude. Imagine that you do not want to get into this company at all, but came only to show everything that you can do, “what a good specialist you are”. Of course, you should not stick out your HRV during the interview - behave naturally; at the same time, it’s not worth killing yourself in case of failure - you didn’t want to go to work for them at all.
And in order to have something to talk about, in your free time (do you have it?) Develop different programs “for yourself”. Well, for example, write some kind of parser, work with the API of various systems (Yandex, for example), make your own task manager, come up with a little idea that interests you and bring it to the end. In each such task, you can find many subtle points - optimizing the speed of the algorithm, the structure of the database, the use of patterns, the interaction of components written in different languages, etc.
Too much text...
there are options like
https://crowdtest.org/
https://proghub.ru/
https://quizful.net/
“I myself assess my knowledge as low, because I often use Google, most of the solutions I take from there and implement to myself (trying to really understand how it works) ”
This is a bad indicator =) I rate my knowledge as above average, but I also often use Google, but you know why? Before me, such work has already been done, suddenly someone did it better than me, why not take advantage of this?
If you want to leave, and you can’t choose where, go to an older vacancy, if you don’t go to the middle but they have a vacancy for a junior, they will offer it to you.
Try to go for an interview, for example, in Yandex / Google / Intel (underline as necessary, in the city with the letter M), they may objectively evaluate if they accept and agree to the “numbers”, then you are the specialist they need. And if you need such an insert the company name here , then you are a high-level programmer.
By the way, the companies above need people who are highly sharpened by the language and subject area.
There are a number of companies that are engaged in independent testing and certification, where you can evaluate various skills, including programming, or suitability for a particular role (a role is a certain set of required skills). Previously, brainbench.com was popular - they held free tests as a promotion and even sent certificates. In Russia, obtaining brainbench certificates was a national sport. Now it seems that everything is only for money, but you can try to look for some startups, they can also conduct free testing for promotion.
Look at the professional IT standards for programmers developed by APKIT, it describes what skills and knowledge a specialist of one level or another should have.
Try the opposite - first decide how much you want to earn, and then "measure" with someone with such a salary.
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question