LSBot as a Study Companion
Now that we have a sense of what LSBot is, let's look at some of the fundamental ways that you can use LSBot. These are just a few of the most common scenarios that happen for Launch School students where reaching for LSBot might help.
Conceptual Help
LSBot can help you understand conceptual topics from the Launch School curriculum. Maybe you'd like to see more examples demonstrating a particular topic, another explanation of a tricky idea using different words, or help to make connections between different concepts. Here are some examples:
- "I'm trying to refactor this program, but in the assignment they use
break unless. What is the difference betweenbreak unlessandbreak if?" - "What data types in JavaScript are mutable? What does it mean to be mutable?"
- "Can you explain polymorphism using an analogy and examples?"
- "Are event listeners and event handlers the same thing?"
- "Why do we say that UDP is a connectionless protocol? That seems like an oxymoron when talking about exchanging data."
- "What's type unsoundness? Can you show an example?"
Coding Assistance
When working on your programs or solving code-based problems, feel free to give snippets to LSBot and ask for whatever help you need:
In Python, initialization means that a new variable (with a different name) is created, right? Would it be correct to explain the following code like this? On line 1,
var1is initialized. On line 2,var2is initialized. On line 3,var1is reassigned.
var1 = 'a'
var2 = var1
var1 = 'b'
Why is the equal sign used here inside the object provided as the third parameter?
function calculateRectangleArea(
width: number,
height: number,
{ unit = "sq. units" }: { unit?: string } = {}
): string {
const area = width * height;
return `${area} ${unit}`;
}
I’ve been over this JavaScript code snippet several times, and I still can’t figure out what lines 3 and 4 are doing. I also don’t understand why we get this output. Can you break down this code snippet for me line by line?
// Some tricky code
Can you critique my code and suggest ways to improve it...
# Your solution
I'm stuck on this coding challenge. Can you give me a hint on how I might solve this?
# code
Unblocking
Being "blocked" at some hurdle happens often, not just as a student at Launch School but as Software Engineer on the job as well. Being able to unblock yourself is a really important skill. It won't always be possible, but with LSBot you can get help in these situations not just to move on faster, but also to avoid really frustrating and demoralizing study sessions. It is important to struggle through problems and work out solutions on your own, but once you've done your best, LSBot can sometimes help get you moving again:
- "I'm still having trouble installing ESLint. How can I just uninstall and start over from scratch with the instructions?"
- "I've been trying to solve this dynamic programming problem for an hour, and I just can't figure it out. Can you walk me through the solution to help me understand it?"
Content Generation
LSBot can create more content for you to practice with! This can be beneficial whether you want to explain concepts in written form, debug tricky code snippets, or generate extra coding challenge problems.
- "Please create five quiz questions to help me study material from PY101. Some questions should be code snippets that request explanations or need debugging. Some should request me to write code or explain concepts."
- "Create two code snippets. One that demonstrates submitting a form via XHR and one that submits the same form using the Fetch API."
- "Create a coding challenge that requires me to manipulate a linked list. Provide clear instructions but minimal test cases."
Study Guide Companion
Many students build comprehensive notes as they work through the material. You can use LSBot as a way to help refine your notes and identify gaps, or help you build out a custom "study guide" for assessments.
- "Here are my notes on context loss. Am I missing any key points?"
- "Review my notes on SQL joins and create a concise study guide highlighting what I need to remember."
- "Summarize my notes on object-oriented principles into a one-page study guide with examples."