Week 2 - What I Learned

This is the second week of the Encora’s Apprentice Program, still inside the Reset Phase so it was a mix between technical and non-technical skills. This week’s main topic was about Polyglot Programming, or how to see a programming language as a tool for the job instead of relying on it as if it was vital. This mindset is very important because, as I learned this week, each language serves one particular purpose best and, even though you could use one language for everything, it is strongly unadvisable. 

To help with getting acquainted with this mindset, we were asked to write a solution to one of Google’s Code Jam Qualification Round 2021 problems in a programming language we were not familiar with. I chose to do it in Kotlin, which I found to be very similar to Java (I don’t have experience writing Java) but very different from Python, which is a language I have been using for the past two years; mostly because of the static typing and the explicit data structures, in Python everything is implicit. It is worth mentioning that choosing a specific programming language does not mean that you are permanently attached to it, you can switch programming languages in the middle of the project or use different languages for different components; it all depends on the type and size of the project. 

In addition to the newly gained technical skills, I had the opportunity to refresh my knowledge of essential software development tools like git and shell. This week’s approach to the shell was with bash scripting, which was enlightening because I learned many shortcuts and ways to save time with commands I use on a daily basis, and the basis to write simple programs without using Python scripts. The other tool, git, was used to upload my solution for the Code Jam problem to Encora’s special repository; this included doing a pull request. 

Continuing with the technical resources, we were given a series of videos related to compression, which turned to be a hot topic these days in everything from cloud computing to web development, and not only in ZIP folders. This is where I started to comprehend that being a developer is much more than it meets the eye, you have to think about how to deliver your application too. For example, web developers nowadays must have some kind of compression in their website to be able to serve mobile devices in an efficient way, and as mobile devices are the most important devices for web right now this becomes a big deal. 

Another of this week’s resources was a great talk about who do you trust, by Linda Rising. In this keynote she talks about prejudice and how it affects everyone even if you think it doesn’t, because it comes from evolution and is almost hard wired into our brains; this leads to a lot of trouble when you find your way into a new environment, be it by accident or on purpose, because you don’t feel like you belong which is completely normal, what you have to do is hone your social skills because in certain situations social skills can be as important as technical skills. Even technical and social skills can be related, as developing software is a team effort and to do it successfully precise communication is vital.  

My lightning talk this week was about the Blockchain technology and how secure it is. We are on our way to making an “ignite talk” in 5 minutes, this time it was at most 10 minutes per talk. I also had the opportunity to read two interesting books: The Passionate Programmer by Chad Fowler and Code: The Hidden Language of Computer Hardware and Software by Charles Petzold. These are two completely unrelated books: Code gives you a low-level overview about how computers work, from transistors and slowly works its way up to the more abstract levels like hard drives; while Passionate Programmer talks about your career: how to sell yourself and your skills, how to find your ideal job market, how to select which skills are relevant, etc.  

With so many resources, these two weeks passed by quickly. I am enjoying consuming the resources and trying to process as much information as I can, which can be exhausting, but still, I am pretty motivated, disciplined and eager to find out what the future holds for me! Hopefully more hands-on resources.