From struggling to thriving: Understanding the journey from Beginner to Proficient (in programming or anything else) 

 February 20, 2024

By  Peter

Join Our Mailing List

We publish fresh content each week. Read how-to's on Arduino, ESP32, KiCad, Node-RED, drones and more. Listen to interviews. Learn about new tech with our comprehensive reviews. Get discount offers for our courses and books. Interact with our community.

One email per week, no spam, unsubscribe at any time.

Learning anything worth learning from the ground up is hard. The road to proficiency is filled with roadblocks, distractions, and dead-ends.

Everyone learns differently and for different reasons. Some of us learn to advance our careers or achieve career goals, others learn to earn a certification, and others learn simply to achieve intermediate levels or advanced levels of performance in their existing field of expertise.

Regardless of how we learn and why, there is a set of fundamental principles and conditions that can almost guarantee that you will reach a level of proficiency that may seem impossible at the beginning of the journey.

In this article, I start by exploring some of the main reasons why we often struggle to reach our learning goals. I have experienced many of these difficulties, and I’m sure you have.

Next, I’ll offer a few ways to help you get through whatever might obstruct your path to proficiency.

A classification for the learner

As with any journey, knowing where you are can help you reach your destination. There are many ways to classify learners, and as long as you pick a reasonably descriptive yet simple option, you can use it to help determine your position in your learning journey.

In this section, I briefly mention four classifications to help you. However, in this article, I don’t put much emphasis on any of them. I simply classify learners into “beginner” and “proficient” to simplify the discussion. There are many ways to classify skills.

First, consider the Dreyfus Model of Skill Acquisition. This model contains these learning levels: Beginner (or Novice), Advanced Beginner, Intermediate (or Competent), Advanced, and Expert.

Next, consider the VARK model for learning styles, categorising learners as visual, auditory, reading/writing, or kinesthetic. This helps us understand how they prefer to take in information.

We can also look at Bloom’s Taxonomy for cognitive level, which categorizes learners based on their ability to engage with information at different levels, such as remembering, understanding, applying, analyzing, evaluating, and creating.

Finally, we can consider the Self-Determination Theory, which examines learners’ motivation levels. This theory categorizes learners as intrinsically, extrinsically, or a-motivated.

By considering these factors, we can create a classification system that considers a learner’s prior knowledge, learning style, and motivation level. This can help educators tailor their approach to teaching and support each learner’s individual needs. These classifications can also help the learner understand their journey, so they (we) become better informed about the process we are undergoing.

What is the difference between a beginner and a proficient in…?

I’ll try to answer this question with the help of examples. In the world of cooking, a beginner might struggle with basic knife skills and following recipes, while a proficient cook can easily chop vegetables with precision and create their own dishes from scratch.

In music, a beginner might struggle to read sheet music and play basic scales, while a proficient musician can read and interpret complex compositions and perform with technical skill and emotional expression.

In language learning, a beginner might know only basic vocabulary and struggle to form simple sentences, while a proficient speaker can hold deep conversations, understand slang and idioms, and express complex thoughts and emotions.

In sport, a beginner might struggle with basic techniques and coordination, while a proficient athlete can execute advanced moves and strategies with speed and accuracy.

In this segment, I will look into the specifics of the difference in knowledge and skill among beginners and proficient practitioners in a diverse set of disciplines. The reason for this comparison is to help you realize that no matter what you are trying to learn, the process is strikingly similar across virtually the entire body of knowledge.


Programming and software development are good places to start because we can use many numbers to compare practitioners at different stages of their learning journey objectively. For example, consider metrics such as Cyclomatic Complexity, the Maintainability Index, Code Churn, Test Coverage, Code Duplication, and Performance Metrics, to name a few.

A beginner software developer in Python (or any programming language) might struggle with understanding basic syntax and how to write simple programs. They might need to look up how to do things frequently and take longer to solve problems and complete programming projects.

The source code written by a beginner often looks clunky and inefficient and is filled with bugs.

Beginners might have trouble understanding how to use libraries and frameworks, while proficient programmers can use them effectively to build more advanced and scalable programs. Proficient programmers also better understand best practices and design patterns and can write cleaner and more maintainable code.

