Treat each thing you want to learn as a project, get some free project management software like asana or trello and carve it up into goals...schedule your time, map it out in the software...stick to the schedule....treat it like a job, create to do lists and calendars etc. then just follow thru!
Prioritize and track your time. Write goals for each month, then break down each goal into what needs to be done. At some point you have to give most of your attention to a single project. I know this can be difficult, I have the same problem.
2. Pick something new that you have wanted to learn
3. Use 2 to build 1
4. Have a specific goal, and keep working X minutes a day - absolutely no matter what.
5. Ship
Time actually runs fast, and even if you spent just about 60 minutes a day, you will quickly realize that you can squeeze in almost a working day into a week.
It's quite powerful, and before you know it you would have racked up a lot of knowledge, and actually have stuff to show.
Break your complex project down into a list of tasks.
You want list items specific enough that you have a clear idea of where to start.
Now do the first few tasks. After 2 or 3, you'll have built momentum and that's the hard part.
To keep your momentum, stop before an easy task so tomorrow it's easy to start up again. Do the same when taking breaks. Tick/strike your tasks as you go, as it's satisfying to see your progress.
Set specific and realistic timeframes for each task, keeping in mind they'll all take you three times longer than you think they will. Always be able to answer "where will my project be 1 day/week/month from now" to keep yourself on track.
Rinse/repeat, get enough rest, get enough exercise and time away from computer. Especially if you're doing dayjob AND side-project sitting at a computer. Resist the urge to pull all-nighters.. although you're 23 so once in a while is probably OK :-)
Basically, make a list of everything you're reading and working on. Then prioritize. Then block things off when you're most productive. For me, it's reading in the AM and then coding side-projects at night.
I'd also suggest building some of that project management experience and creating some sort of project plan/burn down chart for yourself. I do this all the time for fitness-related activities, and seeing numbers in excel (x lines of code written, y chapters read) really keeps me motivated.
Try to set a realistic amount of time that you can spend over a longer time rather than setting long hours that you can sustain only for a week or two. Do less and do it deliberately. For example: Always work on Django from 8am-8:30am, every day, no matter how busy or relaxed it is. Always work on a problem that you find interesting. Maybe you start with a simple todo app and develop features every day that make it a project management tool or expand it into a mail system. Establishing a system that is realistic for at least two years will make you a lot better than binge learning for two weeks and loosing interest and power after it.
What works for me is setting a schedule and having milestones. I follow a plan for a period of time or until I create a concrete deliverable. Then I decide to work more on the project or pause to peruse something else.
I found constantly deciding what to do was too exhausting.
The tool is called a schedule. You write what you should be doing at that time in the schedule. It does not run your life, instead it is the most optimized use of your time and it's up to you to follow it. After many false starts you will eventually adhere to the schedule, but only if you are truly interested in what you are learning and not learning it because you think you should. My personal method is take something I want to learn, and then all the boring pre-req parts become a research project instead of starting like everybody else does with the boring pre-req parts and failing before you begin.
1. Time box it. Pick a date that you will release, go live, ship, whatever. Pick a date.
2. Break it into smaller tasks.
3. Prioritize those tasks and start with the easiest.
4. This is not time to learn, this is time to build. Use only tools that you know. Even if you know there is a better way, do it the best worse way that you know than the better best way you have heard of but don't know and will have to stop and learn. This is key, separate learning and building.
5. Work on it everyday, at a consistent time, preferable first thing in the morning.
6. Since you will be waking up early, go to bed early too and get enough sleep.
7. Work on only one project at a time, meaning, you can't work on other projects in between. Everything else goes on hold till this is completed.
8. Find ways to motivate and inspire yourself when you are feeling mentally down and low and focus is hard to come by. If you really like music, don't listen to it all the time. work without it, when you find yourself drained, that's when you should turn on music. Unless you absolutely can't work without it. Whatever that gives you extra boost, hold off from it till you really need it. Coffee? Don't drink it, till you need it. Think of it like power up. Save it till you need it.
9. Is it ship date? Release it, only 70% done? Release it!
Great question. I guess effective time management is the key here. I would recommend blocking times during the day to focus solely on your learnings. Avoid distractions and then push through until the time is over. It´s also very important to plan in buffer times of 10-20 Minutes to get into the zone again after taking a break. Yeah, it´s also really important to take breaks! Don´t underestimate the power of breaks. Last but not least I´d recommend using some kind of planning tool. Either a simple To-Do List or a daily calendar or both. I can recommend https://zenkit.com. Zenkit is an all-in-one project management solution that lets you view your information in the right view at the right time. This way, you´ll be more efficient and can get more done.
What are some of your strategies for scheduling appropriate time for working on a side project as well as some extra-curricular learning?
Scheduling work is easy - I have to show up 40hrs/week.
What I do with the remaining hours is sort of hard to figure out. (Un)fortunately, I have 4 textbooks I'm trying to go through, as well as a programming project that I can faithfully say to myself "this might not suck".
I don't really have deadlines except self-imposed, e.g. I want a project prototype done in the next 3 months and I want to finish all of these textbooks within the next 6 months (dense engineering books). My biggest problem is that I tend to just "do what I feel like", meaning I'll randomly switch between my tasks. But I feel like this isn't really ideal for someone who (eventually) will have more serious deadlines and responsibilities. Hence the need for scheduling.
1. Setting aside a "20% day" to develop infrastructure - I went through a slow period about 15 years ago where I had the option of doing this without meaningful tradeoffs and I built some software that I still use to this day. It's tempting to call this a learning, or reading day but I've found that I lose focus if I have a full day to do that - if you decide that you will spend 8 consecutive hours building a personal infrastructure tool (what ever that winds up being) you will have something to show for it at the end of the day - and therefore you will do it again. Those sort of things build upon each other nicely. Tooling/infrastucture is a marathon.
2. Set aside 30-60 minutes a day for learning, however you define it - for me it's PluralSight and Anki - that is usually how I start my day. Having it on the calendar, without many options to choose from makes it very efficient. Learning should be in sprints.
3. Set aside some amount of money every month for tools and capital purchases - targeted savings accounts are perfect for this - having the money in an account targeted for this purpose instead of a general account prevents a lot of money anxiety and allows you to do a better cost-benefit analysis.
Leave your work in a way that it is easy to get started. Make schedules for anything routine. Decide what has to suffer from lack of attention, and put it out of your mind. You can only manage so many projects.
Echoing other comments: set small goals. I used to make grand plans about spending 50 hours a week self-studying 10 different subjects. Unsurprisingly, I didn't get anything done.
So, instead, set small goals and work your way up. Personal example: I'm learning Spanish. Instead of spending 5 hours a day learning, I'm trying to do one Pimsleur lesson a day. (It's an audio learning program). It's only 30 minutes, and I'm on a 6-day run. Pretty easy, and I don't want to break the chain, so I end up doing it. 30 minutes a day, every day is better than a few hours here and there.
I find setting personal short term goals with self made-up deadlines (ex. I want to complete this section within the next 2 hours) really helps. Bear in mind if you can't measure what you do this won't work. (ex. if you don't know how long something will take or what exactly you are trying to accomplish).
It's also important to switch off between changing focus (ex. from one project to the next, take at least an hour break).
I reckon your biggest problem at the moment is context switching. I'd suggest you allocate your time explicitly (first learn and then do - instead of trying to build something useful while still learning).
reply