fejes713 / github-universe-talk

WIP: Stefan's talk about 30 seconds of code movement for GitHub Universe 2019
https://github.com/30-seconds
1 stars 1 forks source link

Initial ideas for the talk #1

Closed fejes713 closed 4 years ago

fejes713 commented 4 years ago

I didn't get to this point alone so I'd like to invite all awesome folks who contributed to @30-seconds organization (especially @Chalarangelo) to help me prepare the talk for GitHub Universe 2019.

Checklist:

deadline: 24th October

I imagined my talk to be a collaborative process between everyone at @30-seconds so that's why I am asking for your input 😄

Let's discuss the ideas in this thread below! :octocat:

Chalarangelo commented 4 years ago

How did it all start?

Well, the inception of 30 seconds of code is as random as it gets. The story starts with me in a coffee shop waiting on a friend that I was doing a project with for an MSc course. So, my friend is running late and I am sitting there, with my laptop, reading stuff about programming and browsing the web, when I stumbe upon a Medium article about some Swedish (I think) girl in her 20s who made it big in the industry. As I read the article, I read about CodeWars and I was intrigued, so I signed up and started writing solutions to the challenges there. I kept up this routine for a few weeks and I found myself writing the same pieces of code over and over again so, naturally I made a repository with snippets that I could copy paste. Couple of weeks later, having 36 snippets (if I remember correctly) and a very simplistic tool to compile them into a README, I posted on Reddit. And one thing led to another and we got here, two years later.

The early days - the good, the bad, the ugly

In the early days of the 30-seconds movement - it wasn't a movement at all at the time - everything was chaos. There were hundreds of PRs to review, tons of open issues, no CI so all builds were manual, a boatload of duplicate snippets and a lot of people without any guidelines trying to contribute to a very barebones project that got to ~2k stars overnight.

Naturally, all of this was overwhelming for one person, so a team was formed in almost no time - people who wanted to help curate it all and setup a decent structure for the project. While this made things a lot easier, it was still chaos and we didn't have a lot of time to make things work. The building and tagging systems, the website, most of the setup for Travis CI was done within a week without any proper tests, reviews or a lot of thought. If it worked, we would merge it. If it didn't, we would patch it up as fast as possible. If it wasn't there, we would prototype it overnight and accept it as the de facto solution to our problems.

It was chaos for a couple of months and we had to deal with a lot of pressure, without even knowing each other all that well. But, somehow we made it and the project wasn't broken - at least not very obviously, not very often, not that bad. :stuck_out_tongue_winking_eye:

Chalarangelo commented 4 years ago

The role of the community

If it wasn't for the people who pitched in - issues, PRs, chatting, starring, sharing - we would have never gotten anywhere. The flow of ideas, pointing out of mistakes, edge-cases, best practices and even just questioning things was all due to the community being so active, especially early on. This is why we always try to respond to a PR or issue with a smile, thank the person on the other side of the globe writing whatever is in front of us and then, without getting emotional, annoyed or too excited, respond politely and calmly to whatever it is that we are responding. It might take longer to write "Thank you for contributing/the heads up/bringing this up/the idea" under every issue or PR, but it's important to remember that we are doing this with these people's help and to provide value for everyone involved.

[Write more here]

Dealing with spam and toxicity

We don't get that many spam comments, PRs and issues, even less toxic comments on 30 seconds. However, when we do, we try to be polite and avoid conflict. The best way to deal with spam is to flag it and close the issue/PR and lock the conversation. The best way to deal with toxicity is to reply politely, delete the comment and, if the perpetrator persists, keep at it until they stop or until you have no other choice but to block them. It's never a good idea to let ill intentions get in the way of being a nice person.

Chalarangelo commented 4 years ago

Key takeaways/advice in the 2 years of the project

Chalarangelo commented 4 years ago

Most inspiring moment for me

When I woke up the day after posting on Reddit and seeing the star count, issues and PRs. I made a cup of coffee and started working out what to do. It felt so nice seeing that people liked my idea and I thought this was the time to shine. This might also have been the most challenging time for me in all of this.

fejes713 commented 4 years ago

Awesome! This will definitely help me a lot to form a nice storytelling around our organization.