A professional programmer can quickly write clean code, use complex algorithms, understand and implement advanced concepts such as object-oriented programming, and efficiently debug. A professional programmer can also refactor their code to optimize it. They can easily work on large projects and collaborate with other developers. Aesthetics and beautiful code are as important as efficient and effective code.

Advanced programmers have a strong command of the language syntax and can write complex programs. They understand how to use advanced data structures and algorithms effectively and can solve problems more quickly and efficiently. A more proficient programmer can often write programs that implement the desired functionality with fewer lines of code than a beginner programmer.

Beginners are still learning the basics of programming, while proficient programmers deeply understand the language and can use it to build complex and efficient programs.


At the beginner level in electrical engineering, students are just starting to learn about basic circuits, components and electronics principles. They are just getting to grips with how to use tools like multimeters and oscilloscopes and are mostly focused on understanding the fundamental theories and concepts. They rely on copying circuits and code from websites and books without fully understanding how these circuits and codes work. Beginner engineers can quickly become demotivated and upset when something doesn’t work as expected.

On the other hand, proficient electronics engineers have a much deeper understanding of these concepts and can apply them to real-world problems. They can design and analyze complex circuits, troubleshoot and debug complex systems, and have a strong grasp on advanced topics like digital signal processing and microcontroller programming, including their edge cases. Proficient engineers also have practical skills, such as soldering and PCB design, and can work with various electronic components and systems.

Beginners are still learning the basics and are focused on understanding theories, while proficient engineers have the skills and knowledge to design, analyze, and troubleshoot complex electronic systems.


At the beginner level, tennis players struggle to learn the game’s basic skills. They might find it very challenging to keep their serves in the court, and their hits might not have much power or accuracy. They are also still getting the hang of moving around the court, coordinating their legs, hands and eyes, and reacting quickly to their opponent’s shots.

Proficient players, on the other hand, have honed their skills over years of practice. They have developed powerful serves, accurate shots, and strategic placement of the ball. They are also much quicker and more agile on the court, able to anticipate and react to their opponent’s moves.

Proficient players deeply understand the game, and their movements and decision-making are much more precise and effective. They also have better control over their emotions and mental aspects of the game, allowing them to stay focused and perform consistently at a high level.

Sounds familiar? A proficient tennis player operates similarly to a proficient engineer or programmer in a different practice field.


Beginner pilots are just starting out and are struggling to learn the basics of flying. They are still getting the hang of controlling the aircraft, and the quality of their maneuvers may vary wildly from one day to the next depending on the weather, the time since their last flight, and their emotional state. They might need more help from their instructors and have limited experience with different flying conditions.

Proficient pilots, on the other hand, have a lot more experience and have mastered the skills needed for flying. They can easily handle the aircraft and make quick and accurate decisions. They are also more confident and comfortable when flying in different weather conditions and can navigate through unforeseen situations more effectively. Their maneuvering is much less varied, and they can deal with much more diverse weather and other environmental conditions.

Beginner pilots are still working on their communication, navigation, and decision-making skills. They also learn how to handle the aircraft during takeoff, landing, and in-flight. Even straight-and-level flight can present special challenges in gusty weather. Proficient pilots have honed these skills and can fly the aircraft smoothly and safely.

Beginner pilots are still in the learning stage and are building their skills and experience, while proficient pilots have already mastered the necessary skills and can handle a wider range of flying situations.

Can you self-assess where you are in the learning process?

Self-assessing where you are in the learning process can be done by reflecting on your understanding of the material, evaluating your progress towards mastery of the subject, and identifying any areas where you may need improvement. This can involve reviewing your notes, testing your knowledge through practice quizzes or exams, seeking feedback from peers or instructors, and setting goals for your learning journey. By assessing your current position in the learning process, you can better tailor your study habits and strategies to reach your academic or professional goals.

In my previous life as a University lecturer and currently as an online instructor, I often see students struggling to self-assess. At University, a student could look at things such as assignments and exam results, compare themselves to their class peers or discuss this with their supervisor or lecturer to get a fairly accurate estimate of where they are and where they should be in their learning journey.

However, these information sources are usually unavailable in the context of online learning or other non-institutionalized learning methods. Even though there are things you can do to self-assess (I mentioned a few in the previous paragraph), it is still not easy because learners usually don’t have a framework to work with.

