How long do you spend learning to code?

I feel like the biggest noob on this site, but I am curious to know what learning routines does a noob, beginner, mid-level, and/or senior level programmer is like? How many hours do you do, and how many days of the week do you practice?

I can only dedicate about 1 hour of learning a night after my daughter is asleep. Until she is in daycare, this is my schedule. I feel like I'm moving a lot slower then most other self learners. I would love to try and adopt some one else's routine and see what works best for me.

Did you find this post useful? Show some love!
DISCUSSION (30)

We're all noobs, just at different amounts of time in noobhood πŸ˜‰

Working full time and doing grad school has kind of sucked up any time I spent formally learning (though arguably that's the point of the grad school thing). But since work is programming, I'm still learning more hands-on 40ish hours a week just being there. Either talking to the senior devs or Googling a problem, there's something to learn all day.

And that's kind of the thing -- programming is inherently a skill that no one masters. There's always more tech, more people who know more than you, more releases to keep up with, more bugs unearthed. But to someone else, you're the one that knows more than they do about a niche. Like, I (a QA) have devs coming to me for unit test help. These dudes know full stack development and Java and stuff, meanwhile, they can't figure out a Jasmine quirk so they come to me.

That's kinda the weird part of it all is spending a bunch of time outside of work trying to get to where those guys are, meanwhile they think they need to get to where I am.

I'd say find a way you like to learn and stick with it. eBooks, dev.to articles, paper books, hands-on projects + Google, mentorship situations, whatever. I like reading, so I'm always lurking about here to learn stuff from people, which occurs off and on every day but very unstructured since school and work is very structured.

(sorry, I ramble πŸ˜‡)

That first statement - "We're all noobs, just at different amounts of time in noobhood" reminded me of a thing a senior dev said to me once (I was a intern) - he said me and him where really no different, he'd had just made more mistakes and more time to make them in. I'm pretty sure he was joking, but i've used it when encouraging some of my friends who are learning to code. Pretty sound advice I think. :D

Thank you for the advice! This is the most informed ramble, I have ever listened to and thank you.

There is so much to take in and it can feel a bit daunting to tackle. If I look at it this way like you did in your example. There is no doctor that knows it all. There are Allergists, Family doctors, cardiologist,dermatologist etc. No doctor is expected to know all these , so I'm guessing the same im guessing the same applies to software engineers

im guessing the same applies to software engineers

Absolutely! Not everyone needs to aspire to fullstack. It's totally cool to be the Java guy or the Angular guy or the Jenkins wizard or whatever. My example showed I somehow became the Jasmine guy (gal... same thing). If anything, it makes you a more easily marketable job candidate to have a focus rather than being a generalist.

I think I started somewhere around 1990, at the age of 10ish. I have spend from a few hours a week to 100+ hours a week learning. I love to create software, and I have been doing it a lot. I have made it my work. If you want to compete with me with the amount of time I spend on learning to create software, you might as well give up right now! Because it is not a race.
In a previous comment I remarked that "My outside programming is done in dead tree format". Browsing dev.to (etc.) is also learning to create software. Reading an article, and then thinking about it is also learning to develop software. You are also learning to develop software while you are taking care of your daughter after you just read about something interesting. It is akin to to the "eureka effect". Read something, then do something else more tedious (as in, less mentally challenging) and you continue to learn because you are still thinking about the problem.

Note, I refuse to talk about "coding" because I object to the term. The craft is "software development", not codification of natural language to machine interpreterable code. We solve problems in the form of software. We do not codify. Solving software problems does not require physical access to computers. We can do this in our mind while we are on the toilet, under the shower, changing a diaper.

Thank you for the great advice. I read that I must become a problem solver, but never in that degree. I think adopting that mindset will make all the difference between a coder and a software engineer.

I don't think I'll ever stop learning, seeing as how our field evolves so rapidly. Each year something new comes out that's worth taking a look at.

I would say the best way to learn is through practical application: don't just try a language out and then never pick it back up again, but learn the language and it's quirks by building something! If you aren't sure where to start, maybe do the Angular or React tutorial online to get some inspiration and practical knowledge!

I learned html and css but im not a master at it either. I am currently learning some javascript. Would you recommend a backend language after or learning about Angular or React

I think it depends on what your goals are. A lot of people just like to become frontend web developers, which is a perfectly legitimate career choice. Others eventually want to get into full-stack development, working with both the frontend as well as the backend.

If you're already down the path of learning frontend development, I would maybe expand your skills in that area first. I would most certainly go out and try Angular or React, or even a different frontend framework that you're curious in such as Ember or Vue.

Once you're feeling comfortable with that, you can look into developing backends to serve your applications!

I second trying out ember 😌 their learning team has been putting a lot of time into their docs lately!

Ben Halpern DEV.TO FOUNDER

Hey there, we see you aren't signed in. (Yes you, the reader. This is a fake comment.)

Please consider creating an account on dev.to. It literally takes a few seconds and we'd appreciate the support so much. ❀️

Plus, no fake comments when you're signed in. πŸ™ƒ

I can only dedicate about 1 hour of learning a night after my daughter is asleep.

Are you listening to any podcasts? It's often possible to get some good casual immersion to the coding world while doing other things like chores and childcare.

Thanks Ben, that is a great idea and I'm definitely going to try that out. As I'm going through the comments, I'm starting to realize that I asked the wrong question. I should've asked, How can I study and practice smarter

That's a good question! The best advice I'd have to give you is that:

  1. Nothing beats actually doing something with what you've learned, and
  2. The best reason to learn something is to solve a problem you already have.

What this meant for me when I was starting out was that I learned the most by making mistakes with a project. I'd get to a point where I'd have to stop and think to myself, "Wow, I have no idea what to do about this..." and then I'd either have to read about how other people solved the problem, or try things until it worked. Sometimes I wouldn't understand why things worked until much later, but having already actually used what I'd learned, I was able to apply it to different situations until I did.

I realize this doesn't quite answer your question, but it will hopefully help you maximize the time you do have! Doing things will probably be a better use of your limited time than reading about it :)

That is pretty crazy because I made my portfolio website page just by using google. I didn't know what I was doing but I later took a frontend track on treehouse. It was then I learned why certain things did and didn't work. I understand Html and css isn't really coding but I am just starting to learn javascript and I notice I had to slow down and try to understand what Im doing because im not picking it up as fast as html and css. That was good advice and I think im going to search up some simple apps I can build with javascript to get a better understanding

I don't have enough experience to say if the feeling of being a noob ever goes away. I first learned to code 4 years ago when I started college.

About a year ago or so I started freeCodeCamp, and recently I've been fortunate enough to pour whatever time I want into learning. My current schedule is to spend 2 hours on learning curriculum, then 2 hours on working on projects. Most of the project time tends to be googling things, but I try and make progress.

Weekdays are easier to put in the time, but if I get up early enough on the weekends, I can also put in the time before I get distracted by people and plans.

Don't give up on learning; feel free to reach out if you ever want to talk.

Thank you and I really appreciate that. I go through like 100 questions a day, but I'll try my best to only ask you 99 questions =P

Best way for me to learn is just jump into a project. I'm gonna hit my head against the wall, i'm gonna rage and cry in my sleep until i finally get it. How much time do I spend doing that in a day? As long as I feel good. Some times it's 2 hours and some others 15 mins. I don't think it really matters how much time you spend, just how and when.

If not that then the 4 hours I spend in a bus are perfect for reading books.

Great advice, I think I should stop viewing my study time as something measurable and view it as a chaotic work in progress =)

