Sharing knowledge is important for us and we put a lot of effort into making it as quick and transparent as possible, especially for a team distributed across the globe.
My adventure with netguru started during the Ruby on Rails September workshops in Krakow. The rewards of participating were many. During the workshops I met inspiring people at different levels of programming experience. I was given a chance to work under mentorship of Oskar and received many invaluable tips and tricks. Furthermore, I wasn’t there just to master my programming skills, but also my soft skills. I realized that wasting time by being shy is never a good option.
Remember, Netguru's workshops are a good place to meet new gems, learn good programming techniques and improve your social confidence.
Being an intern means having many questions. Some of them are really common, and that is where the internal wiki comes in handy. There you can find documentation that outlines netguru procedures and tips that make work easier. The benefits of having a wiki page are many—it saves time for interns and lessens the amount of work needed to introduce a new employee for starters. The wiki saved my skin many times and also was my best friend when it came to configuration of my notebook. Consuming information requires just one click! As a standard wiki webpage, it needs to be updated all the time, but providing updates is as easy as pie - it only requires going to edit view, changing instruction and publishing.
Mentor / Leader
Every novice needs an affable person around. That’s why every intern is assigned to project a team and internal team. The project team is a group of people working within the same project and consists of developers, a project manager and quality assurance specialists. It is also the place where you meet your mentor—the person who gives you a helping hand during the adjustment process to a new job.
The internal team is where you meet your team leader. She/he is a senior developer that provides you with detailed feedback every month and additional advice.
When a problem seems unsolvable, it is always good to ask your mentor or leader for clues. It is something to not be ashamed of, because it is highly probable that they have run into the same problem as a beginner. To make life easier, after receiving a clue, you can update the wiki webpage.
As a future Mechatronic engineer I must admit, that systems with feedback behave much better that systems without. Therefore it is mandatory to submit your code to review even if the feedback you receive does not laud what you committed. By getting feedback for what is wrong, you receive a great chance to correct and study the problem not to make the same mistake twice. Every developer knows that it is not easy to apply every “best practice pattern’” in a single commit.
Netguru promotes “prevention over intervention” review schemes—when you see lines of code that could have been written better tell the author! It is good to discuss the best solution before release. But how does it works in practice?
Internal Review App
Projects participate in the peer code review scheme. Every commit has to be checked by another developer (preferably outside of the project team) and be given feedback. The whole process of peer review was described in a previous post.
In general, there are 3 types of feedback that one can get:
- commit gets accepted - there is nothing to be changed and you should keep up the good work
- commit gets passed - the code is acceptable, but could be written better - take a quick look, why it got passed, and apply changes or discuss if the suggested solution was really the best one
- commit gets rejected - a huge refactor cannot be avoided, you should not deploy this code unless corrected
Having written code that is definitely not ready for deployment, you can always ask someone more experienced for a pair-programming session. This type of review requires more time, because both programmers need to attack the same problem together and exchange thoughts. They can change code continuously and discuss a preferable solution in real time. It is also good that any unclear points can become clarified very fast. If you want to dive into the details, I highly recommend reading this blogpost.
Weekly internal webinars are a nice way to share knowledge between team members and they allow you to stay up-to-date with latest trends in programming. Our most recent webinar was connected efficient deployments of Rails applications on VPS, while another was on speeding up load times.
Regardless of geographical location, every developer can participate in the event. Webinars are also recorded, so if someone is not able to watch live, they can watch the presentation later. Anyone at netguru has something to share, which means you don’t have to be a senior developer to organize one! Every participant is invited to ask and discuss. Interactivity counts for a lot, since people mostly learn by doing—not just by listening. Every webinar includes ways to be involved; some are even combined with workshops.
Books / Podcasts
Coding is the language of future. Here at netguru we place a lot of effort to make it easy for our developers to boost their skills. On the first day of the job, every employee receives an access to set of books on programming and some awesome programming podcasts.
Open Channels - Slack
Finally, you can join open channels on Slack or create one. We emphasize transparency in communication, therefore feel free to participate in the discussion of your interest. Examples include spree chat, senior chat, angularjs chat and there are also non-tech ones, like the ones dedicated to games or music. Channels are a great place where people can easily exchange interesting resources or help each other with certain technology stack questions.
If you'd like to join our free Ruby on Rails workshops, take a look at our schedule for 2015! Next one on our list is Wrocław!