When taking a road trip, you can use a map to tell you where you are and how long there is to go. But when you are learning, there is no map. But, there is a framework for learning. A framework of learning is a semi-structured guide that outlines the key concepts, skills, and milestones that learners should achieve as they progress from beginner to proficient in a particular subject or field. This framework can help learners self-assess their progress by providing clear benchmarks for where they should be at each stage of the learning process.

In the next few paragraphs, I will approach this topic by introducing the basics of the learning process as informed by the relevant academic research. Bear with me here. I know you want action, but understanding how people learn is extremely important in our quest to become better learners and eventually proficient in whatever we want.

Understanding the learning process

Understanding the learning process involves four stages outlined by educational psychologist Dr. David Ausubel: attention, retention, production, and motivation (see Observational Learning).

During the attention stage, learners focus on the information presented to them. This could involve using visual aids or interactive activities to engage students and help them concentrate.

Retention refers to the process of storing and remembering the information. Strategies such as using mnemonic devices, like acronyms or visual imagery, can help students retain the material more effectively.

Production involves actively using the information that has been learned. Encouraging students to apply what they have learned in real-world situations or through problem-solving activities helps consolidate their understanding.

Finally, motivation plays a crucial role in the learning process. Keeping students engaged and interested through incorporating real-world applications or connecting the material to their interests can enhance learning motivation.

When it comes to learning a new skill, the journey from being a beginner to becoming proficient can often feel like an uphill battle. From the initial struggles of grasping basic concepts to the gradual accumulation of knowledge, there is no denying that the process requires dedication and effort. However, while many individuals may find themselves getting stuck at the stage of understanding and retaining information, I believe that moving from attention and retention to production is the real obstruction.

There is so much information out there to be “learned” that beginner students fall into the trap of wanting to assimilate more of it constantly without ever choosing to move to the production step of the process. Thus, they remain students at the beginner level until they quit and move on to something else.

The stages of learning and skill acquisition

Here’s another learning model that is interesting and good enough to explain the learning process as I have seen it in myself and my students. I am unsure who first developed this model, but I have seen equivalent models in multiple publications.

The four stages of learning and skill acquisition in virtually anything are:

1. Understanding the basics: This stage focuses on learning how to use the knowledge of physical tools of the discipline being learned.

2. Practicing techniques: In this stage, you start to apply what you’ve learned by experimenting with variations and more advanced techniques.

3. Developing a personal style: This stage involves finding your own unique style and vision as a practitioner and even going beyond what you have explicitly learned to explore and create new subject matter that helps you with specific problems.

4. Mastering the craft: The final stage is all about refining your skills, improving, and maybe even pushing the boundaries of traditional knowledge in the field. You are so good at this that you make contributions that others use and push the subject matter to a new level.

If we apply this skill to, say, photography, then we get this:

1. Understanding the basics: This stage focuses on learning how to use a camera and understanding concepts like composition, lighting, and focus.

2. Practicing techniques: In this stage, you start to apply what you’ve learned by taking lots of photos and experimenting with different settings and techniques.

3. Developing a personal style: This stage involves finding your own unique style and vision as a photographer and exploring different genres and subject matter.

4. Mastering the craft: The final stage is all about refining your skills, continuing to improve, and maybe even pushing the boundaries of traditional photography.

It’s important to progress through each stage because it helps you build a solid foundation and skills in photography. Understanding the basics lays the groundwork for everything that comes after, while practising techniques helps you develop your technical skills and eye for a good shot. Developing a style and mastering the craft is essential for finding your voice as a photographer and creating meaningful work. Each stage builds off the previous one, and together they help you become a well-rounded and skilled photographer.

The Maker learning model

The Maker Learning Model is a way of teaching and learning that focuses on hands-on, experiential learning. It’s all about students getting their hands dirty and learning by doing rather than just listening to lectures. In this model, students are encouraged to work on real-world problems and projects, which helps them develop critical thinking and problem-solving skills.

One of the key components of the Maker Learning Model is project-based learning. This means that students work on projects and problems that are relevant and meaningful to them, which makes learning more engaging and enjoyable. Collaboration is also a big part of this model, as students often work in groups to solve problems and complete projects. This helps them develop communication and teamwork skills.

