You can find me on Twitter. Please don't ask me how I came about that handle! It's one of those things I don't really want to talk about! But, yes. I work in Finland. Who knows about Finland? That's nice.
Beginner concepts that we used Ember to do, and a history of where we came from and how we decided to go with this. What is Code Afrique? Nothing fancy, just giving back to the community. It's a bunch of students, doing a masters in software engineering. We figured out the problem in Estonia and decided to get together to solve it. I'm going to tell you what we did.
What do we do, and why do we do what we do? Who understands what this means? Okay. Very few hands. But this basically explains why I'm giving this talk. In case you missed it in my previous slide, I used the word "under represented" highlighted in red for a reason.
I would like to redefine this word. I see myself as a marginalised person. In 2015, I was doing a Masters in software engineering? In Estonia. We have a lot of people of colour in the country, not so many but a significant number.
The issue was it was difficult to get jobs, right? There were a lot of people who wanted to get into the tech space and it was difficult to get in and the reason was we had created this barrier for them, assuming that everyone had the same cognitive abilities. This is a bias, a lot of us have. We don't necessarily do it intentionally, but this is it.
A random question: how many people who make tutorials or teach people think about learning disabilities like ADHD, for example? Very few hands. How many people think about people who are not really able to learn not because they're not smart enough, but because they didn't have the same privileges that you had? Do you ever think of that? How many people here got their first computers before 15? Okay. You see these hands? I never got a computer before 15. So, what whether I like it or not, I didn't get the advantages that others had. This is why we came about Code Afrique to actually try to boost that gap and give people the ability to actually get into the industry without thinking so much.
Yesterday, something happened, and I basically wanted to call out this. I thought it was important. I would like to change the narrative of we being under represented. I quote Brian Lyells when he says you're not under represented before, you're over represented.
I'm sorry, but this is fact. We are black, indigenous people of colour in IT, and we are supposed to be here. We're not here as a quota, we are here because we're supposed to be here. We don't want to use negatives to address ourselves in the industry, we want to be seen as people managing our lives, not under represented. Hopefully, I hope that by the end of this talk everything thinks this back and puts it on the back of their minds.
They could just come and learn, and afterwards explore. So, yes, like everyone else, I think we all deserve an equal chance. It might not be nice, it might not be comfortable for some people, but we all deserve an equal chance. I'm not sure about pizza and - I'm a pizza person, so maybe the Americans may not be so happy but I like pizza more than ... we're a bunch of regular people.
The folks who work at Code Afrique, that's Gabriel. This is Sunday. And this is Victor, all senior software engineers.
However, we have created a barrier that makes it difficult for people to come into the industry, and just before I go, a quick question: how many people here work in front-end development? Awesome. That's a lot of hands. Okay.
We basically decided to use the pattern explaining variables and objects and methods going through this way. We think it's easier. It has worked for us and enabled us to get out the 15 students we initially take, get nine of them into the industry, they're good engineers, they're still young, they still have a lot of time to improve, but they're learning, and it has shown us that there is a possibility to actually ease people into the industry without necessarily complicating the entrants. We need to think about the different type of people.
Frameworks was supposed to make software development easy. Frameworks were basically - we started building frameworks to enable people become productive easier. Unfortunately, we have started making frameworks that by making it more complicated for people to get in, and this is now not a lash-out to anyone or framework.
There's something very controversial about Ember. I wouldn't say controversial but a diverse opinion. It's a convention over configuration. A lot of people feel that this is not so good.
And that's not justified. They have their reasons. A lot of people do believe that conventional over configuration is quite important, and they have their reasons. Now, starting in Code Afrique, we actually went ahead to teach people in terms of the different things that we needed to show them.
What we discovered was that it was easier to actually use Ember because we could give them a set of instructions to follow. One of the most important things you enjoyed as a beginner was writing the line of code and seeing it work. We gave them an opportunity to see their work progress, enjoy that excitement, and then go on to dig deeper behind the basics, why this works the way it works, with , instead of working in the reverse pattern.
So typical pit stalls we encountered with trying to use frameworks. Lazy-loading. Too many computer science concepts that is front-end development. It doesn't have to be so complicated. Come on.
Some frameworks seemed to be front-end frameworks designed for back-end developers. A lot of people here can agree with that, I'm pretty sure we've all seen it. You probably know what I'm talking about.
Yes, and then some things aren't designed for beginners, it's true. As much as we would like to say it is, it's just not designed for beginners. It's not beginner-friendly. There are tons of other things but I will skip that and talk about the basic ones.
At this point, I'm going to play a nice video. Hopefully, the musical part is actually removed. This was a video made by one of our students and I promised him I was going to play here.
>> Thank you. God bless America. [Applause].
>> It's a representation of how the different technologies and frameworks. [Video]: "Nice to meet you. What's up, Graham. You know this.
Heath Williamson. Nice to meet you, sir.
Come on. Come on. Emily George. How are you doing? All right.
Never forget about that. That's all we got. Nice to meet you. All right. Oh, bring it in! Starting from the bottom now we are here.
Nice to meet you. All right. All right. Nice to meet you.
One - bring it in there. [Voices overspeaking]. Nice to meet you. My goodness.
Look at this. Oh.
She is so beautiful. Mmm. I want another one. There you go.
Precious. Beautiful. Beautiful. What's her name? This is Libia Roogie. Come on, there he is! All right, very good to meet you.
Here we go. [Laughter]. "
>> Okay, so I'm just going to round up. That was pretty much it. I would say a big thank you to all the people who work with Ember guides, teaching Ember and JS has been amazing because of the way the documentation is designed. A huge shout-out to your communities.
The documentations are totally amazing and they make teaching easy for us. Routers, and this is no beef against any framework, but not having to teach people about routing, not having to tell people listen, I need you to go and install this particular framework router to get started helps us a lot because it eliminates the need for people to worry about that.
When they want to learn about routers is doing it in their own time. They want to get productive and learn code. Handle - data binding. We can't actually teach data-binding without teaching data-binding. Basically, they can get productive and understand it and when they want to dig deeper, they have a better overview of what data binding should be and how it should work.
Lastly, convention. We all have different ideas about convention, but as someone who has taught Ruby on Rails, and em-R Ember, I think for beginners, it's important to give learners a set of guidelines to use and work in. Just I'm going to show a couple of little things. So this is pretty much lazy-loading in Ember.js. This is how straightforward it was.
I only need to explain what Lazy Loading is and show them is. No disrespect to Angular, if I want to do this in Angular, it's not so straightforward. This is one of the issues we face. You need to make sure you can go into a lot of core concepts.
Going into a lot of core concepts for people you're trying to get into the industry might just be a way to chase them away. So using simpler methods, using this kind of method, and using convention over configuration, we can do this and show it to to them better. I hope a lot of frameworks will make it easier for people getting into the industry. This is a simple routing function in Ember.js.
This is a simple explanation. This is all I need to tell the student that how the routing itself would work, and this would make logical sense because it follows systematically the way it will flow.
Moving forward, we've run the code to reload. We still have Code Afrique as an online version and Reload is a boot camp for people who identify as marginalised groups. You can find us on Twitter. If you would like to be a mentor to some of our students, we would love that. And many thanks to the following organisations.
The Association of African Students in Estonia. They gave us to the - and the Talin Institute of Technology. Our classrooms are located in the institute, and a huge thanks to my company. I'm paid to be a developer-advocate that doesn't need to come and talk about ...
It does have a little flaw and hopefully sometime I'm going to bring that up when I can, but I just wanted to point out that if you know you mentor anyone, if you know you're a senior engineer and you have junior engineers in your team, mentoring is not good enough. You need to open them to your network.
You need to give them opportunities. It's wanting to say yes, I'm a teacher, I have four mentees. How many are working? It's important that we keep this at the back of our mind when we teach. It's another thing to pass knowledge and another thing to give people confidence.
While you mentor people, giving them opportunities. I used to be at fault for this because I have seven meant yes, sir - what was I missing? On linked linked, if I see a job, I - if - I can say all seven are working today. One will be a senior engineer, he's just within three years be he is smart because he has a CSS background. It's important that we open up people to our networks. I'm highlighting the mentees that we have at Code Afrique because they came from a very different background.
He's a journalist, and when I look down there, he actually also doesn't have a CS degree. She started studying marketing, but they're all engineers now, and we're really proud of what they do. I hope we can encourage people to get into tech this way. Lastly, I'm going to point this: who has had this raised before? - who has heard this phrase before? What this means is that it is all about sharing what has been bothering you for a long time.
Mostly things that, you know, you usually don't have anyone to talk about, but you would like to talk about it. The reason why I do this is because every time I come to a conference, I have students who are back home listening, and I want the experienced developers here to please go on Twitter and talk about your most vulnerable times, talk about those things that you can't remember. You can go on Twitter, for example, every single time I need to Google how to use the reduce function because despite the fact I've been programming for over five years, I don't seem to grab it. I have to check out the reduce function.
When you say this to young people, it doesn't matter the age, but people who are young in the industry. You give them some sort of confidence and let them know we're not all Superman.
Everyone makes mistakes and has a part they're not comfortable with. I want you please to share your stories. I'm going to go on Twitter quickly and post this. So please indulge me.
I prepared this tweet just ahead of time. You can go on the there and write the themes that you consider to be the most vulnerable things as a senior developer, what things do you forget regularly? As a senior developer, no matter how much I think I know, I really don't know shit, unfortunately, because, when I went to EmberConf I sat with Yehuda who was a role model for me, when he started to contribute - I realised, like, oh, boy, I have a long way to go, you know? So please share your stories with them, and encourage them and make them understand that it's okay to make mistakes. We all make mistakes regardless of how many years experience we have not industry, everyone makes mistakes and you can learn from them and be better. I started going back. And with that, I say thank you.
You can find me on GitHub, and Twitter, and you can send me an email. The word you see there is the one thing I want you to learn about Finland today - how we say thank you. Thank you very much! [Cheering and applause].