I learned BASIC in 1980, taught myself a modern language in 2004, and took my first freelance coding gig in 2006. If I was asked what my #1 tip for a new coder is, I'd say "don't disqualify yourself."
What does that mean? If a recruiter approaches you for a role, don't automatically look at the big laundry list of skills on the job description, then tell yourself "I don't have the right skills for this job, so I'm going to tell the recruiter no."
I'll start with how I learned this lesson thanks to a Volt Technical recruiter and a Microsoft manager.
When I taught myself to program in a modern language, I taught myself PHP. It seemed the most web-friendly, easy for beginners, reminded me a bit of BASIC (my first love from 20+ years prior), and easy to use for quickie command line scripts. It was like Perl, but not quite as frightening, and I could weave it into my web pages like Server Side Includes on steroids.
When I started needing to supplement my income outside of my small business and began looking for contract work, I was surprised when a Volt Technical recruiter called me and asked if I'd be interested in a web developer contract at Microsoft.
I told her I didn't know C# or VB or any of their proprietary tech. I tried to disqualify myself, but she said the project seemed right up my alley and it wouldn't hurt if she sent my resume over. Thinking nothing would come of it, and that being cooperative now could only help over the long term, I agreed.
To my surprise, the Microsoft manager liked my resume and liked the sites I had built. He wanted me to come in and chat. So I did. Turned out he managed a team that tested hardware for Windows Logo Certification and they had a couple of different PMs that had been managing their inventory with spreadsheets. They wanted to turn their test results and inventory data into a SQL database with a web front-end for their intranet. The clip-art database section of my Flash drawing app site was very much like what he wanted.
I said I didn't know Microsoft back-end tech and asked if I'd be able to use PHP and MySQL. He actually paused the interview and made a call to ask. I couldn't. It was at that point that I chose qualification over self-disqualification. Instead of saying I couldn't do the job, I qualified the circumstances under which I could do it: "I don't know C#, SQL Server, and ASP.Net, but a loop is a loop and a string is a string. The logic is similar, but the syntax is different. If I had a week or two and a book, I could get up to speed."
We parted ways and I went home, sure I didn't get the job.
Two days later, the Volt recruiter said I got the contract AND got a week to ramp up on Microsoft tech on Microsoft's dime. It wasn't easy, but I learned enough C#, SQL Server, and ASP.Net to get the project done on time and to great delight. And then I promptly forgot most of it.
I've gone into contracts where there was a little Python needed. I'd never done Python, but since it was 10% of the role, I said "if you're comfortable with me Googling it here and there, I should be able to get by." As an evangelist, I've been handed broken customer code in languages I knew and languages I didn't. But because I took on the attitude of never disqualifying myself, I just dove in and figured it out as I went.
Now, I've turned down roles where I didn't want to ramp up on a skill, but never turned one down because I thought I couldn't. Not everyone has been as cool as that Microsoft manager. Sometimes they've been cooler. But for more than a dozen years, I've qualified my abilities rather than disqualifying myself. Rather than saying "I can't do it," I learned to say "I'll try if you'll let me."
It's made for an interesting career.