DEV Community

Cover image for Adding (Partial) Skill Sets
Greg Bulmash 🥑
Greg Bulmash 🥑

Posted on • Originally published at letmypeoplecode.com on

Adding (Partial) Skill Sets

One of the things I intended to do with some of my spare time during my job hunt was update my skills; dive a bit deeper in Python, maybe pick up some Go.

But tutorials can be so boooring

I never seem to get beyond the same place in a Python tutorial I bought on Udemy because I get so bored. It's not the teacher's fault, but it's the fact that I'm trying to sift the wheat from the chaff in the early parts.

See, I already know how to program. I know about (most) data structures, comparison operators, basic flow control. I'm not one of those guys looking to learn how to do "Hello World!" in 18 languages. What I need to understand is how Python does it differently from the languages I know. How do I adapt my skills, then dive deeper into unique things?

I did this once, then forgot I did it

I didn't do this with Python, but Java. As a member of the Dev Rel team at Avalara, we sat under Customer Success. Besides doing outbound awareness and developer relations, we were also "platinum" support for our Technical Account Managers (TAM's). I was under the gun to debug a customer's Java code. They were having an intermittent authentication error with our API that caused API calls to fail more often than they worked.

The customer did not have time for me to learn Java from the ground up. Since I got the assignment late in the week and I was a PHP developer at the time, I hunted down a "Java for PHP Developers" tutorial and got into it over the weekend. It was what I needed to get started quickly, get the skills I actually needed, and I got their code debugged on Monday.

For those interested in what the bug was

Avalara used a load balancer that assigned your authentication call to a random server in the pool behind it. When you authenticated with the server the balancer assigned, it sent a cookie you needed your code to pass back in the headers of subsequent calls in the session, so those calls could be routed by the load balancer to the server that had your current session in memory.

The customer's code was ignoring the cookie, so every subsequent call was being assigned to a random server. Therefore, calls would only succeed when they happened to hit the same server that had performed the authentication. I added a couple of lines of code to preserve the cookie and add it to subsequent calls in the session.

Yet, I try to do "from the ground up" tutorials

I bought a Python "boot camp" tutorial on Udemy and have wasted hours on it because I go through the same skills and data structures as if I'm new to programming, not just Python. Recently I thought "I need a Language X for Language Y developers tutorial, not this beginners' boot camp." And then the memories of that Java tutorial came flooding back (because it was 7.5 years ago).

I've been doing some PHP recently, but I gradually switched over to Node 7 years ago and haven't used PHP much in the last 6 years. So I hunted for some "Python for JavaScript Developers" tutorials. There are a bunch.

Look for tutorials aimed at developers who already know a programming language you know.

This should help prevent you getting bored and quitting before you get the knowledge you need.

Yes, I need to know how Python treats strings differently than JavasScript does, but not what a string is and what strings are for.

I do not need to learn boolean logic, but I do need to know that Python uses True while JavaScript uses true.

I do not need to know what OOP is, but JavaScript's OOP is very particular because of its prototype-based system, so pretty much every language should have very meaningful differences.

I'll write a post reviewing some of the "Python for JS Developers" tutorials I explore in a couple of weeks, but I wanted to put this out there now. If you know of a good one, please share it in the comments.

Top comments (0)