# data[].attributes.body
https://draw-me.onrender.com/

# data[].attributes.attachment_link.title
Free and easy to use machine learning library

# data[].attributes.body
A) résilience

B) scale up

C) dependent

D) batches

E) process across

F) synchroniously

G) tweaking

H) timeframe

I) replay

J) logged into

K) handles

# data[].attributes.body
A. resilience

B. scale up

C. dependent

D. Batches

E. process across

F. handles

G. tweaking

H. timeframe

I. replay

J. logged into

K. synchronously

# data[].attributes.body
A. resilience

B. scale up

C. dependent

D. batches

E. processes across

F. handles

G. tweaking

H. timeframe

I. replay

J. logged into

K. synchronously

# data[].attributes.body
A Resilience

B Scale up

C Dependent

D Batches

E Processes __ across

F Handles

G Tweaking

H Timeframe

I Replay

J Logged into

K Synchronously

# data[].attributes.body
A. resilience

B. scale up

C. dependent

D. Batches

E. processes across

F. handles

G. tweaking

H. timeframe

I. replay

J. logged into

K. synchronously

# data[].attributes.body
1. Examples of usage

2. Unique features and difficulty of usage

3. compatibility and price

# data[].attributes.body
Money amount that should be spent to make it work

Benefits for the investors

Why this project may be useful

# data[].attributes.body
Stack of technologies

Documentation

Comparison to other solutions

TL;DR

# data[].attributes.body
https://docs.google.com/presentation/d/15qoaJlhSwb9rQ2_2-8TyQYqlb-1g6YAk8t62HZxRxGE/edit?usp=sharing

# data[].attributes.body
https://docs.google.com/presentation/d/1xvfX_kI1JeoBXwETZd9o39RReBfRgLFeDmxnTGnfSz0/edit?usp=drivesdk

# data[].attributes.body
https://docs.google.com/presentation/d/1YdDempCkIGyXEg10HuVSrE1RI962AKoNkqHfNZWKWI8/edit?usp=sharing

# data[].attributes.attachment_link.title
Презентация без названия

# data[].attributes.body
Lack of documentation
Lack of clarity, especially about implementation details like the standards followed
Outdated information

# data[].attributes.attachment_link.readable_text
Good technical documentation is essential for effective communication and understanding of your product. It helps users understand how to use and troubleshoot the technology, and it can also serve as a valuable resource for developers to understand the design and implementation of the system. Clear and comprehensive technical documentation can greatly improve a developer's experience with your product.

On the other hand, poor technical documentation can lead to confusion and frustration for developers, as well as wasted time and resources. Examples of poor documentation include non-existent or difficult-to-find pages, broken documentation with incorrect or broken links, and inaccurate docs that don't reflect the current state of the product. Poor documentation makes it difficult for developers to understand the product and slows down the development process.

In this post, we will examine the various types of poor documentation and provide examples, solutions, and best practices for creating comprehensive and effective technical documentation for developers.

1. Can't Find It or It's Not There

Perhaps the worst documentation is the one that doesn't even exist. Developers look for your docs to see what's possible. There's no way to tell what you can build if documentation isn't made available. That said, this bad docs mistake still comes in a couple of flavors.

The first is purposely hidden documentation. Despite the well-known dev desire for self-sufficiency, many organizations still purposely withhold documentation. The business reasoning here is that you can better understand what someone is looking to solve. Unfortunately, the vast majority of developers will never reach out to request your documentation.

Other companies hide documentation behind a login, often for similar reasoning. A free account usually requires an email address, which means you'll have a way to contact the potential customer in the future.

Again, many devs will want to see the docs to decide whether it's worth creating an account.

The last two non-existent docs issues appear exactly the same to devs:

1. Documentation is not prominently linked

2. Documentation has not been written yet

If your audience can't find it, it might as well not have been written. The solutions to these problems, of course, are very different. Your team will either need to create the docs or make them discoverable on your website.

In our recent review of top dev company homepages, only about half mention developers or documentation in global navigation. Of the remaining companies, almost all of them provide a documentation link one more click away, usually under a "resources" menu.

2. Broken, Inaccurate, and Outdated

Some may argue that wrong documentation is worse than no documentation. Indeed, this is consistently listed as a top frustration of developers. Of course, there are a number of ways that documentation can be wrong.

It might be an edge case that's not covered, like returning a null field when something is expected. Or the classic API mistake of an error message mixed with a 200 status code that suggests all is OK.

Problems of incomplete documentation are hard to find and infuriating when developers bump into them.

