Guest Post: Doreen

Doreen

We’re about to finish our ten-week training program with two weeks of major group projects. Here’s an update from our associate Doreen:

My experience so far at has been interesting. I am learning at an enormously fast rate than I have ever learnt before. Concepts I learnt in school are now beginning to sound very clear and much more comprehensible. In the first week of the training, we were taught some financial basics. Concepts like stocks, bonds, arbitrage, fractional and full reserve banking among others were well taught. We were later introduced to some C++. I already had some knowledge about it. All I knew was when you wanted to declare or initialize a value, you have to explicitly declare its data type. I honestly didn’t know why it had to that but I later came to understand that declaring its data type determines the amount of space that’s needed to store it in memory and also determines the kind of operations that can be done on it. We had some practice exercises that made us understand much better.

The whole training program was designed in such a way that when we have a week of practical sessions, the subsequent week is much more theoretical and involved discussions amongst ourselves. We were divided into groups and given topics to research and prepare presentations to be delivered to the class every day after lunch. I really do not like presentations because I get very nervous when a handful of people look at me at once but since we did it for quite some time, I have learnt to live with it even though I still get nervous when it’s my turn to talk. We were introduced to agile development including creating user stories from requirements required by a client, attaching story points to the stories based on their levels of difficulty, conducting sprints and SCRUMs to work on the stories in stages, designing prototypes based on the user stories all the while keeping the client involved in most of these activities and also working as a team. At first, working as a team was rough because most of us were not used to working as a group and we also did not know our individual weaknesses so dividing work within us was a bit difficult.

We moved on into the world of object-oriented design with Java. We were taught how to model a problem by identifying objects and classes and the relationships that may exist between them. Our first Java project as a team was to design a command line client management system for TurnTabl. The application had to allow a user to be able to search for a client, add a new client, update a client and also delete a client from the system. Sam acted as the client we were working for and I must say he really did play his role quite well. For the past subsequent weeks, we have been introduced to Databases with postgresql where we modified our previous command line project to incorporate making calls to a database we created using the JDBC template. We were taught the importance of writing unit tests for any code we write and also working with continuous integration in our workflow.

We were introduced to using the Spring framework as a dependency injection as well as Swagga, A bit of data science with numpy and using jupyter notebooks, we had a brief introduction to Hadoop where we created clusters of four and in each cluster one of us acted as the master node and had control over the worker nodes and granted permissions to them in order to have access to resources on the distributed system. We were also introduced to Redis as a pub/sub system where we subscribed and published to channels we created and then reading messages published on those channels as well. Our next project was on building microservices where we deployed our applications on Heroku and then incorporating Redis to act as a pub/sub between our microservices so that each of the service would be notified as soon as a request is made. I won’t lie this project was complicated. We had to do lots of researching and figuring stuff out but in the end, we pulled through and ended up gaining much more knowledge in implementing Redis into an application. You can tell that we have actually been taught lots and lots of concepts and had lots of practice on what we have been taught and in fact we are still actually learning new stuff. We were currently introduced to Angular were we each revamped our previous project from the command line to a single page application.

We have adopted some useful tips as developers as well. As developers, we always want to have our code compile successfully all the time but in reality we know that isn’t the case at all. Once we see those red lines appearing on our screens, we have this sinking feeling in our guts. I believe that the main reason why we hate to see error messages is because we don’t actually read them. Even though some reasons for the error messages are so annoying especially the ones you get when you forgot to add a semicolon somewhere and once you realize the cause of the errors was something so minute, we feel like just smashing our computers against the wall, most of them are quite helpful and even go as far as even giving you hints or suggestions on how to solve them. When I see error messages, I still get that sinking feeling but I now read them and know where to spot the exact error message among the other messages that are displayed.Our mantra here is ‘git add, git commit, git push’. Another helpful and significant work ethic we have adopted in the course of the training.

One of the major reasons I decided to join turntabl was because of the plan Sam has in relation to volunteering. When we actually start to work for clients, we dedicate a portion of our time to do some volunteering work which involves teaching ICT in some basic schools and also helping out in Global Code. We are currently in the last phase of the training where we will be given projects to work on for two whole weeks. I seriously don’t know what to expect but one thing I know is that it’s going to be one heck of a project.

Thanks Doreen! If you’re interested in working with turntabl please get in touch!