[This article is based on a stack overflow answer that was deleted after the site mvoed away from more open ended questions. I published it here on 11/21/2020]
When I was in high school, one of my teachers told us a story of when he was in college. A friend of his wanted a job as a DJ for the university's radio station so he bought a huge rock and roll encyclopedia, and carried it around everywhere he went. A few months later when a position opened, he was offered the DJ job. Everyone saw him with that book, and assumed he was an expert in subject. The thing was, he never actually read a word of the book.
Now, you won't get a job coding simply by carrying around a PHP and not reading it. However my teacher's story inspired me to continuously learn new technologies and to do so conspicuously, letting everyone know in both subtle and non-subtle ways what you are learning.
Months after hearing this story, I was a a freshman at University, and I was very anxious to start coding professionally. I'd been coding in Atari Basic, and then (now) old versions of Visual Basic since I was 8 years old, and didn't want to wait until I graduated four years later to start making money with it. I was teaching myself HTML and (Classic) ASP on the side, and really came to like web development.
I wasn't very confident in my abilities at that point, and I just wanted to get some kind of a job working with computers at a company that had a development department. In that vein, I applied for a job at a local Internet Service Provider who was hiring folks to support their Dial-Up Internet service. I got the job, and I'm fairly certain it was due to the fact that I was carrying around O'reily's TCP/IP Networking book when I went to the interview and this impressed the interviewer.
After getting my foot in the door, instead of spending my lunch hours eating with people in the support department or alone, I'd walk up to the web development department and bug the folks there. I'd show them what I was working on for little side projects, and they'd show me what they were working on. I would hang out behind them, watching them code (they didn't seem to mind) and soon I was making suggestions when they got stuck. A while later, I'd come up and volunteer to help code things (on my own) in the evenings when they were close to a deadline (for free).
After a few months of this, they offered me a job in the department, when one of the other developers left.
So in summary:
- Always be learning new things, and make sure people know you are learning them. Don't just fake it like my teacher's friend.
- Work on your own development projects. This is the most important thing. You need to be able to show people your can actually get stuff done.
- Don't be afraid to get a non-coding job to get your foot in the door.
- If you do (3), spend as much free time as possible working with the people in the company who actually do programming, but make sure you are providing value.
Of course, this strategy wouldn't work for everyone, and wouldn't work at every company, but it can work.