You can have other issues that are easier to discover and still annoying for someone browsing your docs. We frequently find links within documentation that go nowhere-404 in web parlance. Now imagine it's the exact page you need to complete your project.

Once, I received a report from a developer that our product had "read more" links as plain text, without actually linking. I scoured the docs, but couldn't find it. Eventually, deep within the dashboard, was helper text that had somehow been stripped of its links. Even worse, there were several of them and we couldn't figure out how long it had been that way.

Whether it's wrong because something has changed or it was never right in the first place, what's important is what happens next. Yes, there are processes you can put in place to catch some of this automatically, but make sure there's a clear line of communication with devs. Make it clear where to get support, provide a feedback tool for every docs page, and-here comes the hard part-read and react to the bug reports.

3. Click Here to Download the Docs

When I asked around for bad documentation examples, there was one immediate response. In fact, you can use this acronym with most developers and see a visceral reaction to this particular document format. For years, I counted on it as a punchline in talk, just by showing this image.

Yes, PDFs are the classic bad docs experience embedded in developer brains. The document itself makes it difficult to browse, copy-paste, and share deep links with other developers. But the aversion may go to the types of products that are documented in this way. Usually, it's a sign of other problems.

For example, take a look at the US Postal Service docs (USPS). Granted, there's a non-PDF version, which they somehow make feel like a PDF (and that "HTM" extension alone inspires a grimace).

In fact, while at Lob, Sid Maestre published a modern version of the USPS docs. Many devs may still find problems with the API (such as XML responses), but uspsweb.tools is a huge improvement over the legacy experience.

Of course, PDFs are just one file format of several you might see: Word docs, Excel, Powerpoint, and many others have been reported. Even an OpenAPI document, a format we love for its contributions to DX, is not sufficient documentation.

Lastly, the other problem with downloads is they're often paired with a sales form. If devs hate PDFs, I'm not sure there's a strong enough word to describe how they feel about sales forms.

4. The One-Trick Pony

You can do none of the previous documentation mistakes and still not provide documentation that helps devs. Most commonly, we see this with reference-only documentation. It tells you all the facts you need to use a product, but nothing to help you connect the dots in the right order. Despite what devs may even say themselves, "just show me the docs" doesn't work.

The classic sign that there's only one type of documentation is when your docs are nearly indistinguishable from the default Swagger Petstore.

In addition to a reference, which only covers the functional details, you want to include other types of documentation:

Contextual "why this matters" documentation

Tutorials to take you step-by-step through a project

Sample apps and code snippets to solve common problems

You might even consider switching up the format. Experiment with video and other ways of communicating about your product, such as these innovative tutorial formats.

5. No Opinion, No Narrative

Somewhat related to the one-trick pony, this final bad documentation example is worthy of its own section. Including multiple types of content does not necessarily mean the story will resonate with the audience. Even documentation should include some voice of the company.

Your docs need to explain more than how someone builds with your product. They must explain why developers would want to integrate it.

Many Google APIs use a structure that helps them avoid being a one-trick pony without any narrative. Guides, in particular, are where the company shares its important use cases-and, yes, how to implement them.

It's in these guides that you might also be able to inject some of your company or product opinion. That may run counter to how you think of documentation. The most opinionated content will likely be published on your blog, but consider that your product exists because it solves a need in an opinionated way. Don't hide it-share it and you'll help developers have better, faster success with your product.

Learn From Great Documentation

It's one thing to avoid these documentation mistakes, but it may be better to look at the ones that get it right.

We've collected nine of the best API documentation examples, including Plaid, Twilio, and Stripe. Rather than copy everything one company does, why not take the best from each? The post covers the full spectrum of documentation types and best practices.

If you need guidance from the EveryDeveloper team, the best way is to reach out for our objective opinion. We can perform a DX Review, which includes your documentation and other areas that impact the developer experience.

# data[].attributes.attachment_link.title
Examples of Bad Documentation (And How to Do Better)

# data[].attributes.attachment_link.description
Good technical documentation is essential for effective communication and understanding of your product. It helps users understand how to use and troubleshoot the technology, and it can also serve as a valuable resource for developers to understand the design and implementation of the system. Clear

# data[].attributes.body
- no code samples
- raw technical description
- no return types for methods
- Unstructured documentation
- no usage cases

# data[].attributes.body
- No code examples
- Lots of useless screenshots without text explanation
- Not maintained properly
- Not user-friendly
- No navigation
- Doesn't cover all use cases
- Too complicated wording

# data[].attributes.body
добавить панорамный просмотр улицы
to add a street view panorama

