We’re calling Pay It Forward, the world’s first resellable magazine. With the help of digital bank Monzo, Big Issue magazines will come with individual, scannable QR codes that allow readers to pass magazines on to a friend who can then scan it to pay the original vendor again.
Every week, we’ll give you an overview of the best deals for designers, make sure you don’t miss any by subscribing to our deals feed. You can also follow the recently launched website Type Deals if you are looking for free fonts or font deals.
26 Best-Selling Bundles: Textures, Stamps, Charts & More
This Best Sellers Bundle offers you 26 different collections to make any graphic designer giddy. These popular collections include symbols, stamps, diagrams, vectors, wallpapers, charts, image masks and more. This wide range of tools is perfect for your latest project from greeting cards to promotional posters.
This robust Lettering Toolkit comes jampacked with over 290 Procreate brushes to really up your lettering game. Handle just about any lettering job you need with this holistic set of brushes that cover everything from calligraphy to graffiti with dozens of different angles, weights and styles. You can even easily convert them to vectors through image-trace and other applications.
This Huge Typographic Pack is overflowing with tools for your designer needs. You’ll get 220+ individual fonts, made from 44 typefaces, as well as 60 logo type templates. Not to mention 100 vector objects to really finish off your designs in style.
Convert Images, Text or Shapes to Gorgeous Watercolor Paintings
With the Ultimate Watercolor Creator, you can create all sorts of original watercolor paintings from your personal photos, text or shapes in just a matter of minutes. Packed with hundreds of premade templates, watercolor brushes, textures, patterns and shapes, you won’t believe how easy it is to produce gorgeous hi-res premium results.
Every week, we’ll give you an overview of the best deals for designers, make sure you don’t miss any by subscribing to our deals feed. You can also follow the recently launched website Type Deals if you are looking for free fonts or font deals.
26 Best-Selling Bundles: Textures, Stamps, Charts & More
This Best Sellers Bundle offers you 26 different collections to make any graphic designer giddy. These popular collections include symbols, stamps, diagrams, vectors, wallpapers, charts, image masks and more. This wide range of tools is perfect for your latest project from greeting cards to promotional posters.
This robust Lettering Toolkit comes jampacked with over 290 Procreate brushes to really up your lettering game. Handle just about any lettering job you need with this holistic set of brushes that cover everything from calligraphy to graffiti with dozens of different angles, weights and styles. You can even easily convert them to vectors through image-trace and other applications.
This Huge Typographic Pack is overflowing with tools for your designer needs. You’ll get 220+ individual fonts, made from 44 typefaces, as well as 60 logo type templates. Not to mention 100 vector objects to really finish off your designs in style.
Convert Images, Text or Shapes to Gorgeous Watercolor Paintings
With the Ultimate Watercolor Creator, you can create all sorts of original watercolor paintings from your personal photos, text or shapes in just a matter of minutes. Packed with hundreds of premade templates, watercolor brushes, textures, patterns and shapes, you won’t believe how easy it is to produce gorgeous hi-res premium results.
A reducer is a function that determines changes to an application’s state. It uses the action it receives to determine this change. We have tools, like Redux, that help manage an application’s state changes in a single store so that they behave consistently.
Why do we mention Redux when talking about reducers? Redux relies heavily on reducer functions that take the previous state and an action in order to execute the next state.
We’re going to focus squarely on reducers is in this post. Our goal is to get comfortable working with the reducer function so that we can see how it is used to update the state of an application — and ultimately understand the role they play in a state manager, like Redux.
What we mean by “state”
State changes are based on a user’s interaction, or even something like a network request. If the application’s state is managed by Redux, the changes happen inside a reducer function — this is the only place where state changes happen. The reducer function makes use of the initial state of the application and something called action, to determine what the new state will look like.
If we were in math class, we could say:
initial state + action = new state
In terms of an actual reducer function, that looks like this:
Where do we get that initial state and action? Those are things we define.
The state parameter
The state parameter that gets passed to the reducer function has to be the current state of the application. In this case, we’re calling that our initialState because it will be the first (and current) state and nothing will precede it.
contactReducer(initialState, action)
Let’s say the initial state of our app is an empty list of contacts and our action is adding a new contact to the list.
const initialState = {
contacts: []
}
That creates our initialState, which is equal to the state parameter we need for the reducer function.
The action parameter
An action is an object that contains two keys and their values. The state update that happens in the reducer is always dependent on the value of action.type. In this scenario, we are demonstrating what happens when the user tries to create a new contact. So, let’s define the action.type as NEW_CONTACT.
There is typically a payload value that contains what the user is sending and would be used to update the state of the application. It is important to note that action.type is required, but action.payload is optional. Making use of payload brings a level of structure to how the action object looks like.
Updating state
The state is meant to be immutable, meaning it shouldn’t be changed directly. To create an updated state, we can make use of Object.assign or opt for the spread operator.
In the above example, we made use of the Object.assign() to make sure that we do not change the state value directly. Instead, it allows us to return a new object which is filled with the state that is passed to it and the payload sent by the user.
To make use of Object.assign(), it is important that the first argument is an empty object. Passing the state as the first argument will cause it to be mutated, which is what we’re trying to avoid in order to keep things consistent.
The spread operator
The alternative to object.assign() is to make use of the spread operator, like so:
This ensures that the incoming state stays intact as we append the new item to the bottom.
Working with a switch statement
Earlier, we noted that the update that happens depends on the value of action.type. The switch statement conditionally determines the kind of update we’re dealing with, based on the value of the action.type.
That means that a typical reducer will look like this:
const addContact = (state, action) => {
switch (action.type) {
case 'NEW_CONTACT':
return {
...state, contacts:
[...state.contacts, action.payload]
}
case 'UPDATE_CONTACT':
return {
// Handle contact update
}
case 'DELETE_CONTACT':
return {
// Handle contact delete
}
case 'EMPTY_CONTACT_LIST':
return {
// Handle contact list
}
default:
return state
}
}
It’s important that we return state our default for when the value of action.type specified in the action object does not match what we have in the reducer — say, if for some unknown reason, the action looks like this:
Since we don’t have this kind of action type, we’ll want to return what we have in the state (the current state of the application) instead. All that means is we’re unsure of what the user is trying to achieve at the moment.
Putting everything together
Here’s a simple example of how I implemented the reducer function in React.
You can see that I didn’t make use of Redux, but this is very much the same way Redux uses reducers to store and update state changes. The primary state update happens in the reducer function, and the value it returns sets the updated state of the application.
Want to give it a try? You can extend the reducer function to allow the user to update the age of a contact. I’d like to see what you come up with in the comment section!
Understanding the role that reducers play in Redux should give you a better understanding of what happens underneath the hood. If you are interested in reading more about using reducers in Redux, it’s worth checking out the official documentation.
Say you have a <blockquote> and the design calls for a thick border along the left side. Well, you might not necessarily mean left side, but actually mean on the side of the start of the text.
That’s exactly what CSS logical properties are meant to address, and Hussein Al Hammad has a nice article laying out some use cases, including the blockquote thing I mentioned above.
By using logical properties, you don’t have to mess around with manually writing selectors including [dir="rtl"] or needing to be aware of writing modes and such. The box model stuff (borders, padding, margin…) will adjust where it needs to be.
Hussein’s blockquote is a good baby step example for understanding of all this:
This browser support data is from Caniuse, which has more detail. A number indicates that browser supports the feature at that version and up.
Desktop
Chrome
Opera
Firefox
IE
Edge
Safari
69
62*
41
No
76
12.1
Mobile / Tablet
iOS Safari
Opera Mobile
Opera Mini
Android
Android Chrome
Android Firefox
12.2-12.4
46*
No
76
76
68
One thing that threw me off in the article is the term „Horizontal Rules.” First I imagined the <hr> element. Then I imagined wanting to reverse the direction of the design with logical properties. Usually an <hr> is just a line so horizontal direction doesn’t matter, but let’s say it’s like a shorter line along the edge where new lines start after wrapping.
We could draw the shorter line with backgrounds that cover different parts of the box model, then use logical properties where the padding applies. This is a pretty unique edge case, but it’s fun to fiddle with:
I don’t track this stuff very well, but I get it. If you want a native app for Android and iOS, it sure would be nice to only have to write it once rather than two very different languages. Roughly double your reach without doubling the work. More and more of these things are reaching into desktop as well, meaning three targets for one.
Stuff like PhoneGap comes to mind. They say, „Reuse existing web development skills to quickly make hybrid applications built with HTML, CSS and JavaScript.” That’s obviously compelling for web developers who would have to learn minimal new things. My brain leans more toward, „Well if I’m going to write this thing in HTML, CSS, and JavaScript, why don’t I leave it at that?” Progressive Web Apps are doing great things. Still, I’m curious what the flagship PhoneGap apps are. Do I use any great ones and not even know it?
If you’re going to layer on a framework, but still stay in JavaScript-land, I’d think the biggest player is React Native. I hear it’s almost always used with Expo these days, which apparently has a thing to help React Native work on the web. Plus, there is literally React Native for Web.
In React-land, there is another new player: Ionic React. It targets all three platforms (iOS, Android, and Desktop) right out of the gate. Ionic isn’t new though — it’s long been a framework that does this in JavaScript (alternatively in Angular) and is apparently coming soon to Vue. Compelling. Nader Dabit has a first-look blog post that is pretty well done.
This all starts to get confusing to me as apparently Ionic ultimately uses Cordova under the hood… just like PhoneGap does? Or something? But now Ionic is moving to their own thing? I guess it makes sense that there are some low-level interpreter things that translate web primitives to native primitives and that people build developer tooling on top of that.
Google’s got a stake in this game with Flutter. Flutter is about hitting all three targets and helping you build the UI. Material design, animation and performance are all first-class citizens. It’s all in Dart though. Dart can compile to JavaScript (so it can be used for web stuff) but it also compiles to machine code. I imagine Flutter apps are compiled that way when they become native apps for bonus performance. I don’t have a good sense of how popular Dart is, but I’d assume web developers really won’t care what they’re writing in if great performance on all three targets is the outcome.
Ever further outside my wheelhouse is Xamarin, which is Microsoft’s take on unifying development on multiple platforms. The languages involved here are .NET and C#. It has all the same promises as everything else: build with this and it works everywhere! This is for developer convenience! It’s fast and you will make amazing things with it!
I’m always of two minds with all this stuff. Some part of me is envious of really nice native apps. Most of my favorite apps on my phone feel very native, although I’m not sure I could spot which framework created them, if any. For example, I have a Dribbble app on my phone and I quite like it. It’s simple and nice. I open it up and I’m logged in, which is usually not the case when I open a web app. It feels fast and has all the in-page animation stuff you expect from a native app. I totally wish we had an app like that for CodePen. Maybe if we were starting over today we’d write it in some cross-platform framework that targets all three platforms and maybe gives us some cool competitive advantage. Another part of me is like, meh, I’m a web guy on purpose. I think the native open web is the place to be and has the most longevity. A codebase that serves that well will be the least regrettable over time.
When you’re learning anything, you can see a certain distance between
who you are now and who you want to become. It’s a path that you must
walk if you ever want to reach the state of „being good”. It’s very much like a journey, and even if you’ve never thought about it, you
probably have certain expectations about how your journey should look.
Imagine you’re walking on a rocky path, climbing a hill. It’s a long way and you’re getting tired. How are you feeling? It depends on what you’ve expected from this journey. If you wanted an easy, relaxing, short walk, then you’ll feel terrible—you’ll probably complain the whole way. But if you wanted a challenge, if you wanted to get tired, then it will be an amazing experience for you.
As you can see, the same journey may feel completely different depending on your expectations. The same applies to learning. So let’s see what misconceptions you may have about learning that could be making your journey seem harder than it needs to be.
Myth 1: We Share the Same Path
No matter what you’re trying to learn, there are many people who started doing the same thing long, long ago. It may be discouraging to compare yourself to them—especially if you started relatively late. It’s even worse to see people who started later than you, and who seem to be making much greater progress. You may think that it’s pointless to even try—you’ll never catch up with these people, because the distance between you is too great.
But if you think about it, is there really any distance between you? Do you think they ever were in your current place? Sure, they probably had your skills in this area at one point, but your skills are not separate from the rest of you, or from your life.
Imagine two artists. Mark is 17, and he wants to draw for a living. He spends all his free time practicing, and he has a lot of free time, because at this point in his life his main responsibility is school. Mark also has supportive parents, who, despite not being rich, buy him whatever he needs for this hobby.
Jane is 27. She always dreamed of being an artist, but her parents discouraged her and she eventually stopped practicing. She now works an office job and has a husband and a baby daughter. Recently she started to draw again, in the little free time she gets. She’s afraid to show her work publicly, because she feels she should be much better at this age.
Imagine you get to see artworks by both Mark and Jane. Mark’s looks quite professional, and Jane’s is like a child’s scribble. What do you think: which of these artists is better?
You can call Mark better than Jane only if you ignore the privilege that he’s had in his life
Our learning journey isn’t something separate from our lives. It’s a part of life. And because our lives are not the same, the journeys are separate as well. There’s no way to accurately compare things as different as the lives of two different people. And yet we try to do this, unintentionally, when we call someone „better than us”, or when we berate ourselves for being „too slow”.
We often imagine learning as a competition, as a race. We see someone passing us, or staying behind us, but the truth is, it doesn’t tell us anything about how good we are.
Why? Because everyone starts the race at a different spot, and everyone’s track has a different length! Some people have the privilege of living in a supportive environment, or having a lot of free time or money to spend on expensive courses and tools. Luck is a huge factor in learning, too—like meeting a mentor who motivates us to follow our passion, or getting sick and being forced to focus on other things for a long while.
If you can’t tell what position each runner had at the beginning, how can you tell which one is the fastest?
Imagine you’re riding a bicycle, as fast as you can. And a car passes you. Does it mean that they’re better than you? Not really, because you’re doing two different things. And I don’t want to say that if others seem to be better than you, it’s because they all have some advantage. I just want you to be aware that you can’t tell who’s riding a bicycle, who’s driving a car, and who has to walk, just by seeing their position at the moment. And comparing two different situations would tell you nothing about who’s better!
We don’t walk together. Each of us has their own path to walk, their own obstacles and their own opportunities. Other learners are not your rivals that you’re supposed to catch up to. Your path is your own, and the only person you can compare yourself to in order to see how far you’ve gone is yourself from the past.
It’s pointless to compare yourself to people walking other paths
There’s something called Dunning-Kruger effect, and it means the less you know about something, the more you think you know. Why? It’s pretty simple—you can’t be aware you don’t know X, if you’re not aware X exists.
When applied to the concept of a learning journey, the Dunning-Kruger effect explains a very common issue: the frustration of slow learning. You may think it’s absurd—you’re learning so slowly that you have plenty of reasons to get upset! But ask yourself: how do you know how fast you should be learning? How do you know it should be easier than it is?
The answer is, you don’t know. Even if other people learn the same thing faster, it doesn’t mean you are able to do it fast, let alone that you should do it fast. In many cases, you don’t even have anyone to compare yourself to, and yet you set yourself a time goal without any clue how long it will really take. Just because something looks easy, it doesn’t mean it is. In fact, if you have a hard time doing this, it’s clear proof that it’s not easy at all!
It might have seemed easier at first, but if it turns out to be hard, blame your expectations, not your level of talent.
So instead of getting angry at yourself for not meeting made-up expectations, accept the fact that you miscalculated the effort required for this task. Adjust your pace to what the journey requires, and don’t get upset when you stumble upon obstacles—they are exactly where they should be. If you didn’t expect them, you were just mistaken. Be humble enough to admit that!
There are thousands of ways to do something wrong, and only a few to do something right. So, obviously, you don’t want to waste time walking the „wrong paths” and searching for the right way. You’d love to follow a plan describing your every step, right up to the goal.
The problem is… there’s no „right way” in any learning journey. For a long time, I thought that if I only learned enough about learning, I would manage to put together a plan with exact steps, with no going back, just steady progress. But it’s not possible. Why?
Most skills consist of sub-skills. It often looks like this: to understand sub-skill-B, you need to learn sub-skill-A. But to understand A, you need to learn B. It’s impossible to learn A perfectly, and then move on to focus completely on B. It’s also impossible to learn B without knowing anything about A. You have to learn A a little, use this incomplete knowledge to start learning about B, and then come back with this knowledge to understand A better, and only then learn B as a whole.
Confused? And I still made it simpler than it really is! Because the truth is, various skills are connected in ways you wouldn’t expect. Sometimes you may be bad at one thing, give up, start learning a different one, and when you come back to the former, you may discover that it got much easier.
Sometimes you need to go back to move forward
What does it really mean for you? That there’s no point in searching for the „right way”. No matter what you do, at one point you’ll have to stop, turn around, and revise something you’ve learned earlier to move on faster. And it will keep happening, but it’s not a bad thing at all—in a learning journey, you’re moving forward even if you go backwards!
I used to think that you shouldn’t move forward until you get good at one thing. But now I think it’s not really the case: if you learn ten things a little, and then return to the first one, it will be much easier to tackle, with your experience of doing these other nine things. It’s likely that without this experience you wouldn’t even know what it means to be good at that one thing, let alone learn it!
Your steps may be linear, but the journey has more than one dimension!
So don’t be afraid to „waste time” learning something that doesn’t look connected to what you want to do. Time spent learning is never wasted! Here on Tuts+ we have a variety of written tutorials and video courses on all kinds of topics. If you feel stuck on one, switch your direction to something else—you never know how it will affect your skills!
Myth 4: When You Reach Your Goal, You’ll Become Good
When you start learning, you have a certain goal in mind. The vision of reaching this goal is what motivates you during the whole journey. You imagine how good it will feel, and it makes you keep going, keep practicing. But months pass by, maybe years, and you’re still not any closer to it. How is it possible? Didn’t you work hard enough? Or maybe it’s simply a futile task?
Of course, there’s a chance you’re doing something wrong, but if you notice any difference between your current and past state, you must be moving forward. You’re just not seeing it. Why? It’s very likely that the goal you set for yourself right at the beginning has changed without you noticing it. As you moved forward, it moved forward as well!
What happened here is that when you were setting your goal originally, you knew next to nothing about the area you were planning to learn. You just wanted to be good at it, but „good” was defined by a whole group of people better than you. And when you started getting better, you also gained enough knowledge to notice the differences between various levels of what you previously perceived as „good”.
So let’s say you wanted to be as good as people A, B, and C. They all seemed to be on the same level to a layman like you. And as you became as good as A, you noticed the huge gulf between them and B or C. So you haven’t really become good—better, yes, but not good, because now „good ” means something else than it used to. And once you become as good as B, you’ve guessed it—the definition of „good” will move again to the level of C.
And it never ends! The more you know, the more nuances you notice, the better you get at seeing mistakes, and the more visible they become for you. The only way to reach your goal is to understand that the journey is the only goal. You’ll never be „good” in your own eyes, but you can be better than you were yesterday. And you can, with some effort, ask yourself from the past what they think of you. You’ll be surprised to hear their opinion!
Your past successes can easily get invisible for you, making you feel as bad as you felt before them
The whole point of learning is to get better at something, right? No wonder then that you feel like a failure when your progress is slow, or when you seem to be actually moving backwards. Or when with time things start to get harder, rather than easier.
But who told you that it’s going to get easier with time? It would be true if you were learning a single thing, for example jumping a rope, but in most cases the skill you’re learning is much more complex than that. It consists of many sub-skills, and some of them are not linked at all—so learning one doesn’t make you better at the other.
That’s why you shouldn’t expect that your journey will get easier and more pleasant with time. If you stumble on an obstacle, it doesn’t mean you’re a failure, just because you have walked such a long way and you think you should jump over it with no problems. If you’ve never met this obstacle before, it’s no wonder you have problems with moving on. The number of obstacles you have jumped over in the past doesn’t have anything to do with this new one.
Your journey will never be linear. Sometimes you’ll go slower, sometimes you’ll go faster, sometimes you’ll have to go a step back to find the way. But in the end, as long as you’re moving, you’ll always move forwards in the end, even if it doesn’t feel like this at the moment.
If you need proof, just walk a part of the path you walked long ago. You’ll see that it’s like a walk in the park, even though it felt so terribly hard at one point. One day, it will be the same with the part you’re walking right now—if you just keep moving!
Even if you feel you’re getting worse, you may still be better than in the past
Learning can be extremely satisfying, but it can also make you doubt yourself at times. I believe that you can get more of the former and less of the latter just by eliminating misconceptions about learning from your mind.
Every journey can be pleasant or horrible, just by comparing it to different expectations. A change of expectations about learning makes the process of gaining new skills much more rewarding!
When you’re learning anything, you can see a certain distance between
who you are now and who you want to become. It’s a path that you must
walk if you ever want to reach the state of „being good”. It’s very much like a journey, and even if you’ve never thought about it, you
probably have certain expectations about how your journey should look.
Imagine you’re walking on a rocky path, climbing a hill. It’s a long way and you’re getting tired. How are you feeling? It depends on what you’ve expected from this journey. If you wanted an easy, relaxing, short walk, then you’ll feel terrible—you’ll probably complain the whole way. But if you wanted a challenge, if you wanted to get tired, then it will be an amazing experience for you.
As you can see, the same journey may feel completely different depending on your expectations. The same applies to learning. So let’s see what misconceptions you may have about learning that could be making your journey seem harder than it needs to be.
Myth 1: We Share the Same Path
No matter what you’re trying to learn, there are many people who started doing the same thing long, long ago. It may be discouraging to compare yourself to them—especially if you started relatively late. It’s even worse to see people who started later than you, and who seem to be making much greater progress. You may think that it’s pointless to even try—you’ll never catch up with these people, because the distance between you is too great.
But if you think about it, is there really any distance between you? Do you think they ever were in your current place? Sure, they probably had your skills in this area at one point, but your skills are not separate from the rest of you, or from your life.
Imagine two artists. Mark is 17, and he wants to draw for a living. He spends all his free time practicing, and he has a lot of free time, because at this point in his life his main responsibility is school. Mark also has supportive parents, who, despite not being rich, buy him whatever he needs for this hobby.
Jane is 27. She always dreamed of being an artist, but her parents discouraged her and she eventually stopped practicing. She now works an office job and has a husband and a baby daughter. Recently she started to draw again, in the little free time she gets. She’s afraid to show her work publicly, because she feels she should be much better at this age.
Imagine you get to see artworks by both Mark and Jane. Mark’s looks quite professional, and Jane’s is like a child’s scribble. What do you think: which of these artists is better?
You can call Mark better than Jane only if you ignore the privilege that he’s had in his life
Our learning journey isn’t something separate from our lives. It’s a part of life. And because our lives are not the same, the journeys are separate as well. There’s no way to accurately compare things as different as the lives of two different people. And yet we try to do this, unintentionally, when we call someone „better than us”, or when we berate ourselves for being „too slow”.
We often imagine learning as a competition, as a race. We see someone passing us, or staying behind us, but the truth is, it doesn’t tell us anything about how good we are.
Why? Because everyone starts the race at a different spot, and everyone’s track has a different length! Some people have the privilege of living in a supportive environment, or having a lot of free time or money to spend on expensive courses and tools. Luck is a huge factor in learning, too—like meeting a mentor who motivates us to follow our passion, or getting sick and being forced to focus on other things for a long while.
If you can’t tell what position each runner had at the beginning, how can you tell which one is the fastest?
Imagine you’re riding a bicycle, as fast as you can. And a car passes you. Does it mean that they’re better than you? Not really, because you’re doing two different things. And I don’t want to say that if others seem to be better than you, it’s because they all have some advantage. I just want you to be aware that you can’t tell who’s riding a bicycle, who’s driving a car, and who has to walk, just by seeing their position at the moment. And comparing two different situations would tell you nothing about who’s better!
We don’t walk together. Each of us has their own path to walk, their own obstacles and their own opportunities. Other learners are not your rivals that you’re supposed to catch up to. Your path is your own, and the only person you can compare yourself to in order to see how far you’ve gone is yourself from the past.
It’s pointless to compare yourself to people walking other paths
There’s something called Dunning-Kruger effect, and it means the less you know about something, the more you think you know. Why? It’s pretty simple—you can’t be aware you don’t know X, if you’re not aware X exists.
When applied to the concept of a learning journey, the Dunning-Kruger effect explains a very common issue: the frustration of slow learning. You may think it’s absurd—you’re learning so slowly that you have plenty of reasons to get upset! But ask yourself: how do you know how fast you should be learning? How do you know it should be easier than it is?
The answer is, you don’t know. Even if other people learn the same thing faster, it doesn’t mean you are able to do it fast, let alone that you should do it fast. In many cases, you don’t even have anyone to compare yourself to, and yet you set yourself a time goal without any clue how long it will really take. Just because something looks easy, it doesn’t mean it is. In fact, if you have a hard time doing this, it’s clear proof that it’s not easy at all!
It might have seemed easier at first, but if it turns out to be hard, blame your expectations, not your level of talent.
So instead of getting angry at yourself for not meeting made-up expectations, accept the fact that you miscalculated the effort required for this task. Adjust your pace to what the journey requires, and don’t get upset when you stumble upon obstacles—they are exactly where they should be. If you didn’t expect them, you were just mistaken. Be humble enough to admit that!
There are thousands of ways to do something wrong, and only a few to do something right. So, obviously, you don’t want to waste time walking the „wrong paths” and searching for the right way. You’d love to follow a plan describing your every step, right up to the goal.
The problem is… there’s no „right way” in any learning journey. For a long time, I thought that if I only learned enough about learning, I would manage to put together a plan with exact steps, with no going back, just steady progress. But it’s not possible. Why?
Most skills consist of sub-skills. It often looks like this: to understand sub-skill-B, you need to learn sub-skill-A. But to understand A, you need to learn B. It’s impossible to learn A perfectly, and then move on to focus completely on B. It’s also impossible to learn B without knowing anything about A. You have to learn A a little, use this incomplete knowledge to start learning about B, and then come back with this knowledge to understand A better, and only then learn B as a whole.
Confused? And I still made it simpler than it really is! Because the truth is, various skills are connected in ways you wouldn’t expect. Sometimes you may be bad at one thing, give up, start learning a different one, and when you come back to the former, you may discover that it got much easier.
Sometimes you need to go back to move forward
What does it really mean for you? That there’s no point in searching for the „right way”. No matter what you do, at one point you’ll have to stop, turn around, and revise something you’ve learned earlier to move on faster. And it will keep happening, but it’s not a bad thing at all—in a learning journey, you’re moving forward even if you go backwards!
I used to think that you shouldn’t move forward until you get good at one thing. But now I think it’s not really the case: if you learn ten things a little, and then return to the first one, it will be much easier to tackle, with your experience of doing these other nine things. It’s likely that without this experience you wouldn’t even know what it means to be good at that one thing, let alone learn it!
Your steps may be linear, but the journey has more than one dimension!
So don’t be afraid to „waste time” learning something that doesn’t look connected to what you want to do. Time spent learning is never wasted! Here on Tuts+ we have a variety of written tutorials and video courses on all kinds of topics. If you feel stuck on one, switch your direction to something else—you never know how it will affect your skills!
Myth 4: When You Reach Your Goal, You’ll Become Good
When you start learning, you have a certain goal in mind. The vision of reaching this goal is what motivates you during the whole journey. You imagine how good it will feel, and it makes you keep going, keep practicing. But months pass by, maybe years, and you’re still not any closer to it. How is it possible? Didn’t you work hard enough? Or maybe it’s simply a futile task?
Of course, there’s a chance you’re doing something wrong, but if you notice any difference between your current and past state, you must be moving forward. You’re just not seeing it. Why? It’s very likely that the goal you set for yourself right at the beginning has changed without you noticing it. As you moved forward, it moved forward as well!
What happened here is that when you were setting your goal originally, you knew next to nothing about the area you were planning to learn. You just wanted to be good at it, but „good” was defined by a whole group of people better than you. And when you started getting better, you also gained enough knowledge to notice the differences between various levels of what you previously perceived as „good”.
So let’s say you wanted to be as good as people A, B, and C. They all seemed to be on the same level to a layman like you. And as you became as good as A, you noticed the huge gulf between them and B or C. So you haven’t really become good—better, yes, but not good, because now „good ” means something else than it used to. And once you become as good as B, you’ve guessed it—the definition of „good” will move again to the level of C.
And it never ends! The more you know, the more nuances you notice, the better you get at seeing mistakes, and the more visible they become for you. The only way to reach your goal is to understand that the journey is the only goal. You’ll never be „good” in your own eyes, but you can be better than you were yesterday. And you can, with some effort, ask yourself from the past what they think of you. You’ll be surprised to hear their opinion!
Your past successes can easily get invisible for you, making you feel as bad as you felt before them
The whole point of learning is to get better at something, right? No wonder then that you feel like a failure when your progress is slow, or when you seem to be actually moving backwards. Or when with time things start to get harder, rather than easier.
But who told you that it’s going to get easier with time? It would be true if you were learning a single thing, for example jumping a rope, but in most cases the skill you’re learning is much more complex than that. It consists of many sub-skills, and some of them are not linked at all—so learning one doesn’t make you better at the other.
That’s why you shouldn’t expect that your journey will get easier and more pleasant with time. If you stumble on an obstacle, it doesn’t mean you’re a failure, just because you have walked such a long way and you think you should jump over it with no problems. If you’ve never met this obstacle before, it’s no wonder you have problems with moving on. The number of obstacles you have jumped over in the past doesn’t have anything to do with this new one.
Your journey will never be linear. Sometimes you’ll go slower, sometimes you’ll go faster, sometimes you’ll have to go a step back to find the way. But in the end, as long as you’re moving, you’ll always move forwards in the end, even if it doesn’t feel like this at the moment.
If you need proof, just walk a part of the path you walked long ago. You’ll see that it’s like a walk in the park, even though it felt so terribly hard at one point. One day, it will be the same with the part you’re walking right now—if you just keep moving!
Even if you feel you’re getting worse, you may still be better than in the past
Learning can be extremely satisfying, but it can also make you doubt yourself at times. I believe that you can get more of the former and less of the latter just by eliminating misconceptions about learning from your mind.
Every journey can be pleasant or horrible, just by comparing it to different expectations. A change of expectations about learning makes the process of gaining new skills much more rewarding!