DEV Community

loading...

Study Habits For Programmers Part I: Let's make a study plan.

rmorabia profile image Radhika Morabia ・4 min read

I think most advice about learning programming is terrible.

This applies both to beginning programmers and folks further along, trying to learn their next language or pick up the hot new framework.

It seems like most programmers end up learning things despite their bad study habits, instead of being conscious about how we go about learning things.

What's this series about?

I'm embarking on a grand learning journey to learn Python, master Node, and get good at algorithms. I will be doing this full-time for the next few months. I will be writing about this journey publicly, and along the way, I'm going to be sharing some thoughts on how I'm going about this.

I've done this before. I learned front-end development and landed my first tech job within 7 months. I also had a pretty popular blog about productivity and self-development from my high school days. I taught myself calculus, combinatorics, and marketing. Learning about learning back in my teens has made my tech career move faster than I expected. I firmly believe the ability to learn quickly is the most important meta skill that I have.

This series is for everyone. Whether you've never programmed before or you're trying to learn a new language 10 years in, there's always room for improvement. The faster we learn, the faster we can write the code we want to write.

The expected format is to sprinkle in little nuggets in my actual learning updates, and occasionally collate those into organized posts like this one.

Let's make a study plan.

In order to actually learn something, we need to figure out what we're actually trying to learn.

Sounds simple, right?

I said above that my grand study plan is to "learn Python, master Node, and get good at algorithms." How do I actually go about that?

There's a few different things we need to define:

1) What is our success point? (ie. App to build, course to finish)
2) What's our timeline? (ie. 6 weeks, 6 months)
3) What is the daily (or weekly) process for getting there? (ie. Work on this one hour a day, work on this all day on Saturday)
4) What tools are we using? (ie. Books, courses, etc.)

Let's answer that for each one of my goals.

Learn Python

1) My success point is making a Django REST application.
2) I plan to at least be making the application in 6 weeks.
3) My process is to work on going through my Python book for a timeblock of 3-4 hours a day, 6 days a week.
4) I'm using Python Crash Course, 2nd Ed.. If I don't like that, I'll pick up a Treehouse subscription.

Master Node

1) My success point is finishing the Andrew Mead course on Node and building my side project, favorite.actor.
2) I plan to be 100% done with the course and have at least an MVP version of the side project built in 2 months.
3) My process is to work on the course first, then work on the project, for a timeblock of 3-4 hours a day, 6 days a week.
4) The tools are part of the goal.

Get good with algorithms

1) I want to finish at least one random Leetcode algorithm question a day.
2) There is no clear end to this, but I want to do at least 5 a week.
3) My process is to spend an hour on this every day, supplementing with courses with any extra time.
4) The tools include Leetcode, Algorithms I from Princeton, The Algorithm Design Manual, and Colt Steele's algorithms course.

I have some other goals along the way (mostly projects I want to build), but this is a good overview of my plans for now.

We can only start to study efficiently if we have an actual plan in place for how we want to study. There's a lot of study hacks out there, but they don't matter unless you have a fundamental goal in place.

There's loads to break down here -- How do you decide on the timeline? How do you choose resources? What's a good success point? What's a good learning routine?

I want to go into each of these topics in detail, so I'll save them for other posts in this series. For now, the most universal answer is just to ask and read around. Ask other people how they learned things. Read posts about how people learned things. That'll help point you in the right direction to start.

I'm not sure about my writing schedule for this series, but I will be writing about my actual progress in a weekly series. When I get time in-between, I'll keep going with the actual study habits.

Thanks for reading!

Discussion (12)

pic
Editor guide
Collapse
beelzenef profile image
Elena.NET

Here I go!

1) What is our success point? Learn Xamarin
2) What's our timeline? 2 months
3) What is the daily (or weekly) process for getting there? 1 hour daily!
4) What tools are we using? Some books on my shelves and asking my coworkers

✌️

Collapse
rmorabia profile image
Radhika Morabia Author

I'm going to challenge you to define a project you want to create at the end of learning Xamarin. If you don't know right now, ask your coworkers for a good beginner project.

Collapse
beelzenef profile image
Elena.NET

I'll do it, challenge accepted!

Collapse
gastongarcia profile image
Gastón García

Thanks for this post. Here's mine.

I'm planning on learning Next.js

What is my success point? Finishing the three apps in the Udemy class I'm taking
What is my timeline? 6 weeks
What is my daily progress for getting there? 1 hour per day. 5 days per week.
What tools am I using? Udemy course "Universal React with Next.js"

Collapse
leysers profile image
Leyser Sandoval

I've gone through the treehouse Django courses however those are out of date. I'd recommend after completing the Python Crash Course, 2nd Ed. for you to check out this: wsvincent.com/books/
to learn Django.

Collapse
rmorabia profile image
Radhika Morabia Author

Thank you! I'll look into this.

Collapse
mmanreza profile image
Michael Manreza

Hello!

I got curious about this line, "Learning about learning back in my teens has made my tech career move faster than I expected"

Do you have recommended resources?

Collapse
rmorabia profile image
Radhika Morabia Author

Hmm, not super sure. I'd say check out Scott Young's blog (scotthyoung.com) to get started.

Collapse
mmanreza profile image
Michael Manreza

Thank you so much.

Collapse
priomahabub profile image
Mahabub Islam Prio

Looking forward to see your side project.
Its a good article.