I currently work in Marketing but have been working on side projects that involve coding in python (django), css, html, ajax. I would like to gain more experience. What do I need to do, where should I start, in order to get a full-time job in software development? What kind of salary can I expect to make?
You should focus on contributing to open source projects. A good open source project is almost identical to what you will be doing as a software engineer and is the best experience a non-professional software developer can get. That means triaging and fixing bugs, getting familiar with a (possibly) large codebase, and occasionally shipping features or enhancements.
If you like Python and Django, then both Python and Django are great open source projects and I recommend starting with them.
You should also create your own open source projects. Do this before, during, and after working with an existing open source project and remember to look back at your old code each step of the way. It will blow your mind how far you've come.
Let's also go ahead and get this out of the way, because it will come up at some point: Do not work for free unless it is on open source projects. Working for free makes you a commodity. You are not a commodity. You have a skill set that can make a company millions of dollars. Charge every penny that you are worth and don't ever feel bad for doing so.
Becoming a good software engineer will not be easy. You will probably get fed up and want to quit. Frankly, that's a good thing. As an engineer, you will spend a lot of time feeling incompetent. You should get used to it now and embrace it, because that means you are constantly learning. If this sounds unappealing, then maybe you aren't cut out to be an engineer. You probably wouldn't enjoy it even if you became a professional. There is absolutely nothing wrong with that. Don't waste your time on something that isn't appealing to you.
On the other hand, it's an incredibly rewarding career if you join the right company. Hard problems, happy customers, and true innovation make for a happy engineer.
Your salary is, to some extent, correlated to where you live. Here in the Valley, we can demand higher salaries easily because the cost of living is ridiculous.
Here is an unsolicited piece of advice: Turn down your first three job offers. I wish I had done this when I started. One of the hardest things to do as an employee is judge whether the company making you an offer is the kind of place you want to work. If you accept your first offer, then you have only one data point to base your decision on. That is not good.
If you have more specific questions, my inbox is open. You can find my email on my profile page. Please do not hesitate to reach out.
I wrote a thing about that.
I'm self taught. Coming from a theatre background.
I now make almost 100k after 1 year. I started learning last september. April I got an internship, and in September I got hired full time.
This is actually not abnormal in the Valley, to be honest. It takes skill certainly, but I know a number of people who have accomplished similar feats.
Are they generally smarter than the applicants of CS grads they compete with? Or is the market just that hot? Since they don't have CS backgrounds, I'm guessing most of their coding is probably front-end product building, or is that false?
A lot of it has to do with the price of living here. I'm about to move out of a 1 bedroom apartment that I pay $1,800/month for, and that's a pretty decent deal compared to some of the places I looked.
It's hard to say though. I dropped out of university (CS major) after two years and I have spent most of my time building out the front-end of multiple projects. That is not to say that is true for all or even most people.
Personally, I don't like asking whether one person is smarter than another. Everybody brings their own set of experiences to the table, making each people smart in their own right.
I also don't believe that holding a degree in computer science necessarily makes a person a better developer. Sure, there is some correlation because those driven to computers are probably driven to computer science in college, but there are plenty of people with no passion that get a CS degree because they heard they could make some money.
Who knows? It's a little bit of everything, I guess. :)
I think its a combination of both. I got into it at the right time and right place, but I also figured out how to do it rather easily. And I know what i'm doing. I program every day for a YC company in SF with about 40 employees. If I was just faking it, it would have come out by now, imo.
If you like Python and Django, then both Python and Django are great open source projects and I recommend starting with them.
You should also create your own open source projects. Do this before, during, and after working with an existing open source project and remember to look back at your old code each step of the way. It will blow your mind how far you've come.
Let's also go ahead and get this out of the way, because it will come up at some point: Do not work for free unless it is on open source projects. Working for free makes you a commodity. You are not a commodity. You have a skill set that can make a company millions of dollars. Charge every penny that you are worth and don't ever feel bad for doing so.
Becoming a good software engineer will not be easy. You will probably get fed up and want to quit. Frankly, that's a good thing. As an engineer, you will spend a lot of time feeling incompetent. You should get used to it now and embrace it, because that means you are constantly learning. If this sounds unappealing, then maybe you aren't cut out to be an engineer. You probably wouldn't enjoy it even if you became a professional. There is absolutely nothing wrong with that. Don't waste your time on something that isn't appealing to you.
On the other hand, it's an incredibly rewarding career if you join the right company. Hard problems, happy customers, and true innovation make for a happy engineer.
Your salary is, to some extent, correlated to where you live. Here in the Valley, we can demand higher salaries easily because the cost of living is ridiculous.
Here is an unsolicited piece of advice: Turn down your first three job offers. I wish I had done this when I started. One of the hardest things to do as an employee is judge whether the company making you an offer is the kind of place you want to work. If you accept your first offer, then you have only one data point to base your decision on. That is not good.
If you have more specific questions, my inbox is open. You can find my email on my profile page. Please do not hesitate to reach out.