I transitioned from civil engineering to web/software dev, here are my thoughts. (this is getting long, hope you find it useful). Feel free to email me <my HN username> at gmail<p>Start by getting paid gigs so you can start building up your two year window of experience, most of your learning will happen on paid projects so try connecting locally with anyone needing even a basic website.<p>This way you can start earning some money and learning on the job.<p>You can start simple as a sole proprietor, no need for spending time and money on an LLC or Inc initially.<p>Not sure where you are in the learning process but here are some thoughts. Once you have html and css and hosting under your belt you can create basic websites for local businesses.<p>I always recommend starting with HTML and CSS (check out the head first HTML and CSS book, it's a great place to start).<p>Develop locally on MAMP or WAMP (go mac if you can, a macbook air 13" is perfect, grab an external monitor off amazon if you need more screen space). Use sublime text for your editor.<p>Get a simple shared hosting account and domain name to play around with setting up a domain (DNS, A record, pointing it to your hosting (Add on subdomains). You can use filezilla to FTP files up and down.<p>Go through the head first html and css book, working both locally and setting up sites on your hosting.<p>After that install wordpress.org locally and on your hosting, it will help you get familiar with php and mysql, there is a lot to learn using wordpress but some of your clients might be interested for making their own edits.<p>After that you can go through the headfirst javascript book.<p>Then I would work through their jQuery book.<p>Next go through the php and mysql book.<p>So after that you'll be ready to start a simple web app. I would recommend creating a basic one using just PHP (no framework). Setup a login, logout, dashboard, to do list or other personal tracking project. You don't need to spend lots of time on it just see how things work behind the scenes.<p>After that I would move to a framework Laravel (php) and Rails (ruby). I would play around with both to see which one you like. Laracasts.com and Railscast.com are great learning locations.<p>I think laravel is easier to learn. Use Homestead (local virtual machine box) and forge ($10/mo) for deployment to Digital Ocean ($5-$10/mo to start).<p>Not all this can take some time. If you have a knack for doing this you can take on local projects or even projects you aren't sure you can handle and learn on the job.<p>A contract is best, but for local projects and most remote I work with just a scope of work and quote in an email.<p>I typically invoice incrementally esp. with new clients to make sure they are paying and happy with your work.<p>So feel free to break projects down in to small milestones so you don't work on something a week and then have the client say this isn't what I want we're done here.<p>I usually invoice 50% for a milestone up front, then the remaining amount and 50% of the next milestone is due upon delivery of that milestone for review and don't start the next milestone till that is paid. Client can provide feedback from milestones during the process and those are updated if they are with in scope. New features outside scope = new milestone/quote for additional work.<p>(lots of thoughts on invoicing/process but this will get you started).<p>As far as your direction. I would work toward software developer/web app developer with Rails or Laravel. Rails is probably higher pay and more jobs but laravel is coming along. You can do full stack for web app development, but there is a lot to learn.<p>Check out angular and vue.<p>Also for your web apps check out mandrill(email) and stripe(payments).<p>Good luck with your transition, it's a long road, and will take a while to get back to your previous salary. If you enjoy it though it's fun.