Стажування в AMC BRIDGE

 
 

Резюме

Навчаєтеся на
3-6 курсі?

Компанія AMC Bridge запрошує на стажування студентів 3-6 курсів технічних спеціальностей фахових вищих навчальних закладів.

 
 

Тестове завдання

Виконайте тестове завдання

Для виконання тестового завдання ми використовуємо AMC Bridge Tutor - веб-додаток для автоматичного тестування зразків кодування в таких категоріях: алгоритми, структури даних, геометрія, основи розробки програмного забезпечення та елементи oб'єктно-орієнтованого програмування.

 
 

Співбесіда

Пройдіть співбесіду

Для того, щоб потрапити на стажування у AMC Bridge, необхідно пройти співбесіду із HR-менеджером, технічним інтерв'юером та директором дослідницького підрозділу AMC Bridge.

Список можливих запитань для співбесіди:

Algorithms and Data Structures

1. What main data structures do you know?
2. As a data container, what are the main differences between array and list?
3. What is the difference between singly linked list and doubly linked list data structures?
4. What is the difference between stack and queue data structures?
5. What is algorithm complexity?
6. What are associative unordered and ordered containers?
7. Explain what the binary tree is.
8. What is the search time complexity for binary tree? Why? Is it guaranteed?
9. What is the difference between depth-first and breadth-first searches for binary tree?
10. What is the structure of a hash table? How does it work?
11. What is the time complexity of add/search operations in a hash table?
12. Explain what the binary search algorithm is. 
13. What sorting algorithms do you know?

Practical tasks
1. How do you effectively delete sequence of elements from the middle of array? 
2. Given an array with 100 elements (numbers from 0 to 99). One element has been removed from the array. How would you find the removed element? How would you solve this if the array is sorted, or the array is not sorted?
3. How do you find duplicates in array? How would you solve it for the array of chars?
4. How do you find the middle element of a singly linked list in one pass?
5. How do you detect a loop in a singly linked list?
6. Given an array of numbers: 20, 17, 30, 21, 45, 2, 18. Form a sorted binary tree diagram. How should the sequences be changed to produce the worst binary search tree? 
7. Provide a recursive and a non-recursive solution for the tree traversal algorithms for a binary tree.

1. Algorithms (Robert Sedgewick and Kevin Wayne)
2. Introduction to Algorithms (Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein)
3. Programming Pearls (Jon Bentley)
Computational Geometry

1. What is the difference between a point and a vector?
2. What is the dot product of two vectors? List its properties.
3. How do you check if two vectors are parallel/orthogonal?
4. How do you find a projection of one vector onto the direction of another vector?
5. What is the cross product? List its properties.
6. How do you compute an angle between two vectors?
7. How do you compute a signed angle measured from vector A to vector B on a 3D plane containing both vectors?
8. How to check if three vectors are coplanar?
9. Can you uniquely define a plane having two non-collinear vectors? How?
10. What is the mixed product of three vectors? What is its geometric sense?
11. What is a convex polygon? How do you check if a polygon is convex or concave?

General questions
1. Compute the distance between an infinite line and a point in 3D. What needs to be changed to compute the distance between a finite segment and a point?
2. Compute the distance between two arbitrary infinite lines in 3D.
3. Compute the intersection line for two planes.
4. How do you compute the area of a convex polygon? How should the algorithm be changed to work with non-convex polygons?
5. How do you determine whether a polygon's points go in a clockwise or counter-clockwise direction?
6. How many parameters are required to uniquely define a line/plane? What are the parameters?
7. How many parameters are required to uniquely define a sphere/cone/cylinder/torus? What are the parameters?
8. Is it possible to find a circle's radius and the center point from three points lying on the circle? If yes, how would you do so? Is it possible to do with less than 3 points? 
9. Suppose you have a triangle. All edge lengths and corner angles are known. How would you compute the radius of the minimum enclosing circle?

