> Did you learn to program in school or teach yourself?
Self-taught. This stuff advances so quickly it's tough to distill what you need to know into classes without getting REALLY deep into it. The pace of the industry is set by the speed at which the self-taught craftsmen research and develop new skills. It's hard to find competitive pay if you don't have competitive skills and in the long-term, only those skilled at self-teaching have any kind of longevity in the field IMO. I'm still young but I see so many ahead of me lose that edge and not be able to find work simply because they spend too much time doing and not enough time thinking.
> Did you do unpaid work to establish yourself?
Absolutely, but I have a strict policy of only working pro bono for myself or charities I would donate money to. I'm a big fan of open source code, so I try to donate as much as I can to posterity once a project is complete at well.
> Roughly how long did it take you from day 1 of learning to day 1 of being paid?
I have been tinkering for years while in school so that's not a fair question, but more recently I have gone from not knowing JavaScript to getting paid to write bits of it here and there in one year while also doing other web development. It should take less than five years to go from nothing to competitive if you're keen to do it, and you shouldn't need to spend a dime to do it. There is enough material, software, and even full operating systems you can use for free so he only costs are a computer, electricity, and internet access. If you have those three already, buckle up and get ready for a wild ride, but put that wallet away!
> What Was Your First Gig?
My first job out of college was as an in-house web developer for an online tutoring company. They tutored adults to help them get professional certifications they would need to get a job. I ended up getting caught in a layoff within the first year unrelated to performance, but I still cherish the opportunity they were ready and trying to give to me even though it never bloomed to the full potential. I got a site built for them and they have been able to maintain it since then but I fear they are doing very well financially even still.
My advice to you is this: if you want to learn web languages like HTML, CSS, and JavaScript, DONT look for tools that make it 'easy'. At the end of the day you're writing a page of text, so the most simple, easy, and straightforward way to arrive at that is by simply typing the characters. Any pre-processors, plugins, or frameworks that reduce what you have to write reduce what you are able to learn. I suggest starting with a 'clean-room' approach and creating blank files and literally typing each and every character you want in those files manually, every. Single. Time.
When I start a new website, the first thing I type is: , I don't even start with a 'empty template'. That's the fastest, easiest way to 'get into' a languages syntax and get your head around what it does.
Good luck!