Learn programming in 1 hour a day

Josh Cheek on July 09, 2018

This was initially a comment on "How long do you spend learning to code?", but I thought it made more sense to make it its own post. Reynaldo... [Read Full]
markdown guide

Wow my mind is just blown right now! I feel like I just dived into the matrix in my learning journey. I never herd of hard and soft skills nor would the idea of katas have ever came up in my google searches. I am a veteran and I am definitely going to take advantage of that unicorn opportunity! So far I tried learning all the different things I can do with my editor and I find it amazing how much I can customize my experience on the editor. Thank you for all the information. I highly appreciate it and it's been a real big help.


great post. thanks.
for katas i recommend codewars and following through the fundamentals series of any language. it progresses a bit fast and new learners are likely to get stuck after a few level ups. so i recommend going to the katas page and sorting by easy or choosing a low level of katas to work from.
for beginners, the most important things to learn are all the things a language can do, this usually means math functions, sorting, input/output, string methods, array/obj methods, etc.
codewars doesnt do a great job at highlighting which of these can be used for a particular kata, partially because all the katas can be done a lot of(infinitely many) ways, however, and this is crucial, studying the responses of other correct solutions will show you a lot of new methods, ideas and tricks.
there is no better way in my opinion than to see 4-10 solutions to the exact same problem that produce the exact same solution.
it doesnt mean there are no differences in the codes, because there can still be hidden bugs or interactions in all of them, and many of the solutions pass the test, but can be shown to be incomplete under other input scenarios.
comments are great for this.
overall its a great community with very little or no harassment or nonsense and just a lot of people sharing code solutions to katas.
downsides: not that much help before the solution
upsides: a huge amount of learning after the solution is passed or (failed through to the solutions)


The important thing to know is that no one is going to agree on the best way to learn to code. For example, I would certainly not tell someone to go learn keyboard shortcuts. I went that route twenty years ago and now I steadily re-mouse more and more of my workflow.

I always recommend How to Design Programs and its companion software as a first programming course, since the folks who put it out actually spend lots and lots of time teaching beginners.


I also taught beginners professionally (ie as a teacher) and unprofessionally (ie because people were interested in learning). I found that actually interacting and writing code is the most important thing. That said, I looked at the table of contents for the book, and if that's what someone feels more comfortable with, then I'm cool with them using it. Just looked at a sample page and it looks like the book is using a lisp, I'm guessing Racket, based on the red and blue lambda icon. Racket seemed like a pretty cool language when I played with it, but I don't know how many resources are out there for new people, how many libraries exist for it, how many jobs are hiring for it, etc. One thing I do like about lisps is they love their REPL, which is a great habit to be in.

WRT typing, knowing how to use your tools is important because it reduces the overhead between thinking and doing. Practice your tools so that your tools aren't a constant impediment. When working with students, if I didn't show them the keybindings and quiz them, then I'd see them months later, still spending 30 seconds stumbling to do something that should have taken one or two seconds. By the time they finally get it, they forgot why they were even trying to do that. Practicing keybindings is about reducing the cost of the interface. Even a little bit of progress here can lead to big wins. The process stops being frustrating and starts being fun (and that's incredibly important for new people). When the interface begins to melt away, you begin to become fluent in the language, and you can start thinking in high-level goals instead of low level implementation details.


This is such a great write-up for a reasonable guideline. Thanks for sharing!


I have been going around in circles for the last couple of months. This is quite helpful to get my head straight


Love this. I think I’m going to try using this format for my coding sessions.


Awesome, report back (if you have the time), can amend it based on what does and doesn't work well.


I've heard about Katas strategy before, but I never knew how to apply it and how to use it. After reading your post I'm excited to use this strategy with your thoughts!
Thank you for sharing it!

Sloan, the sloth mascot Comment marked as low quality/non-constructive by the community View code of conduct

This is really very nice post you shared, i like the post, thanks for sharing.. blouse back neck designs

code of conduct - report abuse