This question, or some variant of it, comes up often, as students in Dev Bootcamp’s Phase 0 work mostly solo through a curriculum covering everything from HTML/CSS to JS to Ruby to SQL. It’s daunting, especially if you’re so new to code that you don’t even know if you don’t know what you don’t know!
So naturally, there’s this desire to put a timer on the work and hope that you’ll be all set when the bell rings, as long as you took enough time.
Most traditional education plays to this desire really nicely. X amount of credits. Y amount of years. Z number of certifications. And then, voila, you’re Educated, and it’s time to go do one thing on autopilot, for 50 years, until you die!
Let’s refactor that expectation a bit. This isn’t college, for better and for worse. A typical boot can lock in some concepts way faster here than there, but they’ll have to own more responsibility in order to make that happen.
Phase 0 is all about getting a solid grasp on the bare-bones fundamentals of a couple languages. It’s also necessarily an intro to some of the workflow patterns you’ll encounter over and over again while submitting code onsite at DBC and beyond. Understanding all the curriculum in those offsite weeks will leave you well-prepared for Phase 1.
Here’s the scary part, if years of traditional schooling did the same number on you that they did on me:
In the world of code, “understanding” is not the same thing as memorization.
It’s not the same thing as being able to talk your way through it.
It’s not the same thing as “oh, I get it now,” right after your pair codes it on their own.
It’s not the same thing as having read lots of books or attended lots of classes.
It’s not even the same thing as reviewing the last solution you personally coded and understanding all of it. Can you code it again? Right now? Without the cheat sheet you just created?
Maybe Alonzo from Training Day was in the wrong business! As someone who trades in the craft of code, understanding is not about what you “know,” it’s what you can prove.
Is 4 hours a day enough to bring you to that level of understanding? It might be, as long as time worked isn’t your only end goal. Some people need less time to understand concepts than others. Some need more.
Either way, what tends to eat up an unfair chunk of most novices’ time is simply the act of sitting there, befuddled by how something works, but too proud or scared or embarrassed to reach out and ask for help. The strategy I used to combat this was twofold: figure out how the thing works, and/or figure out how to ask for help.
When you write code, can you understand what it’s doing? Could you predict what lines of code a given program will run, in which order? Can you pseudocode every single step of your app? When you get something working, if you were to delete your code and go eat a snack, could you come back and do it all again from scratch? Even if all the variable names had changed in the tests/driver code?
You may not be there just yet, but you can definitely strive to get there in due time, as long as you realize that the above approach is the place where real learning happens, and chase that feeling every day you sit down to code.
And it’ll feel way less comfortable than “yay, 120 minutes until my learning is guaranteed to be locked in.”
And it should.
But it’s better to fight tooth and nail for that solid understanding right now, because your bias will need to shift away from understanding and closer to completion during a faster-paced P1 and ludicrous-speed P2.
I think I hear a deeper need in this question, and I’ve heard it before, and I’ve held it before, and it is a need that is screaming “HELP! I am not at all sure if I’m doing ok right now, and I don’t know how to find out , and I’m really scared that asking will somehow make everything worse.”
If that feels like your need at all, don’t stuff it beneath hours of work, as if time alone will lead you to mastery.
Drag that need out into the light of day, by getting outside info about your understanding as often as possible. Pair more than you’re required to. Ask for frank and honest feedback on how strong you seemed during your pairing session and what areas you could still use work on. If they aren’t comfortable giving feedback face-to-face, encourage and remind them to use the anonymous feedback app, and then make a habit of pairing with so many people that their feedback is truly anonymous.
The world-class beginner’s goal is not to set the right timer for themselves. The world-class beginner’s goal is to spend the right time with others.
Don’t lone wolf it! Your peers’ camaraderie and feedback will help keep you out of your head and in your fingertips, where the only real learning ever happens.
There is nothing I have come to understand on my own in 5 hours that I couldn’t have picked up in 1.5 hours with a communicative pair.
If your plan is to practice 5 hours a day, my recommendation is to see if you can make at least one of those hours a paired one. Don’t make the pairing minimum your personal maximum. Why not pair every day if you already have the time?
Be greedy for human contact! It’s all the people around us who can help us see where we really stand, here and everywhere else in life. Besides, you signed on to a program like this because at least a part of you didn’t want to learn alone. Don’t start now!
So yes, to answer your original question, it sounds like you’re definitely putting in good time.
But make sure the time you’re putting in is good.
Happy coding! May you find your next error very soon.