Stop being the product.
Become the owner.
or
sign uplog in
How I got a semi-pro programming gig: from self-taught, to school, to work

I've finally landed a job as a senior BA that involves doing some actual production coding (supporting business UDAs built via VBA). I feel like I'm on the cusp of making the full transition into SWE-type roles in the next 12 months. How did I do it?

I started learning about programming at age 37. I'm now 40. So it took about 2.5 years to get to this point.

Having reflected on how I got here, I think the following advice might be useful to anyone who is looking to change or pivot careers and program professionaly to any extent:

* I spent the first 12 months self-educating JavaScript / Node and Python. I worked through Eloquent JavaScript and Automate The Boring stuff. This taught me the basics of programming (loops, conditionals, front-end vs back-end, etc).
* However I felt like I was trapped in tutorial hell and didn't really have any idea on how to build a big-enough project to demonstrate that I was a worthwhile dev to an employer. The extent of my knowledge was to be able to build a simple web-app (back and front end) and make API calls with high level front-end frameworks like ReactJS. If someone asked me to work on a task that didn't involve JS or Python, I felt like I wouldn't know how to figure things out on my own.
* Then I enrolled in a Graduate Certificate that taught us intro to programming (using Python), Data Structures and Algos (using C), Databases (using PostgreSQL), and networking (we could choose Pytho/Java/C - I went with Python).
* Going to the right school definitely has some value. The theoretical things that we learned about data structures and algos, databases, and networking have proven to be very valuable even if only to have good conversations with hiring managers and tech leads.
* Going to school also meant I was following a structured curriculum that filled in many of the gaps that the self-taught path had created (especially on the mathematical / theoretical side).
* The formal program progressed at a *very* fast pace and the assignments were much bigger than any personal project that I had attempted. Between coding a roman-to-decimal calculator in Python, implementing PageRank and Dijkstra in C, building a TCP chatroom in Python, and coding our own version of TCP in Python using UDP sockets - we were exposed to the concept of solving problems and implementing solutions in different languages. Each project took 30-50 hours (the PageRank/dijkstra assignment was the most time consuming).
* Now, having completed the Graduate Certificate, I'm comfortable being thrown into any situation that requires junior dev skills regardless of language and tech stack, knowing that I can figure things out.
* Could I have learned this stuff on my own? Maybe, but I wouldn't have known what to learn. More importantly, I probably wouldn't have attempted big and stressful projects that let me take a peek beneath the covers that Node and Python apply to their APIs.

Obviously there is a lot of great online material for people who want to go down the self-taught path. In fact, I'm working through the MOOC Java course now that I've finished the formal stufies. Programming is a never-ending journey of learning and implementing.

But the formal education really pushed me to learn what is happening behind the scenes, and I feel like it has empowered me to now continue my self-learning journey with enough foundational knowledge to really understand what I'm learning and how to apply it in a big project.

Side note (and I'm sorry if this pi$$es some people off): learning how to do API calls via ReactJS or any other high-level front-end framework isn't giving the self-learner enough exposure to the core building blocks of the internet. You won't be a very useful dev/BA outside of some very specific front-end roles.

I'd highly recommend incorporating the following material into your studies ASAP:

* Data Structures and Algorithms (Jenny's Lectures on YouTube has some great material, as does Abdul \[I think that' his name?\]. If you learn this, I think you'll be able to figure out just about anything else in programming.
* Database theory (i.e. learn why SQL queries execute in the order that they execute in!)
* Networking (i.e. learn about the network layers, TCP/IP, link layer frames, switching etc). This will teach you why a web server framework is such a wonderful time saver lol
* I'd also recommend going to school and learning computer science more formally. Doesn't have to be a full degree (my certificate covered only 4 subjects and cost $4000 Australian).

TLDR:

* Don't just do the front-end stuff on YouTube. These will make you think that you're becoming a programmer, but you're **probably** just learning how to make API calls.
* Look up Data Structures and Algorithms by Jenny's Lectures (and Abdul Bari), learn about networking to understand what your HTTP requests/responses are doing, and learn about DB theory to understand how your SQL queries are executing.
* You don't have to go to school, but you'll be glad if you do :-)
* Good luck, know that **it is possible** to learn how to program and do it professionally (I started at 37 years old) and above all...
* Have fun!
earnings
0 mlx total
$0  total
engagement
17 views
0 reactions
0 comments