A Few Ways to Become a Software Developer
All roads lead to midnight debugging đŽđ»
As someone with a non-coding education background (editing C files in Nano in college đ) I have a few contrarian opinions on traditional university software education.
I found all three of my Computer Science classes boring. But a Comp Sci degree is one of the most surefire paths to a developer role. But before debating on the path to take, firstâŠ
Should you be a Software Developer at all?
Some Developer pros might include:
- $$$
- âCushy jobâ (well, definitely not physical)
- Remote work (unless Elon comes for you đȘ)
- Demand! Weâre hiring Developers! (unless theyâre laying everyone off)
- Itâs one of the jobs that they probably wonât automate as easily as others
OK so maybe now is not the best time to be a developer. But hey it beats âsteel workerâ or âautomotive workerâ on more than one count.
So weigh all of these reasons to be a developer against some cons, namely:
- Coding is seriously confusing, even for simple tasks. Just getting your environment set up to write code can be a nightmare.
- Many software projects are notoriously rushed/ late and anxiety inducing (just ask video game developers)
- Certain jobs roles are ultra-competitive, like for FAANG/ MAAMA.
- If youâre On Call, yeah⊠no fun
- A lot of software development is just working with other peopleâs code/ super old code. âCode archaeology.â This can be a real bore.
Thereâs probably more I can go into, but suffice it to say, donât code just because of the good reasons. Code because youâre fine dealing with the pain brought on by the bad ones.
OK I want to code for $$$, now what?
If this were a choose your own adventure book, thereâs really two paths:
- Pay someone (coding tutorial) or something (university) $$$ to teach you coding
- Learn on your own, usually with paid tutorials, books, and begging people who know things to show you
Pay Someone
Iâve used Udemy for option (1) but havenât done anything much more extensive, like a 4 year degree (I started a Masters but gave up since all the information was antiquated/ not helpful for my actual job).
I said before that option (1) works; people who get CompSci degrees get jobs coding for a living. People who do coding bootcamps get jobs as well, though Iâm too sure which one is more worth it.
Iâd probably say Iâd go with whatever option you can afford, since the main upside to a 4 year degree is the networking opportunities. But these are full time commitments, either for 4 years or a few months, and definitely big financial commitments.
I mostly dove in on my own, so Iâll speak to option 2 now:
On Your âOwnâ
This approach is a bit more stress inducing I think. Universities and bootcamps really require your full attention, but itâs hard to justify learning on your own with joblessness. So youâll really end up having two jobs
- Your current job (moving boxes IDK)
- The one you aspire to have (but donât get paid to do)
The real key to making it so you donât spend all your waking hours working/learning is to use what you learn to make your current job easier. Maybe the only useful advice of this article: find a way to solve problems in your current job using coding.
Eventually someone will notice you or youâll know enough to weasel your way into a real opportunity. Most people just see their current job as âpaying the bills,â but really what you should see it as is âIâm getting paid to learn how to solve problems for this company.â Why not try and solve some development related problems?
Find your advocate
Getting someone who will advocate for you as a âcoderâ even when you arenât competent yet is the best way to get ahead at your current job. My old boss was a real advocate for me, and gave me the opportunity to work in a different department where I could cut my coding chops (I started as a non-coding, software consultant at Appian).
Iâm not 100% sure why he advocated for me, but I think part of it was because I kept trying to solve problems using some form of code or novel approach.
(I spent an overwhelming amount of time trying to make a small change to a plugin and eventually did, only to have someone overwrite it shortly thereafter, haha!)
Letâs go back to your current job. If you have a problem to solve, letâs say itâs moving boxes (for real), maybe you can do something with Python to figure out the most optimal route. If that article hurts your head like it does mine, maybe find a different tack. But if you find it interesting, keep digging! Find something that:
- Interests you
- Helps solve a problem youâre currently stuck on
If thereâs someone you know that has any technical capability, glom onto them! I learned so much in those early days from technical folks that were kind enough to pair with me/ teach me what the heck was going on. Donât be afraid to appear stupid; it will happen many many times.
Decide to Give Up or Go Hard
Last piece of advice on how to get started as a developer: if youâre really serious about it, and youâre not going the 4 year college/ bootcamp route, remember that millions of other people did.
Youâre up against the cream of the crop too at top companies: people with PHDs and many years in front of a computer, hobbyists who have been programming since they were kids. The people without 4 year degrees are tough as nails too.
If you want to be in this industry and succeed, youâre going to have to put a lot of time in to stay afloat if you didnât have a big upfront ramp up. So either back out and find a different way to make $$$ or dig in.
When I first started my âdeveloperâ job, I put in long hours and read a lot of books. I did tutorials and courses. I busted my hump because I had NO CLUE what was going on. I hadnât seriously used GitHub until I joined engineering, and that first set of Pull Requests was a struggle đ.
I put in a lot of late hours, at the office and at home, mostly so I could keep up with people that were smarter than me and had more relevant coding backgrounds (lol I studied physics and know some integrals.) And I kept learning about how git and other systems worked, to the point where people asked ME how to do things.
It was a bizarre time when folks started asking me for help, mostly because I still didnât know what was going on. But it really helped me realize that what had helped me learn the most was toâŠ
Teach Others
The bottom (largest part) of the learning pyramid is teaching.
Once you actually know how to patch
methods for unit testing in Python, or integrate a system using OIDC authentication, if someone you work with or know has that same problem, help them out.
It will reinforce what you know or, better yet, youâll learn of a few more ways that things can go wrong. Itâs the best way to give back to a company or community that helped you learn.
Closing
- Figure out if you even want to code for a living (the world needs people who do other things too)
- Pick the four year degree/bootcamp option or go it alone
- Solve problems at your current job with code
- Find your advocate
- Bust your hump
- Give back by teaching