Getting Help#
You simply can't know it all. You could be programming for a century and stil learn new stuff. This is normal. This is also exciting. Okay, sometimes it is also terrifying. How do you continue if you don't know what to do?
Read and Try to Understand the Error Message#
Error messages are not always helpful, mostly because sometimes your computer doesn't know what's wrong, either! But whenever you encounter an error message, look at its details. Maybe it includes line-numbers. Maybe it includes some keywords that look familiar. If there are line-numbers, please be aware that the actual error may be before that line, but your computer only noticed the error on the next attempted command. Very rarely is the error later in the code.
Double Check Your Assumptions#
"This can't possibly be zero, here!", famous last words. If you try to understand your problem, please make sure that the computer is actually doing what you think it is doing up to that point. Popular ways of doing that include simple output with println()
to print out some value or attaching the processing debugger. Sometimes it's as simple as drawing a couple of simple shapes somewhere.
Ask Anyone#
If possible, ask someone who is familiar with the field you are working in. But even if you don't have someone nearby that fits this description, it can help to ask them anyway. This goes so far that it even helps if you do not ask a living person! This is called "Rubber Ducking", from the practice of asking a rubber ducky (yes, I am serious). The act of formulating your problem as a question may help you structure it in a different way. Often this alone helps you come up with an answer on your own.
Colleagues, your fellow students, friends but of course also teaching assistants and professors are great people to ask if they are around. Use your best judgement to what extent this would need to be disclosed. Someone giving you a hint probably does not need to be disclosed. Someone giving you 10 lines of code that you use verbatim absolutely needs to be disclosed!
How to search#
Error messages will come up, and while reading and understanding them is the first piece of the puzzle, copying and pasting them may be the next.
Oftentimes, the error messages will contain stuff that can't possibly be found. It might contain the filename of your sketch, for example. If there are parts like this, remove them before searching. Other than that, looking for that exact error message is a good first step. If that does not bring up good results, try adding information like your programming language (Java, in this case), your environment (Processing, in this case) or whatever you were working on (Vertex, in this case).
The Official Documentation and/or Recommended Tutorials#
Depending on your problem it is a very good idea to check the official Documentation, including the Reference and the suggested Tutorials. All of these are usually high-quality and up-to-date sources of information.
That Channel Called The Coding Train#
I am a big fan of The Coding Train. That's it. That's all I have to say about it.
That Site Called StackOverflow#
You will encounter StackOverflow very often when looking for problems related to programming. This is a Question/Answer style website with a pretty good reputation. Good answers will usually be upvoted, and very often the most highly ranked answer will help you solve your problem. You can of course also use this website to ask your own questions!
Remember to disclose when you copy a solution from here!
Random Tutorial off the internet#
At some point, you'll have larger tasks to accomplish, and you will probably go and look how other people solved these tasks. You will end up on some weird website from the early 2000s. This is not in and of itself a problem.
If you do follow a tutorial closely and/or copy code from it, please make sure you disclose it.
AI Tools#
Tools like ChatGPT or Copilot are pretty great companions when it comes to programming. Please be very aware that they are not perfect and that they are usually behind state of the art by a fair bit. That said, you can absolutely get great answers that will help you.
Using these tools will need to be disclosed in the same way other help would need to be disclosed. If a tool writes code that you use verbatim, please disclose it. If you bounce ideas off of an AI but write everything yourself, that's nothing you need to disclose.
Relevant excerpt from Learning Processing#
(the section starts at 42:27 and runs through 44:38, the video should start and stop on these automatically.)