(caution: probably bad English as it's very late right now) While thinking about the slides and content I got an idea about the introduction that I'd like to share. Keep in mind that the talk is from my perspective so I have to give some initial info on how I got into programming and open source (this is definitely what most people ask me when they hear I am 20).

My early days (talk introduction - first 10 minutes)

I wanted to start a talk by telling a short story on how I wanted to be a garbageman when I grow up. Fast forward a couple of years, I am not picking up garbage to make the city clean, but I do clean up the PRs to make a better online community 😆

I'd then show up projects I work on, mainly focusing on @30-seconds and showing big numbers and organization accomplishments. This should warm-up everybody since maintaining 50k star projects are not the day-to-day tasks most of the folks in the room deal with.

I'd then reveal the days I got into tech. TLDR of this part: accidentally wanted to pursue the tech career, got into best CS class possible but wasn't that interested into it as we weren't building games. Cheated all the time until they caught me (another short story). Realized that I have to study and the rest of the boring stuff. Did an internship where I was given a collaborative work for the first time in my life and that's the time I learned git basics.

Few months forward I wanted to get into GitHub because everybody said how those green squares will get me my dream job. I then accidentally saw @Chalarangelo post on Reddit and immediately wanted to contribute to it. Story on how Angelos started the project.

Takeaways (main part of the talk, needs some reordering and planning)

TODO

(this is a first unfinished draft from my head), feedback is very welcome and encouraged.

fejes713 commented 4 years ago

Cheated all the time until they caught me (another short story)

Story outline: 1st semester started, our program was fast-paced. I wasn't that interested so I cheated with briliant technique. I was sitting in a first row so nobody would expect me to do so. Next to me was a very good friend who's dad worked in tech so that friend was already doing fine in algorithms and data structures.

The technique was the following: I copied the whole code and then just changed variable names. If friend used a, b, c I'd use x, y, z, if there was a for loop, his i would become k on my test... Until one day we had a task to do some array manipulation. The task involved swapping 2 elements and in order to do so, he needed to introduce the 3rd variable called temporary. A teacher used tmp as shorthand all the time but the friend's English was so bad that he never memorized it, so he used trt instead.

Me being totally dumb I copied trt not knowing it's a variable name. So it was obvious that I cheated. 🤣

---- I'd use real examples and tell a more in-depth story during the talk. It should be interesting and funny considering that just a few years I was totally dumb and now I progressed a bit 😉

fejes713 commented 4 years ago

@atomiks any feedback? 😄

atomiks commented 4 years ago

Omg you guys are so pro at this 👀 I'll just drop my brief thoughts here

fejes713 commented 4 years ago

Thanks for bringing up your perspective as well ❤️I really like the diversity of this conversation and how all of us have different things that stood apart on this journey.

I think we do have enough material for now. I'll start preparing something and keep you updated in this repo. Thanks so much again for the provided takeaways. :octocat:

The plan is to cover not only my takeaways but yours as well since you played HUGE part of this organization.

The next part is storytelling. I'll come up with something in the following days and then we can put up slides.

The rest of the preparation is just me practicing it 😃and hoping it goes well.

skatcat31 commented 4 years ago

Love a lot of the content in here, but one of the things I took away from 30-seconds is that by looking at every language it made me appreciate them all more.

Now to be fair I'm an old(30 is old right?) grizzled vet who hates all languages, but it hammered home what each language has going for it. It's almost as if something that can be done in one language, can be done in all of them. And this project has REALLY hammered home how much people want a consistent API between them. It's maddening to think that traversal in so many languages is only done with a for loop, and that you have to write the for loop every time. And yet... it's also extremely easy to write a function for almost every language, that takes a collection, and traverses it in a common way that allows you to write how your code changes, instead of the same for loop every time. Yet for that difference, implementing the same thing in these languages was a great way to hone in just how much Code Quality matter than Language Quality. How important tests are in making sure the code works as expected. How much a little documentation in as simple terms as possible without relying on extra knowledge helps people learn. And most importantly how EAGER people are to learn, and to share knowledge.

It's been really humbling to see, read, approve, and help develop this. There are a million ways to write a for loop, and quite frankly I can't wait to see them all. It's amazing that with a little bit of coding we can do so much, in such a declarative manner.

I definitely think there's a lot to talk about here, but I want to also ask what four snippets really... wowed you, and what four snippets/techniques/processes didn't wow you, but changed the way you think about code?

Those are some great things to talk about, and with everything else I'm sure you'll have plenty.

Even though I can't commit to much, it's been nice being able to help people get better at coding too... something I'm seeing echoed here a lot. It's also really interesting to see @Chalarangelo come back and refactor things and how much all of your coding has changed over time.

skatcat31 commented 4 years ago

Another thing I wanted to bring forward that's probably unique to me here was being able to watch you guys do the things I've already done. It was REALLY interesting to see how you all approached the build system, the formatting, the deployment... Stuff I've done in several environments, several times, over several technologies(many of which don't even get mentioned anymore!). It's made me appreciate how much these sorts of repos can really help everyone.

Those that want to get better can help, and those that want to learn can learn. It... was actually a lot harder than you'd think to not just dig up that old code I had as examples to influence all of you... But... I'm just chalking that up to having been programming for 20 years...

Love watching the growth and can't wait to see how it keeps changing things.

Hmmm... maybe a last talking point?

What does the future hold? Maybe a 30 Seconds of CI/CD? A 30 Seconds of Programmatic Design? 30 Seconds of Testing? 30 Seconds of UI/UX? 30 Seconds of DevSecOps? What do you as a community(the audience) want to see? More importantly, do you want to help?

:block stage left: :final slide, a 30 Seconds log fades in quickly, afterwards a slow fade in of the GH Octocat avatar appears:

fejes713 commented 4 years ago

Thank you so much for this @skatcat31! I am definitely going to include lots of the things you said. :octocat:

We're missing just the feedback from Felix but he lost his 2FA and is very limited with the time in the past year so he won't be able to contribute 😭

lacabra commented 4 years ago

@fejes713 I attended your talk today at Github Universe, and I very much appreciated your great presentation. It was well-crafted, well-delivered, entertaining, insightful and actionable. Thanks for sharing your knowledge, and everyone else for contributing. ❤️OSS

fejes713 commented 4 years ago

Wow! Thank you so much for the feedback @lacabra ❤️ :octocat: We all appreciate it.

fejes713 commented 4 years ago

It's time to close this (until next time!), thank you so much for all the nice feedback and useful help. ❤️