aboutsummaryrefslogtreecommitdiffstats
path: root/templates/main/help.html
blob: d3084f8ba30ee0cb2ea803fb3e43bc3122cbdca2 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
{% extends "main/base.html" %}
{% block title %}Getting Help{% endblock %}
{% block content %}
    <div class="uk-section">
        <div class="uk-container uk-container-small">
            <article class="uk-article">
                <h1 class="uk-article-title" id="top">
                    Getting Help

                    <a href="#top" class="uk-text-primary" title="Permanent link to this header">
                        <i class="fas fa-paragraph" data-fa-transform="shrink-8"></i>
                    </a>
                </h1>
                <p class="uk-article-meta">
                    Everything's exploding, customers are complaining, management's on the fritz!
                </p>
                <p>
                    This document is intended to provide you with the information you need to get help as quickly and
                    effectively as possible. If you're stuck on a problem or you just don't understand something, feel
                    free to join us and ask for help - you can use this as a reference when forming your question.
                </p>
                <p>
                    Much of this document is based on the sentiments expressed by Eric Steven Raymond and Rick Moen
                    in their essay, <a href="http://www.catb.org/esr/faqs/smart-questions.html">How To Ask Questions The Smart Way</a>.
                    Please note that the essay is very long and may be considered rude by some. Additionally, the people
                    behind that essay are in no way affiliated with us - please do not bother them with your Python
                    problems.
                </p>
                <h2 class="uk-article-title" id="before">
                    Before You Ask

                    <a href="#before" class="uk-text-primary" title="Permanent link to this header">
                        <i class="fas fa-paragraph" data-fa-transform="shrink-8"></i>
                    </a>
                </h2>
                <p class="uk-article-meta">
                    Take stock of your problem, and do your homework.
                </p>
                <p>
                    Before you ask your question, there are a few things you can do to find an answer on your own.
                    Experienced developers will do the following:
                </p>
                <ul>
                    <li>Read the official documentation for whatever you're working with</li>
                    <li>Use a debugger to inspect your code</li>
                    <li>Do some research online - for example, on Stack Overflow</li>
                    <li>Read the source code for whatever you're working with</li>
                    <li>Search the message history of the help channels</li>
                </ul>
                <p>
                    Essentially, doing your research is the first step towards a solution to any problem. If your
                    problem isn't extremely general, we're going to be doing exactly these steps ourselves when you ask,
                    so doing the legwork beforehand saves everyone a lot of time.
                </p>
            </article>
        </div>
    </div>
    <div class="uk-section uk-section-muted">
        <div class="uk-container uk-container-small uk-text-center">
            <blockquote>
                <p>
                    <i class="fas fa-quote-left fa-pull-left"></i>
                    <i class="fas fa-quote-right fa-pull-right"></i>
                    Creativity requires input, and that's what research is. You're gathering material with which to
                    build.
                </p>
                <small>
                    Gene Luen Yang
                </small>
            </blockquote>
        </div>
    </div>
    <div class="uk-section">
        <div class="uk-container uk-container-small">
            <article class="uk-article">
                <p>
                    If you're an absolute beginner, take a moment to step back from the problem.
                    Have you <a href="https://wiki.python.org/moin/BeginnersGuide/NonProgrammers">read a book or done a
                    tutorial</a>? There's a huge amount of resources out there, many of which are going to help you a lot more than
                    us answering the beginners' questions for you. If you're following a tutorial, book or course and
                    you don't understand something, then <strong>that</strong> is the correct time to ask a beginners'
                    question. Of course, we won't turn you away if you do have a beginners' question &mdash; by all
                    means,
                    come to us if you do have a problem.
                </p>
                <p>
                    Have you read the official documentation for the module or technology you're working with? The
                    <a href="https://docs.python.org/3/">official Python 3 docs</a> are a fantastic and valuable
                    resource, so if you're using a bundled module, your first port of call should be there. If you're
                    using a third-party library, often they will have some official documentation uploaded somewhere
                    &mdash;
                    try having a Google around, or take a look <a href="https://pypi.org">at PyPi</a> in case they've
                    linked it from there.
                </p>
                <p>
                    If you can't find the documentation or you find it lacking, the next place to look is the source
                    code.
                    Grab a decent IDE (we recommend <a href="https://www.jetbrains.com/pycharm/">PyCharm</a> Community)
                    and a coffee, download a copy of the project and open it up, and get to browsing!
                </p>
                <p>
                    If you're still confused, try searching the Internet for people that have already had the same
                    problem. Often, you won't be the only person to have encountered the issue you're dealing with - more often
                    than not, you'll find a GitHub ticket or a StackOverflow question along with a fix or answer to your
                    question already posted.
                </p>
                <p>
                    If none of the above helps you or you're lost, scared and alone, feel free to continue on to the
                    Discord server. You can use the search feature (the <i class="fas fa-search"></i> at the top right) to check
                    whether someone else has asked your question recently, or just feel free to pick one of the help channels
                    and ask your question.
                </p>
                <h2 class="uk-article-title" id="good-question">
                    A Good Question

                    <a href="#good-question" class="uk-text-primary" title="Permanent link to this header">
                        <i class="fas fa-paragraph" data-fa-transform="shrink-8"></i>
                    </a>
                </h2>
                <p class="uk-article-meta">
                    Thank you for helping us help you help us all.
                </p>
                <p>
                    When you're ready to ask a question, there's a few things you should have to hand before forming
                    a query.
                </p>
                <ul>
                    <li>
                        A code example that illustrates your problem
                        <ul>
                            <li>If possible, make this a minimal example rather than an entire application</li>
                        </ul>
                    </li>
                    <li>Details on how you attempted to solve the problem on your own</li>
                    <li>Full version information &mdash; for example, <em class="uk-text-primary">"Python 3.6.4 with
                        discord.py 1.0.0a"</em></li>
                </ul>
                <p>
                    Your question should be informative, but to the point. More importantly, how you phrase your
                    question
                    and how you address those that may help you is crucial. Courtesy never hurts, and please type
                    using correctly-spelled and grammatical language as far as you possibly can.
                </p>
                <p>
                    When you're inspecting a problem, don't be quick to assume that you've found a bug, or that your
                    approach is correct. While it helps to detail what exactly you're trying to do, you should also
                    be able to give us the bigger picture - describe the goal, not just the step. Describe the problem's
                    symptoms in chronological order - not your guesses as to their cause.
                </p>
            </article>
        </div>
    </div>
    <div class="uk-section uk-section-muted">
        <div class="uk-container uk-container-small uk-text-center">
            <div class="uk-child-width-expand" uk-grid>
                <div class="uk-text-primary">
                    <p class="uk-text-bold uk-text-center">
                        Bad Questions
                    </p>
                </div>
                <div class="uk-text-primary">
                    <p class="uk-text-bold uk-text-center">
                        Good Questions
                    </p>
                </div>
            </div>
            <div class="uk-grid-divider uk-child-width-expand" uk-grid>
                <div class="uk-text-danger">
                    <p>
                        Where can I find information on discord.py?
                    </p>
                    <p class="uk-text-meta">
                        This question suggests that the person asking it hasn't done any research, or even a simple
                        Google search.
                    </p>
                </div>
                <div class="uk-text-success">
                    <p>
                        I used Google to try to find more information about "discord.py 1.0.0a", but I couldn't
                        really
                        find anything useful. Does anyone know where I might find a guide to writing commands
                        using this library?
                    </p>
                </div>
            </div>
            <div class="uk-child-width-expand" uk-grid>
                <div>
                    <hr class="uk-divider-icon"/>
                </div>
                <div>
                    <hr class="uk-divider-icon"/>
                </div>
            </div>
            <div class="uk-grid-divider uk-child-width-expand" uk-grid>
                <div class="uk-text-danger">
                    <p>
                        Pillow puts my text at the bottom of the image instead of where I wanted it. Why is it broken?
                    </p>
                    <p class="uk-text-meta">
                        This question assumes that the problem is with Pillow itself, and that it isn't
                        the questioner's fault. It also doesn't provide enough information on the problem.
                    </p>
                </div>
                <div class="uk-text-success">
                    <p>
                        Pillow appears to insert text at the bottom of the image if the given X coordinate is negative.
                        I had a look at the documentation and searched Stack Overflow, but I couldn't find any
                        information on using negative coordinates to position text. Has anyone attempted this?
                    </p>
                </div>
            </div>
            <div class="uk-child-width-expand" uk-grid>
                <div>
                    <hr class="uk-divider-icon"/>
                </div>
                <div>
                    <hr class="uk-divider-icon"/>
                </div>
            </div>
            <div class="uk-grid-divider uk-child-width-expand" uk-grid>
                <div class="uk-text-danger">
                    <p>
                        I'm having some trouble writing a YouTube random URL generator - can anyone help?
                    </p>
                    <p class="uk-text-meta">
                        This question provides no information on the problem, and asks for help in a way that isn't
                        engaging - some people will find this annoying, as answering your question is guaranteed
                        to result in another question.
                    </p>
                </div>
                <div class="uk-text-success">
                    <p>
                        My YouTube random URL generator appears to be returning false positives for tested URLs,
                        stating that a URL points to a real video when that video doesn't actually exist. Obviously
                        there's some issue with how this is checked, but I can't put my finger on it. Is there anything
                        I can check?
                    </p>
                </div>
            </div>
            <div class="uk-child-width-expand" uk-grid>
                <div>
                    <hr class="uk-divider-icon"/>
                </div>
                <div>
                    <hr class="uk-divider-icon"/>
                </div>
            </div>
            <div class="uk-grid-divider uk-child-width-expand" uk-grid>
                <div class="uk-text-danger">
                    <p>
                        I want to share a YouTube video with my friend, but the video doesn't move when I print the page.
                        How do I make the video move?
                    </p>
                    <p class="uk-text-meta">
                        This question assumes a specific (wrong) approach, and isn't open-ended enough to account for
                        the possibility of a better solution.
                    </p>
                </div>
                <div class="uk-text-success">
                    <p>
                        I'm attempting to figure out the best way to share a YouTube video with my friend that doesn't
                        have the Internet at home. I can't think of a better approach than printing the page, which
                        obviously doesn't help much given that the video doesn't move on the paper - can anyone think
                        of a better approach to this?
                    </p>
                </div>
            </div>
            <div class="uk-child-width-expand" uk-grid>
                <div>
                    <hr class="uk-divider-icon"/>
                </div>
                <div>
                    <hr class="uk-divider-icon"/>
                </div>
            </div>
            <div class="uk-grid-divider uk-child-width-expand" uk-grid>
                <div class="uk-text-danger">
                    <p>
                        I was given this assignment by my teacher, but I'm not sure how to approach it. Does anyone
                        have any ideas?
                    </p>
                    <p class="uk-text-meta">
                        This question is clearly a homework question. Homework is supposed to challenge you, and we
                        will not provide solutions to homework. Instead, ask a more general question.
                    </p>
                </div>
                <div class="uk-text-success">
                    <p>
                        I have a list of numbers - how do I calculate how many of them are even? Is there a way
                        to remove all the odd numbers from my list? Are there quick ways to find the average of
                        a list of numbers, or add them all together?
                    </p>
                </div>
            </div>
        </div>
    </div>
    <div class="uk-section">
        <div class="uk-container uk-container-small">
            <article class="uk-article">
                <h2 class="uk-article-title" id="answers">
                    Interpreting Answers

                    <a href="#answers" class="uk-text-primary" title="Permanent link to this header">
                        <i class="fas fa-paragraph" data-fa-transform="shrink-8"></i>
                    </a>
                </h2>
                <p class="uk-article-meta">
                    Wow, rude.
                </p>
                <p>
                    Programmers have a certain set of mannerisms. While we all try to be as courteous with our replies
                    as possible, occasionally it may seem as if a helper is annoyed or disinterested in your question.
                    This isn't personal - it's just part of our culture. Remember that the people you're asking for help
                    are humans and that they're here voluntarily, in their free time.
                </p>
                <p>
                    If you've asked a question and you're told to read the documentation or search the web, you should
                    do that. When this happens, it's often the case that the person responding has the information you need
                    open in their web browser and either thinks that it's very easy to find, or that you would learn
                    more from seeking out the source of the information yourself. If you've already done this, you should
                    tell us by including it in your question!
                </p>
                <p>
                    If you don't understand an answer, don't immediately bounce back and demand clarification. Use the
                    tools available to you (the internet, documentation, source code) to help you understand the answer, and
                    if you still can't figure it out, ask for clarification and provide any relevant information you learned
                    during your research.
                </p>
            </article>
        </div>
    </div>

    <div class="uk-section uk-section-muted">
        <div class="uk-container uk-container-small uk-text-center">
            <blockquote>
                <p>
                    <i class="fas fa-quote-left fa-pull-left"></i>
                    <i class="fas fa-quote-right fa-pull-right"></i>
                    Successful people ask better questions, and as a result, they get better answers.
                </p>
                <small>
                    Tony Robbins
                </small>
            </blockquote>
        </div>
    </div>

    <div class="uk-section">
        <div class="uk-container uk-container-small">
            <article class="uk-article">
                <p>
                    Much of what looks like rudeness within programming communities is not intended to be offensive and
                    it's often just a product of the down-to-earth, direct style of communication that is typical in
                    a community that is more concerned with solving problems than anything else. If you perceive
                    rudeness, try to react calmly. If a user really is acting out, then chances are that a member of staff will
                    call them out on it. If this doesn't happen, contact a member of staff directly and they will try
                    to clarify this with you.
                </p>
                <p>
                    It's okay to mess up. It happens to all of us. That said, if you mess up badly enough, it's likely
                    that you will be corrected there and then, in public and with a verbal scalpel. Take this as a
                    learning experience and don't let it get to you - this is a common and appropriate response in
                    many programming circles. Community standards do not maintain themselves - they're maintained by
                    people applying actively them, visibly, in public.
                </p>

                <h2 class="uk-article-title" id="what-not-to-ask">
                    What Not To Ask

                    <a href="#what-not-to-ask" class="uk-text-primary" title="Permanent link to this header">
                        <i class="fas fa-paragraph" data-fa-transform="shrink-8"></i>
                    </a>
                </h2>
                <p class="uk-article-meta">
                    Sample questions to avoid as much as possible.
                </p>

                <p class="uk-text-lead">
                    Can I ask a question?
                </p>
                <p>
                    Yes. Always yes. Just ask it.
                </p>

                <p class="uk-text-lead">
                    Can I use str() on a discord.py Channel object?
                </p>
                <p>
                    Try it yourself and see. Experimentation is a great way to learn, and you'll save a lot of time by
                    just trying things out. Don't be afraid of your computer!
                </p>

                <p class="uk-text-lead">
                    My code doesn't work
                </p>
                <p>
                    This isn't a question, and it provides absolutely no context or information. Depending on the moods
                    of the people that are around, you may even find yourself ignored. Don't be offended by this - just
                    try
                    again with a better question.
                </p>
            </article>
        </div>
    </div>

    <div class="uk-section uk-section-muted">
        <div class="uk-container uk-container-small uk-text-center">
            <blockquote>
                <p>
                    <i class="fas fa-quote-left fa-pull-left"></i>
                    <i class="fas fa-quote-right fa-pull-right"></i>
                    So much of life isn’t about having the right answer; it’s about knowing the right question.
                </p>
                <small>
                    Duane Hewitt
                </small>
            </blockquote>
        </div>
    </div>

    <div class="uk-section">
        <div class="uk-container uk-container-small">
            <article class="uk-article">
                <p class="uk-text-lead">
                    Can anyone help me break into someone's Facebook account?<br/>
                    Can anyone help me download anime from this streaming site's listing page?<br/>
                    How do I write a virus?
                </p>
                <p>
                    We will absolutely not help you with hacking, pirating, or any other illegal activity. A question
                    like this is likely to be followed up with a ban if the person asking it doesn't back down quickly.
                </p>

                <p class="uk-text-lead">
                    Can I send you a private message?
                </p>
                <p>
                    No. We do not provide one-on-one tutoring - you can hire someone locally if you really need that. We
                    also prefer that questions are answered in a public channel as it means that everyone else present
                    is able to learn from them. If you're working with code that you are unable to disclose for any
                    reason, you should try to make your question more general and write a separate, small piece of code
                    to illustrate your problem.
                </p>

                <p class="uk-text-lead">
                    Can you help me over Teamviewer?
                </p>
                <p>
                    No. We will not help you by accessing your computer remotely, or watching a video stream of your
                    problem, unless the problem is something that inherently requires that. The reason for this is that
                    our time is limited, and watching a video or participating in a screen-sharing session means that we
                    have to focus on you, instead of being able to deal with other people while you're figuring out an
                    answer. If your problem is graphical and you can't adequately describe it without a visual, take a
                    screenshot or provide a short screen recording to illustrate your problem.
                </p>
            </article>
        </div>
    </div>
{% endblock %}