Transformations and rotational matrices
1. Given a coordinate system with X-axis (x1, y1), Y-axis (x2, y2) and an origin O(x,y). What would be the matrix that transforms the point coordinates from a global coordinate space?
2. How do you turn a 2D vector 90 degrees in a CCW direction?
3. How do you compute an inverted rotational matrix? 
4. What would be the transformation matrix that rotates an object around an axis that passes through its origin and is aligned with the Z-direction? How would the matrix change if the axis passed through an arbitrary point P in 3D space?
5. What would be the matrix for a 0 degree rotation around an axis line that passes point P(0.55, 12.669, 0.15) and has the direction D = (‑0.002196, ‑0.0020014, ‑0.9999956)?
6. Given two coordinate systems CS1 and CS2 defined by transformation matrices M1 and M2 correspondingly. Given a point P in CS1's space. How do you compute the coordinates of P in CS2's space?

1. Mathematics for Computer Graphics Applications (M.E. Mortenson) 
2. 3D Math Primer For Graphics And Game Development (Fletcher Dunn)
3. Mathematics for 3D Game Programming and Computer Graphics (Eric Lengyel)
4. Foundations of 3D Computer Graphics (Steven J. Gortler)
5. Essential Mathematics for Computational Design (Robert McNeel)
C++

1. What is the difference between a reference and a pointer?
2. Explain the difference between int x; int x(); and int x{};
3. assert(sizeof(int) != sizeof(long)); Is this statement always true?
4. What will the following line of code print out and why? unsigned int x = -1; std::cout << x;
5. Can you explain the difference between new and new[]? Is it possible to delete memory using delete[] allocated within the new operator?
6. What is the difference between new/malloc or delete/free?
7. What is the difference between stack and heap allocation?
8. What is the evaluation order of the function parameters in C++?
9. What is the construction order of global variables?
10. What is the forward declaration of classes? What is it used for?
11. What is the meaning of a const keyword and how can it be used? 
12. What is the meaning of a static keyword and how can it be used? 
13. What are the advantages of using friend classes?
14. What is an abstract class? What is the pure virtual function?
15. How do you create a virtual constructor and virtual destructor for a class? Why would you do it? 
16. What is a vtable and how does it work?
17. Initialization order of Bases and Members.
18. Is it possible to call a virtual function inside of a constructor/destructor?
19. What is a template and how is it used? 
20. What is specialization? How can it help to improve efficiency? 
21. struct Vector{ int* data; int size; }; Write copy constructor, operator= and destructor for the struct Vector.
22. What is an iterator? What iterator types do you know?
23. What is RAII?
24. When should you use std::unique_ptr vs. std::shared_ptr
25. How should runtime errors be handled in C++? What general approaches do you know?
26. What will happen if the exception will be thrown within a constructor?
27. C++ supports multiple inheritance. What is the "diamond problem" that can occur with multiple inheritance? Give an example.

Introductory, no previous programming experience
1. Programming: Principles and Practice Using C++ (Bjarne Stroustrup)

Introductory, with previous programming experience
1. A Tour of C++ (Bjarne Stroustrup)
2. Thinking in C++ (Bruce Eckel)

Best practices
1. Effective C++ (Scott Meyers)
2. Effective STL (Scott Meyers)

Intermediate
1. Inside the C++ Object Model (Stanley Lippman)
2. More Effective C++ (Scott Meyers)
3. Exceptional C++ (Herb Sutter)
4. More Exceptional C++ (Herb Sutter)
5. Exceptional C++ Style (Herb Sutter)
6. C++ Coding Standards (Herb Sutter and Andrei Alexandrescu)

Advanced
1. Modern C++ Design (Andrei Alexandrescu)
2. C++ Template Metaprogramming (David Abrahams and Aleksey Gurtovoy)

C#

1. What is the difference between value and reference types? Is it true that the value type is always stored in a stack?
2. What is the output for this block of code?