Our: to add a panoramic Street view

использовать HTTP-запрос
to use an HTTP request

Our: to initialize an http request

# data[].attributes.body
To provide clear features
To add as a part of the screen

# data[].attributes.body
To make a poly-line dynamic - сделать ломанную линию динамической
To embed to occupy a part of the screen - встроить так, чтобы занять часть экрана

# data[].attributes.body
Reach final destination
Show maps API

# data[].attributes.body
защищать при помощи API-ключа = to protect by by an/with API key
откорректировать наполнение отступы = to adjust the padding

# data[].attributes.attachment_link.title
Progress test on algorithms/data structures/UI

# data[].attributes.body
1. FAQs section
2. Software features are described as user scenarios required for a certain task
3. Video tutorials
4. Simple English
5. Troubleshooting information
6. Screenshots
7. Contains architecture description
8. Responsive design when viewing on mobile device
9. Navigation
10. Information on system's compatibility and behaviour in different environments

+ examples of working code

# data[].attributes.body
FAQs question
Navigation
Nice design fore mobiles
Contains architecture description
Video tutorials
Simple English
Screenshots
Info about system's compatibility
Troubleshooting
Software features -> most important

Our:
- references and links to other resources
- examples of code

# data[].attributes.body
A. Navigation

D. Simple English

C. Responsive design when viewing on mobile device

X. How did the APIs change between versions

X. Well functioning search

B. FAQs section

J. Information on system's compatibility and behaviour in different environments

H. Video tutorials

F. Software features are described as user scenarios required for a certain task

E. Contains architecture description

I. Screenshots (vs text only)

G. Troubleshooting information

# data[].attributes.body
E. Contains architecture description
J. Information on system's compatibility and behaviour in different environments
D. Simple English

G. Troubleshooting information
F. Software features are described as user scenarios required for a certain task
B. FAQs section
H. Video tutorials
A. Navigation

C. Responsive design when viewing on mobile device
I. Screenshots (vs text only)

Code samples, mathematical description

# data[].attributes.body
Text is now readable
Darker picture for to contrast with text

# data[].attributes.body
https://quizlet.com/ru/535635937/user-interface-flash-cards/?i=35j014&x=1jqt

# data[].attributes.body
Design improvement to make it look better
Buttons were made wider to add a description
Create account replaced with Sign up

# data[].attributes.body
welcome screen
file management
default layout
customizing options
window/page view options
toolbars
panels
dropdowns

Vocab: toolbar, tab bar

# data[].attributes.body
Welcome screen
Default layout: text editor
Toolbars: move over the top
Panels
Dropdowns
File management
Window/page view options: split view
Customizing options: templates

# data[].attributes.body
Drag n drop
Property expector

Welcome screen
File management
Default layout
Window/page view options
Panels
Toolbars
Dropdowns
Customizing options

# data[].attributes.body
Vocab
Panel, bar, button, tag, menu bar, tool bar, drop-down

Elements: welcome screen - file management - window/page - default layout - customising options - dropdowns - panels - toolbars

# data[].attributes.body
Advertising

Google captcha. 10 pixels of this object are in the square, do I have to pick this one or no?!

# data[].attributes.body
Cookie popups (thanks EU!)
Everything sliding around as stuff loads
No dark mode

# data[].attributes.body
navbar on mobiles, some search bars, any visual cluttering

# data[].attributes.body
Lots of ad popups, low color contrast, non-adaptivity

# data[].attributes.body
Advertisement. Sign up bars. Subscription

# data[].attributes.body
Social media interaction buttons
Horizontal scrolling
Pop-ups with 'disable adblocker'

# data[].attributes.body
Aside bar with ad
Popup ad
Full screen special offers

# data[].attributes.body
- Annoying captchas that ask you to look for the buses
- Interfaces that take a lot of time to load

# data[].attributes.body
Console is a physical working terminal (e.g. keyboard, display). Panel is roughly equated to window.

# data[].attributes.body
https://app.nearpod.com/?pin=vylp2

# data[].attributes.attachment_link.description
Engage and assess your students in every lesson!

# data[].attributes.body
Vocab: Node, insertion, pointer, children, key, value, hash, hash function, bucket, autocompletion, prefix, push, pop, vertex, edge

# data[].attributes.body
Queue - FIFO, enqueue, dequeue
HashMap - key, value, insert, search, delete, hash
Trie - prefix, node, search, insert
LinkedList - node, next, head, tail, insertAtEnd, RemoveAtEnd
Graph - edge, vertex, directed, weighted
Binary Tree - root, children, node, binary search, insert

