I thought I'd take a moment today to talk about what it takes to make it as a lowly web developer :)
First thing I should mention may be hard to hear, but if you find you have to force yourself to code month after month and nothing clicks: it may not be for you. I've worked with many people who were natural programmers, they get a huge kick out of solving little problems, and if you don't have this I want to encourage you to look elsewhere. If you aren't losing sleep dreaming about code and fantasizing about some cool architecture, odds are it's not for you.
However bad this sounds, this is also just as beautiful: you don't need anything but passion and hours invested to succeed. Your natural talent will put you ahead of thousands, unwilling to lose sleep over some problem, vying for these high income jobs.
How do I get a gig?
A lot of people, I believe, feel like they need some certifications or other kind of approval from someone else to code or do their own project. Just. start. doing. it! You love some song? Make a website about it and learn about positioning elements on a page.
You have to do project after project, solving as many problems as you can with code. Put those projects on github. Host them via Heroku or some-such.
Show people the awesome stuff you're making. Go to meet ups. Make presentations about them. Get good at talking about things, it's OK to be passionate. Make beautiful things. Make something take 100s of requests per second. Make a really nice landing page. Learn what you're good at and do more of that, stay away from things you hate doing -- to a point.
You only get ahead by doing things right
One pitfall people fall into is making every project as quickly as possible. I've found it helped me pickup necessary skills to force myself to apply them one-by-one to each new project. The skills you need to do web dev may be:
- *nix command line (how do find a file? how do I tell which binary is running when I run some command? where am I?)
- Testing frontend (no idea what libs to use now, mocha? karma?)
- Testing backend (pytest, pytest-xdist)
- Asynchronously handling something
- Persisting information (database, file storage)
- Docker containers
- Docker swarm to manage it
- It is nucking futs how many things you have to learn...! Keep adding as often as you can.
People will notice you
At my company all it takes to get in the door is passion and hours. If you have a github full of web dev projects, python automation tools, etc. we're going to fit together nicely, for the most part. We may have to fine tune some things like CI/CD, code style, etc. minutia -- but we'll gladly do this for the right people.
Don't give up!
It might take 50 tries to find a company with the right mindset to fit in a greenhorn, but with Upwork-and-friends it's a global market place and only a matter of time for someone to recognize your talent. Take some shit salaries to get your foot in the door, if you have to. $15/hr is great to start at, I did.
This was brief but tldr anyway: work hard, put your work out there, talk to lots of folks, and force yourself to pickup valuable skills that are annoying to learn.
If you think you have what it takes to work with us, please feel free to shoot us a message [email protected] — thanks!