Technology and creativity are also integrated into the Maker Learning Model. Students are encouraged to use technology to help them solve problems, create things, think outside the usual constraints, and develop new and innovative ideas.

The origins of the modern Maker Movement can be traced back to the early 2000s when a group of educators and innovators started to advocate for a more hands-on approach to learning. They believed that traditional education was too focused on rote memorization and standardized testing and that students were not being adequately prepared for the complexities of the real world.

The Maker Movement gained traction with the rise of affordable technology like 3D printers and microcontrollers, making it easier for individuals to create and innovate in their homes or classrooms. Makerspaces, or community spaces equipped with tools and resources for making, also began to pop up worldwide, providing a space for people to collaborate and bring their ideas to life.

The Maker Learning Model has gained popularity recently because it fosters creativity, critical thinking, problem-solving skills, and collaboration. It encourages students to participate actively in their own learning and allows them to explore their interests and passions.

The Maker Learning Model is all about getting students actively involved in their own learning and helping them develop important skills for the real world. This is why I find it particularly useful in any discipline with a strong practical dimension, especially in engineering, applied sciences, and the arts.

The beginner mindset

The beginner mindset typically refers to the attitude and approach of someone who is new to a particular subject or skill. It often involves a willingness to learn, ask questions, make mistakes, and seek guidance. For example, in the context of programming, a beginner mindset would involve being open to learning new concepts, practising regularly, and being persistent in tackling challenges. It often involves being humble and accepting that there is much to learn.

When attempting to learn something new, it’s crucial to approach it with a beginner mindset. This means being open to learning, asking questions, and being curious about the various features and resources available to you.

Embracing a beginner’s mindset is like giving yourself permission to be a learner all over again, no matter how much of an expert you might be in your field. It’s about approaching life and work with the curiosity and openness of someone who’s just starting out. This mindset is incredibly valuable because it keeps you hungry for new knowledge and experiences, ensuring that you never get too comfortable with what you already know.

Think about it: when you’re new to something, you ask questions, you experiment, and you’re not afraid to make mistakes because you expect them as part of the learning process. This is the essence of growth and innovation. By keeping that beginner’s spirit alive, you can continually adapt to new challenges and changes in your environment.

I also feel that embracing a beginner’s mindset can also make your journey more enjoyable. There’s a certain joy in discovery and learning that often gets lost when we think we’ve mastered a subject. As a beginner, you have no choice but to give yourself more time to achieve a goal because you are learning, not just executing. This additional time can effectively reduce the stress of goal-driven work.

And, of course, by maintaining a sense of wonder and curiosity, you can find satisfaction in the ongoing learning journey, not just the destination.

Ultimately, the beginner’s mindset is about humility and the recognition that no matter how much you know, there’s always more to learn. This humility can lead to deeper understanding, better connections with others, and personal and professional growth. So, keep that eager, beginner’s heart. It’s your secret tool for staying relevant, adaptable, and continuously inspired.

The beginner learner’s block

When it comes to learning something new, there are so many choices out there that it can be overwhelming. Whether it’s picking up a new hobby, learning a new skill, or diving into a new field of study, the variety of options can leave beginners feeling confused and stuck.

It’s common to feel excited and confused when starting a new learning journey. The excitement comes from the prospect of acquiring new knowledge or mastering a new skill, but the confusion can lead to a halt in progress. Without clear direction and guidance, beginners may struggle to make headway.

Common barriers beginners face include not knowing where to start, feeling intimidated by the amount of information, and lacking the self-confidence to take the first steps. To overcome these barriers, it can be helpful to break the learning process down into smaller, manageable steps, seek out mentors or resources for guidance, and remind yourself that it’s okay to make mistakes along the way. Setting realistic goals and celebrating small victories can also help to keep the momentum going.

By acknowledging these barriers and implementing strategies to overcome them, beginners can move forward with their learning journey and achieve their goals.

Essential tools for learning success

Today’s essential tools for learning success include AI tools, productivity boosters, and customer engagement resources. AI tools like language learning apps and educational platforms help personalize learning and provide instant feedback, making learning more efficient.