# data[].attributes.body
1. A pivot element is allocated randomly among 7 elements.

2. Arranging elements in the array from both sides by swapping the ones that are out of order

3. Left side from the pivot contains smaller elements and the right one contains the bigger ones.

4. Swapping elements over the pivot constitutes some sort of natural division in the array

5. We might approximate runtime to n log n if we pick a great pivot which is a median

6. In the case of bad pivot we execute n squared calls to quicksort, and the runtime degenerates to O of n squared.

# data[].attributes.body
3. One side of the array now contains elements that are less than pivot and other elements that are greater than pivot.
4. Swapped elements now constitute two parts of array, thats some sort of natural division.

# data[].attributes.body
1. We allocate 7 as a pivot element.

2. Let's arrange that we will place smaller elements to the left of the pivot element and bigger to the right.

# data[].attributes.body
1. we allocate 7 as a pivot.
2. swapping elements that are out of arrangement.
3. One side to the left of the pivot contains smaller elements and the other one contains the bigger ones.
4. constitute some sort of natural division...
5. we might approximate to an n log n runtime ...
6. we execute n sqaured.

# data[].attributes.body
1) We allocate 7 as a pivot element
2) Iterate through the array from left and right and arrange elements that are out of order
3) The subarray to left side of the pivot contains smaller elements and the right subarray contains the bigger ones

4)Swapping elements over the pivot constitutes a natural division in the array

5) If we pick a great pivot, we might approximate the runtime to nlogn

6) In case of bad pivot we execute n squared calls to the quicksort and the runtime degenerates to O (n²)

# data[].attributes.body
5. We might approximate runtime of our algorithm to an n log n if we choose a great pivot which is a median.
6. In the case of bad pivot we execute quick sort algorithm n times, so the runtime delegates to O of n squared.

# data[].attributes.body
These sentences are from the HackerRank video by Gayle Laakmann McDowell about
Quicksort. If she was trying to explain how an algorithm works for business solutions and
impress the customers she would use the higher register. How can you change the sentences to
make them sound more formal (and important)? Use the words in brackets.
1. We pick 7 as a random pivot element. (allocate)
2. Walk through the array from both sides swapping elements that are out of order.
(arrange)
3. On one side from the pivot in the array we have smaller elements and on the
other the bigger ones. (contain)
4. Swapping elements over the pivot creates some sort of natural division in the
array. (constitute)
5. We might get close to an n log n runtime if we pick a great pivot which is a
median. (approximate)
6. In the case of bad pivot we have n squared calls to quicksort, and the runtime
degenerates to O of n squared. (execute)

# data[].attributes.body
pivot
runtime
wind up with

# data[].attributes.body
Degenerates to
Get pivoted
Subarray

# data[].attributes.body
Runtime générâtes to
Wind up with
N squared calls

# data[].attributes.body
subarray
division
swap around

# data[].attributes.body
runtime degenerates to...
subarray
wind up with

# data[].attributes.body
Walk through the array
N squared calls
Runtime degenerates to

# data[].attributes.body
Division
Eventually
Runtime

# data[].attributes.body
Eventually
Swap around
Wind up with

# data[].attributes.body
Swap around
Subarray
Division

# data[].attributes.attachment_link.provider_name
Wordwall - Create better lessons quicker

# data[].attributes.attachment_link.description
Match up - Drag and drop each keyword next to its definition.

# data[].attributes.body
https://drive.google.com/file/d/14Y5ce18JrMdDwVkFJOzeqOk99bpE6Fpc/view?usp=sharing

# data[].attributes.body
Overall, the topic must be based on the context of the conversation
c. Your work.

d. Sport.
h. Where you’re from.

# data[].attributes.body
Hating party, hating food, politics

# data[].attributes.body
Politics
Social issues
Criticizing anything

# data[].attributes.body
Politics
Religion
Salary

# data[].attributes.headline
Politics, salary, sexual orientation and how you hate minors

# data[].attributes.subject
Politics, salary, sexual orientation and how you hate minors

# data[].attributes.body
(Georgii, Gleb)

# data[].attributes.body
Studying algorithms
Learning new phrases connected with IT
Studying data structures
Having interesting classes by doing fascinating activities

# data[].attributes.body
92693668

# data[].attributes.body
https://fltc.itmo.ru/m/course/view.php?id=777

# data[].attributes.attachment_link.keywords[]
foreign language training center: log in to the site

# data[].attributes.attachment_link.title
Log in to Foreign Language Training Center