Do something with it that is simple, useful, and for which it is uniquely well suited.
For instance, I wanted to start working with Lazarus (A FreePascal IDE with WYSIWYG GUI designer) so I used it to throw together some simple GUI launchers for a portable LAN gaming pack I put together.
Fear can be normal. Assuming you already know how to break a problem down into its smallest/most manageable steps (trying things like working backward from the end goal, using what you already know/learned previously, etc.), if the fear is overwhelming and getting in the way of getting started, then dealing with the fear might be a first step.
Write them out. What are you afraid of? "I can't learn this." "This time I will be proven to be an impostor", "Everyone will think I'm stupid". "I'll be ridiculed." Sometimes just doing that helps.
There's a lot of critical thinking that fears don't hold up to. "Have I learned anything hard or new before?" "Was I ever ridiculed for being a novice at something?" "Will _everyone_ really think I'm stupid?" etc. Sometimes just analyzing the things your fear-based reactions are telling you is enough to dispel them, or at least make them less paralyzing.
Ask yourself "what if I knew everything would turn out fine here, and that I'll be a success. How would I act in that case?"
Stuff like that. Sometimes the technical problems are easier than the psychological ones.
Grab a successful project already done by someone else, put it in your repository, back it up, and start changing things, one at a time. You'll start to see how little things work, maybe understand why the original author made choices, and surprisingly, find better or more interesting ways to do the same thing. (I'm always looking for ways to do the same thing with "less". I usually find them.)
Keep restoring the original and repeat. Then start adding new functionality. Experiment. Break it. Play "what if". You can always restore and start over.
Before you know it, the mystery starts to fade and for some people, the fear does too.
1. Keep reducing the goal until it's no longer scary. Instead of "learning X", maybe try "reading about X" or "try X for 10 min". Keep taking more off your plate until you feel that "I can do this" feeling.
2. When a fear pops up, respond to yourself with "I know". For example: "I might waste my time and never get good at X" -> "I know". If you repeat that process some contend that by giving your monkey brain (or flight response) attention and respect it starts to diminish. It just wants you to know how risky it thinks this activity is and can keep repeating or getting louder until you acknowledge that it's been heard.
Damn good advice. #1 is really key for me -- I find that if I decompose a learning effort into the smallest possible grains, I have a much better chance of sticking with it. For example, when I felt intimidated about learning SQL long ago, I said "well let me just learn how to write a trivial query" and then "well maybe I can try some joins," etc etc until I had it near nuff comprehended.
While I'm not a developer, I wanted to learn Python for various reasons. Instead of just learning ALL OF PYTHON, I broke it down to little projects, learning how to do those projects along the way. While still no expert, I can at least handle what I set out to do.
I'd also add immersion, if that's what you would call it. Not really related, but I used to never watch sports, up until the start of this NBA season. I subscribed to podcasts and newsletters and found some sites to read daily. In the beginning I probably knew 5-10% of what was being talked about. But after some months of this I can probably digest a good 70-80%.
In addition to that, it helps me to think of the consequences of failure.
For instance, my wife and I recently redid an entire small bathroom. I replaced wallboard, replaced toilet and cabinet and sink, and laid tile. I'd never done any of that before.
It was incredibly scary at first. But I finally said, "What's the worst that can happen?" We paid a plumber for the hard stuff like moving the shutoffs and replacing the cracked flange (my fault!) and did the rest ourselves.
The worst thing that could happen was that we damage something (which happened with the flange!) or that we decide we just can't do it to our satisfaction and have to pay someone.
The alternative was to just pay someone.
In the end, it was still scary, but it was the logical thing to do, and so I tried it.
Thanks, but unfortunately that wasn't the part that cracked, It cracked vertically all the way down to the pipe it was connected to. The whole thing had to be replaced to make sure it wouldn't leak.
The other half of #1 is keep going. You have to do it every day. You have to do it for a long time. As long as you keep going, you'll naturally grow. Your mind won't stand for doing the same thing every day.
If anyone needs help getting started or keeping going, that's exactly what my project Functional helps with:
Just wanted to let you know that I opened your site in Firefox Focus on iOS and didn't see anything (it was a blank page after a second or two). Since Firefox Focus has ad and tracker blockers enabled, I presume there's something on your site that doesn't fit.
I have used these techniques with pretty good results across a very long series of stretch goals. However, rather than use an affirmation of risk with "I know" I ask myself "but what can go well if I try?". It creates a positive energy that counteracts the negative one without dismissing it. Fear always returns so I try to work with it rather than shut it down.
As a neurotic, I conquer fear through excessive preparation. I honestly don't know what to do about a fear of preparation, though. If I find myself intimidated by learning something, I look for a prerequisite to that something that isn't intimidating, and start there.
Maybe what you have is a fear of committing to learning something hard or new? Something with a deadline, that you'll be judged on at some point?
Try to take on a contract or job role that's a significant but achievable step above your current level of capability.
It's amazing how quickly you can learn something when you throw yourself into a situation where you just have to do it, or else.
Obviously you need to take care to ensure that your employers/colleagues will be supportive and understanding that you'll need some time to develop new skills. But you also want them to push you to raise your level to what you/they know you're capable of.
Tim Ferriss publishes a piece called Fear Setting. You might find that useful.
Another suggestion is to actually write down and articulate the specific issues you're facing. I find that the act of writing helps me make sense of thoughts - much more so than simply thinking about my thoughts.
Although I find I'm better at execution than planning so I like the mantra "just do it".
I don't. I just suffer through the anxiety. Mostly trying not to pay attention to it until I've made something. Once I've made something with a new technology I've got evidence for myself, than I can start to find comfort.
Not on the topic of software, but with other crafts, I like to think about the idea "Nothing is hard, it is just slow". the biggest beginner mistake in woodworking is trying to work to fast, same with welding, same with music. If you just content yourself with working on new, hard things slowly and don't try to be fast it all ends up less daunting. FWIW, this has been my experience learning the little code that I know, too.
this is key with hand work. there is an expectation that, if for example you are shaping a piece of sheet metal, it seems like if you know what you're doing just can just bang it out. so if you keep trying to bang things out you're supposed to get better.
knowing what you're doing really means having the patience to make a subplan, trying to execute it carefully, seeing how well you did and repeating the process.
initially that might take several days and be painful. it will get faster over time, but you have to learn to let the work steer you, and to put it aside when you no longer have the focus or stamina. that internalization, regardless any any of the particular skills you may pick up along the way, is what makes you a practitioner rather than a hack.
One thing is to learn not to fear jargon. It's just a bunch of made up words, and you can quite easily learn them, and then you will sound just as clever and sophisticated as those people you saw in discussions.
Like, you might be getting into woodworking and see someone casually saying this, a real example I ran into earlier today:
"I built a jig to hold my boards down and run them over the stacked dado with the miter guide. Despite this, the cupping that some of the boards had made the cross cuts uneven. I opted for half lap joints because I've seen people do miter joints on this bed design before and they don't seem to hold up very well over time."
That's actually a self-proclaimed beginner talking about one of his first woodworking projects. When someone asked him how he learned all these words, he said "You can learn a lot from YouTube."
Indeed those concepts aren't advanced; a miter guide is just little gizmo that holds your plank at an angle, a half lap joint is just a particular way of gluing two planks together, etc.
But reading stuff that has unfamiliar vocabulary can be tiring, so keep an eye on that and make sure you look up the words you don't understand, maybe keeping a small lexicon in a text file.
This is a great point. Jargon can be really intimidating and make the simplest statements impossible to understand for the unfamiliar. But is often trivial to learn with a little study.
Also, watch out for bullshit artists using jargon. Most jargon isn't B.S., but a lot of B.S. manages to hide behind jargon. You'll begin to notice this if you immerse yourself in academic writing. Being widely cited and having lots of collaborators is no guarantee that you actually have something useful to say.
This is true for math as well. Before I tried learning some trickier stats, the pages looked like arcane tablets. Now they don't. Particularly to a beginner, the difference between math you can figure out in 4 months, and math you maybe can figure out if you dedicate your next 20 years to it, often doesn't look too much different in terms of a naive person staring at symbols.
I have real problems understanding the question. Honestly.
The only way it could even remotely make sense to me is something like:
"Fear of failing to learn something that is required knowledge to save your (your) job/livelihood/life.
Case in point: am I "scared" of learning German? No, but I can think it will be too hard for the level of energy I will be able to put into studying it compared to the benefits.
So - at least in my case - the only "scaring" element would be "scared of wasting my time/money pursuing this".
Sounds like you're having trouble with honest empathy or understanding what other people might be thinking or feeling.
This kind of feeling is EXTREMELY common, especially with engineers. You sound like you're over-indexing on logic and not really trying to understand how other people might think and feel. You might not get this now, but working on these other skills will make a bigger impact on your life and career than being a better programmer.
Plot twist: I am 55 - worked most of the time as a consultant, so for me "having to learn something new" and especially "while everyone else around you either knew more than you or were looking at you expecting you to know all the answers" was more or less a constant.
Maybe this is why I do not understand what the problem is, exactly?
I can’t understand this either. Of course you know very little about something when you are just starting out, that is expected, where is the shame in that? Hopefully you’ll learn it eventually, and if not, well then it wasn’t for you. We can’t all be good at everything.
There is a real fear of immersing yourself in an environment where you feel everyone knows more than you and you feel like an absolute idiot for not knowing the simplest things that you think “should know”
I felt like this 10 years ago when I got a job as what we would now call an “Enterprise Developer” working in C# after being stuck in a bubble in the “expert beginner” phase bit twiddling in C and C++ and doing VB6 that was already out of date and I was working with people younger than I was who knew the latest tech and people my age who were already experience led architects.
It happened again two years ago, by then I was the dev lead who knew all of the best practices from a development side but didn’t understand infrastructure, high availability, scalability, dev ops, or modern cloud infrastructure.
I fumbled my way through that project thanks to Hashicorp’s Consul and Nomad, and self demoted to a senior dev at a smaller company where I could get hands on experience.
I’ve filled in a lot of those gaps now, but still I don’t know the $cool_kids back end tech like Docker and Kubernetes or a single modern front end framework.
So yeah, it’s frightening jumping into a new tech stack heads first where you need to be somewhat productive since you convinced the company to pay you slightly above market rate.
You are not the OP (I believe) but if they wanted to really say this (which I can at least be sympathetic about) the title should have been something like "how do you get over the initial fear of NOT KNOWING ENOUGH?" which is a separate thing.
I'd say you have to accept the reality of having a lot of unknowns in new software projects. By doing that, I guess I mean embracing the fear since there's always going to new situations that come up in reality. In my mind, I can't actually get used to anything since something new always crops up so I just take that as the norm.
It doesn't exactly feel like fear. I'd say it's more like the goal is so far that you give up even before trying / push it back forever / procrastinate. For ex "I'm going to learn how to do security research / do bug bounties / write exploits" and never do much. It is fear based tho. I'd say it's fear of wasting time and not getting anywhere.
I wonder if it might just be not knowing how to start, rather than fear, then. I don't expect I'd be very good at achieving those goals unless I had a specific project in mind that touched on them.
Like, I wanted to do kernel development for years and couldn't get into it, and then suddenly I had a job with buggy kernel drivers that needed to be fixed and it was surprisingly easy. Fear wasn't holding me back, but not having identified a realistic small project in the area that I was motivated by was.
Don't look at it from the view of a complete project. Think of it like compound interest in your retirement account. I learn by building slightly more complex projects on top of a previous simpler project knowledge.
Want to build an entire website, with authentication, payments, dynamic interfaces, real time notifications? Learn HTML by putting your resume on the web. Then take that knowledge, and build something that takes a basic form, and maybe saves to a database. Then you take that, and build something that takes that user input, and thanks them by email. Onward and so forth.
Going from 0 to 100 for someone that hasn't done all of these little projects over the years, is way too daunting and unrealistic.
I can think of a few strategies, alongside the other good ones people mentioned.
1. Reduce your initial expectations. When you start something hard and/ or new you will be awful at it. Just acknowledge that fact and move on.
2. Focus on time as the goal. Instead of saying, I have to master A or B, focus on time spent, focus on the raw number of hours spent learning. You should still chunk the learning, but start by tracking time.
3. Seek immersion opportunities. The person who authors https://waitbutwhy.com/ focuses on a new topic periodically. These topics can get quite complex and yet sometimes he only has a week or so to get himself up to speed. He'll do things like find all the videos on the topic on Youtube that are informative, authoritative and yet somewhat entertaining. He'll mass watch those videos, all the while gaining a feel.
I see a lot of comments asking what a fear of learning something new is. I interpret is as the fear of appearing stupid when trying to learn something new. This means, that one doesn't ask questions, doesn't take big steps in the presence of other people, the fear of failing at this new learning experience. The fear of appearing incompetent at something that one "should" already know.
I need something pushing me. Usually it's a demand placed upon me that requires I learn it to meet some kind of deadline. It's got to be something time-bound. If it's just a general request, for example, from a higher up that I learn something or look into something for some unknown reason or for some theoretical future project, odds are I'm not going to actually do it. But if I know that if I fail to do it and there is actually a consequence like me not being able to fulfill a goal that has been set for me, then I'm going to make sure that it gets done if for no other reason than not wanting to fail or be embarrassed.
If this is not for work where you are accountable to others and instead this is for a personal project it becomes more difficult. If possible, work with someone on your side project because then you will be accountable to them like you would be on a team at work. If it's just yourself and you are taking the approach of "well it doesn't matter if I don't meet my made up deadline for myself", then things tend to never get done. I had this issue. When trying to balance side projects with life and family, the projects kept getting pushed. Once I had a business partner, I'm far more productive because I have a real reason to get stuff done - no one wants to fail the person they are in business with.
+1 to this, doesn’t really matter how vague the push is so long as someone is putting the monkey on my back. There’s always some stress but it’s infinitely better than no push and I always learn loads in the process.
Recently I started learning VHDL. I have some very personal pep talks... look to your own past for something more applicable.
* "you've learned over 20 languages"
* "this won't be as annoying as brainfuck, Piet, or FRACTRAN"
* "you've absorbed the basics of analog circuit design, this digital crap is gonna be easy"
And then it's all about setting reasonable goals, breaking the work into discrete chunks and tackling them in an orderly fashion.
* my coworker whose FPGA board I'm using tells me "just get to a point where you can turn on an LED with a switch and it's downhill from there"
* I tell myself, "your algorithm is a series of interconnected state machines. Figure out how to make a state machine and it's downhill from there"
And then there's the expertise I have access too -- I know that memory and timing issues are going to be a nightmare. When I get to that point. When I get to that point, I can worry about the PCI bus and API. At that point I'll have the basics down, and I'll be able to have more fruitful discussions with my coworkers and they'll take a greater interest in my work.
If the reason for your fear is out of deadlines, then simply ignore the deadlines for the most part and focus on learning overall. Obviously you can't ignore them completely, but if you actually let yourself just focus on learning instead of the deadline you will actually have a better chance of completing your goal by the deadline rather than if you focused only on the completing something by the deadline.
If it does not have something to do with a deadline, then I would suggest just pursue the new language, concept, etc. like you would something you are naturally curious about. If you are a fan of a certain science fiction universe, it is not scary to try and learn something new about that universe, because you will be naturally curious about it and be focusing on the joy of learning new information about the universe. Treat whatever you are trying to learn like that by finding ways to get naturally curious about the new subject.
Step one to solving any problem is recognizing there is one. In words from Rambo, you need to come full circle with your fear that...
1) You don't know shit
2) Learning requires patience and time
3) It's ok to take a step back and start from square one
I approach learning new programming languages, hardware design concepts and software design concepts very similar to how I might approach hiking through a forest, mountain, etc.
If I'm hiking i'm usually taking the most interesting scenic route I can take out of pure curiosity. This drives my interest as I'm hiking wondering what might I see around the bend or just over the next ridge. This part is crucial for me to keep going otherwise lost of interest is high and the end goal of getting to the top seems less rewarding.
The same concept should be applied to learning. There should be an elevating amount or sustainable amount of interest towards the end goal of learning something new. Each chapter of a book or functional line(s) of code that does something should excite you and elevate or at the very least sustain your level of interest.
I'm probably one of the weakest software engineers (or possibly was) at my company mostly because I'm a first generation college student and engineer out of my family. I grew up on a farm and ranch where most of these resources were limited. I've had to spend more time on improving my skills and learning new things than probably the vast majority of individuals in our software department have. This methodology I've mentioned above has done wonders for me and has shaped my character/personality to how I approach problems and learning new skills.
75 comments
[ 3.0 ms ] story [ 131 ms ] threadFor instance, I wanted to start working with Lazarus (A FreePascal IDE with WYSIWYG GUI designer) so I used it to throw together some simple GUI launchers for a portable LAN gaming pack I put together.
Check out the book mindset by Dr Carol Dueck.
She walks a person thru recognizing where we have a fixed mindset vs a growth mindset. It was a refreshing read.
Write them out. What are you afraid of? "I can't learn this." "This time I will be proven to be an impostor", "Everyone will think I'm stupid". "I'll be ridiculed." Sometimes just doing that helps.
There's a lot of critical thinking that fears don't hold up to. "Have I learned anything hard or new before?" "Was I ever ridiculed for being a novice at something?" "Will _everyone_ really think I'm stupid?" etc. Sometimes just analyzing the things your fear-based reactions are telling you is enough to dispel them, or at least make them less paralyzing.
Ask yourself "what if I knew everything would turn out fine here, and that I'll be a success. How would I act in that case?"
Stuff like that. Sometimes the technical problems are easier than the psychological ones.
Keep restoring the original and repeat. Then start adding new functionality. Experiment. Break it. Play "what if". You can always restore and start over.
Before you know it, the mystery starts to fade and for some people, the fear does too.
1. Keep reducing the goal until it's no longer scary. Instead of "learning X", maybe try "reading about X" or "try X for 10 min". Keep taking more off your plate until you feel that "I can do this" feeling.
2. When a fear pops up, respond to yourself with "I know". For example: "I might waste my time and never get good at X" -> "I know". If you repeat that process some contend that by giving your monkey brain (or flight response) attention and respect it starts to diminish. It just wants you to know how risky it thinks this activity is and can keep repeating or getting louder until you acknowledge that it's been heard.
While I'm not a developer, I wanted to learn Python for various reasons. Instead of just learning ALL OF PYTHON, I broke it down to little projects, learning how to do those projects along the way. While still no expert, I can at least handle what I set out to do.
I'd also add immersion, if that's what you would call it. Not really related, but I used to never watch sports, up until the start of this NBA season. I subscribed to podcasts and newsletters and found some sites to read daily. In the beginning I probably knew 5-10% of what was being talked about. But after some months of this I can probably digest a good 70-80%.
For instance, my wife and I recently redid an entire small bathroom. I replaced wallboard, replaced toilet and cabinet and sink, and laid tile. I'd never done any of that before.
It was incredibly scary at first. But I finally said, "What's the worst that can happen?" We paid a plumber for the hard stuff like moving the shutoffs and replacing the cracked flange (my fault!) and did the rest ourselves.
The worst thing that could happen was that we damage something (which happened with the flange!) or that we decide we just can't do it to our satisfaction and have to pay someone.
The alternative was to just pay someone.
In the end, it was still scary, but it was the logical thing to do, and so I tried it.
It went very, very well. Except the flange.
If anyone needs help getting started or keeping going, that's exactly what my project Functional helps with:
https://howfunctional.com/try/read-X-for-10-min
I haven't tested in Firefox Focus though (haven't even heard of it), and I'm wondering if it might be because of overly tight security headers.
Maybe what you have is a fear of committing to learning something hard or new? Something with a deadline, that you'll be judged on at some point?
It's amazing how quickly you can learn something when you throw yourself into a situation where you just have to do it, or else.
Obviously you need to take care to ensure that your employers/colleagues will be supportive and understanding that you'll need some time to develop new skills. But you also want them to push you to raise your level to what you/they know you're capable of.
Another suggestion is to actually write down and articulate the specific issues you're facing. I find that the act of writing helps me make sense of thoughts - much more so than simply thinking about my thoughts.
Although I find I'm better at execution than planning so I like the mantra "just do it".
A few benefits to this:
- The power of habit can be an impetus to overcome the initial fear.
- The knowledge that you did it just yesterday, and it wasn't so bad.
- Learning gets solidified overnight, and often things are easier the next day.
- And then just doing something every day means it gets a lot of repetitions.
"I only write when I am inspired. Fortunately I am inspired at 9 o'clock every morning."
― William Faulkner
knowing what you're doing really means having the patience to make a subplan, trying to execute it carefully, seeing how well you did and repeating the process.
initially that might take several days and be painful. it will get faster over time, but you have to learn to let the work steer you, and to put it aside when you no longer have the focus or stamina. that internalization, regardless any any of the particular skills you may pick up along the way, is what makes you a practitioner rather than a hack.
Like, you might be getting into woodworking and see someone casually saying this, a real example I ran into earlier today:
"I built a jig to hold my boards down and run them over the stacked dado with the miter guide. Despite this, the cupping that some of the boards had made the cross cuts uneven. I opted for half lap joints because I've seen people do miter joints on this bed design before and they don't seem to hold up very well over time."
That's actually a self-proclaimed beginner talking about one of his first woodworking projects. When someone asked him how he learned all these words, he said "You can learn a lot from YouTube."
Indeed those concepts aren't advanced; a miter guide is just little gizmo that holds your plank at an angle, a half lap joint is just a particular way of gluing two planks together, etc.
But reading stuff that has unfamiliar vocabulary can be tiring, so keep an eye on that and make sure you look up the words you don't understand, maybe keeping a small lexicon in a text file.
I have real problems understanding the question. Honestly.
The only way it could even remotely make sense to me is something like:
"Fear of failing to learn something that is required knowledge to save your (your) job/livelihood/life.
Case in point: am I "scared" of learning German? No, but I can think it will be too hard for the level of energy I will be able to put into studying it compared to the benefits.
So - at least in my case - the only "scaring" element would be "scared of wasting my time/money pursuing this".
(EDIT: typo)
This kind of feeling is EXTREMELY common, especially with engineers. You sound like you're over-indexing on logic and not really trying to understand how other people might think and feel. You might not get this now, but working on these other skills will make a bigger impact on your life and career than being a better programmer.
Maybe this is why I do not understand what the problem is, exactly?
/another (ex-) consultant.
I felt like this 10 years ago when I got a job as what we would now call an “Enterprise Developer” working in C# after being stuck in a bubble in the “expert beginner” phase bit twiddling in C and C++ and doing VB6 that was already out of date and I was working with people younger than I was who knew the latest tech and people my age who were already experience led architects.
It happened again two years ago, by then I was the dev lead who knew all of the best practices from a development side but didn’t understand infrastructure, high availability, scalability, dev ops, or modern cloud infrastructure.
I fumbled my way through that project thanks to Hashicorp’s Consul and Nomad, and self demoted to a senior dev at a smaller company where I could get hands on experience.
I’ve filled in a lot of those gaps now, but still I don’t know the $cool_kids back end tech like Docker and Kubernetes or a single modern front end framework.
So yeah, it’s frightening jumping into a new tech stack heads first where you need to be somewhat productive since you convinced the company to pay you slightly above market rate.
Like, I wanted to do kernel development for years and couldn't get into it, and then suddenly I had a job with buggy kernel drivers that needed to be fixed and it was surprisingly easy. Fear wasn't holding me back, but not having identified a realistic small project in the area that I was motivated by was.
Want to build an entire website, with authentication, payments, dynamic interfaces, real time notifications? Learn HTML by putting your resume on the web. Then take that knowledge, and build something that takes a basic form, and maybe saves to a database. Then you take that, and build something that takes that user input, and thanks them by email. Onward and so forth.
Going from 0 to 100 for someone that hasn't done all of these little projects over the years, is way too daunting and unrealistic.
If this is not for work where you are accountable to others and instead this is for a personal project it becomes more difficult. If possible, work with someone on your side project because then you will be accountable to them like you would be on a team at work. If it's just yourself and you are taking the approach of "well it doesn't matter if I don't meet my made up deadline for myself", then things tend to never get done. I had this issue. When trying to balance side projects with life and family, the projects kept getting pushed. Once I had a business partner, I'm far more productive because I have a real reason to get stuff done - no one wants to fail the person they are in business with.
If it does not have something to do with a deadline, then I would suggest just pursue the new language, concept, etc. like you would something you are naturally curious about. If you are a fan of a certain science fiction universe, it is not scary to try and learn something new about that universe, because you will be naturally curious about it and be focusing on the joy of learning new information about the universe. Treat whatever you are trying to learn like that by finding ways to get naturally curious about the new subject.
1) You don't know shit
2) Learning requires patience and time
3) It's ok to take a step back and start from square one
I approach learning new programming languages, hardware design concepts and software design concepts very similar to how I might approach hiking through a forest, mountain, etc.
If I'm hiking i'm usually taking the most interesting scenic route I can take out of pure curiosity. This drives my interest as I'm hiking wondering what might I see around the bend or just over the next ridge. This part is crucial for me to keep going otherwise lost of interest is high and the end goal of getting to the top seems less rewarding.
The same concept should be applied to learning. There should be an elevating amount or sustainable amount of interest towards the end goal of learning something new. Each chapter of a book or functional line(s) of code that does something should excite you and elevate or at the very least sustain your level of interest.
I'm probably one of the weakest software engineers (or possibly was) at my company mostly because I'm a first generation college student and engineer out of my family. I grew up on a farm and ranch where most of these resources were limited. I've had to spend more time on improving my skills and learning new things than probably the vast majority of individuals in our software department have. This methodology I've mentioned above has done wonders for me and has shaped my character/personality to how I approach problems and learning new skills.