The learning process
Learning concepts and then practicing them will help you to more fully understand how things work and fit together. Projects are the ultimate method for ensuring that your theoretical understanding aligns with how the programming concepts and techniques actually operate.
When learning, your mind will consistently switch between focus mode and diffuse mode. Focus mode occurs when you are consciously focusing on learning, reading, watching videos, or working on a project. Diffuse mode occurs subconsciously, at times when you are not actively learning, such as when you’re doing the dishes, exercising, or sleeping. In this state, your mind goes about the business of connecting what you have been learning to the other things you know. This is where breakthroughs happen.
It’s important to know that your mind goes through these two states when learning because you can utilize this to make your learning more efficient. When stuck on a concept or project, taking a break to refresh and let your subconscious work on making connections more often than not yields a solution to your problem. The trick is to put effort into solving the problem first and then take a break.
What to do when you’re stuck
You will inevitably get stuck at some point in the curriculum, perhaps due to a concept that you are having difficulty understanding or perhaps due to something not working correctly in a project. Whatever it is, use the following tools to get unstuck:
Google it: You can be certain someone else out there has encountered the same problem as you at some point. A quick Google search can often lead to a solution.
Take a break: Allow your diffuse learning state to work on the problem.
Ask for help in our chat: Come prepared with your research. People will be more willing to help you when they can see you have already put effort into trying to figure out the solution on your own.
A note on AI code generation
As technology advances, we have seen some incredible tools emerge that can help accelerate coding capacity. One particular area that has exploded in popularity lately is the usage of Large Language Models (LLMs) and generative AIs for code completion (like GitHub Copilot) and code generation (like ChatGPT).
While these tools are amazing, learners should be aware of the impacts that using such tools can have on core competency. David Humphrey, a computer science professor, wrote about ChatGPT and its potentially negative impacts on core learning. It is a good read about the pitfalls of using generative AI in an educational context.
For learners that are new to programming, tools like ChatGPT or Github Copilot can result in some blindspots and gaps in your knowledge.
By using a generative AI, learners may miss the opportunity to discover how something works and why things are done that way.
Asking good questions is an important skill to have, and using generative AI to skip asking people (like our helpful Discord community) means that your development of this skill is delayed.
Learning to talk about the code that one writes is another important skill. In a professional environment, it is highly likely that you will be doing code reviews where you have to explain the how and why behind what you are presenting. Using the Odin community to ask good questions about your code when you require help can help develop this skill as well.
As David Humphrey mentions, the output of generative AI must be closely scrutinized, and learners who are new to programming generally don’t have a good overall understanding to be able to determine if the output is good or bad.
Managing your study time
You will have more success with Odin by putting consistent time into it rather than working on it once a week. Building a habit of studying every day at a specific time and with a specific goal will ensure that you make consistent progress.
It may take you longer than others to grasp concepts, or it may take you less time. This doesn’t mean you’re smarter or dumber than others, it means you’ve had differing life experiences that may or may not have prepared you for learning this stuff. Someone who grew up around an engineer may have some advantages over someone who didn’t, but it doesn’t mean you can’t learn those skills.
The Odin Project isn’t like college or university, it is self paced and allows you to get a really solid grasp of concepts before moving on. In school, you’re forced to keep up or you will fail. The difference here is that coming into The Odin Project, you’re not expected to have much knowledge; there are no prerequisites. We’ve had people be successful coming through here who only knew how to check their email with a computer. We’ve also seen success from computer science degree holders. Treating The Odin Project like a static timeline is understandable, but is a sign of misplaced expectations. You don’t know what you don’t know yet, and that’s OK! There are no due-dates on things in The Odin Project so you can spend the time to do it right and discuss the topics.
Deadlines cause un-needed stress. Since The Odin Project is a free and open platform, you are not beholden to a deadline. Creating your own deadlines is a good way to rush concepts that should not be rushed. This course is very research based, meaning you will have to do research to complete tasks and projects. There’s no telling if you can find the article or post that helps you in the right way, quickly to meet your deadlines, but we bet you learned a TON along the way that you can use in the future. People that do this kind of research and strive to write better solutions tend to become better developers in the future. There’s no knowing how long it could take you to learn how to query stuff to find your answers. There are no solid guidelines on that. If you’re doing The Odin Project because you need a high paying job right-now, you’re not going to become a solid developer within the timeframe you have set. Stress and anxiety absolutely do not help you learn either. Relax and just enjoy the ride.
Long story short: Don’t worry, just go learn!
Pitfalls to avoid
The following are some of the pitfalls that beginners often encounter when learning how to program. Try your best to avoid these.
Procrastination
Procrastination will be your biggest enemy when trying to make progress.
Solution: The Pomodoro Technique is a way of managing your time in order to stay focused. The idea is to set a timer for 25 minutes and to work on a task until the timer goes off. If you get distracted or interrupted during the 25 minutes, start the 25 minutes of work over again. Once you’ve successfully focused on work for 25 minutes, take a 5 minute break. When your break is over, repeat the 25 minutes of work and 5 minute break. After you’ve completed four 25 minute blocks of work, take a longer 15-30 minute break.
The Pomodoro technique is great for avoiding procrastination as it forces you to work without distractions. Since the work time only lasts 25 minutes before taking a break, it’s not overwhelming, making it harder to rationalize procrastination. To learn more about the Pomodoro Technique, read this great article.
If you want to try it out, Pomofocus is a customizable pomodoro timer that works on desktop & mobile browser.
Not taking breaks
As you get into the material, you may feel compelled to continuously study for long periods of time. It might seem like you are getting more work done at first, but this often leads to burnout, which consequently results in lower productivity.
It may seem counterintuitive, but you will actually get more done if you regularly step back to recharge your brain and body. Studies show that performance increases after breaks of all durations: from extended vacations down to microbreaks of 30 seconds. John Trougakos, Associate Professor of Management at the University of Toronto, says that mental concentration is similar to a muscle. Our focus becomes fatigued after sustained use and needs a rest period to recover, just like a bodybuilder resting between sets at the gym.
Solution: Use the previously mentioned Pomodoro Technique to time how often and how long to take your well-deserved breaks. Feel free to play around and experiment with different frequencies and durations of breaks.
What to do during your break:
Listen to music.
Journal
Doodle
Meditate
Play a quick game.
Go for a short walk outside.
Checkout this article for more information on breaks & productivity.
Digital distractions
Digital distractions are email and Facebook notifications and time-wasting websites, such as social media. These distractions break your focus and make procrastination tempting. Therefore, they should be avoided during study time.
Solution: Turn off notifications and add a blocker to your internet to limit your time on distracting sites.
Physical distractions
Physical distractions are distractions from your environment, like a TV in the background or other people talking. These distractions can be just as damaging to your focus as digital distractions.
Solution: Find a quiet place to study where you can go to focus in your home. If that’s not an option, you can use noise cancelling headphones to block out noisy distractions in your environment. There are also complimentary public and university libraries that are serene and comfortable. Some libraries even operate 24/7, uninterrupted. Beyond just providing a pleasant study space, the presence of others studying around you instills a sense of productivity.
Rabbit holes
Because we cover so much material on The Odin Project and link to so many high quality courses and tools, it is easy for students to get pulled into rabbit holes by spending time trying to learn all there is to know about a subject that they aren’t ready for or won’t benefit them much. We have put a lot of effort into structuring the curriculum so that all of the important things that you need to know about web development are covered exactly when you need to know them.
Solution: Stick to the path laid out as much as possible. Try to limit time spent going down rabbit holes as these sidetracks can really ruin your momentum.
Comparing yourself to others
Students often compare themselves to others who are farther along in their coding journey or have more experience. This is a recipe for depression and frustration.
Solution: Only compare yourself to your past self. Have your abilities and knowledge improved from where you were last week, last month, or last year? Be proud of the progress that you’ve made!
Counter productive note-taking
The Odin Project does not recommend taking a lot of notes throughout your web development educational journey because it can be time-consuming and often leads to wasted effort.
Solution: Instead of taking notes to use as direct references, make notes that can serve as prompts for further research. It is important to get comfortable with reading documentation, which essentially acts as pre-existing notes made by someone else.
Conclusion
Learning any new skill is a journey full of speed bumps and obstacles to be overcome. We hope that the principles laid out here will put you in a much better position to succeed and get the most out of The Odin Project.
While learning how to provide good prompts to an AI tool is a skill, it is one that is supplementary to developing foundational programming skills. The Odin curriculum strives to teach that foundational skill.
AI tools are designed to answer questions and are not designed to help learners develop research and problem solving skills. If you ask an AI for information, it will provide information to you. If you ask a human, they may invite you to share your understanding of the problem and offer some guidance on how to discover a solution.
Without practice in research, problem solving and critical thinking, interviews could be a struggle since it is very likely that applicants would not be allowed to use AI tools.
We do not recommend using AI tools for your learning.
In short, understand it, practice it, and finally teach it.
Teaching what you know to others is a great way to solidify what you have learned and can often reveal holes in your knowledge that you wouldn’t have identified otherwise.
Top comments (4)
You see, which ever starting point you are positioned in life, there’s a way to climb the
ladder._ It’s not about being the first to reach the top, it’s about making sure you push
yourself as close as your limitations will allow_. Why suffer with a bad hand when you can
play to its full potential and make your life better than it currently is?
A female life is like betting on your horse to be the fastest in a flat straight line short
distance race. If it’s not then other strategies must be deployed. This is why so many women
are opting for surgery, they’ve drawn the same conclusion I have here. A man’s life however
is more like a long-distance race with fences, corners, hills, downhills, varied terrains, water
jumps and more. If you’re not the fastest, no problem, there’s plenty more obstacles to
tackle that will better suit your skillset. A tall good-looking man who lacks 2 brain cells to rub
together, will fall flat on his face in the game of life if he were to do nothing about it. Income
will be hard to acquire, riches will always be a distant dream, he will always need and have a
boss telling him what to do and social skills will prevent him from landing a top-level
partner, who may be looking for qualities outside of the physical or as well as.
(The Proven Path to Doing Unique and Meaningful Work)
The key feature of The Helsinki Bus Station Theory is that it urges you to not simply do more work, but to do MORE RE-WORK.
_jamesclear.com/stay-on-the-bus
_
By deliberate practice, I mean: (Same as to Language Learning!)
To put it simply: doing rework rather than trying new things and switching topics all the time.
*examining the bugs and problems in the code
*going back to certain problems and trying to solve them in a better way
*reading other people’s code to see how they solved these problems
*refactoring your old code
The ultimate factor of whether you will make it as a professional developer is not your IQ or your “talent for code,” but your resilience and grit.
Practical Advice:
So even with a sound strategy, there can be a time lag between when the new habit is started and when it bears fruit. _Because latent potential can take time to be unlocked “overnight” it’s important to have key "sign posts" along the way to let us know we’re on the right track. _ (ICE CUBE principle)
New programmers often find "problem solving" the HARDEST SKILL TO BUILD.
Problem solving is the meta-skill. It’s not uncommon for budding programmers to breeze through learning syntax and programming concepts, yet when trying to code something on their own, they find themselves staring blankly at their text editor not knowing where to start.
The best way to improve your problem solving ability is by building experience by making lots and lots of programs. The more practice you have the better you’ll be prepared to _solve real world problems
_
Problem-solving skills are almost unanimously the most important qualification that employers look for….more than programming languages proficiency, debugging, and system design.
Demonstrating computational thinking or the ability to break down large, complex problems is just as valuable (if not more so) than the baseline technical skills required for a job
You’ll be different. But if you start with principles we all agree are good, you’ll get a lot further a lot quicker
“The biggest mistake I see new programmers make is focusing on learning syntax instead of learning how to solve problems”
In programming, this means don’t start hacking straight away. Give your brain time to analyze the problem and process the information.
To get a good plan, answer this question:
“Given input X, what are the steps necessary to return output Y?”
Sidenote: Programmers have a great tool to help them with this… Comments!
Do not try to solve one big problem. You will cry.
Instead, break it into sub-problems. These sub-problems are much easier to solve.
Then, solve each sub-problem one by one. Begin with the simplest. Simplest means you know the answer (or are closer to that answer).
After that, **simplest means this sub-problem being solved doesn’t depend on others being solved.
Once you solved every sub-problem, connect the dots.**
Connecting all your “sub-solutions” will give you the solution to the original problem. Congratulations!
This technique is a cornerstone of problem-solving. Remember it (read this step again, if you must).
“If I could teach every beginning programmer one problem-solving skill, it would be the ‘reduce the problem technique.’
Reduce the problem to the point where you know how to solve it and write the solution. Then expand the problem slightly and rewrite the solution to match, and keep going until you are back where you started.”
Conditional example, suppose you’re a new programmer and you’re asked to write a program that reads ten numbers and figures out which number is the third highest. For a brand-new programmer, that can be a tough assignment, even though it only requires basic programming syntax.
If you’re stuck, you should reduce the problem to something simpler. Instead of the third-highest number, what about finding the highest overall? Still too tough? What about finding the largest of just three numbers? Or the larger of two?
but what if I’m stuck and can’t even solve a sub-problem??”
First off, take a deep breath. Second, that’s fair.
Don’t worry though, friend. This happens to everyone!
The difference is the best programmers/problem-solvers are more curious about bugs/errors than irritated.
In fact, here are three things to try when facing a whammy:
Debug: Go step by step through your solution trying to find where you went wrong. Programmers call this debugging (in fact, this is all a debugger does).
“The art of debugging is figuring out what you really told your program to do rather than what you thought you told it to do.”” — Andrew Singer
Reassess: Take a step back. Look at the problem from another perspective. Is there anything that can be abstracted to a more general approach?
“Sometimes we get so lost in the details of a problem that we overlook general principles that would solve the problem at a more general level. **[…]
The classic example of this, of course, is the summation of a long list of consecutive integers, 1 + 2 + 3 + … + n, which a very young Gauss quickly recognized was simply n(n+1)/2, thus avoiding the effort of having to do the addition.” — C. Jordan Ball
Sidenote: **Another way of reassessing is starting anew. Delete everything and begin again with fresh eyes. I’m serious. You’ll be dumbfounded at how effective this is.
Research: Ahh, good ol’ Google. You read that right. No matter what problem you have, someone has probably solved it. Find that person/ solution. In fact, do this even if you solved the problem! (You can learn a lot from other people’s solutions).
Caveat: Don’t look for a solution to the big problem. Only look for solutions to sub-problems. Why? Because unless you struggle (even a little bit), you won’t learn anything. If you don’t learn anything, you wasted your EXPENSIVE time.
In fact, a common pattern amongst successful people is their habit of practicing “micro problem-solving.” For example, Peter Thiel plays chess, and Elon Musk plays video-games.
“Byron Reeves said ‘If you want to see what business leadership may look like in three to five years, look at what’s happening in online games.’
Fast-forward to today. Elon [Musk], Reid [Hoffman], Mark Zuckerberg and many others say that games have been foundational to their success in building their companies.” — Mary Meeker
coderbyte.com / Pastopia (React/NextJS/Web3/Deployment: Vercel)
There’s three types of Learning:
1) Maintenance Learning (Re-Work)
Maintenance learning refers to you keeping current with your field.
This keeps you on pace and prevents you from falling behind. Many people
think that reading an occasional book and keeping current with blogs and
40
newsletters is the equivalent of adding to their education.
This is not the case...
Maintenance learning is the same as checking the stock market reports
each day to find out the sales prices of various stocks and securities. This
information does not add to your knowledge of the companies, the market,
or the investment potential of a particular stock.
Maintenance learning is absolutely essential. It’s similar to light physical
exercise that keeps you at a particular level of fitness. It won’t increase
your level of fitness or improve your conditioning in any way, but it will keep
you in shape.
2) Growth Learning (Fast Comprehension)
This is the kind of learning that adds knowledge and skills to your repertoire
that you did not have before.
Growth learning helps you expand your mind. You are acquiring
information that you didn’t have that enables you to do things that you
could not do previously.
Some of the very best thinkers in the world today are producing some of
the very best material and ideas that you can use for continuous education
41
and to help you expand your mind.
You can find this information by doing a quick search online. You can
discover great ideas by listening to podcasts, reading blogs, and reading
books.
You can discover incredible information without having to buy anything at
all.
3) Shock Learning (Conditional Real-World)
Shock learning is learning that contradicts or reverses a piece of
knowledge or understanding that you already have.
Shock learning can be extremely valuable if you act upon it.
Something that happens that is completely inconsistent with the
expectations of what should have happened.
This “shock” can give you insights that can enable you to either take
advantage of a major change in the marketplace or guard against a serious
reversal.
Unfortunately, most people are creatures of habit. When something
happens that is completely unexpected, they choose to ignore it in favour of
the old information with which they are more comfortable. Don’t be afraid of
42
change.
Always change and adapt.
Shock learning often happens in Transformational event, when you are
both learning and doing. This types of learning is the most effective.
At Reduce the problem Technique, we call that Bootcamps or Live Coaching or Infield
Trainings because you are immersed in real life and can take massive
action with exercise and immediate feedback.
For example if you want to improve your dating life, we go directly into the
venues and nightclubs or even in the street to get the teachings ingrained
in you.
The map is never the territory. Remember that.
When you come across new information, take the time to think about what
you believe and why. Is your outdated mindset preventing you from
advancing in a modern world? Be willing to question new information and
research it further.
Digging deeper will separate you from the crowd and allow you to see the
value in developing an independent mind.
Only way to ORGANIZE YOUR LIFE = Document your Life!
How to Avoid Becoming a Frog in Boiling Water in Your Software/IT Engineering Career
Check-in with your manager on your progress on a Weekly Regular Basis! (Develop Rapport & Open-relationship for your Skill Development & Accountability + Develop Radar for adjustments and avoid being the Frog & address things before it boils!)
Add/Gamify important certifications & Credibility/VALUE in the Engineering World - tied to Goals ensuring that give VALUE to clients/company (don't just add random certificates as it wastes time/money/energy) Add credentials where they Only make sense to your Time/Money/Energy/Stability/Expertise to help you find the next opportunity faster saving you Time!
Automate your Soft skills with Conditional Speaking on the Topic
#100DaysofCode = ACCOUNTABILITY your Skill progress to Intentional Networks! PJ-Kristian (Carl Icahn!)
Be a Board for an Organization to make a Name for yourself = Build a Strong International Network! (takes Valuable time to build the association - Enjoying/Fulfilling networks that creates amazing stability when the Tides turn Not in your FAVOR!)
Build LinkedIn presence to Frame/communicate your VALUES offered out there to Rich & Poor companies/people!
(Push/Pull/Automate Hack on Social Media for clients/reviews/Accountability)
Push: Valuable info. online
Pull: They come to you for your services
Automate: (put updates HERE!
What Indicators/Tests are you giving yourself to achieve that Malaysian Visa?
(edit below what those indicators are THIS WEEK!)
How to Avoid Becoming a Frog in Boiling Water in Your Software Engineering Career (Systems Thinking, Reduce the Problem Technique)

BE PREPARED
Measure your Progress regularly on your ConditionalSkillDevelopment **(get input from Manager/Company on a Weekly Basis as a worker in your Company) "Develop that Radar to **adjust circumstances to address the problem before it boils to Future-Proof your position for Long-Term Stability!"
Add important certifications for Stability(engineering world = credentials/Level of expertise is important but don't just add certificates randomly, add them where They Make Sense! (can help you find an Opportunity faster!) - Towards goals/Financial ! they cost you time/energy/money USE WISELY!
Build Automated Soft skills on Social Media *(Take that info. & Actually use it! To Build Principled Skills! = Accountability to Boss on Career/Progress/Assignments!) #100DaysofCode/LeadGen
* engineeringmanagement.info/2020/12...
4 . Build a Strong Network = Web3 Philippines! (Avoid being the Frog in boiling water to transfer opportunities that creates amazing stability for your Malaysian Visa!)
5 . Use Linkedin to build your Expertise & getting your name out there!

(Constantly Know/Test the Indicators "Hit the Sign" to your Success in getting Malaysian Visa!)
youtube.com/watch?v=JrMwo9fd2NY
15:52
Combining Engineering with Culture to Produce Opportunities
The Quickest Path to Engineering Management is Through Accountability
engineeringmanagement.info/2020/12...