Video in TIB AV-Portal: Keynote

Formal Metadata

My Journey with Code
Title of Series
CC Attribution - ShareAlike 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal and non-commercial purpose as long as the work is attributed to the author in the manner specified by the author or licensor and the work or content is shared also in adapted form only under the conditions of this license.
Release Date

Content Metadata

Subject Area
DjangoCon US 2018 - Keynote by Anna Makarudze Anna’s keynote will dive into her journey with coding, what got her interested in programming and why she chose Python despite the language not being popular in her region. She will also talk about her journey learning to code in Python and how her involvement in the Python community as a beginner has helped her grow and develop her coding skills. She will share what mentorship means to her and how positive mentorship can impact the lives of many beginner coders.
Code Electronic mailing list Code Planning XML Event horizon Shooting method Process (computing) Integrated development environment Self-organization Musical ensemble Family Resultant
Voting Whiteboard Software Projective plane Shared memory Coordinate system Whiteboard Event horizon Code Family
Axiom of choice Inheritance (object-oriented programming) Decision theory Multiplication sign Gradient Device driver Bit Water vapor Disk read-and-write head Proper map Neuroinformatik Mathematics Digital photography Uniformer Raum Bus (computing) Computer science Video game Energy level Quicksort Routing Resultant
Android (robot) Code System administrator Decision theory Multiplication sign 1 (number) Design by contract Open set Client (computing) Mereology Information technology consulting Computer programming Formal language Neuroinformatik Programmer (hardware) Mathematics Position operator Systems analysis Social class Physical system Boss Corporation Observational study Software engineering Touchscreen Decision theory Software developer Structural load Fitness function Data storage device Computer Bit 3 (number) Student's t-test Data management Message passing Operations support system Process (computing) Internet service provider Telecommunication Computer science Website Vapor barrier Virtual machine Streaming media Student's t-test Code 2 (number) Workload Term (mathematics) Internetworking Profil (magazine) Operator (mathematics) Gastropod shell Energy level Form (programming) Information Chemical equation Projective plane Information and communications technology Expert system Computer network Software Visualization (computer graphics) Customer relationship management Universe (mathematics) Video game Object (grammar) Window
INTEGRAL Multiplication sign Client (computing) Mereology Information technology consulting Front and back ends Software bug Single-precision floating-point format Google Maps Software framework Scripting language Boss Corporation Email Observational study Mapping Software developer Web page Open source Electronic mailing list Computer Coordinate system Bit Student's t-test Twitter Operations support system Software repository Telecommunication Software framework Website Software testing Right angle Whiteboard Arithmetic progression Web page Point (geometry) Mobile app Open source Software developer Feedback Online help Event horizon Code Twitter Term (mathematics) Googol Software repository Software testing Address space Validity (statistics) Projective plane Information and communications technology Computer network Uniform resource locator Pointer (computer programming) Video game Address space
Structural load Code Multiplication sign Execution unit File format Database Front and back ends Data model Radio-frequency identification Document management system Software framework Website Physical system Email Link (knot theory) Mapping Software developer Feedback Electronic mailing list Twitter Front and back ends Degree (graph theory) Shooting method Document management system Software framework Website Software testing Right angle Ideal (ethics) Reading (process) Resultant Reverse engineering Web page Functional (mathematics) Table (information) Software developer Feedback Code Twitter Architecture Googol Software Software testing Reverse engineering Execution unit Validity (statistics) Forcing (mathematics) Projective plane Debugger Planning Database Plane (geometry) Video game Game theory
Scheduling (computing) Software developer Code Multiplication sign Source code Online help Open set Stack (abstract data type) Focus (optics) Event horizon Code Programmer (hardware) Online chat Goodness of fit Address space Physical system Area Email Key (cryptography) Online help Software developer Expert system Electronic mailing list Code Line (geometry) Arithmetic mean Event horizon Software Video game Self-organization Writing Buffer overflow
Internet service provider Coma Berenices Data type
(light music)
- Good morning, everyone. (crowd yells) Thank you all for having me. I'm very excited to be here. I like to think myself as a bit organized, so like, end of November, December, I will be planning what I'll be doing for the early half of the next year. Then, I leave out the rest of the, the second half of the year to execute any results of the first half. So, my initial plan for this year didn't have the US, coming here for DjangoCon US. In my plan, I thought, oh, well, we have our issues in Zimbabwe, but I think the US have got their own, the shootings, the fires, and stuff like that. It'll be appalling for my family to lose me while attending a conference. So, the list of conference that I planned to attend was PyCon Namibia, obviously. I was organizing DjangoCon Europe, so that was obvious. Then, I thought I would be organizing PyCon Zimbabwe again this year. By then, the events in Zimbabwe discouraged me, and I thought I couldn't take the emotional bidding of organizing a conference in a different environment. So, I dropped that one. So, when I was asked to keynote, while I was in DjangoCon Europe, I forgot that I said I wouldn't be attending DjangoCon US for obvious reasons, and I accepted, and also didn't do research for how long it would take me to get here because I'd also thought I'd attend DjangoCon Australia, but then I saw it would take me too long, and the visa process is bit hectic for Zimbabwe. So, I dropped that one. Then, when I actually got on the plane, after I checked in, that's when I worked out how long it would take me that it was 36 hours. Good thing is I will not get stressed out for the longest trip. (audience claps) But, it was so tiring, and I realized that I hadn't quite learnt from my first Namibia experience, which I traveled 33 hours by road to go to PyCon Namibia. I thought I had learned my mistake and improved, but it seems I still get excited and make these decisions, but all this I'm excited to be here. I'd like to thank organizers for inviting me. I think if they hadn't invited me, I think I'd given myself I think three years without coming to the US. So, I'm actually excited to be here, and I'm thankful that they invited me. Thank you, Dymphna, for paying my cost to be here. I'm so excited to be here sometime, and I hope you enjoy my talk. I'll be talking about my journey with code.
So, Nick has already given an introduction of me. I'm currently the fundraising coordinator for Django Girls Foundation. So, I took this ask me badge. If you want to ask me about Django Girls Foundation, I'm here to talk. If you also want to ask me about PyCon Zimbabwe, Python in Africa, and other events that are taking place in Africa, you can ask me. Don't ask me about San Diego. I'm new to the US. I won't be able to help you with that. Then, I'm also currently in the Django Software Foundation Board. It's something that I decided to do just to run for the election. I didn't think I would make it to the board, so I just tried to vote for myself, at least I'd get one vote. So, thank you for voting for me to the Board. I didn't expect it, so thank you.
So, what will I be talking about? I'll share with you my coding journey, how I started, and also answer the question why I chose Python despite the fact that it wasn't so popular in Zimbabwe. Then, I'll share my thoughts on what I think mentorship is through a project that I've worked on. So, my background, where am I? I was born in a family of four. We had two boys, two girls. I'm the youngest girl. I have a little brother who is currently in Sweden. So, he's taking up after me with being a globe trotter, so I'm very proud of him.
So, I grew up in the rural areas. My father is now Head Master. He started out as a teacher. My mother is a teacher. But, my father chose to work in the rural areas because he thought life was cheaper there. Schools in Zimbabwe, in rural areas, they provide housing for teachers, and they only have to pay like costs of electricity and water. So, he thought it was the cheaper route. The advantage to that was it gave me sort of high self esteem because we were the privileged kids at school. You're learning with children who are coming from rural areas. Some of them would come like barefoot. Some of them don't have proper uniforms or jerseys, and we had all this. So, my first six years of school, I thought I was the privileged kid among the other kids. Then, I became a border in grade seven, and that changed because now I was mixing with children who had parents who were lawyers, and I didn't know all those professions. If were out in the rural areas, you know teachers, nurses, agricultural officers. You know business owners who own the shops, and then you see bus drivers and conductors when you go to town over the holidays. It was quite a bit of a surprise for me, changing. When I went to high school,
my father decided, because he had taught at Zimuto High School, that everyone of his children would go there. It wasn't really my choice, but I had to go there because it was my father's decision. This is my first pic in high school. For a long time, this was my worst photo. I hated it because when we took it, I thought I was posing, and then when it came out, it didn't really look nice, you see. (audience laughs) So, I started to see it's funny, when I was preparing for my talk, you know. Looking back, that was 1999, and I was 12 years old. Yeah, now it's really funny. So, this was my first time in high school, and what happens in the Zimbabwe Education System is the final results of the previous O level and A level, they come out in January and February. So, that was the first time that I actually knew that there was a, there are computers because our school was offering computer studies for O level and computing for A level. The reason why I knew about the subject was it was the first time the school had sit with an examination. The subjects were really, this might have failed. That got me, the attention of knowing that there's such a thing as computers because the only thing that we had at home was a television. So, that inspired my interest in computers.
The next year I met with someone in form two. The subject would be offered when I was in form three. That was 2000. Then there was this boy that was in another class. So, he was, besides being geek and nerdy, he was also good at being, at showing off. He had some brochures from Staffordshire University School of Computing, it said programs that were offered then, and if you studied computer science, you could do software engineering. You could do network engineering, and all other things. That really inspired me, and I thought I was interested like in software engineering. As I was preparing my talk, I finally realized okay, I actually owe my career decision to this boy who showed me these brochures in trying to show off. (laughs) I read them, and what was supposed to happen is at the end of form two, we're supposed to be selected depending on where you are. If you are strong in mathematics and sciences, you graded into being in the science classes. Then, if you are not, you'd go to the arts classes. So, I was good in mathematics and science. I thought I was an automatic fit for taking computer science. But, then things kind of like always changed when it would get to my stream. Instead of having two classes in computer studies, they decided to say okay, since I'm doing so well with one class do computer studies and another one into account. It turns out, the inner shell, instead of doing what they used to do, best marks go to three east for computer studies and then the other marks, they go to three west. They decided just to have a balance, and just do random. So, I found myself being placed in three west to do accounts. I didn't like accounts. I've never done it. It was I'd already set my mind on doing computer studies, and software engineering. So, I went and asked the teacher, what criteria did you use to put me into the accounts class. So, he couldn't answer that. So, he had to redo the classes again, and put me in three east so I could do computer studies. Those who wanted to opt out and do accounts, they were given that choice. So, I ended up doing computer studies in form three. So, that's when I started actually learning to code, and my coding journey begun. So, I started learning coding when I was in form three, and was using, we had Windows 95 machines. Those are the ones that we had at our school. They were the ones used by the juniors from three and four. Then the Windows 98 and the Windows 2000 would be used by the A level students. So, I still remember my excitement when a pull up to the computer for the first time and saw the Windows 95 loading, you know, with the black and white screen. You know, it was very exciting. We were coding with Basic and dBase III, people would sometimes wonder why I still use Windows, but it was my first love. That's what I experienced first as a computer. So, yeah, A level, we learned Pascal, and we learned Visual Basic for our projects, but we're teaching ourselves. I really realized that I wanted to do programming. Then, I went to college. The first language that we learned there was Introduction to Programming, we did with C. I loved it so much, and our lecturer was very good. I really enjoyed C. We also were doing systems analysis and design. I'd already done two projects in high school, so I had an advantage over others. I really enjoyed the subject. Then, when we were in second year, things started going bad in Zimbabwe. So, the experienced professionals, they left. So, what happened was somebody graduates like this semester, and then the next semester they'll be teaching you. So, when I was in second, my second year, we were supposed to be doing Visual Basic, object oriented to programming and Visual Basic. If you've got a bad lecturer, programming can actually suck. Of course I realized what we were learning in class was a little bit shallow that what I already knew about the language. So, I saw myself, if I'm going to be a software engineer, and I'm going to be working in Zimbabwe, this profession is actually going to, you know, it's like I will be doing the same things over and over again, I don't have many people to look up to, and I will just copying and pasting my code. When we are growing up also, we didn't have access to the internet. We were over 1,000 universities, and were less than handed computers that were connected to the internet. I only actually got to enjoy the internet when I went went for my work lettered learning my third year. I already decided that I was going into a software development firm, rather I chose to go into telecoms. I do networking, I do support, I learn everything else about IT. Then, if later on in life I decide to become a programmer, I would just start learning programming again because I realized okay, it doesn't really make sense to be copying and pasting code again because you don't have the books, you don't have the internet, and also a lecturer is not that good. So, that really explains why later I became a career nomad. If you check my LinkedIn profile, or what I'm going to tell you is I'm one who's got so many roads which are different. So, after I graduated, my first road was as a network technician at an internet service provider. I did sys admin support and stuff like that. My second road I was senior IT technician. This time it was in a university. I did some systems analysis, project management, systems admin, and IT support. I moved from there, I went to an internet access provider. I was a network operating center technician, supporting the network infrastructure. Then, I only moved for like three months. After three months, the company started not paying salaries. I don't know what was happening. Sometimes you get, I was supposed to earning double what I was getting in my previous job. So, I only got three salaries in full. Then, the others, sometimes you get 200, sometimes you get 100, sometimes, I don't know how much they owed me. The company later shut down. It was difficult to check how much they're owing you. So, because of this, people were leaving the company. There was a shortage in the billing department. So, I only stayed longer because I want an opening to work in the billing department as a billing analyst. So, there's a little bit of coding. I do some SQL and stuff like that. I wanted to, I just enjoyed exploring the IT industry. So, whilst I was working in this department, my boss got interviewed for a consulting position, which required somebody with understanding of the billing in the telecoms industry. They couldn't quite agree on the money side of things. So, the people who interviewed him, then looked me up through LinkedIn, and on Monday afternoon, I only saw the message the next morning. I responded. They called me like on Wednesday. By Thursday, I got a new job, and I was supposed to start. It was end of the month, but it was Easter holiday, so I was supposed to start on the first of April, but I later started on the second of April. This time I had another position again. I was a senior BSS/OSS consultant, just business support systems, operations support systems consultant. So, they took me to what was a consultant's project for a conference billing and CRM project. This was fun, being an expert, going shopping to South Africa, flying all the way home. It was really fun, but there were long hours. What I benefited mostly from this role was I realized the gap that we didn't have in Africa in terms of data science. We were coming from Zimbabwe as consultants, only doing project management mainly, but the developer was from China, and they spoke Chinese. Our client was Mozambican. They spoke Portuguese. So, I don't know if the language barrier made it difficult for the Chinese to understand what we really wanted for our client, but what we're getting was not what we wanted. So, I thought if I were a developer, probably, maybe, I could give big value to my own community if I would have these skills instead of being a consumer. So, I actually thought of learning programming then, but my workload was too busy. I couldn't do that. I was also getting paid well, so I didn't have the incentive really. So, it was something that I need to do something that I can do data science with. It was just a thought. So, I didn't stay much with this company. It was like for one year. Then, I stopped to do my master's, which I started 2012, completed in storage management. Then, afterwards, I had this question. So, what role do I apply now? What do I apply for now? Remember, I already have six positions as it is, and they're all different. So, I got tired of tailor making my CV.
Systems admin, you have to tailor make a CV. If it's a consultant, you have to change your CV again. If it's software development, you have to change your CV again. So, I got tired of that. Whilst I was struggling with that decision, I met another old friend. We had worked together at the internet service provider. He had joined a scholarship by moving a hub to LAN. He was doing Android. So, he advised me you can get on this program. So, the scholarship was they give you a scholarship for six months. You learn programming. You do your project, and then they help you get a job, and they get 10% of your earnings. So, for somebody like me who has learned programming, I knew that was not practical. So, I thought okay, I cannot get myself into this contract. It doesn't make sense. Then I thought okay, I want to learn programming. I'm currently unemployed. I don't know what to apply for. Okay, what do I have to lose? So, I applied anyway. So, I went through the courses that they had, and I saw that they had Python. So, I did it. You'll all be surprised, but information travels slow to some certain parts of the world like Africa and Zimbabwe. I didn't know Python existed until 2015 when I visited, was in the hub website. I don't know why I never came across Python, honestly. In all my years in the IT industry, I had to look it up and to see how you can use Python. I realized that one of the ways you can use Python is data science. So, that's why I chose Python, to learn the language. So, that was 2015, and by 2015 October, we had finished with Python. What you do then now, we started organizing, I give myself a new role now.
I was ICT consultant in Python Development. Anyway, that was my new role, which I gave myself because I had a startup which is not doing so well. So, I have a new role again. So, it was really difficult getting started. In Zimbabwe, Python was not really known. It's just really been PHP country before. So, to get the publicity that we needed, and also to keep myself busy, we started organizing events with Humphrey so that you keep learning, and also you have something that you are doing in between projects. So, that's how I started organizing events and volunteering in the open source community. Then, last year, I got a new title again, which is fundraising coordinator with Django Girls. It is a little bit of coding, but most of it is communication and emails.
So, I've been working with Python since 2015, and I'm just going to share with you what I've gone through whilst working with Python. Okay, and I'm going to talk about a project, and before I talk about this project, I have to give you a disclaimer that this is not my best project. It is still incomplete. It's a work in progress, but the reason why I'm talking about this project is it's one project that is yet, it impacts in my life in terms of how much of how much I have leaned, as well as developing my coding skills as well as my soft skills with respect to coding. I had never worked in a coding team, and I have learned a lot by working with so many people on this project. So, the solution that is currently on this Github repo, is not complete and it's wrong according to the people who gave me this challenge. So, please, if you are going to look at it, maybe you just give me some feedback. Don't expect much. So, this was part of a technical interview question. It's very long, so I just put up the attachment. I was supposed to do a single page app with a full viewport map on top and a list of addresses below, and it was supposed to be based on Django 1.9 when I was given it. If I click in any location on the map, validate that this is a new address, and it's not some wood mountain. If it's valid, a simple, okay, it's very long, the question, but the major challenges, I first with this project. Okay, so the one thing, we don't use Google Maps that much in Zimbabwe. The only time that I use Google Maps is if I have a client website, and I just want to show a point of where they are located on a contact page, that's what we do basically. But, the challenge is Google Maps is not so accurate in Zimbabwe because what has happened is users are supposed to put their own addresses, right. People don't do that. When they do, it's supposed to be their own company, located maybe on the corner, corner of Moramashu and Fifth Street. Instead of putting the pointer right at the corner of the street, they want the users to know that the entrance is actually not at the corner, but maybe is 50 or 20 meters. So, the pointer will not be necessarily at the corner, but it will be like away from the corner. So, when you know maps and skills, you know that that's the wrong address. Some would actually come and put another address on the opposite side. So, I've got lost a couple of times in Zimbabwe using Google Maps. I know of someone who use GPS in Zimbabwe and got lost in a very small zip hub. So, you're actually better off asking people than using Google Maps in Zimbabwe. So because of (laughs), it becomes difficult for you to do a project with something that you don't really use. Then, the other things is I've never really heard of Google Fusion Tables in my life. If I don't use Google Maps, I don't know what Google Fusion Tables are. So, I had a lot of learning to do with respect to the project. So, my initial attempt, I tried to use Angular. I had done it to do up with it, Angular JS, Django Rest Framework, and Django 1.9. I couldn't, the setup couldn't work with three because when you look at Google Maps, they use raw JavaScript, and I couldn't get Angular JS and ledger script to work. So, I tried something again. Okay, when I started, I would search okay. You didn't do any testing. You didn't do any validation, and you didn't do any documentation. I had only submitted it, not because I thought it was okay, but the interviewer was okay, was asking me, and it had been a long time since I submitted anything. So, I just submitted anyway. So, I decided to take some time for personal development. I started to learn Angular online. I realized there's no point to sticking with Angular JS. I'm not good at it anyway. I started learning Angular. Then, I also did a workshop tutorial on Django Angular, Django's framework, in Namibia. It was just a way of trying to learn on how to do this. Then, I tried to do the project again. This time, I Googled and realized that's it's difficult, you could launch Maps with ngMap. So, I tried that. So, I could, granddad the map. But now, I could not do everything else that I was supposed to do. I could just enter the map, and I had a backend that was working. But, POST requests couldn't go through. I just know I could click, but I could do the coding as I wanted. So, okay, I changed that. I was just working on this on my own. I tried now to do Angular. Django is for making Django. Then, I just used JavaScript to load the map. I still struggled with Angular POSt requests. You see, those promises and stuff like that, combine that with the difficulty of coding, it was bug after bug. So, I realized okay, I think I need to ask for help. So, I went on Twitter, and asked for somebody to tell me how I could do Angular POST, and they pointed me to another resource I could use online. I also, when I went to PyCon Namibia, I was, Harry Percival was there. He was doing a workshop on testing. I also got a chance to talk to him, and I asked him what I could do with my testing and other stuff. He recommended me some books which I could get to help with coding interviews. Then, I also approached Marc Tamyln. I remembered that I had done a talk on Django Validation. So, I asked him about basic development with Django and Validation, and he gave me some good tips. I asked also Daniele, who's one of the board members, but he has also been involved in Python events in Africa, for help with Django documentation and DjangoCon Europe. So, I was really using contacts whom I met at conference, really, to get help. I also asked Emma at DjangoCon Europe what she had to do with workshop with Django Rest Framing, on how to integrate Django and Django Rest Framework to any of the front edge technology. Then, I also asked my bosses, Ola and Ola, Markus, and Norma, who are co-organizers of DjangoCon Europe and Django and AJAX. Then, I needed books to read. Thanks to DjangoCon Europe, I met a good friend who helped me with my shopping. He did the shopping before I got there, and then I just collected when I got to DjangoCon Europe.
So, after getting the resources I had, I used the book in the picture there. Okay, it doesn't talk about the coding itself, but it just helps you with your soft skills, and our project design, and stuff like that. So, I did a redesign, and said okay, I think I'm going to replace Angular with AJAX. That way, I still get to use JavaScript without problems.
Then I decided to get a mentor to help me with AJAX. So, I had shared Django list framework and realized that Tom Christie uses AJAX also. So, I approached him via Twitter, and we talked a lot. I'll send you my code snippets, and you'd comment on them. Give me advice on what to do. I'll send you my game. I sent another code snippet, and just pictures and he comment on them. We had a lot of those, and I managed to do a brute force solution. So, I would load the map, and do reverse geocoding with JavaScript, and then save the results to the database. I wanted to then save to Google Fusion Tables, but I still haven't managed to do this. But, this was the brute force solution that I was supposed to do. Then, JavaScript and AJAX were used to communicate for the front end communicate with the backend. Then, Django Rest Framework to link the two. So, working with AJAX, I was very new to AJAX and jQuery. So, many Twitter DMs really between me and Tom really helped me to get started. The testing, I had a book that I had been given by Harry Percival. It's back in Namibia. This helped me with functional test and unit tests. Then, validation, my hour with Mark Tamyln came into place. I managed to learn my first custom validator, you know. It really worked, and I was proud of that. It wasn't quite what the interviewer wanted. Then, for documentation, when I asked Daniele, he just gave me, I asked about documentation, he just wrote something in my note. I still have that small note. He said you only need like four sections, tutorial, explanation, a how-to-guide, and reference. Because of this small, I think it took less than 10 minutes. I was able to do the best documentation for a project I have ever done in my life. The only problem was that the project was incomplete, so the documentation couldn't really be complete as it should be. So, I did a project which had a small README, and I was really proud of myself for what I had done. Then I submitted the solution now, not because I wanted to submit it, but apparently, the person had been following my Github, and seeing what I was doing. So, he saw that I was working on something. I didn't want to submit it, but once you've been asked, you know you just submit. So, the feedback was I had good documentation, and tests, thought they were incomplete, obviously, because the project was incomplete, my reverse geocoding had been done in the front end was supposed to be done in backend. Then I was doing the wrong thing researching the page with the GET request was wrong. He commented some reading resources, and he said my validation was not enough. Then, he asked me a question. What's my career plan? He commented that joining a small team would be ideal for me to learn, and I would one day become a great developer. So, the feedback came in a very long email, and when it came, it was shortly after our elections, and the many shootings, and what not. So, I had a lot of things on my mind. So, I took like three months before I responded to this. Okay, I didn't even have time to do the email. So, after three months, I responded. I really didn't get your feedback. Okay, I understood the comments that you gave me, but I didn't actually understand the questions that you asked me about my career, and I thought I told you that okay, I want to learn development, but maybe later I want to do data science. So, I realized that I was actually clear on what I wanted to do now. I had been clear maybe all along, but now I know what I wanted to do. So, I had to ask myself a question. So, what's my ultimate career plan, right, because already I have a long CV. I don't know what I really want to do. So, then I learned there is this thing called site reliability engineering where they take people who have got a good learned background in systems admin role, and who can code. So, I realized, okay, so I think I've been going about this the wrong way. I already have a lot of skills that are useful, that I should motion away and try to become a developer now, but all the degrees, I could just add my coding skills to the skills that I already have, and I could be more successful. So, this is now my new goal, and I hope this is going to be my last title.
That's what I'm working towards now. I'm very excited about this, I mean it. Okay. (laughs) So, key lessons to draw from my journey. What can you learn? So, if this is your first conference, or you just started learning programming, one thing that helped me was attending meetups and conferences, and also sprints. It helped me meet my potential mentors. It also helped me learn from the various folks that attended these conferences. It also helped me meet friends who have been helpful in many ways in making my journey successful. One thing that I've learned also is asking for help is very crucial. I think if I had asked for help in my career, earlier on, learning Python instead of trying to do it on my own, I could have learned more in all these years instead of just trying to do it myself. So, you actually learn more when you approach other people and ask them to help you out. They really don't have to, okay, the programmers are very busy. They've got their busy schedules. They don't have to write long lines of code for you. They just need to suggest something for you to do. If you know what you are supposed to be searching for on the internet, it's easier then when you don't know what you're supposed to do next. So, there's one thing that I took from my journey, trying to learn on my own, being self-taught, without other people to rely on. Conferences really emerged as my source of a large pool of mentors who helped me with small things that I needed to learn. If you are a beginner, you could learn more if you can just talk to people over lunch. The good thing about DjangoCon US is they don't have badges that say I'm up for a chat, or I'm not up for a chat so you can just talk to people if they are walking around. You will not be violating anything because they didn't say I don't want to chat with you. So, yeah. Then, for advanced developers, please do not dismiss a beginner. If you don't know how to help them, or it's not your area, or you don't have the time, it's better to just tell them, or refer them to someone. This has been really helpful for me. When I attend events, if I ask something, last time in DjangoCon Europe, I had issues with doca, and a couple was very kind to refer me to somebody called a doca expert and he helped me. So, that's really helpful. If it's not your area, suggest someone, suggest someone to help and it'll go a long way. And, please don't tell me how poor my code is. That's why I don't go on Stack Overflow. That's what people do. So, I can't pose a question there. I know people are going to tell me how poor my code is. So, my thoughts on mentorship is it doesn't really need you to devote an hour of your time every week, every month to mentor some people. Just give a few minutes to answer somebody's questions, suggest something kind, and tell them how to get on with their code. It will help them instead of just saying I'm busy. At meetups, when you meet people who are starting their journey with code, it really helps for you just to be kind to help them with their code. Two minutes, five minutes, 10 minutes tops, will have gone a long way in helping that person become a programmer, and become better at that. They also appreciate the coding industry because people are helpful. So, for me, I fell so blessed to have so many kind people in my life who have taken time to look at my code, and help me improve it. Some of them have been kind, you know, in helping me and my community gets resources that we need. So, just to, how can you get involved in Africa? You can support us by mentoring some people. We have some mailing lists. Or, you can come and speak at our conferences, help organizing our conferences, or sponsor in some way, cares for all kind. Or, you can join our mailing list and organize our, help us organize our African events for Python and Django, opening in 2020. So, we hope you'll get involved, and then I'll leave you with this quote, "The key to realizing a dream is to not to focus "on success, but significance, "and then even the small steps and the little victories "along your path will take on greater meaning." This was said by Oprah Winfrey. So, for me, it's really been an amazing journey. Not so smooth, it's been long, but I'm actually glad to be where I am today because I decided in 2006 that I was going to do the networking and the systems admin, and then get back to coding. I feel like I've accomplished something. I haven't got the job yet, but at least I am where I set out to be in the first place. So, I'm really happy to be where I am today, and thank you so much for having me.
If you want to contact me, you can, that's my Twitter handle and my email address. So, thank you so much for having me again. (audience applauds)