аватар question@mail.ru · 01.01.1970 03:00

Senior Python Developer?

Often I see the word Senior in the headlines vacancies, and then the large amounts that are ready to pay this person. The question naturally arises, who is Senior?
What criteria exist to determine the Senior person or not senior?

аватар answer@mail.ru · 01.01.1970 03:00

It's a very difficult question)

Anyway, a person is being interviewed by a person who has his own idea of who a Senior is. For some, this is a person who knows how to evaluate the complexity of an algorithm and who will write several sorting methods on a piece of paper at once. For some, this is a person who will answer a question like "What is the difference between synchronized, ReentrantLock and AtomicReference?""

For me, the graduation rate is approximately as follows:

Junior Basic knowledge of core java (collection types and the difference between them, stopping/starting threads, what generics is, the three "elephants" of OOP). The questions about libraries are purely superficial.

Developer is all that junior + good knowledge of the libraries that are listed in the resume and that I need. If it says that a person knows XSLT, but I don't need it right now and I know that the project doesn't need it, then I'm not asking. Well, the questions are deeper, for example, how inheritance works in generics, how to synchronize threads, which is faster: LinkeList or ArrayList and why, class layers, etc., basic pattes like singleton, facade, iterator, etc.

Senior Developer

All that developer + is a hotbed of "Why" questions. Here, a person is deliberately driven into a dead end by various "why, why, whatever" and his reaction looks like. It is very convenient to use the candidate's previous experience here and discuss his projects. For example, ""Here is your megaproject from the resume, it stands on Spring, WebServices and JPA. Why do you need JPA? Which JPA is which, and how does one differ from the other? Why is this the way it is and not otherwise? How would you make it different/faster/more convenient/more beautiful?"" At the same time, answers like "They did it before me" or "It's just so cool" automatically go into negative territory. If a person does not understand what is needed one way or another in their native environment, then I'm sorry, this is not Senior in any way. It is important to be able to choose the best solution in a reasoned manner and prove that this is the way it will be better than the other way.

The more libraries and frameworks in your resume, the better. You can breed that here... Well, you know :)

Team Lead and Architect is another song.

P.S. Opinions like "Even my grandmother will answer such questions" don't even have to be expressed. I didn't say that after answering the question, I would immediately enroll the applicant in one group or another. Usually the candidate swims from one to the other.

In addition, there are many other criteria such as communication skills, the ability to express your thoughts correctly so that others can understand what you just said, etc.

I've never put much emphasis on knowing algorithms. A person may know 8 sorting methods, 6 graph traversals, can easily write the OPP / PPZ of any arithmetic expression, and even knows the scope of LL1 grammars, worships Knuth's books, and Dijkstra is his hero, but all this is not applicable in the project, because there you have to stupidly transfer data from a place ""A"" to the place ""B"" using Spring, WS and make a UI for this on GWT (everything as an example), but it's zero in this, what do you want to do with it? :) Well, you don't need to sort, bypass, or count anything in the project. All his knowledge is not needed for the project. You just need to know how to work with Spring, GWT and WS. It all depends on the project and the tasks it solves. More precisely, even everything. If your project is a new programming language, then the person is right for you. If the project is just another spring + body kit, then it's not your developer.

Balance is important. It is important to know the basics, algorithms, and what 90% of developers are working with. This is the ideal. A candidate's cardinal advantage in one direction may or may not give him an advantage. It all depends on the project and the expectations of the person who is interviewing you. And now you'll think that it's enough to know a lot of lies thoroughly and nothing more is needed. It is necessary, it is very necessary. That's what you need first.

Something like that :)

Latest

Similar