About this talk

A talk on how you can start your programming career from nothing. Topics covered: strategies on how to learn to program, tips on how to get a job, tricks for staying motivated along the way.

Transcript

So, today we are going to talk about from self-taught programmer to job. The reason why we are talking about that is because FreeCodeCamp is actually the platform where people start learning to code but also to get a job in a completely new industry. Completely different industry that they are used to be or used to work. And we were asked many times to talk about our experience and we both came practically from nothing to a programmer job and that's why we are talking about it today. We will have a question and answer session afterwards so feel free to ask everything you'd like. Yes, just a short roadmap of what we gonna cover. We will talk about our life before. We will talk about the learning process. We will talk about applying for jobs. We will talk about working at the new company then explain the main qualities and actions to get a job actually and the last thing will be about motivation because people always ask how do you stay motivated on their way? So, yeah. Let's start our life before programming. How many of you guys actually started to programme from completely different field? Cool. So like 50% something, roughly. Very nice. So, you guys know what it takes to like start with a completely new set of rules and mindset. In my case, it was like, I'm a student. I'm a business law student. I have worked in different business law firms. Text advisor law firm, at different workshops and also like entrepreneurial stuff . But most of the time , I was also like a nonprofit worker. Most of the time I'm a student working and working here. Just working and starting my whole life. So, not really much programming. I had no idea what HTML was, nothing. Yes, That's about me. - Yeah, and with this background in business and such, I had a different background. I grew up on a wet, cold mountain in Bergen. I was raised by sheep farmers. It was quite miserable at times but no, that's not the real story. But, maybe I should control the.. But I did grow up in or by wet mountains in Bergen. It's one of the rainiest cities in Northern Europe. It has about 250 days of rain a year. So, I guess it's quite miserable but we specially enough, we cope. And, I didn't get raise by sheep farmers but we have national costumes in Norway that are mainly made of wool. Just pay special attention to the fact that these socks are purely made out of sheep's wool, handcrafted and such. They are always a pain to put on for these occasions. They go up until like here. So, that's nice. My background back to a childhood, I was always the computer guy in class. I always like from the first chance I had, with a Dad working in tech to you know, bash the keyboard or H fibre or something from a commodore or Macintosh or something. I always found out I had a... early on found out I had a love for computers. I didn't take it further until then learning HTML, making some websites. I had two parents, my father and my mother. They got divorced. Whenever I was at my Dad's, I used to live mainly at my Mom's place, he had internet. So, I could get tutorials on how to learn html, print them out, go back to my, you know, regular home. On the computer with no internet, learn how to make stuff with html. It was really cool. But then a couple of years later, I got a booked job in 21 days and I was like, "Yes!" But I was the kind of person who understand why it said system out penton. I must be a stupid guy because there can only be math genius that understands that this is what it takes type or writing out and why it makes some stuff happen. And there was no one there for me to tell me that, take a step back, you're not a stupid. This is the same for everyone in the beginning. And it was the same for me at school. Learning math, it was easy for me or old courses in school. It was easy for me up until this stage where we had sort of like equations, Algebra and stuff. And I thought that, "Hey!" Up until that point I just had to be in class, pay attention, barely do homework. I did fine. But then, once I had to memorised rules and just apply them, I didn't understand that that was what you're gonna do. I thought I had to really understand what was going on because that's how it had worked for me up until that point. So, all this, just to say that I really had enforced the myth that programming is for math geniuses only. So, I kinda ruled it out from that point on. And then skipping ahead little bit of young adult life. Instead of going to a computer school which I maybe, let's just call it that. Which I maybe would have done if I would have not have this misconception. I instead said, "Hey, let's try Psychology studies." Didn't work out. "Let's try to study Philosophy." Didn't work out. Then I kinda prioritised student life and working instead of studying. And at one point, I panicked to realised that I can't really get job as a Philosopher. So, I went to Ireland and I'm from Norway but I went to Ireland to work for multinational companies. And eventually, all this led to me having a bit of a burn out. I worked in sales, tech support, public transport support and so on. I didn't really work jobs I liked, I just wanted to earn money. And I became a sad panda. And I mean it really because I became a sad panda. Life in Ireland, just working, drinking, eating whatever I wanted and it was not good for me. - Cool, yeah. Now let's go to the learning process. When you start to learn to code, it's like this picture here. My code isn't working and I don't know why. And if the code is working, I also don't know why. So this was always like when I'm working on something, it was always like this. And I guess it's for most of you like that when you started out learning to code. For me, I captured my whole learning experience like in this three pictures here. On the first you see like GitHubGitHub contributions. On the second, you see like cheesecake and coffee because that's like super important when you programme a lot. And down here, that's actually one hour before the gym. It's actually in the gym. But what I wanted to tell what that picture is, that you have to, yeah, you have to fit in or use every time you get. When you are busy, when you have family, studying, working, you don't have time for learning to code your whole day. So, when you have time like an hour before the gym, or whatever or when you're travelling on the bus, on the train, use the time for coding. And as you can see here, I was like that's only GitHub, I was like coding everyday. Like there's the challenge like hundred days of code, forming a habit so it gets into your body. And that's actually the result. And that's without the FreeCodeCamp curriculum which also look like that. So many, many hours. Many, many contributions and a lot of coffee and studying just learning to code. That's also like from our article, as I said before, this tool is like WakaTime. It's like a plug in for the editor. It's for free so you can check how much time you actually spent on projects, on GitHub. And here what I've tracked like from mid, what it's like? From mid-April to mid-July or end-July, like 250 is our assessment, just coding. So, that was down to like an average of two hours per day. So just to give you a perspective, how much should... can take to learn to programme and to not be frustrated along the way, just put in the hours. And what you can see here also is like I pulled in or I created on CodePen actually. A small application on home page that actually counts the day I was, yeah. The time spent on coding and to list day, it was like 380 days so that's pretty cool. And what I also wanted to tell with that is like, to do your own projects, always, don't try to follow the curriculum or whatever tutorial. Try to make your own stuff happen and you will learn much quicker and better in general. So, to have it in natural, I put in many hours, I did a lot of research not only tutorials or videos or books or whatever, try everything out. See what works for you best and then go with it. In my case, it was just many contributions and own project. And always trust yourself but I'm going into that later on. - Yeah, so going back to my misconception that you had to be a math genius to learn to programme, to get out of this burn out and to get about a life, I gradually tried to do that. One project was me and a partner, Noey was started the company to provide websites for businesses based on Wordpress. We never really took off, we never scale super high mainly because we didn't have enough sales. But we had a few costumers and at the point I was thinking ... I was part of the technical part and my partner was part of the sales and I was thinking, we're doing this stuff and we're just barely making any margin on offering share hosting for our customers. What if we get to host ourselves and I've already been interested in Linux for a while but you know how it can be with Linux. You try and try and you fail and you try and you fail and you try. And then eventually maybe you make a switch to Linux which I have but it took a long while. So in that process, I knew it was possible to host yourself so I decided hey let's try this. I tried some tutorials and I finally had a breakthrough when I stumble across Linux Academy and I took a part ... That was the first time I was using an online course to train myself or to teach myself something. And I managed to, from knowing nothing about hosting service, just general hosting, to be able to set-up a lamp stack, Linux apache, MySQL and PHP and offer hosting for our customers professionally. So, that was a big aha for me but I was still thinking you have to be a math genius to learn programming. Figured that. So, this picture was to illustrate when I realised that hey I can learn stuff online. Then I thought let's try programming but it must be hard. So let's try it again. I tried treehouse first just to brush up html and CSS. Kinda taste a little bit from Javascript but I thought, hey okay it's cool to learn about functions and variables and control statement and stuff but you know that's when the real programming start. So I kinda focused on that back. And it wasn't until I stumble across FreeCodeCamp about two years ago now that I realised that all this stuff that I thought was just a basic in programming is programming. And then you just have to ... It recommend the same thing, use them in different ways, go a little bit more advanced into the language and design and the other topics that are more like, on the architectural or just get it in your fingers and be experienced on what is the best choice for the job and so forth. But the basics, they are the same. And when I realised that, just imagine, after about 30 years or, you know, I'm 33 now but I was probably around 30 then. But after many years from a kid thinking that programming was not for me to finally bursting the bubble, I'm thinking, "I can do this." I was really motivated because I really want to do this. And I saw it's a way out of my misery. So, then I start with FreeCodeCamp. As a Daniel said, it can be challenging and you have to put in a lot of hours and I put in a lot of work at first as many people do. And then I fell out a little bit. I've wrote about it at my blog, helloilovecode.com and one of the things that helped me was to take a step back from FreeCodeCamp. Read a book. Actually, I saw it's here. I looked in JavaScript help me personally to get the fresh look at free code the JavaScript. Not from FreeCodeCamp but from another source. I supplemented with other courses. I like Udemy because they have a lot of courses that you can buy on demand and keep for life. And then I got back in to the groove of FreeCodeCamp. Yeah. So the book here is not an icon for something Youtube started doing. That's just because I also use books. Yeah. And FreeCodeCamp, when we talking about motivation limit later, it has been a constant part in this whole journey. Just knowing that I was organising, starting to organise the free colocal group here for the FreeCodeCamp. Man that I felt that I'm obligated to make sure I could tell to other people at the meet-up that I had progresses the last time. So this social aspect, it was really helpful as well. - Yeah, so after learning a lot, the next step is actually applying for a job. I think that's pretty interesting for us because our stories are pretty different actually. For me, just two pictures here. One day from the interview, from the day of the interview and another picture is also from the meet-up here. The reason why I'm putting up those pictures here, just to give you an impression how I looked when I was applying for the job. But to summarise it, I don't wanted to be an employee. Actually, I just started to become a freelancer and I was only focused on projects and meet-ups. I wanted to get to know people and I wanted to built on project. And I tried to contribute as much as possible to anything code related. And literally, when I did realise there are meet-up here in Vienna, it was my first meet up. It was actually the webclerks meet-up here. And I was going to everyone and like, "Hi, I'm Daniel. I'm a programmer beginner. I don't know a lot but I know a little thing. Do you have an open source project?" And if yes, can I contribute?" And I was like going to everyone like, " Hi, I'm Daniel. Can I contribute?" And then, like you know, everybody. And then I met one guy, actually Benny. He said, "Of course, I have an open source project. We can like work on it together. And then we met for weeks and months and like after, I don't know, four to five months, he was like, "Yeah, my company is looking for developer. We have like a job offer. You want to work with me?" And I said, "Yeah, of course." And that's actually it how I got the job. Of course it was like an interview and he was asking questions. He was like, "Show me your project. Tell me a little bit about you. Tell me a little about your stack. Why do you do want it to do it that way, et cetera. But nothing really hard, no hard questions. And what I want to tell you here is, for me, the absolute key here was to build a relationship to network and get into a job over a guy I already knew. That's like super powerful because he can refer me and also like from the employer side, he's like, "Okay, he has already worked with one of my employees so he has to has something good." And the employer already trust that employee. So that was like a big plus. That's actually, for me it was actually pretty easy. So, on your side. - I want to do a little bit different about back to my work, how many company in Norway selling websites to companies. I did that and I also supplemented with some freelance work, mainly very simple Wordpress based task. A lot of competitive stuff. Didn't like it all so much but that was in the phase that I was starting to learn to code. So as I learn to code, I could do more code related stuff. One thing for me is looking for a job. I was in this freelance stage but I wanted something full time because the freelance was spread not equal, not a stable enough income for me. But I wanted to look for a full time job and it had to be English speaking because my German is not so good. If they would allow German, they would have to be really kind people. And then I focused on continuing to organised the meet-up that I started here and I also organised ... Now I must be, last year maybe, NodeSchool. In the summer, I contacted the Node js speed up and said, "Hey, can we do something?" So, I helped do that. And I also helped the HackerEx which is speed dating for developers and have their first two events in Vienna. Served as an Ambassador for them and I'm also the Ambassador no, what it's called? Angel Hack even though I haven't had something here yet. I hope they will come soon. So, all these things I could put on my resume and I was active and I was in the community and like to engage and also something I can benefit from, when searching for jobs. I didn't feel when I started to send applications around April that I had enough portfolio and stuff and I really didn't. I just had a couple of things from FreeCodeCamp. And I had something, you know when you're forking stuff and get tab and you just putting down some lines in a new idea thing and stuff so it looked like it was busy but it wasn't really much to get them either. But I said, "Hey, let's just try to apply because I have to apply and get a job. Let's see how this goes." And I just had the approach that I would just send as many applications as I could. Not super many but definitely over 50 applications in the span of April to August. - [Audience] 50? - 50, 50. Yeah, 5-0. But it's, it doesn't have to be hard. Like you can go on sites. I also included remote works so I can go in sites like weworkremotely.com and others for remote work. Find the, you know, the ones that are looking good. Go to their sites, copy-paste into the form. Have a little bit of application letter if you want to be personal and so on. So it doesn't have to take so much time. So I just try to make it as extreme as possible. And of course apply if I really like the job ad. I also had a rule if I was in doubt. Either if I like the job or not or if the job said mid to senior and I was like, "Ahh." Or they have this lists of requirements and I had like maybe ten percent, I'd be like, "Okay, you know what, you can think as much as you want but if you don't apply, you'll never know." So I just made the rule. I'll apply if I'm in doubt. So, a lot of applications. And I had two rounds, one round with a plain application. Black and white like you learned in school. You should lists your experience. You should, or use the school experience in chronological. Everything, boring, plain, straight forward. Didn't work so well so I said, "Okay, let me rephrase things a little bit." Present myself as an already developer and not to down myself. So, I changed some wording and present myself better and I got a professionally looking template with a picture and some colours and stuff and really nice lay out, design. And that really helps because after just the first three applications, I got feedback. And now that I got the job that was the first interview I went to but it took them probably two months or something to offer me the job. So in the meantime, I had, I think four other interviews. And the interview also is done as it's for me wasn't so technical. It was more that they saw I had the ability to learn that I could talk about the choices I've made in terms of the frameworks and the technologies that I was using for my projects when I was learning. That I was, not just following along but was reflected about it. And I really had found the passion of coding that I didn't know I could do until recently. So, I think that it should shine through. Yeah. - Yeah, I should take on working at the new company that's wary. I want to keep that very short. Because at first it is like it's too much. This is too much, this is it literally how you look in the new company. Because it's like, of course you will be overwhelmed. Because there are people more experienced in a field you have never worked in, of course. What we want to talk about here is like, okay, the company is different. Every company is different. So there is no one rule fits all. It's an illusion here but also like important is to keep always to learning attitude because people are like ways smarter than you, probably or hopefully. You will have like failures and you might not know a lot. But with having a learning attitude, everything will work out perfectly. - And you can also lean on the stuff that you learned while learning to code which most part or whole. Hopefully all is doing their job which is Googling. If you don't know the answer you google and you try to figure it out. You open ten tabs, you go through them, you find the best answer you see if you learn something. Hopefully don't copy-paste everything from stack overflow. But that is something that is good that you already have it all. And definitely, I was also overwhelmed I had the imposters syndrome. I was like, "I'm not good enough for this." "They're gonna fire me after month. Okay I'm here, I'm here, I'm still here in a month. They're gonna fire me next month. No, I'm still here. It's been a year now and I'm still there so I must be doing something right. Yeah. Yeah. I think that's mainly it about our experiences.