Ask HN: advice on overcoming a programming plateau?
I've been programming for about 5 years, starting with Java as an undergraduate, then moving on to C++ and Fortran (!) as a grad student. Along the way I've dabbled in other languages: Python, Ruby, C#, and Clojure; but I feel like I've reached a plateau in my programming ability.
When picking up a new language, I feel like a can rapidly reach the level I have in the other languages I'm familiar with, but never seem to progress any further. Whilst I realise I am learning new things, I feel I'm becoming a "seasoned beginner" of all trades.
Having a goal that I really want to reach might help, but I don't really have any particular project I want, or more importantly, need to achieve. That's a whole other problem...
Is this feeling common?
Any advice on trying to "level-up" my overall programming ability? Sometimes I like to reach for my toes, so to speak. There are times when I try to reach for the stars, stretch myself while reinventing a wheel (maybe write a Fibonacci heap in Python, a hash table in C.. ). There's the other end of the spectrum, though: real simple stuff. Project Euler is okay, but I like simple file i/o. It's more about getting comfortable with your tools than writing algorithmic novelties. Simple puzzles are often good as they exercise parsing + simple data transforms. Stay away from the brain busters, though, for fear of wasting your time. Here's a real simple one, from a book I cannot recall: I've got a file with names, years-of-birth, and years-of-death; in what year were the most people alive? Learning new languages is just one dimension, learn new algorithms, learn new computational problems, learn high level APIs, learn low level stuff, learn how machines work at the bare metal level, learn how operating systems work. Make things, make toys, make tools, make big projects, make oneliners. Write new things, rewrite old things, fix shitty code you find on github, fix shitty code you wrote. fix bugs you find, increase performance of slow things. tl;dr Get better by doing. That's good advice - and something I know I need to do more of. I guess I'm scared I'll become "well-rounded" to a fault. Does that worry you? I feel the same way, I find its hard to learn something unless I have a project to work on. Unfortunately its hard to come up with projects for every learning opportunity. I am working on a project to help me with this. Check it out at: