Стажування в 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)

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)

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)

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


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;
     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;
 int c = ((int)b);
 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?

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)

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)


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

1. Core Java (Cay S. Hortsmann)
2. Effective Java (Joshua Bloch)
3. Thinking in Java (Bruce Eckel)


1. When would you use GET and POST requests?
2. What is w3c?
3. Describe the process from the time you type in a website's URL until it finishes loading on your screen.
4. What is the proper way to evaluate JSON from the server? Explain why.
5. Explain the difference between the IE and DOM standard event model.
6. Can you describe your workflow when you create a web page?
7. Traditionally, why has it been better to serve site assets from multiple domains?
8. What are HTTP actions? List all the HTTP actions that you know and explain them.
9. What is CDN?

1. Which ways to create an object do you know? 
2. How do you assign a value to an object?
3. What is the difference between an object and a constructor?
4. How do you inherit one object from another?
5. What is the difference between call and apply?
6. How do you perform inheritance in JavaScript?
7. What is a prototype?
8. How do you add/remove properties to an object in runtime?
9. How do you extend built-in objects?
10. Why extending an array is a bad idea?
11. How does JavaScript closure work?
12. How do you perform Encapsulation?
13. Name some in-built objects?
14. Are there private, protected, public fields/methods in JavaScript?

1. Is there any difference between a window and a document?
2. Does document.onload and window.onload fire at the same time?
3. Is an attribute similar to a property?
4. What are the different ways to get an element from DOM?
5. What is the fastest way to select elements by using CSS selectors?
6. If needed, how would you implement getElementByAttribute?
7. How would you add a class to an element using a query selector?
8. How can you verify whether one element is a child of another?
9. What is the best way to create a DOM element: set innerHTML or use createElement?
10. What is createDocumentFragment and where you can use it?
11. What is a reflow? What causes reflow? How can you reduce it?
12. What is a repaint and when does it happen?
13. What is an event bubble? How do events flow in DOM?
14. How do the defer and async attributes work in a script tag?

1. If you omit the var keyword when creating a variable in a function, of which object does it become a property?
2. True or False: the terms scope and context refer to the same thing in JavaScript.
3. How do you determine if an instance of an object was created from a specific constructor?
4. True or False: Once you’ve created an object, you can add, remove or change the properties of that object any time.
5. True or False: You can instantiate a constructor function only once.
6. When you create a function inside of a method, what does this keyword refer to when used in that function?
7. Name at least two ways to change the context of a JavaScript method.
8. Can the constructor return a primitive value (e.g. a number or a string)?
9. Are objects passed to functions by reference or by value?
10. What is the difference between a constructor function and a non-constructor function with respect to the word this?
11. What is the difference between using dot notation and bracket notation when accessing an object’s property?
12. When using the addEventListener() method to create a click-handler for a DOM element, what is the value of this inside of the callback you specify?
13. If a string is a primitive value, why does it have a split() method?
14. How would you destroy multiple list items with one click handler?
15. Create a button that is destroyed by clicking on it but two new buttons are created in its place.
16. How can you get all the texts in a web page?

1. What does the cascading portion of CSS mean?
2. What are the different ways to apply styles to a Web page?
3. What is an ID selector?
4. What is a CLASS?
5. What are pseudo classes and what are they used for?
6. What is the difference between an ID selector and CLASS?
7. What is the contextual selector?
8. What is the grouping?
9. What are the child selectors?
10. How do you include comments in CSS?
11. Have you ever used any CSS libraries or frameworks?
12. Name some of the new features and properties in CSS3.
13. What is the purpose of pseudo-elements and how are they made?
14. What is a sprite? How is it applied using CSS? What is the benefit?
15. Have you ever used any CSS preprocessors, like SASS, LESS? What are the pros and cons of them?

1. What CSS properties are used to change dimensions and what values can they accept? 
2. How is the float property implemented in CSS?
3. What is the CSS Box Model used for? What are the elements that it includes?
4. How do you restore the default property value using CSS?
5. How are inline and block elements different from each other?
6. What is the purpose of the z-index and how is it used?
7. What are the advantages and disadvantages of External Style Sheets?
8. What are the various techniques for clearing floats?
9. Explain the difference between visibility:hidden and display:none.
10. Why shouldn’t you use fixed-sized fonts?
11. How and why are shorthand properties used? Give examples.
12. How do CSS precedence/cascading rules work? How does the !important directive affect the rules?
13. How can you eliminate the blue border around linked images on the web page?
14. How do you align an element vertically inside of the parent of an unknown height?

1. What is "Semantic HTML"?
2. What is the relationship between SGML, HTML, XML and XHTML? 
3. What are the limitations when serving XHTML pages?
4. What does DOCTYPE mean? What is the new DOCTYPE?
5. What is the difference between the application model of HTML and HTML5?
6. What is the difference between Canvas and SVG graphics?
7. What data attributes are good for?
8. What are the new image elements in HTML5?
9. What is the difference between <div> and <frame>?
10. What is the syntax difference between a bulleted list and numbered list?
11. How do you insert a copyright symbol on a browser page?
12. Describe the difference between cookiessessionStorage, and localStorage.
13. What are the different ways to reduce page load times?
14. What kind of things must you be wary of when designing or developing for multilingual sites?
15. What’s the difference between standards mode and quirks mode?
16. What is an iframe?

1. How do you make comments without text being picked up by the browser?
2. How do you create links on sections within the same page?
3. If the user’s operating system does not support the needed character, how can the symbol be represented?
4. How do you change the number type in the middle of a list?
5. How do you create multicolored text in a webpage?
6. What is the advantage of grouping several checkboxes together?
7. What will happen if you overlap sets of tags?
8. Do <th> tags always need to come at the start of a row or column?
9. What is the relationship between border and rule attributes?
10. Are <br> tags the only way to separate sections of text?
11. What is the hierarchy that is being followed when it comes to style sheets?
12. What happens if the list-style-type property is used on a non-list element like a paragraph?
13. When is it appropriate to use frames?
14. What happens if the number of values in the rows or cols attribute doesn’t add up to 100 percent?

Introductory, no previous programming experience
1. JavaScript: The Good Parts (Douglas Crockford)
2. JavaScript: The Definitive Guide (David Flanagan)

Introductory, with 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)

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


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 
         .filter({ it -> it.isSelected() }) 

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 тощо). Ці проекти у подальшому використовуються у маркетингових цілях.