struct Num 
{
     public int i;
}
class MyProgram
{
     static void Main()
     {
          Num x = new Num();
          x.i = 10;
          Update(x);
          Console.Write(x.i);
     }
     static void Update(Num y)
     {
          y.i = 20;
     }
}

3. What is the difference between classes and structures? Is it possible to inherit from structure? In what cases it's better to use structures?
4. What is the purpose of namespaces? Is it good practice to keep your application in a single namespace?
5. Is the following code correct?

struct Num 
{
   public const double x = 1.0;
public Num(double start)
   {
        x = start;
   }
}

6. Will the following code compile?

double d = 1.11;
 int i = d;

7. What will be the output for this block of code?

int i = 5;
 object b = i;
 i++;
 int c = ((int)b);
 c++;
 Console.Write(i.ToString(), b);

8. Can you describe why the lock() statement is designed to only accept reference type parameters?
9. How method arguments are passed in C#? Can this behavior be changed?
10. What is the difference between Int.Parse and Int.TryParse?
11. What are the implicit and explicit type conversions?
12. How do you cast from one reference type to another without risking to throw an exception?
13. Why isn't it possible to create an instance of an abstract class?
14. Is it possible to invoke a method from an abstract class?
15. Is it true that Interface can only contain method declarations?
16. Is it possible to specify access modifiers inside of an interface?
17. Can you inherit from two interfaces with the same method name in both of them?
18. Is it possible to define two methods with the same name and arguments, but with a different return types?
19. What is the difference between method overriding and overloading?
20. What does protected internal access modifier mean?
21. Your class Shape has one constructor with parameters. Can you create an instances of this class by calling new Shape()?
22. Is it possible to override a method which is declared without a virtual keyword?
23. What is the difference between new and override keywords in method declaration?
24. Is it possible to explicitly call a class static constructor?
25. How can you override a static constructor?
26. Can you use this keyword inside of a static method?
27. What is the difference between using a static class and a Singleton pattern?
28. What does immutable mean? Can you provide examples?
29. How can you create delegates in C#?
30. Are delegates of a value or a reference type?
31. What is the difference between events and multicast delegates?
32. Is there any difference between Action and Function?
33. What are lambda expressions? What are they used for?
34. Is it possible to access variables from the outside of a lambda expression?
35. What is LINQ used for?
36. What should usually be done inside of a catch statement?
37. Does the following code make sense?

try
{
     DoSomeWork();
}
catch(Exception ex){}
catch(StackOverflowException ex){}

38. What is reflection? Where can it be used?
39. What are generics?
40. What constrains can be applied to generics?
41. Can Garbage Collection be forced manually?
42. What are the generations of .NET Garbage Collector?
43. With the IDisposable interface, what logic is usually placed inside of the Dispose method?
44. Can you extend the core .NET framework class with your own method?

Introductory, no previous programming experience
1. C# and the .NET Platform (Andrew Troelsen)
2. C# 4.0 The Complete Reference (Herbert Schildt)

Advanced
1. CLR via C# (Jeffrey Richter)
2. C# in Depth (Jon Skeet)
3. Agile Principles, Patterns, and Practices in C# (Robert C. Martin, Micah Martin)
4. Code Complete (Steve McConnell)

