My overall career goal is to transition into data engineering There are some overall areas that I can improve on that will make me a more confident engineer. This blog post would be super long if I explained how I plan to improve every single area. So for this first article, I’ll be talking about how I’ll improve my overall programming skills by learning data structures and algorithms, design patterns, and Java programming.
Data Structures & Algorithms
Data structures and algorithms are the building blocks of creating good software, so it’s important to truly understand them. As an Information Technology student, there’s not that much emphasis on data structures or algorithms, understandably. Also, when I was interviewing for jobs, I only memorized some algorithms and data structures to pass the technical interview (don’t be like me). That being said, it’s time I revisit this topic.
I am mainly following the 2014 version of UC Berkeley's CS61b course on data structures. Completing the labs, homework assignments, and projects that come with the course will keep me busy actually building things.
I’ve created a github repository to track my progress: https://github.com/kriscodez/CS61B-2014
Design Principles & Design Patterns
Whenever I work on a project, the thought that is always in the back of my mind is: how should this be structured & organized? After spending enough time on data structures and algorithms, I plan on learning more about SOLID principles and commonly used design patterns. After that, I’ll choose a book to follow for more in-depth information.
There are quite a few projects that I’ve written before that can be refactored with design patterns and principled in mind, so that’s how I plan on applying what I’ve learned. I want my code to be reusable, maintainable, and done with intent.
Intermediate Level Java
There are a few different languages you can choose from when learning about data engineering, python being the most popular right now. Java is also a good choice, and that’s what I’m starting with.
I’m using a book called “Core Java for the Impatient” by Cay Hortsman to get caught up on Java Syntax and features. After that I’ll learn about the spring boot framework and then multi-threading. Once I’ve built a few personal projects with Java, I’ll be ready to move on to learning Python.
Good Programming Skills Are Important
Some describe data engineers as software engineers that specialize in data. I’ve spent some time looking at what knowledge is required for both fields and there’s significant overlap. Data engineers are responsible for building and maintaining data pipelines, making data usable for analysts and scientists, improving database efficiency, and other related tasks. Being a good programmer is at the root of all of those things, so it’s worth investing time in improving that specific skill set.

Top comments (0)