I am a total noob too, but I'm lucky and am able to spend 35+ hours a week learning: a couple hours in the morning, a mid-day break for my actual p/t work, and then mid afternoon until I tap out at night. This is my life six days a week. I'm approaching learning as my fulltime job while I work very part time, and I know I am so fortunate to be able to do this.

At any rate, at some point every day I usually get to a point where I need a break away from the computer. This is when I put headphones on and listen to tech podcasts on my phone while I cook, wash the dishes, go for a walk, run errands, whatever. I also will put on youtube videos while I'm doing little chores around the house (folding laundry, tidying the house). It's a good way to sneak in a couple more hours per week getting some good exposure to the field. With your daughter, maybe you'd be able to find some time to listen to a podcast or two each week while the two are you are doing your thing or she's otherwise occupied??

I think I might just have to see it as altering my study time when im busy running errands as audiobook or podcast time. When i get some quit time change it can change it to reading or practical application time. It would definitely help to be more in a routine type of flow as oppose to letting myself get to busy and pushing it off to another day. Thank you , I think I should just find a different way o learning and just finding away to add it to my routine. I really appreciate you taking the time to help give some friendly advice =)

I'm glad to be helpful if I can!

Your comment made me think of something else too! I used to have similar issues with being really busy but not really accomplishing much (although without caring for a human, so probably way different!). Last year, for about four months I used a bullet journal every day. It helped me to really distill daily goals and focus my time. It completely transformed my productivity. Then, after a while I realized I didn't need it anymore. I happened to read the 12 Week Year at about that time, and now I use that method for goal setting and prioritizing how I spend my time daily and weekly. Even when I am super busy with life, I am still marching consistently towards my goals.

(Bullet journals can be a bit overwhelming... this is the article I used to start mine: buzzfeed.com/rachelwmiller/how-to-... Mine was not pretty or fancy, it was functional and it was great!)