Productivity boosters such as task management apps and study planners help students stay organized and focused, reducing procrastination and increasing study time. Customer engagement resources like online forums and virtual study groups allow students to collaborate and learn from peers, enhancing their understanding of the material.

To effectively utilize these tools, setting specific goals, prioritising tasks, and maintaining a consistent study schedule is important. Personal struggle plays a crucial role in achieving learning success. Overcoming challenges and pushing through difficult concepts leads to deeper understanding and long-term retention. As the saying goes, “no pain, no gain” – the effort put into learning directly correlates to the knowledge gained.

Ultimately, the only way to truly learn something and become proficient at it is by doing it. Actively engaging in hands-on practice, asking questions, and seeking feedback are essential for mastery. By combining these tools with practical tips and embracing personal struggles, students can enhance their learning success and achieve their academic goals.

Set up a solid foundation for effective personal learning

Setting up a solid foundation for effective personal learning is crucial for success. First things first, it’s important to establish clear learning objectives and identify your personal learning style preferences. This will help you tailor your study techniques to suit your unique way of learning.

Creating a dedicated study space with minimal distractions is another key factor. Having a quiet, organized space to focus on your studies will help you stay on track. Setting a routine for consistent learning is also essential. By scheduling regular study sessions, you can make learning a habit and ensure steady progress.

Various resources and tools, such as online courses, educational apps, and study groups, are available to aid personal learning. Joining a community of other learners can also be beneficial. You can learn from others, share your knowledge, and support each other in your learning journey. Remember to contribute to the community by helping others, and don’t hesitate to ask for help when needed. Giving back more than you take will help you learn more effectively and foster a supportive learning environment for everyone involved.

Making a leap forward towards proficiency

To leap forward towards proficiency, actively seeking opportunities for learning and growth is important. This means setting specific goals for what you want to achieve and consistently practising and refining your techniques. Seek feedback from others to identify areas for improvement and then work on those specific areas.

There are many ways to improve your skills and knowledge, such as taking on new projects, attending trainings or workshops, or even finding a mentor to learn from. It’s also essential to stay curious and open-minded, always looking for new ways to do things and staying updated on industry trends.

Consistency is key. Make learning a habit by dedicating time each day or week to practice and improve. Don’t be afraid to make mistakes; they can be valuable learning opportunities. Keep pushing yourself outside your comfort zone to challenge and improve your skills continuously.

You can make significant progress towards proficiency in your chosen area by actively seeking opportunities for learning and growth, setting specific goals, seeking feedback, and consistently practising and refining techniques.

What to do when you are stuck

You can try several problem-solving strategies when you’re feeling stuck on a problem or task. One approach is to break the task into smaller, more manageable steps. This can make the problem seem less overwhelming and help you tackle it step by step. Another strategy is seeking help from others, whether it’s a friend, colleague, or mentor. Getting a fresh perspective or an extra set of hands can often lead to new solutions.

It’s also important to stay calm and maintain a positive mindset while tackling the issue. Taking a break to clear your mind or trying a different approach can also be helpful. If you’re still feeling stuck, don’t be afraid to seek guidance from a mentor or a professional. They can offer valuable insights and expertise to help you get unstuck.

Remember that asking for help and exploring different problem-solving strategies is okay. Stay calm, approach the blockage with a positive mindset, and don’t hesitate to seek guidance if needed.

In conclusion…

The journey from beginner to proficient may seem daunting initially, but with patience, dedication, and the right mindset, you can learn anything you want.

Remember, every expert was once a beginner who never gave up.

So keep pushing yourself, keep asking, and keep learning.

The road may be long, but the destination is definitely worth it.

Good luck on your journey!


Advancing programming skills, Beginner mindset, Coding challenges, Programming skills

You may also like

{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}

Understanding the power requirements is crucial for any enthusiast using the Arduino Uno in their projects. How you manage voltage, amperage, and power sources impacts the success or failure of your endeavours. In this guide,

Read More
The Ultimate Guide to Powering Your Arduino Uno Board

If you are curious about how electronic devices work, understanding the fundamentals of the operation of their basic components is essential. Every electronic device—from the smartphones in our pockets to the satellites orbiting our planet—contains

Read More
A Guide to Essential Electronic Components in Circuits