I'm John Washam, and I'm a software engineer at Amazon working on the AWS Config team. Coding Interview University is a project that helps people learn computer science fundamentals and problem-solving in order to be qualified to pass a software engineer interview.
I had been a web developer for many years and was not qualified for many software engineering jobs because I lacked knowledge of computer science fundamentals: data structures, algorithms, complexity analysis, etc. I started to make a list of all the things I thought I should know to get hired at a large software company. It started as a small to-do list and grew larger as I found more resources online.
As I mentioned, it was just a to-learn list, and my GitHub account was pretty empty, so I added the list to GitHub and shared it. At some point, someone of importance tweeted about it, which spiked the stars on it to about 150. That spike put it on the front page of GitHub trending, and then it went nuts. At that point, the list was very large, so people shared it and starred it not because it was trending, but because they saw it as worthwhile.
In 2016, I wrote a Medium post about my journey to getting hired, and it inspired a lot of people around the world to not quit in their goal to get hired as software engineers, too. After I posted it on the FreeCodeCamp channel, it got a lot of attention and went much further than when I had just posted it on my own.
It's been pretty easy to manage. There are pull requests from time to time: mostly translations, spelling fixes, and replacements for broken links.
Building the list and getting the word out were the hard parts in the beginning. Nowadays the hardest part is saying no to contributions. The list is already huge, and daunting for people to see the amount of work ahead in learning computer science.
I think the project is pretty evergreen. There's not much difference in computer science taught today as it was 20 years ago. So there's no need to add more to it. If anything, I'd rather cut things out to make it seem more manageable.
I just want people to find it useful. As long as links are kept up to date, and videos or articles that disappear are replaced with equivalent or better content, it should stay relevant and useful. I'd like it to still be a great resource 20 years from now.
I feel like my project is a bit of an outlier. It's not a working software project like most GitHub projects are. But the best advice I could give for any project is: create a solution that you need and share it. If it helps someone else solve the same problem, thereby saving time and agony, others will appreciate it. The best things are created when we share solutions or resources that helped us.
Coding Interview University is open for anyone to read through and star on GitHub here. To find out more about John, you can visit his blog where he's written about software engineering and startups, or follow him on Twitter.