Introduction
Do you ever experience the desire to learn coding techniques or new technologies, yet find yourself caught in a cycle of procrastination? Watching endless tutorials to just end up frustrated? I have been there and I know it can be discouraging. But, rest assured, in this article I am going to share the antidote to this vicious cycle of inaction or what some developers call “The Tutorial Hell”.
First, let me clarify something — I'm not against tutorials or online classes. However, I do want to raise awareness about the potential drawbacks of not applying the newly acquired knowledge. After all, we all require a starting point. Learning how to code or conduct data analysis is similar to riding a bike. You can't gain bike-riding skills solely from reading a book or watching a YouTube video; you must actually mount a bike and pedal through the discomfort of the possibility of falling. You won't feel comfortable with a new technology or coding language until you get your hands dirty and build something.
“You don't have to be great to start, but you have to start to be great.” — Zig Ziglar
I'm not claiming to be an expert, I've only been in the field for 3 years. However, I want to share insights into this method, which has propelled me into exponential leaps of knowledge and I believe you can benefit from it as well.
The method consists of choosing the right project for you, but, how do you choose the right project? I approach this by asking myself two questions:
- Is there anything I could code to make my life easier?
- What am I curious about, what do I want to learn more about?
Code Away The Troubles
Embracing the “Code Away The Troubles” mindset requires you to pay close attention to your surroundings. What is causing discomfort? Are there any aspects of your everyday life you'd like to change or mend?
In order to achieve great learning progress, you have to believe that every problem has a solution. For example, perhaps you want to learn a new language, leading you to leverage Alexa's API to build a language quiz to practice. Or possibly you desire to become more productive, so you could code your own personalized to-do list app. As you adopt the mindset of the "problem solver" you'll recognize that most problems can be solved with some code, exposing you to valuable experience.
Search the web for an API that can be useful to you or get inspiration from someone who navigated similar obstacles to yours. Remember, most problems can be solved with a simple google search.
Allow me to share my own personal experience when adopting the “Code Away the Troubles” mindset. I enjoy working out, and I use a smartwatch to track my exercise. However it fell short providing the statistics that I needed. Eager to delve deeper, I leveraged its API infrastructure to develop my own workout dashboard. This dashboard displayed the information that I was looking for and allowed me in a sense, to achieve two goals at once. Not only did I create a tool aligned to my needs, but I also employed the project to gain proficiency in Google Looker. Initially I attempted to learn it through tutorials and randomly building, yet no learning progress was gained. The turning point arrived when I linked the goal to crafting the workout dashboard. This Objective-driven approach infused my learning journey with structure and gave me immense learning progress. Every challenge is an opportunity for growth and learning.
So, to summarize:
- Pay attention to your surroundings.
- Have confidence in finding coding solutions.
- Set clear learning goals.
- Leverage public APIs and seek inspiration from others.
Explore Your Curiosity Through Code
“Curiosity is the wick in the candle of learning.” — William Arthur Ward
Learning driven by curiosity can be one of the most rewarding experiences. It takes us back to those moments in high school when certain books felt like a chore to read. However, years later, these same stories became fascinating. This transformation happens because we were curious, not compelled.
When you embark on a journey to learn something that genuinely intrigues you, it's a game-changer. There's no pressure; it's all about the joy of exploration. Whether it's diving into a code project, immersing yourself in a subject, or crafting a unique app, time seems to slip away.
Imagine you're passionate about a sport, or perhaps you're deeply concerned about global warming. With coding, you can transform these interests into actionable projects. Want to know more about a sport? Dive into the available datasets and build an app that offers insights and information you crave. Concerned about climate change? Code an app that provides real-time weather updates.
On a personal note, I'm a coffee aficionado. When I relocated to the vibrant city of Austin, Texas, I was eager to explore its rich coffee culture. With no one to guide me, I took this on my own hands and made this journey even more exciting. I leveraged Yelp's API and my coding skills. The result? My very own coffee shop map.
But that's not where my curiosity stops. Recently, I've developed an interest in delving into the world of cultural artifacts found in museums. In pursuit of this interest, I once again delved into the treasure trove of public datasets and APIs available to me, allowing me to embark on a fascinating study.
So, I invite you to seek within and answer the question: What am I curious about? The possibilities are endless, don't be afraid to explore. Once you start you'll be hooked and will want to quench that thirst for knowledge. You'll find that this is the key to unlocking a world of endless wonder and learning.
With A Little Help From My Friend: ChatGPT
Let's suppose the last two approaches for choosing a project don't work for you. Rest assured, ChatGPT is at your service. AI shouldn't be feared, quite the opposite. This is an amazing tool that can aid you in your learning journey.
ChatGPT can streamline the project selection process. Here's my approach:
- I begin by compiling a list of technologies or programming languages I wish to practice.
- Next, I note down topics that genuinely pique my interest.
- With this list, I formulate a straightforward prompt for ChatGPT. I ask it to generate project ideas that align with my chosen topics and involve the technologies I want to study.
- This method ensures that the project ideas I receive are tailored to my learning goals and preferences.
Give me a couple ideas for coding/data analysis projects using python,
power BI and any other additional/supporting packages where the topic is:
world history, and culture.
AI plays a pivotal role in brainstorming ideas, recommending data analysis methodologies, suggesting APIs or databases and even crafting code snippets that you can study. As you build your project, don't be afraid of asking ChatGPT for help, just remember, the key is to learn, so don't let the AI do all the heavy lifting!
Practical Application — The Question Driven Development
When I first started my Data Analysis/Coding journey, I fell victim to what people call "Random Programming". This essentially translates to coding without structure or a clear purpose, you write lines of code at random hoping they'll miraculously come together, but as you may have guessed, this was a terrible mess. After many failures and flops, my former boss and mentor showed me The Question Driven Development framework.
This approach consists of having a well defined end goal — the project you chose — and breaking down each step along the journey into smaller questions. You basically have a big project that is made up of smaller projects. Whenever you encounter a challenge or roadblock you address it by asking the necessary questions to find a solution.
“A journey of a thousand miles begins with a single step.” — Lao Tzu
Arguably, the most challenging aspect of this framework is simply taking that initial step, overcoming the dread of a blank script. Pushing aside those negative thoughts and diving right in is the key. Grab a pen and paper, and start by jotting down some questions. For instance, when I was developing my Workout App, my very first need was to extract the data. So, my initial question was: ‘How can I extract my workout data?' This led me to delve into the API documentation and kickstart the coding of the data extraction function.
Subsequently, I encountered the need for data formatting, prompting yet another question. And just like that, question after question, I was simultaneously learning and coding. Keep the queries coming. When you hit a roadblock, you have two options: either embark on a quest through the vast resources of the internet or turn to ChatGPT for assistance. But don't stop coding! In the early stages, it's perfectly normal to copy and paste code snippets from online sources. However, the real magic of learning happens when you manage to integrate these small coding projects harmoniously.
Pay close attention to your code and observe how all the pieces of code come together to create your project.
So summarizing:
- Embrace the start: Taking that initial step is the hardest part, that is why choosing the right project is crucial.
- Remember your end goal: Have a clear goal of where you want to take this project. The objective will structure the questions.
- Question — Driven progress and learning: Break down your end goal into smaller questions. Tackle one at a time, then make them all work together.
- Navigate roadblocks: Keep the momentum going, don't stop! Seek solutions on the internet, ChatGPT or even with a friend or mentor.
- Explore the project: While it's perfectly fine to leverage existing code, the most valuable learning occurs when you attentively engage with the material.
If you want to learn more about Question Driven Development, I recommend you read this article and also visit bigboxSWE's YouTube channel. He posts great educational content about the right mindset to have when it comes to learning programming.
Embrace the Path of Learning
In the world of coding and data analysis, the journey is as important as the destination. Embrace the idea that you don't have to be an expert to start. Remember, every small step you take, every question you ask, and every project you complete is a part of your learning journey. Keep moving forward, and you'll find that you have the power to unlock new possibilities.
Coding and data analysis are dynamic fields, and your skills must evolve with them. Each project you undertake, each question you answer, contributes to your skill set. Think of it as leveling up in a video game, where each new concept learned becomes the foundation for the next. Your commitment to skill development will not only enhance your capabilities but also your confidence in tackling more complex challenges.
As you embark on coding projects fueled by your curiosity, you're not just learning; you're building a portfolio of work that showcases your abilities. These projects become more than lines of code; they're tangible evidence of your growth and creativity. Your portfolio isn't just a collection of projects; it's a story of your learning journey and a testament to your dedication.
Your journey into coding and data analysis isn't confined to personal development; it also has the power to fuel your professional growth. The skills you acquire can open doors to new career opportunities, whether you're aspiring to become a data analyst, a business intelligence expert, or a developer. Employers value professionals who can turn their curiosity into practical solutions.
So, as you navigate this path of learning, remember that it's not just about code; it's about embracing a mindset of continuous growth. Each project, each question, and each line of code contributes not only to your skill set but also to your portfolio and professional journey. Keep moving forward, and you'll discover that your curiosity and determination are the driving forces behind your success.