Java
  1. What is the difference between JDK and JRE?
  2. What is a package?
  3. What are the ways of passing a parameter by reference?
  4. Does Java support multiple inheritance?
  5. What is a static modifier and how it can be used?
  6. How to access ‘this’ in a static method?
  7. How to override a static method?
  8. What access specifiers do you know?
  9. Is it possible to access a private method from outside of a class?
  10. What is the difference between StringBuilder and StringBuffer?
  11. How to create the String instance?
  12. What is an interface? What is a marker interface? Name the fields of its application.
  13. What is the difference between the Serializable and Externalizable interfaces?
  14. Is it possible to implement two interfaces having a default method with the same name and signature?
  15. What is a functional interface?
  16. How to clone an object?
  17. How to implement the equals and hashCode methods properly?
  18. How can the wait and notify methods be used?
  19. What is the finalize method intended for?
  20. What is the difference between the nested and static nested class?
  21. What is the difference between the mutable and immutable types?
  22. What is the difference between Predicate and Function?
  23. What is a method reference?
  24. How does exceptions hierarchy look in Java?
  25. What is the difference between throw and throws?
  26. What is the difference between the checked and unchecked exceptions?
  27. What is better to use to handle unexpected conditions: Assertions or Exceptions?
  28. Is it safe to throw an exception from a constructor?
  29. Will the finally block be executed if the unhandled exception occurs in the try block?
  30. What is the java.lang.AutoCloseable interface intended for?
  31. What is the final keyword? How it can be used?
  32. How can you make two methods to be executed in parallel?
  33. What is mutual exclusion?
  34. What is the volatile keyword and how it is used?
  35. How do you stop a thread?
  36. What is the difference between Runnable and Callable?
  37. What is the difference between Set and HashSet?
  38. What is the difference between LinkedList and ArrayList?
  39. How does HashMap work?
  40. What is the difference between Stream and Collection?
  41. What is a garbage collector? Can you manually force a garbage collection?
  42. What is the difference between List<? extends T> and List <? super T>?
  43. Can generics be used with an array?

  1. Core Java by Cay S. Hortsmann.
  2. Effective Java by Joshua Bloch.
  3. Thinking in Java by Bruce Eckel.
  4. Java Concurrency in Practice by Brian Goetz and others.
Full Stack

  1. Name all data types in JavaScript.
  2. Compare the reference types and primitive types.
  3. Describe the ways of checking data types. What are the possible difficulties of determining the data type?
  4. Describe the difference between Abstract Equality Comparison and Strict Equality Comparison.
  5. Describe the process of the type coercion and rules of comparing the same and different data types.
  6. Name the built-in and native types. Describe wrappers/boxing.
  7. Name the data types that can and cannot contain values/ types of objects. Name the ways to detect them.
  8. What is the practical use of the Symbol data type?

  1. Describe the statements and expressions. What are the side effects of expressions?
  2. Define Operator Precedence. Specify the usage of logical and binary operators.
  3. Explain what Objects and Arrays destructuring is.
  4. Specify loops, conditions, and the execution context.
  5. Describe the error handling process in JavaScript.
  6. How/when to use the Use strict directive? How does it affect the JavaScript execution?

  1. Describe all variable declaration types and the difference between them.
  2. Is there any way to determine whether the variable is declared in a specific scope?
  3. What is scope? What scope types exist in JavaScript? What is the difference between the function and block scopes?
  4. What are a hoisting and temporal dead zone?
  5. Scope chain, lexical environment, and variable name resolution.
  6. What is closure?
  7. Describe the Memory Lifecycle in the context of the closure.

  1. Name all the approaches to declare and invoke functions in JavaScript and describe how they affect their execution.
  2. What does it mean: the functions in JavaScript are first-class objects?
  3. What is the difference between the execution context, scope, and static properties?
  4. What does this keyword refer to in JavaScript?
  5. Provide a description of the partial application of functions vs. currying.
  6. Describe the practice of the borrowing method.

  1. Describe the OOP principles and their implementation in JavaScript.
  2. What is the difference between the classical and prototypal inheritance?
  3. Name all the possible ways to create an object and object`s property in JavaScript.
  4. Describe the attributes of the object and the object`s property.
  5. Do access modifiers exist in JavaScript? Is it possible to simulate them, and how?
  6. What are the pros and cons of functional programming vs. object-oriented programming?
  7. What is functional programming?
  8. What is a high-order function?
  9. What is a pure function?
  10. What is currying?
  11. What does favor object composition over class inheritance mean?
  12. Compare the imperative programming and declarative programming.
  13. Describe SOLID and JavaScript. Provide an example of dependency injection and inversion of control in JavaScript. Are they related?

  1. What are two-way data binding and one-way data flow? How do they differ?
  2. What are the pros and cons of monolithic and microservice architectures?

  1. What are the ways to handle the async code?
  2. What is a callback hell, and how can you avoid it?
  3. Describe how async/await works.
  4. Describe the generators and iterators and their possible usage in async JavaScript.
  5. Provide yield-delegation examples and generators concurrency.
  6. Describe Web Workers, Shared Workers.
  7. Describe the micro and macro tasks in the context of the event loop?

  1. Name the most commonly used Array methods.
  2. Describe how the reduce method works. What is the difference between slice and splice?
  3. Describe Map, Set, WeakMap, and WeakSet.
  4. What traditional data structures do you know? How do they correspond with data structures available in JavaScript?

  1. What is the NodeJS event loop?
  2. What are the pros and cons of NodeJS? In what cases should NodeJS be used and when should it not?
  3. What are streams in Node.js?
  4. Explain different types of streams in NodeJS.
  5. Describe multithreading in NodeJS.
  6. How to utilize multiple cores in a single NodeJS application?
  7. Explain the difference between programming in JS for NodeJS and browsers.
  8. Suggest an application structure/architecture for NodeJS based REST API server.

  1. Name the most common test types and explain the difference between them.
  2. Describe TDD/BDD.
  3. What are the best practices of code testing in JavaScript?

