System of Learning


You’ll have a goal of becoming a developer forever if the only thing you have is a goal itself. Everybody has a goal or a dream. How many people do you think are achieving their goals repeatedly? I assume most of them aren’t. They have goals but they don’t understand the processes needed to get what they want. They don’t use systems. Or at least not good systems.

First let me explain what a system really is. Goals give you a direction how to get somewhere. Systems are processes which enable you to actually get there. System is something you do every day.

Remember what I said about testing if you like programming? Now it’s the time to go all in. It’s OK just playing and trying out at first, but later if you decide you want get very good at something, your attitude must be very different.

It’s obvious having this attitude long-term should be easy if you can keep your motivation. But motivation is a tricky thing.

Most of the time you won’t be fully motivated. And often you won’t be motivated at all. That’s why you need a good system.

A really good learning system is a daily commitment. It’s doing its job even if you’re not actively reading about programming or if you’re sleeping. You need to see aspects of your daily activities in the light of your system of learning. Read on.


If you want to learn effectively, you need to keep your energy level high. Don’t expect to learn anything if you just start studying and you’re already tired. That’s why you have to take control of your lifestyle.

This mean healthy food, enough sleep and a exercising. If that’s too much to ask then let’s agree we can start with not unhealthy food and 30 minutes of a daily walk.


How does your study environment look? And how does it feel like to be learning there?

Your environment must be clean and distraction free. Every single thing that has nothing to do with what you’re trying to focus on is a potential distraction. Your phone. A souvenir on your desk. If you keep delaying studying because “just 5 minutes more minutes of gaming”, then you have a clear problem with distractions.

Think about what stuff you need to get rid of at least for a few hours.

Goals & Schedule


Maybe you heard about SMART goals before. Specific-Measurable-Actionable-Relevant-Time bound. Here’s an example how it could look like for you:

  • Specific: I want to learn basics of JavaScript
  • Measurable: Success is considered finishing Codacademy’s free JavaScript course
  • Actionable: 5 times a week I’ll study for at least 2 hours
  • Relevant: Learning JavaScript will teach me how to make interactive websites, which is an important skill for a web developer
  • Time bound: I have to learn it by XY

SMART goals help to minimize those situations when you’re not sure what to do and when to do it. Another benefit is you tend to negotiate with yourself less often. Without rules you just do what you feel you want to do at the moment, because nowhere is written you have to do it now. So you keep delaying and nothing’s getting done. But this way you know when you’re breaking the rules.

One thing I see a little bit insufficient with SMART goals is they don’t give you a clear consistency. You need a schedule for that. The less organized our day is the more we’re open to useless distractions. A schedule is your defense from distractions and time wasting.

Amateurs only work when they feel motivated and stop when they don’t feel like it. Winners set a schedule and stick to it. System of good rules and schedules always beats motivation in the long-run. So you’ll do five 2-hour sessions per week? Which days? When do you start?

Once again, rather start small and make more demanding schedule after you tested it and you know you can handle more.



Remember playgrounds? I guess you have nice memories of them. Or maybe it depends on the playground? A good playground has several qualities. It’s free to enter anytime. It’s public so other kids can join too. And it has some sort of safety barriers. All those things are great for learning. Let’s build a playground for a future programmer like you:

  • No cost? Then no worries to start playing. There are tons of free books, courses, Youtube videos, blogs etc. on the internet for free. You can find a good free version for every single tool you’ll need to start programming. Check out the list of free resources I made for you.
  • You can find an online or offline buddy for learning. You can communicate with peers, seek help from more experienced people or you can give advice by yourself. You’ll find many Facebook groups, subreddits or similar websites where other developers and beginners discuss their code. Don’t be afraid to look stupid if you don’t know something. To be honest, if you struggle with something for long, you need to ask for help or explanation.
  • Important activity when learning coding is doing projects. Projects which are fun and don’t have negative consequences if you fail. Programming can’t be learned only by reading a textbook or just following instructions. After you finish a course don’t go instantly looking for a job. You’re not prepared for the real work yet and very likely you’ll fail. This can be discouraging for your future learning. You’ll find out soon it’s very different once there’s no tutorial to follow and you’re on your own. First finish an interesting project where you can try stuff. Choose something that excites the shit out of you. Then show it to people and ask for feedback.
  • One of the best advantages you can have is to have a mentor. Ideally with the same experience of successfully finishing what you’re trying to accomplish. Don’t worry if that’s not possible for you. I don’t think most programmers ever had one.

One last reminder before we move from building systems. Maybe you’re super excited about this right now and you want to dedicate every single minute of your free time to it. And that’s really great. But if you’ve never tried to do anything like this before, how long do you think it’ll last? Early quitters tend to experience early failure and early disappointment. Let’s be clever and avoid this.

It’s better to start small and to be consistent. It will take some time. First you need to build good habits. This is crucial.

So I suggest this: Start by doing a half or three-quarters of what you think you’re capable of now. Try to do it like this for a week or two. If you feel it’s pretty comfortable for you, then it’s time to dedicate more time to it. It’s rather a marathon than a sprint, don’t you agree?

Now let me show you how you’ll become a student champion.

Learning techniques