It’s not every day where students new to programming get to ask 709 software developers for advice.

Overview

There is a school here in Malmö, Sweden called The Game Assembly. This school focuses on teaching students game production. Everything from programming to art and design. This is a three year program where the last year is spent at a games studio.

Since I work for a games company, we get asked to hold lectures for the students. I’ve done this a few times over the years and feel very honored when I get the opportunity.

This year I got to speak to the first year students. The idea was to go over the basics of object oriented programming but I had another idea as well.

Why not reach out to Twitter and ask if they had any advice for some “impressionable youth” ?

Getting well over 700 replies was not something I imagined would happen. Because I only had two days from the tweet until the talk, I was not able to summarize all of the wisdom. But I tried to find the most liked ones and replies from individuals that work in the gaming industry.

But there was just too much data to gloss over. I needed to analyze the replies.

Getting the data

First I tried to just browse the timeline on Twitter and copy the text from there. But apparently when a thread reaches a certain size, Twitter limits how many tweets you can see. So from that data set I was only able to get 285 replies.

Next up was to use the Twitter Developer API, which is heavily throttled but allows for more granularity in searching.

Using Python and Tweepy and a 5 minute sleep between requests, I was able to fetch 763 tweets that were a direct reply to my request. This took 362 minutes, or 6 hours. It might have been ok to have a shorter sleep but I left it overnight, so it didn’t matter much.

for page in tweepy.Cursor(api.search, q="to:olafurw", since_id='1087438169585434624', tweet_mode='extended').pages():
  repliesFile = open("replies.txt", "a")
  
  for tweet in page:
    repliesFile.write(tweet.in_reply_to_status_id_str + "\n")
    repliesFile.write(tweet.user.screen_name + "\n")
    repliesFile.write(tweet.id_str + "\n")
    repliesFile.write(tweet.full_text.encode("utf-8") + "\n")
    
    repliesFile.write("\n--==--\n")
  
  repliesFile.flush()
  repliesFile.close()
  
  time.sleep(300)

Basic Analysis

Analyzing a text corpus is an educational field on it’s own and I don’t have the knowledge or the time to go in depth. But I do want to highlight a few things that stood out.

Programming is a human field

131 out of 763 tweets talk about other people. 17.1%

They talk about humans, teams, peers, friends, colleagues.

Here are some examples:

@tomjadams
Software is a team sport

@mrdowden
The most important thing in life – and something you always control – is how you treat other people

@originalJonLowe
Be supportive and kind in your journey for knowledge
Build other developers up because at the end of the day, you’re a part of a team
Be a team player over a “Rockstar” because knowledge is meant to be shared

@ccmccomb
Never forget to find room for compassion in computation

Programming is about continuous learning

13 replies were literally “Never stop learning”

82 out of 763 tweets talked about learning or practice in some way. 10.7%

Here are some examples:

@iam_js_
There are no shortcuts, practice, practice and more practice

@curtisko
You are responsible for continued learning and career progression

@hedgeb
Even if you are just one page ahead in the manual, you can mentor someone and help them along in their journey learning to code

@howbazaar
You are going to keep learning
You’re not done
Being good takes practice
Read books, read blogs
Don’t expect to be great in six months

Programming can be intimidating

Many replies reflected this well. There is a lot to learn and a lot you do not know. Looking at experts in the field can be daunting.

27 replies talked about mistakes or failing, 29 about fear, being afraid or scared.

@jitterted
Don’t compare yourself to others, compare yourself to where you were in the past.

@greberger
Never be afraid to say that you don’t know something
Don’t be afraid to ask for help
We all suffer(ed) impostor syndrome

@ben_deane
We all make mistakes
Try to honestly accept responsibility for your mistakes without being ashamed, and don’t put shame on others when they make mistakes

@FiddlersCode
Tech is ephemeral but relationships last
Get to know your colleagues and yourself emotionally
Have the courage to be vulnerable about your struggles
Ask for help even if you’re afraid of looking dumb

Programming is not just the latest tech

Yes the shiny new library/language/framework is cool. But as many replies showed, the fundamentals mattered much more.

34 replies talked directly about tech, algorithms and focusing on the bigger picture.

@bjorn_fahller
Languages and tools come and go.
Learn to see patterns that repeat, or rather rhyme, in different languages and libraries and even paradigms.
Learn the pros and cons of different techniques, so you can choose wisely for your specific problems.

@aras_p
Find area of programming that interests you and do work there.
Small incremental tasks - “hey I made screen red! now I made a gradient!”, “hey I made button on the page move!” etc.
Language, framework, library, “tech stack” does not matter (ignore everyone who say it does).

@rickschott
The world needs problem solvers, not memorized algorithms

Programming can ask too much of you

Personal health was also a common discussion point. Sleep and eating right were top of the list regarding healthy behaviors.

33 replies talk about sleep, eating, personal health and working hours.

@sehurlburt
Get sleep, eat healthy, take care of your body— even if you feel fine
More hours working doesn’t mean better work, it doesn’t even mean more work gets done
You don’t have to have your career figured out
You don’t need to hit external life milestones to be just fine and happy

@caffodian
Take care of yourself physically
Yea, actual programming skills are useful, but so is being able to use a mouse without hurting yourself, or being able to sit without back pain, looking at screens without giving yourself headaches, etc

@ArvidGerstmann
Don’t overdo it. Enjoy your god damn life while you can. Signed, a 24 year old who feels like 44.

@ma_lindstedt
Working 100 hour weeks does not mean you are dedicated
Take care of your body, speak with managers and be frank
Enjoy your spare time so you can deliver your best work every time
Hobbies + friends are not mutually exclusive with good work ethics

Programming, other interesting replies

The categories above were common themes, but there are some that don’t fit into a generalized category but are worth mentioning.

30 replies mention testing

@brianokken
Learn to ask early these questions:

  • How do I know it’s working?
  • How do I automate that?
    Learning to rely on automated tests ASAP will save them loads of time

18 replies talk about some kind of version control

@UndefinedBehav
Use a version control system
I would have love it if someone would have told me before

14 replies mention debugging

@AliBeeGfx
Coding is often like the opposite of the uncertainty principle
the only way to have any certainty something is really happening is to observe very closely via debugging!

Grateful

A thread like this comes once in a blue moon. That so many individuals took their time to reply is beyond comprehension.

Thank you to all who replied, re-tweeted and liked.

I hope the thread inspired you and I hope this blog post helped as well.

@ericniebler
Stay humble, stay curious.