Se ti stai candidando per una posizione di Back-end engineer, devi sapere che gli intervistatori desiderano sapere se hai le conoscenze necessarie per progettare, costruire e gestire il lato server di un sito web. Preparati a rispondere a domande sulle ultime novità in materia di web design e tecnologia, così come a domande sulle tue capacità di risoluzione dei problemi, abilità di gestione del tempo e doti comunicative.
Ecco le 3 domande più frequenti nei colloqui di lavoro per Back-end engineer e consigli su come rispondere:
Come rispondere: Le aziende non cercano solo personale aggiornato sulle ultime novità tecnologiche, ma desiderano persone innovative e all'avanguardia. Quando parli degli ultimi progressi nelle tecniche di web design e web building, spiega come incorporeresti questi miglioramenti attuali nel sito web dell'azienda.
Come rispondere: I back-end engineer devono spesso lavorare in team per sviluppare e gestire un sito web. Gli intervistatori vogliono sapere se riusciresti a lavorare bene in team con il personale già presente in azienda. Metti in evidenza la tua capacità di comunicare efficacemente e di collaborare con gli altri.
Come rispondere: Quando ti viene posta questa domanda, sottolinea le tue abilità di gestione del tempo e di rimanere organizzato e concentrato anche in situazioni di forte stress. Le aziende cercano persone in grado di lavorare bene anche sotto pressione.
↳
/** * Returns the Persons which are the greatest number of levels up the family tree * from this instance. Examples: * Given a tree where this person instance only has a mother and father, return mother and father. * Given a tree where this person instance has a mother & father, and a grandfather on the mother's side, return only the grandfather on the mother's side. * @return List of Person */ public List getGreatestAncestors() { // If this is the root of the tree, return empty array because there is no ancestor for the tree if (this.father == null && this.mother == null) { return new ArrayList(); } List fList = new ArrayList(); List mList = new ArrayList(); if (this.father != null) { fList = this.father.getGreatestAncestors(); } if (this.mother != null) { mList = this.mother.getGreatestAncestors(); } List results = new ArrayList(); for (Person p : fList) { if (results.contains(p)){ continue; } results.add(p); } for (Person p : mList) { if (results.contains(p)){ continue; } results.add(p); } return results; } Meno
↳
I cranked this out in about 30 minutes. I believe it works quite well. I've also included the corresponding unit tests: file: Person.java ------------------------------------------------------------------------------------------------------------- package Command; import java.util.ArrayList; import java.util.HashSet; import java.util.List; public class Person { Person father; Person mother; Gender gender; Integer age; List children; int level = 0; public enum Gender { Male, Female; } Person(Person dad, Person mom, Gender gender, int age, int level) { this.father = dad; this.mother = mom; this.gender = gender; this.age = age; this.level = level; } public void setChildren(List children) { this.children = children; } public void addChild(Person child) { this.children.add(child); } public List getOldestSisters () { // given the current person (self), determine parents // then get children of those parents // Determine gender of each child // Where they are female, get ages // return females with age > mine // Note: must check on both sides father/mother as there may be a mixed marriage // Combine list of children - Exclude YOU as you cannot be your own sister. // Use a set to eliminate duplicates. HashSet allChildren = new HashSet(); // Can't add null to a hashSet so screen for it. if ((father != null) && (father.children != null)){ allChildren.addAll(father.children); } if ((mother != null) && (mother.children != null)) { allChildren.addAll(mother.children); } // If you are not in this list, there is an issue! if (allChildren.contains(this)) { allChildren.remove(this); // System.out.println("Removing self from list."); } else { System.out.println("Error: You are not a child of your parents! Adopted?"); } // Filter down to only women and get any older than me: int myAge = this.age; List oldestSisters = new ArrayList(); for (Person child : allChildren) { if (child.gender == Gender.Female) { if (child.age > myAge) { oldestSisters.add(child); } } } return oldestSisters; } public List getGreatestAncestors() { if ((this.father == null) || (this.mother == null)) { return null; // You must have two parents to have ancestors } // Find root parents List myParents = getParents(this); return getElders(myParents); } private List getElders(List parents) { List elders = new ArrayList(); List myParents = new ArrayList(); boolean newElders = false; for (Person parent : parents) { myParents = getParents(parent); if (myParents.isEmpty()) { elders.add(parent); } else { elders.addAll(myParents); newElders = true; } } if (newElders == true) { return getElders(elders); } return elders; } private List getParents(Person person) { List parents = new ArrayList(); if (person.father != null) parents.add(person.father); if (person.mother != null) parents.add(person.mother); return parents; } } // For the above class, you basically have to implement 2 methods. // public List getOldestSisters() // public List getGreatestAncestors() Meno
↳
package Command; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import java.util.ArrayList; import java.util.List; import static org.junit.jupiter.api.Assertions.*; class PersonTest { // Create grand parents Person grandFatherDad = new Person(null, null, Person.Gender.Male, 78, 1); Person grandMotherDad = new Person(null, null, Person.Gender.Female, 81, 1); Person grandFatherMom = new Person(null, null, Person.Gender.Male, 69,1); Person grandMotherMom = new Person(null, null, Person.Gender.Female, 89, 1); // Create parents / aunts and uncles Person father = new Person(grandFatherDad, grandMotherDad, Person.Gender.Male, 48, 2); Person mother = new Person(grandFatherMom, grandMotherMom, Person.Gender.Female, 47, 2); Person aunt1 = new Person(grandFatherMom, grandMotherMom, Person.Gender.Female, 47, 2); // Twin sis to mom Person aunt2 = new Person(grandFatherDad, grandMotherDad, Person.Gender.Female, 37, 2); Person uncle1= new Person(grandFatherDad, grandMotherDad, Person.Gender.Male, 35, 2); // Children (me and bros and sis) Person self = new Person(father, mother, Person.Gender.Male, 18, 3); Person brother1 = new Person(father, mother, Person.Gender.Male, 16, 3); Person sister1 = new Person(father, mother, Person.Gender.Female, 15, 3); Person sister2 = new Person(father, mother, Person.Gender.Female, 14, 3); @BeforeEach void setUp() { // Create children / sibling groups List children = new ArrayList(); children.add(father); children.add(aunt1); children.add(uncle1); grandFatherDad.setChildren(children); grandMotherDad.setChildren(children); children.clear(); children.add(mother); children.add(aunt2); grandFatherMom.setChildren(children); grandMotherMom.setChildren(children); children.clear(); children.add(self); children.add(brother1); // Dad had brother with other wife children.add(sister2); father.setChildren(children); // mom came with her own daughter from prior marriage children.clear(); children.add(self); children.add(sister1); children.add(sister2); mother.setChildren(children); } @AfterEach void tearDown() { } @Test void getOldestSisters() { // When there are no older sisters and I am male: //Person me = new Person(father, mother, Person.Gender.Male, 48); List olderSisters = null; olderSisters = self.getOldestSisters(); assertTrue(olderSisters.isEmpty(), "No older sisters."); // When there is one older sister and I am male Person sister3 = new Person(father, mother, Person.Gender.Female, 50, 3); mother.addChild(sister3); father.addChild(sister3); olderSisters = self.getOldestSisters(); assertTrue(olderSisters.contains(sister3)); assertTrue(olderSisters.size() == 1, "One older full sister."); // Youngest Sister has two older sisters (one full, one half) olderSisters.clear(); olderSisters = sister2.getOldestSisters(); assertTrue(olderSisters.contains(sister1)); assertTrue(olderSisters.contains(sister3)); assertTrue(olderSisters.size() == 2, "One older full, one older half"); } @Test void getGreatestAncestors() { List ancestors = self.getGreatestAncestors(); assertTrue(ancestors.size() == 4); assert(ancestors.contains(grandFatherDad)); assert(ancestors.contains(grandFatherMom)); assert(ancestors.contains(grandMotherDad)); assert(ancestors.contains(grandMotherMom)); ancestors = father.getGreatestAncestors(); assertTrue(ancestors.size() == 2); assert(ancestors.contains(grandFatherDad)); assert(ancestors.contains(grandMotherDad)); ancestors = mother.getGreatestAncestors(); assertTrue(ancestors.size() == 2); assert(ancestors.contains(grandFatherMom)); assert(ancestors.contains(grandMotherMom)); ancestors = grandFatherDad.getGreatestAncestors(); assertNull(ancestors, "getGreatestAncestors():Persons with no ancestors should return null."); } } Meno
↳
They will be testing your interpersonal and motivational skills.
↳
round 3 questions: reverse a string recursively. explain architecture of Cassandra (I worked on Cassandra in previous projects) explain consistency configuration in Cassandra. Meno
↳
Could you please post the questions that were asked to you and the kind of concepts that were touched upon, as part of the last 3 hour interview round? Meno
↳
This isnt online dating!
↳
The same thing happened to me. Is this a scam?
↳
I get a weird vibe from this company. Not even sure they exist for real.
↳
Python solution: import itertools def solution(N): s = list(str(N)) solution = set([ s for s in itertools.permutations(s)]) if len(solution) == 1: print("1") return final_solution = [ s for s in solution if s[0] !='0' ] print(len(final_solution)) Meno
↳
import collections def fact(n): factorial = n for i in range(1, n): factorial *= i return factorial def better_solution(N): s = list(str(N)) string_counts = collections.Counter(s) print(string_counts) permutations = fact(len(s)) # dealing with duplicate string values for string, count in string_counts.items(): if count > 1: permutations //= fact(count) return permutations Meno
↳
#include #include using namespace std; int factorial(int n){ return (n == 1 || n == 0) ? 1 : factorial(n - 1) * n; } // Returns number of occurences of char c in string s int numberOfOccurences(string s, char c){ int occurences = count(s.begin(), s.end(), c); return occurences; } int solution (int N){ string numString = to_string(N); int numOfDigits = numString.length(); int computation = factorial(numOfDigits); // Using ASCII Codes for (int i = 48; i < 58; i++) { char currentChar = (char) i; int occurences = numberOfOccurences(numString,currentChar); if (occurences != 0){ computation = computation / (factorial(occurences)); } } return computation; } Meno
↳
OR on runtime: {v for v in locals().values() if isinstance(v, SomeClass)}
↳
the question was, how can you find all instances of a class in a file. Answer would be "grep". Meno
↳
This was the Die Hard III problem!
↳
This is a classic question that is in CTCI/CareerCup. There are two solutions for this. 1) Fill up the 5L jug, then pour it into the 3L jug (5L jug has 2L of water in it). Pour out the 3L jug and pour the 5L jug into the 3L jug (3L jug now has 2L in it, 5L jug has 0L). Fill up the 5L jug with water, and pour it into the 3L jug until it is full! (5L jug has 4L in it, 3L jug has 3L in it) 2) Fill up the 3L jug, then pour it into the 5L jug (5L jug has 3L in it, 3L jug has nothing). Fill up the 3L jug again, and pour it into the 5L jug until it is full (5L jug has 5L in it, 3L jug has 1L in it). Pour out the 5L jug, then pour the 3L jug into the 5L jug (5L jug has 1L in it, 3L jug has 0L). Fill the 3L jug and then pour it into the 5L jug (5L jug has 4L in it, 3L jug has 0L). Meno
↳
I have used python to develop a website application
↳
During my last year of bachelor's of engineering I was working on mobile application project. I have used java and sql database to create and adroid application called Person Chat Mobile Meno
↳
Take prior constantly
↳
I got it wrong a couple times, but with guidance from the interviewer, eventually came to the conclusion that priority for the short-time requests should start out higher than long-time requests, but that a long-time request nearing its timeout window should rise in priority to the point that it can be handled before a new (and unlikely to time-out) short-time request. Meno