

Ask HN: advice on overcoming a programming plateau? - teh_david

I&#x27;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&#x27;ve dabbled in other languages: Python, Ruby, C#, and Clojure; but I feel like I&#x27;ve reached a plateau in my programming ability.<p>When picking up a new language, I feel like a can rapidly reach the level I have in the other languages I&#x27;m familiar with, but never seem to progress any further. Whilst I realise I am learning new things, I feel I&#x27;m becoming a &quot;seasoned beginner&quot; of all trades.<p>Having a goal that I really want to reach might help, but I don&#x27;t really have any particular project I want, or more importantly, need to achieve.
That&#x27;s a whole other problem...<p>Is this feeling common?
Any advice on trying to &quot;level-up&quot; my overall programming ability?
======
arh68
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?

------
tater
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.

~~~
teh_david
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?

------
vinoth15
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:

[http://unbouncepages.com/sparkle/](http://unbouncepages.com/sparkle/)

