The Campus is a program for trainees developed by the AMC Bridge team where students receive training while working on an actual project. The course value is that our trainees work on a non-commercial educational project for several months before moving to a client project. We asked our Project Manager Oleh Yanchuk about one such project where he was a team leader for nine students and worked as a trainee earlier. Read below what this project teaches and what candidates should know about it.
About the course
The course aims to develop a mesh editor from scratch for manipulating triangle meshes. The delivered application enables downloading, viewing, and editing COLLADA™ mesh files currently used in major simulation packages and real-time graphics engines. In this course, the students learn the foundation of CAD application development: basic design templates and terms such as scene tree, manipulators, half-edge data structure, the MVO pattern, and so on. They also work with the OpenGL® API, COLLADA™ 3D asset exchange schema, and GLFW library.
Oleh Yanchuk, Project Manager
Q: Tell us about the software and where you can use it.
A: At this point, it is a minimal 3D viewer for manipulating 3D geometry. The software includes basic mesh editor functions, such as viewing a 3D model and working with models and manipulators. Thus, for example, you can use it to change the model in 3D printing.
In essence, it is a skeleton to develop other products for 3D construction, 3D modeling, design, and so on. The functionality will be enough to make changes, generate a G-code or other work files, and send them to a printer.
Q: Why does the project include such tasks?
A: It covers 3D geometry key operations necessary for all developers to work successfully with engineering software. In other words, it is the minimum that programmers should know to be able to work at AMC Bridge because we work a lot with viewers and geometry manipulations. The project also provides an understanding of terminology for work on future projects.
A figure from the project materials
Q: How much of what the project teaches will the developers need in their future projects?
A: Absolutely everything will be necessary! Lab works are created from A to Z in such a way that each task teaches something important. Well, not everything will be inevitably implemented. But if a complex task arises, a person with the basic knowledge and understanding of processes can divide it into multiple simple tasks and solve them. Such a decomposition is impossible without basic knowledge.
The work on this project is a kind of investment in yourself. I would say this is another additional education specifically for working in the 3D engineering field.
Work process
Q: How does the work on the project look like, and which tasks do the trainees perform?
A: The course includes six labs, each having theoretical and practical parts. There is an essential material to be familiar with, high-level architecture to follow, and tasks of different types.
The tasks go from simple to difficult, but each level has a task “with an asterisk”. For example, in the zeroth lab devoted to basic geometric operations, you need to search for information and develop algorithms on your own, which can be difficult. The third lab contains a half-edge structure for working with a mesh, where everyone has problems with building a valid structure. And the fifth laboratory contains many complex tasks on mesh transformation manipulations in 3D space. A lot of time is spent here too.
Labs are a kind of sprints or milestones with a demo after each. Such practice teaches students to present the results of their work and structure their thoughts, which will be very useful in the work on client projects.
Q: How does the team leader help?
A: Everything depends on a trainee: someone requires attention, while someone is more independent. But I will say the following: students will face difficulties in one way or another simply due to their lack of knowledge and experience. Therefore, the team leader’s role is to teach a person to keep feedback (not to be afraid to talk about difficulties and ask for help) and work in a team where everyone can express their opinion. In general, soft skills are vital for a developer, especially on client projects.
Q: How does a trainee’s workday on the project look like?
A: There are no distinct rules here. Some team leaders prefer daily meetings where updates and questions are discussed. Others work in the mode of “write to me if having a problem, and I will answer.”
Requirements and recommendations
Q: What should students know to get into the project? What is essential besides technical knowledge?
A: I name basic C++ knowledge, analytical thinking, readiness for self-development, and soft skills. That is, technical knowledge is not even decisive. During six months of working on this educational project, you can read several books, watch a few video lessons, and catch up on everything. But how does a person act in stressful situations when something is unclear? Someone says, “I do not know how to do it.” Whereas another one says, “I learned this and tried that; however, there’s a problem. What should I look for to solve it?” and has already started solving the task abstractly. The second person is our candidate.
Q: What is the role of English?
A: English is not only the language of lab defense but also the main language of communication at AMC Bridge. Therefore, I strongly advise you to study it now.
Q: To what would you advise trainees to pay attention?
A: First, be patient: everyone makes mistakes. This is the problem of almost all students. They can sit in the evening, at night, and do everything on their own, just not to say there is a problem. But we are all humans: something we know, something—we don’t, and that’s okay. When I am wrong or do not know something, I consult with more experienced colleagues. In general, I believe that making mistakes is important because they teach us.
The second tip is to take your time. Students often want to do everything as quickly as possible. So it happens that it is quickly done but does not work. This project teaches not only technologies but also work approaches. It teaches developers to complete tasks at a moderate pace when nothing hurries them up and when there is time to test everything calmly. It is necessary so that the work on client projects is calm and the result is qualified.
Q: Does the basic set of knowledge determine how successful a colleague’s career will be?
A: With what you came is not as much important as how you develop. You can pump a programming language, English, anything. But with resistance to new knowledge, you cannot go far. Learning, reading, trying new things, and following technologies provide you with development.
Q: What did you conclude for yourself from this project as a trainee?
A: It is very good that I agreed to come to the company for a similar position, although I already had commercial experience. Why did it happen? Because I had no experience in 3D programming, I was offered to start with the Campus—the same project where I became a team leader later. This project was my trip into what the company does and gave me an understanding that I liked it.
It was a nice smooth start that did not overwhelm me. Who knows, maybe if I had immediately gotten into a junior position with more complex geometric tasks, I would not have wanted to do it.
Return to blog page