Introductory, no previous programming experience

  1. 1. JavaScript: The Good Parts (Douglas Crockford)
  2. JavaScript: The Definitive Guide (David Flanagan)

Introductory, no previous programming experience

  1. CSS: The Definitive Guide (Eric A. Meyer)
  2. Handcrafted CSS: More Bulletproof Web Design (Dan Cederholm, Ethan Marcotte)
  3. The Principles of Object-Oriented JavaScript (Nicholas C. Zakas)

Advanced

  1. Secrets of the JavaScript Ninja (John Resig)
  2. High Performance JavaScript (Nicholas Zakas)
  3. Standard ECMA-262 ECMAScript Language Specification
QA

1. What is software testing?
2. What are the principles of software testing?
3. What are the software testing levels?

1. What are the main types of testing?
2. What is the object of static testing?
3. What is the difference between Smoke and Regression tests?
4. What is the difference between Performance and Stress tests?
5. Describe the difference between Loading and Stress tests.
6. In which cases automation is reasonable?

1. What kinds of test design techniques do you know?
2. Briefly describe the test design techniques you named.
3. Does it make sense to include more than one negative verification into one test case? Explain why.
4. You may be given a task to apply the test design techniques to.

1. What are the differences between a Test Case and a Test Plan, a Test Plan and a Checklist?
2. What is the purpose of each artifact?

1. Which role plays a QA Engineer in the software development process?
2. When should a QAE start working on a project?
3. When is time for Sanity testing? Explain why.
4. When is time for each of the above-stated testing types?

1. Which software development methodologies do you know?

1. Describe Bug Life Cycle.
2. What are your actions if a developer rejects a bug?
3. How are you going to resolve problems that may occur between a developer(s) and a tester(s)?

1. What is a bug?
2. What sources can be used to make sure that the current behavior is a bug or not?
3. What kind of attributes may have a bug?
4. What is the difference between Severity and Priority of a bug? Give an example.
5. What information should be collected as Test Environment during the desktop application testing?
6. Give an example of a Usability Bug.
7. What is a Regression Bug?

1. Describe Top-Down and Bottom-Up designs.
2. What does the Life Cycle of a Product mean? Describe the Life Cycle of your product.
3. What documents did you use in your engineering projects?
4. What types of fasteners do you know?
5. How did you select fasteners for equipment in your projects?
6. What types of mechanical processing do you know?
7. What types of a material coating do you know?

