Next stops Git, Gitlab, Ruby, Rspec and Cucumber
To get into the workflow of our company, I started learning how to use Git. So, I started with the basics, using Git locally and GitLab as a remote server. Our company offers different trainings and one of them is called “Git essentials”, which I was told to review from the viewpoint of a real beginner. At university, we used Git a few times to clone repositories, but we were not told, which cool things you could do with it, especially when you work in a team on the same project. A VCS is great for tracking changes in files and coordinate the work on those files among multiple people. After I’ve learned how to work on branches, pushing them to remote repositories and creating merge requests, I’ve got a good overview of how my colleagues are working together on the same stuff. Now it was time, to work on my own using Git. I had a few tasks to do and finally pushed my work to the repository and created my first own merge request. The problem was, I have forgotten to switch branches, so I pushed my stuff to the master branch. Luckily, it was no big problem, but of course it should not happen again. After really understanding Git and GitLab, I was assigned a new task to create a new flavor of our training doing the same things with Bitbucket instead of GitLab.
This was the easy stuff. The next training I reviewed, was called “Agile testing essentials”. It was the first time that I used Ruby for programming and that I got a closer look into development driven testing, test driven development and behavior driven development. The next few days I worked with RSpec and Cucumber. With RSpec you write executable examples of the expected behavior of small bits of code in a controlled context. Cucumber reads plain-text descriptions of application features with example scenarios and uses the scenario steps to automate interaction with the code being developed. So, both help us specify the behavior of code. We use Cucumber to describe the behavior of applications and use RSpec to describe the behavior of objects. The language we use in Cucumber is Gherkin. When I first saw the plain text, I did not believe that something like this could work, because it’s just text. This training took me a little bit longer, because I am totally new to Ruby and at university, we are learning Haskell this semester. I have some experience in other programming languages too. Still, it’s not that easy to learn two programming languages at once. Sometimes I got confused.
Then it was time to write my very first Ruby program. If you are totally new to a programming language and you start writing a in your eyes difficult program, it takes some time to become comfortable with the syntax and behavior. After spending some time with this project, I found out, that I’ve learned so much more in this few weeks in programming, then in the last months at university. There you have to visit a course twice or three times a week with a practical part. I don’t know what’s up with that, but I think it has something to do with the motivation to write a program. You write programs which you really need, and not just for fun. The feeling of successfully writing programs is much bigger at work as at university. It’s also really motivating to practice more and become better.
Once a week we have a meeting where we all come together and review the things that happened last week. Afterwards Edmund, my boss, goes through different topics with each of us. We also use the time to work in teams. Me and my colleague Jürgen work most of the time together at these meetings. He helps me to become comfortable with all the topics I’m working on, because my focus for now is to work on the website with Jekyll and write programs for automation in Ruby. It’s much fun to work in such a relaxed atmosphere.