Transitioning to being a Programmer

So I was talking to a young person (younger than me, at least) about programming. This person is moving from one technology field to being a developer / engineer / builder. Courage! For this role, I like the word "programmer" myself, because it is pretty narrow and doesn't require the word "software" to be tacked on (as in "software developer" or "software engineer") and it doesn't make too many assumptions about being embedded in a craft or an art, which might be suggested by builder or engineer. (But avoid "web developer" -- there's no discipline.) What might this person do to becoming someone who can program with facility in a professional setting? Here are some ideas. What follows is based on experience (what worked for me): I'm not a big one for "advice" but most of these are also patterns I've observed in others.

My assumption is that the person can do some basic coding in a procedural language like Ruby or Python or Java (possibly JavaScript), but does not yet have the fluency / muscle memory that you see with sophisticated programmers. The person I imagine has been around technology for some time, loves it, and has some hunger.

Before I proceed, I want to note that if you want to be a computer scientist, it's a whole different game. Attempting to become a computer scientist means that you have to do the work that will enable you to be recognized as a computer scientist. If you want to teach, get that PhD. If you want to work in industry as a computer scientist, I...

Read more and comment . . .