My big discovery from making an open offer to mentor open source contributors: How much knowledge that I take for granted isn’t widespread. [1]
For example - I would have thought Github config, use & PR process was pretty much baseline knowledge in our industry. But it clearly isn’t. [2]
This isn’t just with people who are new to software; people who have careers in software don’t know this stuff. [3]
And to be clear - this isn’t me railing against “dumb n00bs”. It’s genuine surprise that these things aren’t common knowledge. [4]
These are skills that can be taught. And they’re not that difficult to teach, either. But you have to know that you have to teach them. [5]
It’s humbling to realise how much you’ve learned, and forgotten that you’ve learned. And a great duty to pass on that knowledge. [6]
I’ve been in this whole software gig for a while now, but I still find that I don’t know everything. If it did, I’d be bored. I find myself searching for documentation only to find that I need to go to a few different sources to find what I need. But once I get the base knowledge, I forget that I had to learn it.
A lot of open source projects don’t detail exactly what they assume or how to learn about the basics. Something as simple as a README saying “Just ‘gem install foobar’” may make sense to a seasoned Ruby developer, but for someone that doesn’t know that gem
is the Ruby package manger program, they’re going to be stuck.
I’m pulling some of this together in the BeeWare docs as Resources. Not complete novels about what things are, but enough basics, with links to the details, that people coming into BeeWare don’t have to feel like they don’t know everything, and can start with the basics, even if it’s just reading up on how things work, while they follow the tutorials to setup their environment.
I’ve got a few things already in this PR on the BeeWare website repo, but I don’t know what I don’t know, so if you have anything you’d like to see added, let me know.
I’d love for this to be not a compresenive “Here Is How To Be A Developer”, but enough so that people can get started, get over the first few ‘huh?’ moments, and spark an interest in being able to learn more.
The foundations of computer science are hard when you don’t know where to begin looking.