Discussing my experience journeying from medical academia to a more IT-rich environment, making that career switch and discovering new and interesting sights about the "real world of IT".
19. If your government plans to change its
time zone boundaries or daylight saving rules,
let the mailing list know well in advance.
20. If your government plans to change its
time zone boundaries or daylight saving rules,
let the mailing list know well in advance.
“Hey y’all, just FYI…”
For those who don’t know me, my name is Aisha Sie and I’m a “double doctor”, hailing from the wonderful world of medical academia. Which was great, until…
But I wanted to do something different, because academia turned out to be more about politics than about actual science, so I quit my job in December.
Since then, I’ve been doing a lot of soulsearching what I want to do. Then I found myself drawn to my lifelong passion for tech, even though I was never a coder before, and I decided I wanted to do more with healthcare and IT.
Of course this had a lot to do with my long-time observation of the much more open-minded tech community as “Ross Tuck’s eternal +1”.
That started quite innocently with me tagging along to several conferences and becoming fast friends with some people in the community. But before I knew it, I became the event host for bimonthly game nights at AmsterdamPHP, then joined Ross and his buddy Lucas as co-organizer of DomCode. Then there was this speaker workshop and, well…
…HERE I AM (jazz hands).
And I’d like to take you with me on my journey transitioning from medical academia into a more IT-rich environment, and discuss some of the things I learned along the way.
So I had a new career goal: bridge that translational gap between the medical and technical worlds. And I had the medical part pretty much covered, but when it comes to “the real world of IT”, I’m pretty much like Jon Snow, knowing nothing.
So I decided I had to learn more about IT: not to become a developer myself, but to understand the mindset behind it. And the only way to do that properly, was to learn how to code.
To my relief, I wasn’t the only one making a career switch to IT. Back in April, I asked on Twitter: if you started out doing something else, how did you end up in IT and how did you experience the switch?
And it turns out, people came from a variety of backgrounds: musician, ballerina, meteorologist, electrician, Arabic linguist, English teacher, and even someone who got kicked out of school because they spent too much time on the computer. They had different reasons for switching: already a hobby, new opportunity after previous career didn’t work out, or tired of relying on other people to do it, so learn to do it themselves.
I think that it’s important to know if someone made that switch from an existing career, because to me, it’s inherently different from learning IT from the get-go.
Because when we make that switch, we are no longer a blank slate, we already have experiences coloring our perspectives, and on top of that, we are actively stepping out of our comfort zone.
Depending on how far along in our career we are, we could already be considered an expert in a certain field, then suddenly be “degraded” to newbie level when we start learning how to code.
This can be a hard pill to swallow, of course in terms of ego but most importantly in self-confidence. If you think you have imposter syndrome, think of what we go through!
On the brighter side, there’s already built up skills and knowledge that may not be directly relevant to IT, but can still be transferrable sideways. For example, musician said that his experience on stage helped him get over fear of speaking.
And as a doctor, I see one core skill used in both medical and technical worlds: we are all problem-solvers. We need to figure out exactly what the problem is by talking to the people involved, then come up with a fitting solution. Doctors talk to patients and prescribe treatments, developers talk to clients and make software. But we are all problem-solvers. That common ground is important for you and me alike, to understand each other as we’re learning.
Because we do have to learn. Thankfully, tech has a very low barrier for learning with courses like on edx.org and Codecademy and communities that offer a safe learning environment. There’s coaches readily available to provide mentoring or just answers to all those newbie questions that you can otherwise get stuck circling in. And even as just a peer: you normalize all the little frustrations of the learning process by saying “we’ve all been there, here, look it up on Google, that’s what I always do too.” This low barrier is unheard of in medical academia and probably many other fields – and therefore something you should all keep cherishing and fostering.
However, the more I learn about IT, the more I am simply flabbergasted how software doesn’t simply fall apart at the seams. It’s like finding out that even astronauts use duct tape to fix up their lunar rider, or to improvise a makeshift lifeboat from a lunar module with ill-fitting carbon dioxide filters. Plain ol’ duct tape. This strikes me as both genius and purely terrifying.
So in similar fashion, I would like to discuss with you four moments where I had my mind blown as I learned more about duct tape in IT.
So the very first thing was a concept that was explained early on in my “Introduction to Computer Science” course from Harvard on edx.org, called floating point imprecision.
Now as you might recall, I’d spent my recent years deep in medical science where statistics are key: you need to do all kinds of fancy calculations to know whether a difference in treatment efficacy is an actual difference, not found by pure chance. But I also think math is hard. So I am very grateful for all these statistical software packages we have to do all those fancy statistical calculations for us, so I can basically hit a couple buttons and the computer just rolls out a number for me.
But then I find out about this floating point imprecision thing, and suddenly the world boggles around me. Because I thought computers were supposed to be good at calculating!
If I am as a simple human being better at telling you that 1 divided by 10 is just 0.1, instead of a computer telling me that it’s 0.10000000047346 or whatever random set of numbers further down the line, and when I know that some statistical differences can come down to some veeeeery tiiiiiny fractions to juggle…Let’s just say that my faith in computer-generated numbers has since been heavily shaken, and I will never be the same.
Another thing that just baffled me was the way that time zones are managed.
I already knew that times and dates are a nightmare to work with from a tech perspective. Time is not a decimal system, how many days fit into a month or a year depends on which month and whether or not it’s a leap year, yadayadaya.
But time zones are even weirder. Because only a handful of volunteers actually maintain “the list” of time zones used for pretty much all computer languages. And that it’s entirely open source, not tied to any official governing body regarding the geographical borders of time zones at all. In fact, this is what their instructions say about changes to the database:
(read the quote)
And I don’t know about you, but I still forget about daylight savings until it’s the next morning and I’m like, “Oh crap, is it that late already?” So to think that changes to this time zone database are entirely dependent on just random people like you and me remembering to send out an email like “hey y’all, just FYI” is just bonkers to me.
Then there’s DNS poisoning. I already knew how DNS lookups work to redirect you to the correct IP address whenever you go to a certain URL.
What I did not know, is that that entire lookup process did not, until recently, include any verification steps whatsoever. So in essence, there is nothing to stop people from getting in between and redirecting entire masses of people to an entirely different website than what they were going for. That’s a huge vulnerability.
In fact that made me think: who even needs phishing emails when you can just hit someone’s DNS directly without them noticing?
And I found out that DNS poisoning has already happened on a large scale, because the infamous Great Firewall of China works by blocking on a DNS level.
So in 2010, a Swedish ISP accidentally configured its DNS servers to fetch their information from DNS servers in China… suddenly people all over the world were blocked from reaching Twitter or Facebook. Drama!
Thankfully DNSSEC is being implemented to patch this up, but it’s still disconcerting that it took this long.
Lastly, I want to talk to you about something that I’m aware is a controversial issue within the tech community: frameworks.
You see, when I decided to learn coding, I started the course “Introduction to Computer Science” on edx.org, which teaches the basic and theoretical principles of CS using C.
When I tell people that I’m learning to code in C, I get these strange looks like, “That’s… ambitious.”
So here I am, all used to having to hash-include all sorts of libraries before I can even do anything, declaring variable types for every single thing, wrapping my brain around sorting and searching algorithms… and then I tried out a Ruby on Rails workshop.
And MAGIC happened!
All I had to do was copy these lines from the instructions and suddenly my command terminal would scroll with lines upon lines of something happening, but I had no clue what. I was told to go ahead and plug in a couple more fun modules like commenting or changing stylesheets and…
Suddenly I had a website where you could upload kitty pictures. Lots and lots of kitty pictures.
The upside of this was of course, I had a website pretty much out of the box with all the functionalities I desired. But I had no idea what was going on under the hood, which after all my time hacking away in C, really threw me off. I started wondering, “If I can throw this website out there without really knowing what the hell I’m doing, how are actual professional framework developers doing this?”
Now I know that there are a lot of websites where customized approaches are simply overkill, so frameworks can be awesome for that – but I’mma stick to my ambitious C for now, okay?
So to conclude, two things I want you to take home today:
First off: we are all Jon Snow in some things, but we are also Yoda in other things. I know almost nothing about IT, you probably don’t know so much about medicine. But we each have our own value, and we have our problem-solving skills in common. Remember what you do know, and equalize those levels of respect: we need that to work together.
Secondly, take nothing for granted. I mean this both in terms of the learning environment you are in, and the reference frames that you have built up for yourselves in your years of software development. Remember that there’s plenty concepts that are second nature to you, but entirely mindboggling to the rest of us, even when we’re learning now. But there’s a lot of people – including your clients and users – who won’t know and therefore can’t understand some of the troubles you’re facing, unless you help them understand. Help us build that bridge.