Wow, lot's of really great comments and advice here. The way I see the difference between a beginner and a more experienced programmer is really about the amount of abstract and contextual understanding they have, and that is not necessarily coming from the years of experience they have or the number of programming languages they know. In one sentence, I think it's not the hours spent with learning that makes you a better programmer.
That depends on - in my opinion - two factors: Your approach, and the variety of problems you need to solve. Let me emphasise, all of the below is just my opinion.

The best "approach" or mindset for learning programming is the following: Face a problem, find a solution, understand the "why" behind the solution, and experiment. I am not necessarily talking about algorithms here, but also basic OO design patterns, version control, kanban style task tracking, commenting your own code, etc. As soon as you identify something that other programmers face on a daily basis and understand the solutions they came up with, you will become a better programmer. Imo, a better programmer is one who can work more efficiently, which is not the same as writing more efficient code.

As for the problems you need to solve, this is just something I've seen several times, people who saw different programming environments and challenges have a better underlying understanding of programming in overall, for example, if you worked with enterprise software and webpage programming before, you might see a parallel in the program modules and the modular handling of UI elements, which is again very similar to the idea of encapsulation in Object Oriented Programming. The advice here is to think about programming problems even if they are not necessarily related to what you do, e.g. how would you write a simple program that can solve an addition in the string format, e.g. "5 + 3+ 4 =", or something similar. Everything can become a programming problem if you look at it long enough :)

Scrap that. I have the perfect answer: You are a noob until you learn that regexp is a necessary evil, and before you learn to hate date formats. :)

Senior javascript dev here. I have fulltime job as js dev and i spent like 3-4 hours a day doing hobby projects to learn something new. But there are weeks when i am not motivated and i just spend time with friends or entertain myself with games and tv series.

I feel like I'm moving a lot slower then most other self learners

It's not a race. You learn to the point where you can start building things, and then things skyrocket from there, because you always need to learn new things to finish the project. This is how I've done in the last 20 years.

One thing that's very useful is to try waking up 2 hours earlier and use those hours to boost your day. Then as others suggested, listening to podcasts while you do other things is a very good way to be into the topics you want to absorb even if you cannot sit at the computer. I listen to podcasts regularly while walking the dog, for example.

A few people actually recommend that Idea and I think its great. Do you have any podcasters that you would recommend for web development?

Hi, Reynaldo. I made a reply to this, but it felt like it made more sense to post it as its own topic rather than as a comment here. So, you can read it here 😊

Practice, just for the sake of practice, isn't a particularly good way to approach it. It works better if you have defined goals to reach, such as completing Epics, User Stories or Spikes (to use Agile terms).

For example, lets say you want to work on developing your skills in a particular area of web development. If you approach it randomly, practicing this or that without any goal in mind, you won't retain as much. But, if you define your overall goal, such as "As a sports fan I would like a single page dashboard to display scores of games", and then build a step by step plan to create app using your target technology, this will help you learn and retain because you will have more focus and a sense of accomplishment.

If I was going to compare learning software development to video games. Reading about it in books feels like the beginning of a video game where you are playing the tutorial but you just want to play already. Many other gamers just skip the tutorial part and just learn as they go and they grasp things a whole lot faster becoming immersed in the game. I did build one project and I got a lot out of it, but books and videos only supplemented my learning. I think I'm going to try this more because I didn't realize how effective it was looking back on it now.. Thank you for taking the time to drop some knowledge. I highly Appreciate it.

Wait, are you saying there is a point in which we stop learning? I'm 15 years into my career and I haven't reached that point yet ;)

Classic DEV Post from Sep 18

Golang, it was love at first sight.

Learning about the cloud, naturally I was driven into the face of Go, after the first LOC I got in love.

READ POST
Follow @bgadrian to see more of their posts in your feed.
Reynaldo Veras
Self learner currently teaching myself html,css and javascript
Trending on dev.to
Golang, it was love at first sight.
#webdev #go #productivity #learning
Module Monday 13: Transparent navbar, Team page, SoundCloud embed & more
#showdev #opensource #webdev #javascript
What is PHP Airbnb Clone Script?
#php #opensource #productivity #webdev
Coding Concepts! Cyclomatic Complexity
#webdev #designpatterns #learning #javascript
Pieces of an App: The Files You Need to Start a Rails App
#ruby #beginners #webdev
How To Put Arrows at the Bottom of a Div
#webdev #beginners #html #css
How to Reduce Memory Usage for Rails and Sidekiq
#ruby #rails #sidekiq #webdev
Using CSS grid, flexbox and multi-columns layout to recreate the Daily Prophet
#css #flexbox #cssgrid #webdev