Nikolay Chashnikov, șeful echipei de dezvoltare a proiectului IntelliJ IDEA în JetBrains.
Ce cunoștințe și abilități ar trebui să aibă un programator Java?
În lumea Java, există un număr foarte mare de biblioteci și cadre care facilitează crearea de programe. Și limbajul Java însuși cu mașina virtuală pentru care este făcută vă permite să scrieți codul fără să vă gândiți la multe lucruri. Dar asta nu înseamnă că nu trebuie să știți despre aceste lucruri. Bine Java-programator, nu numai că știe cum să folosească diferite biblioteci, dar, de asemenea, știu despre modul în care aceste biblioteci sunt aranjate în modul în care să pună în aplicare clase în standard de biblioteca Java, care algoritmi și structuri de date din spatele lor, într-un bytecode compilat Java codul sursă , modul în care acest bytecode este executat în JVM.
Ce este setul de instrumente Java pentru programatori?
De cele mai multe ori, dezvoltatorul conduce IDE (Eclipse, IntelliJ IDEA, NetBeans). Acestea nu numai că ajută la scrierea codului, dar simplifică și utilizarea altor instrumente prezentate mai jos. Chiar și atunci când lucrează singur, este mai convenabil să stocați codul sursă folosind unul dintre sistemele de control al versiunilor (Git, Subversion, Perforce ...), atunci când lucrați într-o echipă, acest lucru devine obligatoriu.
Proiectele din Java constau adesea dintr-un număr mare de module și utilizează multe biblioteci de la dezvoltatori terți. Maven, Ant, Gradle, Ivy sunt folosite pentru a gestiona dependențele și a construi proiecte. Când lucrăm împreună la un proiect, este important să verificăm în mod constant dacă schimbările făcute de diferiți dezvoltatori sunt consecvenți unul cu celălalt. Pentru a face acest lucru, există sisteme de integrare continuă (Jenkins, Bamboo, TeamCity și altele).
Care sunt cerințele companiei pentru nivelul de educație al potențialilor angajați?
Nu avem cerințe privind nivelul de educație. Ceea ce este important este ceea ce a învățat o persoană, mai degrabă decât ce diplomă sau certificat a primit.
Care sunt cerințele pentru experiența de muncă?
Junior-developer poate deveni un student superior fără experiență (cu toate acestea, elevii ajung de obicei să lucreze prin stagii), pentru un dezvoltator senior aveți nevoie de trei până la cinci ani de muncă într-o companie serioasă.
Există cerințe specifice care sunt determinate de specificul activităților companiei?
Pentru diferite proiecte din cadrul companiei există diferite abilități pe care le putem acorda atenție. De exemplu, pentru proiectul IntelliJ IDEA, cunoștințele de parsare sintactică a programelor sau experiența de a crea plug-in-uri pentru orice IDE vor fi un plus.