Software Planet Group have a proud and thriving knowledge sharing culture. Throughout the year, we participate in several events with this very goal in mind. While our InCamp internships give young graduates the chance to practice their programming skills under the guidance of experienced mentors, our periodical Tech Talks allow the same instructors to take centre stage and share their wealth of knowledge among colleagues.
This year, at our Ukrainian development centre in beautiful Cherkasy, SPG’s latest Tech Talk started with a bang. The event was kicked off with complex mathematics — Machine Learning Algorithms, to be exact. As we heard, more and more businesses are scrambling to get hold of machine learning tools, as these are poised to be the next must-have technology to retain relevance in the coming market.
But why, one may ask, should anyone bother with maths in today’s largely automated world? Well, while some may be perfectly content with the casual awareness of surface functionality, Software Planet Group believe in encouraging developers to understand how systems and solutions work under the bonnet as well. By so doing, one is able to use technology to their advantage as effectively as possible.
And so, on a fine Saturday morning, Tech Talk speaker Alexander Kotov reminded his audience of their old maths classes in order to highlight the fundamental principles of machine learning — linear regression.
The complex topic quickly took a turn for the exciting, however, when guest speakers Maxim Shehovets and Alexander Krivenko recalled their trip to India on a mission to rescue a moribund software project. Like their tongues, jolted by the wildly spicy Indian cuisine, their eyes could hardly believe the dire situation of the 10-year-old project — a mountainous pile of legacy code, no documentation or requirements in sight and no automatic installation or deployment processes either. Overall, the project was in a state of utter inoperability, mainly because whoever had worked on it previously had failed to update the system to newer technologies.
Yet in spite of all these challenges, our team’s dedicated efforts were enough to turn the situation around. The story reminded Tech Talk attendees that no matter how difficult an obstacle may be, our most valuable assets are team spirit, mutual support and a keen focus on expected results.
Later, we asked questions to test the attentiveness of the audience. Those who were able to recall important story details were rewarded with real Indian rupee notes :).
Then, after a tasty break, the event carried on with a discussion on data structures and algorithms. While this was nothing new to attendees, SPG believe revision is often just as important as learning itself. After all, without this key piece of knowledge, we would be unable to create effective architectural solutions. The conversation was also ideal for beginners, as we looked over the basic properties of the “Big O” and revised how to calculate the complexity of algorithms.
Our speakers then went over some examples of data structures in programming languages such as Java and C++, where the attending audience were able to learn that each data structure possesses its own unique properties. This is why inserting a new element may take a very long time, while implementing a search feature can be done very quickly.
Finally, we discussed a simultaneously easy and difficult subject — software engineering itself. It was explained that despite the pervading stereotype, having highly specialised education in the IT sphere has not been a generalised fact for a very long time. Although the idea still persists as a relic of a bygone era, specialised education is hardly necessary today. As the process of software development has simplified over the years, software engineers have reduced the knowledge gap, making way for today’s easily accessible high-level programming languages. Not only has this made the IT sector more available to everyone, but it has also helped to expedite the first steps in one’s career.
For beginners, however, the ease of access can be somewhat misleading, as all the complicated engineering remains tucked away in libraries, frameworks and programming languages themselves. This means that in reality, at some point down the line, all developers will face the inherent complexity of software engineering. Of course, this is no reason to revert to the inventors and engineers of yesteryear; yet it remains of paramount importance to strive to grasp the main concepts of software engineering, as anything other than that would see us dealing with inaccurate guesswork.
In order to get this just right, our speakers suggested always starting with a question. When we begin with a simple “what if the message is not sent?” or “what if the project is not successfully deployed?” they argued, answers will always follow.