
How To Get Started As A Software Developer
Hello all! I started my coding journey a little over a year ago. Since then I’ve put code into Fortune 500 companies, contributed to Tensorflow, written some really funny joke code repositories, and had one heck of a ride. Here’s some advice for how to get started:
- Have an affirmation that you repeat, every morning, out loud, at least 20 times per day. Do not skip a day. Ever.
Mine is: “I allow myself to find and develop the career that God has planned for me, at the salary that God wants me to have.”
You may not believe in God, and you may think, “Well I have this career planned out, I know that I’m going to be a software developer and that’s it.” Trust me, you may not be meant to be a software developer. For the longest time I wanted to be a music artist. I worked and I worked and I slaved away, I lived in my car and I literally starved, and I never saw success at it because I just wasn’t meant to do it. My talents were not a fit. I was, and am, great at learning math/science stuff, which fits great with software development, but it’s not so much the best when you are trying to be a great singer.
I’m grateful that God has shown me the error of my ways, and I’m now in a career that fits my interests, passions, AND my aptitudes. And it’s easy, and super fun, and God has put a ton of cool stuff in my way, like working for a top Silicon Valley company, getting my code into places like BMW, Pepsico, etc., and meeting some awesome people through a group called SFPython. So before you even start on this career, make sure it’s the right one for you.
Trust me, when you let it go and ask God to guide you, you won’t end up doing something stupid like wasting your life on a career that you weren’t designed for. My voice is not great and it never will be. My life was hell, because I was a square peg trying to squeeze myself into a round hole. But my mind is perfectly suited for the kind of work that I’m in now. And I never would have thought of doing it on my own. After I started repeating the above affirmation, I just sorta fell into coding and I haven’t looked back. I love it, I do it in my free time, and it’s just a fun and lucrative job where I get to meet such cool people, and companies treat coders really well. Most important, I’m good at it :)
2. Work for small companies that don’t have any other coders, and who may or may not know what they are doing.
This sounds dishonest, but it’s not. Any large company with more than one coder will have a vigorous interview process. The coder(s) who are already with the company will likely interview you to see what you know. You are brand new, you don’t know anything at this point. I had only been coding for 3 months when I got my first Python job.
BUT, if you work for a company that has no coding staff, they will be easy to impress, and won’t test your knowledge too rigorously. This leads into point number 3:
3. It’s ok to not know what you are doing. Learn as you are doing the work.
My first Python job, I had no idea what I was doing. I told them I could do the job, and so I learned how to do it as I was going along. I got it done, they were happy with it, and I gained some valuable experience, which I used later to show people that I know something about coding.
4. Craigslist is your friend. But also your enemy.
Craigslist is a double-edged sword. If I post my resume and say that I am a Python software developer, I will get a job. Sometimes those jobs are not the best, and you have to work for some less-than-scrupulous people. But at the beginning, most job sites like Indeed will post jobs that require 3+ years of experience (Literally, one time I went to a startup hiring fair. I talked to 40 startups and asked them all for an internship. Not one of them would hire me, even for free, because I lacked the necessary 3 years of experience. What. The Fuck.)
5. Be willing to work for snakes.
As a first-time developer looking for experience, your options will be limited. Snakes (dishonest people) have a hard time keeping employees. That is to your advantage, because if you need experience, these people are easier to get in with. A few tips though:
- Know your rights as an employee. Employment laws vary from state to state, but in California the employer must give you your final paycheck within 72 hours of termination of your employment. Look up other stuff online.
- Get EVERYTHING in writing. After a phone call where you made an agreement, send them an email to confirm what you talked about. “Hi George, it was nice talking to you today. Just to confirm, we said I would be starting at $25/hr…”
- NEVER sign anything unless you understand every word of it. If the contract they present you with is too long, ask for a shorter one. Get a lawyer friend to explain it for you if you can. If not, spend some time looking up the terms online and see if they are fair. NEVER accept a contract that allows the employer to unilaterally change your agreement at any time.
- If you are an independent contractor, you will have to chase people down for money. I had 2 clients “forget” to pay me for 2 months. The easiest way to handle this is to tell the clients that you won’t be doing any more work for them until they pay you. This should be obvious, but sometimes they need it to be said. In writing.
6. Charge below market rate. If the going rate for a software developer is $50/hr, and you only charge $25/hr, then even if you really suck as a developer they probably aren’t going to fire you. This gives you the leeway to learn and grow while you get done what they need you to do. I know this may be a drop in pay for you, but there are few careers with more growth potential than coding. Short-term sacrifice, long-term gain.
7. Be honest. Only charge for the hours you actually work. This should be obvious, but if you want others to play fair with you, then you need to play fair with them. Word will get around that you are a dishonest person, and no one will work with you, unless you play fair and keep it honest with your hours.
8. Communicate. Never, ever ghost your client or your boss. If they do not respond to emails, call them. They may not like tech. I recently got mad at an employer for not responding to my emails for 2 weeks, only to learn that he just doesn’t use his email and I should have called him. Whoops! You may be busy, but everyone is. Make the time to respond quickly.
9. Keep your mouth shut. When you walk into a new company where you don’t belong, you are going to feel insecure and out of place. I know, because this happened to me. I was only 1 year into coding and I was working at this big amazing Silicon Valley company that was right next door to Oracle, one of the largest software companies in the world. How did I survive? I kept my mouth shut. I listened. In a place like that, where I felt (and I actually was) underqualified, it’s only natural to try and assert one’s intelligence and knowledge in order to compensate for feelings of inadequacy. Don’t. People will pick up on it, and you will show your hand. Just keep quiet and don’t add anything unless you know you are absolutely right and not stating something really obvious.
Just as a thought experiment, imagine you work at a tech company. The new guy comes in and you are showing him around the place, he told you he was a senior developer. You show him his work station computer, and he points to it and says, “Computers use electricity!” You would probably look at him sideways for stating such an obvious thing, and look into his references.
Everything you do shows your hand. It is better to be thought a fool than to open one’s mouth and remove all doubt.
10. Make sure they know how much experience you have, and if they are not experienced with coders, let them know what that means in the industry. This might sound contradictory to the above point. But there is a balance to be had. If you walk into a company where they think you are a senior developer (this happened to me, because my recruiter lied about my experience and I didn’t know about it) and you don’t perform like you’ve got 10 years of experience under your belt, they will catch on and you will get fired.
It’s a good idea to sit down with your employer/manager, and tell them exactly how many years/months of experience you have, just so they know what to expect from you and they aren’t disappointed in your actual level of productivity.
10. It’s going to be stressful sometimes. You are entering into a world about which you know little, where you are expected to perform a lot. Meditation every day really helps, even just for 5 minutes. I recommend the Muse Headband for that.
11. As Sir Richard Branson, the successful entrepreneur behind the Virgin brand of more than 500 companies, says:
‘If somebody offers you an amazing opportunity but you are not sure you can do it, say yes — then learn how to do it later!’
That’s all I can think of for now. These tips should help you get going. Let me know if you have any questions :)
