DEV Community

Cover image for dev.wtf - developer's reference
stereobooster
stereobooster

Posted on • Originally published at stereobooster.com on

dev.wtf - developer's reference

WTF developers are talking about?

Modern software development is a complex discipline. A lot of jargon, terminology, slang, emojis, memes and cultural references make it harder for newbies to start.

What if we collectively build reference book website of terminology and jargon of modern software developers.

I imagine it like a mix of urbandictionary for developers and encyclopedia of the basics of computer science.

Alternatives

"But there are a lot of alternatives" you may think, for example:

  • urbandictionary is great for phenomena jargon, but not developer specific
  • MDN is a great resource, but it scoped to browser/JS specific subjects
  • emojipedia all you want to know about emojis
  • Functional Programming Jargon - about functional terminology
  • WikiWikiWeb - some interesting opinions about software development
  • The Jargon File - a comprehensive compendium of hacker slang illuminating many aspects of hackish tradition, folklore, and humor

(do you know good alternatives? please let me know)

Yes and no. Yes, there are a lot of great resources. No, they are not covering all areas, so you need to consult more than one source, terminology can differ. I feel like the situation can be improved.

What?

For developers

When the developer says "PR" they most likely mean pull request rather than public relations. This reference would focus on software development related topics.

Newbie friendly

A monad is a monoid in the category of endofunctors, what's the problem?

-- Joke from A Brief, Incomplete, and Mostly Wrong History of Programming Languages

Explanations should be done in an approachable way, obviously, there are limits to which things can be simplified. We still can't properly explain quantum physics to 5 years old, but we need to keep trying.

A good example of an explanation of complex subject made approachable is Khan Academy explanation of public-key cryptography with colors.

Basics

I struggle to find some basics explained, people often skip explaining basics and write about complex stuff (something they find interesting and challenging, I guess).

There is a good piece on that matter - Fundamental Concepts in Programming Languages by Christopher Strachey, but it is from 1967 (a lot of things are still relevant, but some terminology is outdated).

Consistency

Different programming languages use different terminology to represent the same concept, for example, vector, array, list, queue all can mean the same (or not). It would be nice to reach some consistency and to be able to list correspondence between different languages, (so-called Rosetta Stone).

Not an API reference

The idea is to cover basic concepts and jargon, not to become a reference of API. We don't want to replace devdocs or MDN.

Critical thinking

A lot of ideas are presented as "best" practices, but there are no silver bullets, all solutions come with trade-offs. Those tradeoffs should be highlighted, so the reader could reach their conclusions.

For example:

Standing on the shoulder of giants

This is not an attempt to redo everything from scratch. If some of the subjects already explained in a good way by other sources, we can quote that.

Correct, but not boring

The idea is to give correct definitions for computer science terminology, but we can have fun along the way and drop memes and some art here or there.

Figure: sticker by americanexpress.

How?

This will be an open-source project. A static website generated from markdown files with front matter, same concept as Jekyll, Hugo or Gatsby.

For now, the source will be hosted at Github, so anybody with Github account would be able to contribute the content.

Implementation

The main focus is on the content, implementation is less important. Anything that works with markdown files will work. I chose to use Hugo for MVP (minimal viable product), but this can be changed later.

Examples

Some examples of subjects that reference may cover (or may not, because this is a community-driven project):

  • Computer science terminology: array, closure
  • Development terminology: console, server
  • Acronyms: a11y (accessibility), l10n (localization)
  • Phenomena jargon: bikeshedding, gatekeeping, 10x
  • Professional jargon: vulns (vulnerabilities), repo (repository)
  • Internet shortenings and emojis: thx (thanks), (╯°□°)╯︵ ┻━┻ (flip table)

Details

Each article composed of at least title and definition. Optional parameters:

  • cover image: for social networks
    • can be generated automatically. like they do for dev.to
  • tags
  • related - related articles
  • aka - other names for the terms
    • can be used to generate redirect pages

How can I help?

  • Ask questions. If you find some terminology confusing open issue asking for an explanation
  • Answer questions. Send pull requests with answers
  • Edit language. Some authors will appreciate help in fixing typos and errors
  • Add pictures. You don't have to be a developer to contribute, you can help by providing cover images and helping with design-related things
  • Improve code. Do you have an idea on how to improve the website? Please send PR.

Other ideas

PS

I need to mention that Sara Vieira, best developer avocado I know, had the same idea.

Proof of concept: https://devwtf.netlify.com/.

Cover image from unsplash

Top comments (12)

Collapse
 
vimmer9 profile image
Damir Franusic

When it's done, I'll host the domain on my server, free of charge.

Collapse
 
stereobooster profile image
stereobooster

Thanks! 😀

Side note: I don't think it is possible to "finish" this kind of project, it is more like a living organism which you need to grow...

Collapse
 
vimmer9 profile image
Damir Franusic

No problem, I understand. I have never "finished" anything 😂

Collapse
 
drmixerged profile image
DrMixerGED

This sounds amazing. And you are 100% correct that the jargon can be EXTREMELY confusing to beginners, such as myself. Thank you for sharing this!

Collapse
 
marvinschopf profile image
Marvin

You could achieve extremely fast hosting and worldwide CDN with Amazon S3 static website hosting and CloudFront, even with their free tier. :)

Collapse
 
stereobooster profile image
stereobooster

For now I use Netlify

Collapse
 
marvinschopf profile image
Marvin

Awesome choice too! I just wondered because an Apache Page is currently displaying

Thread Thread
 
stereobooster profile image
stereobooster • Edited

Haha, nice one. I didn't even realise there is already registered domain for that (dev.wtf/). "dev.wtf" is more like working name for it. Current url is devwtf.netlify.com/. I didn't bother with domain, because I want to get some nice content first.

Thanks for pointing out that people may confuse it with actual domain.

Collapse
 
wrldwzrd89 profile image
Eric Ahnell

This needs to exist. I approve - the more we can encourage new developers to get past the terminology and experience the joy of programming, the better off we are!

Collapse
 
emjayess profile image
Matthew J. Sorenson

/me wonders if Google Open Source might line up behind something like this for "Season of Docs" ...

Collapse
 
areahints profile image
Areahints

Came here because of the title!

It's a good plan. If I ever saw a Urban dictionary for developer jargon. I'd be hooked.

Collapse
 
phlash profile image
Phil Ashby

Paging @vaidehijoshi :)