Skip to content

Continuing Education

Denis Stebunov edited this page Jul 7, 2020 · 4 revisions

Ongoing education is an integral part of many jobs, and it's particularly important in the case of software development. Programming is such a vast field, and technology develops at such a rapid pace, that even just staying current requires a programmer to learn constantly. Here are some key components of how we try to foster an environment that supports ongoing learning.

Culture of Innovation

The best conditions for learning arise when one's learning interests are given a place where one can test how the theories they learned work in practice. It's also critical to have a learning environment that supports experimentation and encourages innovation. This is the culture we try to support at ivelum. If you're interested in trying out some new technology or approach, just let us know. It's likely we'll be able to find you a good opportunity to experiment.

Mentorship

When new developers join us, or when a developer switches projects, we have a practice of giving them a dedicated mentor, someone who will help them get acquainted with the new project and its particular technology and approaches. If there is not a specially-appointed mentor, the role is played by the team lead.

Pair Programming

For some companies, pair programming is used to improve code quality and improve Bus Factor. These companies ask that as much code as possible be done in pair programming mode, ideally all of the code. We do not take this approach. This absolute approach pair programming leads to an unjustifiable amounts of wasted time and (rightfully) irritates many programmers.

However, we have found that pair programming is excellent tool for learning. If you need to quickly immerse yourself in a new technology or project, there's hardly anything that can compare to the efficiency of working directly alongside someone who's already familiar with the ins and outs. If you're looking to figure out a project and would like try working in a pair, just let your lead, your mentor, or someone who's worked on the project know.

The standard tools for our pair programming sessions are Chrome Remote Desktop with Skype; or if no remote desktop control is needed, you can just use Zoom. Sticking to the concept "Learning by doing" will only help the learning, and if possible, they should do everything with their own hands, guided by the promptings of the tutor.

Code Review

Like paired programming, code review is an excellent tool for gaining knowledge about a project and its technology. We use asynchronous, non-blocking code review on all our teams; see the section on our Development process.

Compensation for Paid Training and Conferences

As part of our Compensation Package, we will reimburse up to 100% of the cost of paid training, as well as up to 50% of the tickets for any travel, including travel to conferences. However, if you're speaking at the conference on behalf of the company, we'll pay for all expenses.

Clone this wiki locally