1. What are the main advantages of 2D and 3D modeling? Explain why.
2. What is the main difference between parametric and non-parametric CAD systems?
3. What file types (extensions) for CAD systems do you know?
4. What is a CAD, CAE, CAM, PLM, PDM and BIM application? Who are the main users of each type?
5. What main features do you use in practice?
6. In how many ways can you create a screw-bolt?
7. How do you work with layers when you work with drawings?
8. What snaps types do you use when you work with drawings?
9. What problems can cause opening a CAD file with links to another PC? Explain why.
10. How can you compare two drawings in AutoCAD or a similar application?
11. What types of patterns do you know in a CAD system?
12. What is FeatureManager Design Tree in SOLIDWORKS? What is the rollback feature? (For the experienced with SOLIDWORKS)
13. How will you create a 3D model/models of cylinders with different diameters and heights?
14. With how many parts do you create a standing hanger in a CAD system?
15. What features will you use to design a model of a cup, a TV remote, etc.?
16. What are the main conceptions and differences of SOLIDWORKS Design Library and Toolbox?
17. How can we change visualization of a model in SOLIDWORKS? (appearances, scenes, exploded view, etc.)
18. What add-ons for SOLIDWORKS do you know, i.e., for motion, simulation, routing, photo view, etc.?
19. If you must design something in CAD without any context, what are you going to do? How will you measure the success of your designs?
20. What is 3D geometry? What is the difference between 2D and 3D spaces?

1. Describe the main steps of converting a Point Cloud into a Solid Model.
2. What common 3D shapes do you know?
3. What parameters must have a 3D body?
4. What neutral CAD formats do you know?
5. What is the difference between any two neutral CAD formats you know, i.e., IGES and STEP?
6. Describe the main test cases you will use to verify the correctness of 3D Model converting. Explain why?

1. What are Continuous Integration and its purpose?
2. What are the main Git commands?
3. What mouse actions has Selenium?
4. How do you imitate double-click event in code?
5. How to switch between frames/tabs in Selenium?
6. What is a Stale Element Reference Exception, and how to process it?
7. How do you identify test cases suitable for automation?
8. What are your criteria not automate a test?
9. Describe the Page Object approach and the problems it aims to solve.
10. What is the difference between absolute and relative XPaths?
11. What assert types do you know?
12. What are the main locator types?
13. How to find a WebElement nested in another element?
14. What will you do with code duplicated in several tests?
15. Briefly describe the difference between ThreadSleep, ImplicitWait, ExplicitWait, WebdriverWait, and FluentWait in Selenium-WebDriver.

1. Test a web page/form, e.g., login/logout page
2. Provide as full set of test cases as you can.
3. Find a bug and report it.
4. Locate an element on a WEB-page using dev tools and XPath or CSS selector.
5. Write an explicit wait condition to be passed to the WebDriverWait.until() method to wait for the title matching expected value.
6. Explain this code snippet:

    List selected = allRows 
         .stream()  
         .filter({ it -> it.isSelected() }) 
         .collect(Collectors.toList());

7. Explain this code snippet:

    (new WebDriverWait(Driver.driver.get(), 10)) 
         .until(current -> current.getWindows().size() >= 2);

1. ISTQB - Foundation Level 2018 Syllabus
2. A Practitioner's Guide to Software Test Design, Lee Copeland, Artech House, 2004
3. Testing dot com, Roman Savin, Delo, 2007

 
 

Стажування

Пройдіть стажування

Стажування – це робота на одному з проектів у внутрішньому дослідницькому підрозділі AMC Bridge протягом 1 місяця з тижневою зайнятістю від 40 годин. Зазвичай, проекти пов’язані із вивченням нових та використанням традиційних технологій (C++, C#, web services, frontend тощо). Ці проекти у подальшому використовуються у маркетингових цілях.

Top