I think there’s no shortage of roadmaps and learning paths for web development or any other computer science-related paths scattered all around the web. So, I’m not going to list specific courses that I’ve studied or books I’ve read. I’d rather talk about the process of learning itself and how I went from an A-grade student who regularly was top of his class, to hardly passing high school, to dropping out of college altogether then getting back on track again.

Growth Mindset vs. Fixed Mindset

I used to have this idea that if I’m learning something and it’s challenging or that I’m struggling to understand it, this means I’m not nor will I ever be good at it. Not just that. I used to judge myself, thinking I was inadequate or just not “smart enough” to learn this stuff, just because the learning process was challenging or required an extra effort. After all, I was this special kid who was smart enough that he doesn’t even need to study hard or struggle to learn. And struggling to learn something new meant that I’m not that smart nor that special. That is what’s called a “Fixed Mindset”. And the key to counter it was by “Developing a Growth Mindset”.

This term was first coined by Dr. Carol Dweck the Stanford university professor, and there is a famous TED talk of her explaining the term thoroughly. For me, I stumbled across this talk after learning this myself the hard way. I wished someone had taught me that earlier but maybe I had to see it for myself. Now I refuse to be called smart, I refuse to even believe it myself. I would rather be called a hard-worker or someone who struggles to learn something, over and over again, until he becomes good at it. This is how I learn; this is how all people learn.

So, with this growth mindset; how did I get into coding?

When I started to learn about coding, I remember trying to learn Python. Back then all programming concepts were pretty alien to me; they didn’t make any sense. They were gibberish as far as I can tell and for three consecutive times trying three different Python courses, I always got stuck in the middle because my mind just wasn’t ready. And every time I give up, dump the course, find another one, try again and fail every single time. I slept on it for a while and came back for the fourth time and finally it clicked. It made sense this time around. And if it didn’t, there would have been a fifth and sixth time.

What I’m trying to say is that coding isn’t a natural skill it’s like any other skill that requires training.

But how did I, someone with little background in CS, no work experience at all, and from my first interview, got a chance for an internship then a full-time job offer after 5 months at one of the leading tech companies in Egypt

Hire for Attitude, Train for Skill

First, let’s agree that luck played a big role here. Despite doing so well on the interview and answering most of the questions but still my first ever interview and it goes this well! I can’t ignore that I was lucky to an extent. But it isn’t just luck, I mean the person who hired me must have had his reasons. What are they? It bugged me at first to the point that I brought it to someone who knows about business. I told him all about what I was thinking, how I’m thinking that I’m a hack, that I’m not as experienced as these people working here. That I don’t know why I was given this opportunity. And that’s what he had to say, that in business there’s a saying that “You Hire for Attitude, Train for Skill”. That I wasn’t mainly hired for my experience but my attitude. So, what attitude was he talking about? I think it’s an attitude of consistency, relentlessness, and curiosity. I remember answering most of the questions in my interview that the interviewer explicitly told me that there are people already working as front-end devs whom can’t answer some of these questions.

So, keep up the attitude, curiosity, and be consistent. And trust me; the skill will follow.