Learn How to Code
  • Welcome
  • Foundations
    • Introduction
      • Becoming a web developer
      • Motivation and mindset
      • Join a supportive community
      • How does the web work?
    • Requirements
      • Prerequisites
      • Text editors
      • Command line basics
      • Setting up Git
      • Setting up Node
    • Git
      • Git basics
      • Project: Practicing Git
    • Frontend
      • HTML and CSS
      • Developer Tools
      • Project: Create a web page
    • JavaScript
      • Strings and Conditionals
      • Using Developer Tools
      • Functions
      • Problem solving
      • Project: Rock paper scissors
      • Writing clean code
      • Arrays and Loops
      • The DOM
      • Project: Etch-A-Sketch
      • Objects and More Arrays
      • Project: Calculator
    • Backend
      • Frameworks
    • Next steps
  • Deep dives
    • Computer Science
      • Pseudocode and algorithms
      • Recursion and algorithms
        • Project: Fibs and sorting
        • More on algorithms
        • Big O
        • Project: Practicing Big O
      • Data structures
        • Maps, Stacks and Queues
        • Project: Stacks and Queues
        • Nodes, Linked Lists and Trees
        • Project: Linked Lists
        • Project: Trees
        • Next steps
    • Databases
      • Databases and SQL
      • Project: SQL Zoo
    • Design / UX
      • Fonts and typography
      • Grids
      • Project: Teardown
      • Responsive design
      • Project: Mobile friendly
      • CSS frameworks
      • Project: Bootstrapping
    • HTML / CSS
      • HTML Basics
        • Linking
        • Images and media
        • Project: Embedding media
        • HTML5
        • Tables
        • Lists
        • Forms
        • Project: Make a form
      • CSS Basics
        • Box model
        • Floats and positioning
        • Flexbox
        • Grids
        • Project: Breaking news
        • Best practices
        • Backgrounds and gradients
        • Project: One more thing
        • CSS3
        • Preprocessors
        • Project: Your own framework
      • Next steps
    • JavaScript
      • Refresher
      • Organization
      • Objects and constructors
      • Project: Library
      • Factory functions and module patterns
      • Project: Tic Tac Toe
      • Classes
      • ES6 Modules
      • Project: Restaurant
      • Object Oriented Programming
      • Project: Todo list
      • Linting
      • Menus and sliders
      • Forms
      • ES6 features
      • JSON
      • Callbacks and promises
      • Using APIs
      • Async and Await
      • Project: Weather
      • Testing
      • Project: Testing 1-2-3
      • Advanced Testing
      • Project: Battleship
      • Backends
      • Project: Where's Waldo?
      • Project: All-Star
      • Next steps
    • NodeJS
      • Project: Going to school
      • Project: Passing the test
      • Express
        • Templates and middleware
        • CRUD and MVC
        • Project: Message board
        • Routes
        • Displaying data
        • Forms and deployment
        • Project: Inventory
      • Authentication
      • Security
      • Project: Clubhouse
      • APIs
      • Securing an API
      • Project: Blog
      • Testing
      • Testing with a database
      • Project: Social network
    • React
      • Props and State
      • Render lists and handle inputs
      • Project: CV
      • Lifecycle methods
      • Hooks
      • Project: Memory card
      • Router
      • Project: Shopping cart
      • Advanced concepts
    • Ruby
      • Installation
      • Data types
      • Variables
      • Input and Output
      • Conditionals
      • Loops
      • Arrays
      • Hashes
      • Methods
      • Enumerables
      • More enumerables
      • Nested collections
      • Blocks
      • Pattern matching
      • Debugging
      • Project: Caesar cipher
      • Project: Substrings
      • Project: Stock picker
      • Project: Bubble sort
      • Object oriented programming
      • Project: Tic Tac Toe
      • Project: Mastermind
      • Serialization
      • Project: Event manager
      • Project: Hangman
      • Computer Science
        • Recursion
        • Project: Merge Sort
        • Data structures and algorithms
        • Project: Linked Lists
        • Project: Binary Search Trees
        • Project: Knight Travails
      • Testing
      • RSpec
      • Project: Four in a row
      • Git
      • Project: Open Source
      • Project: Chess
      • Next steps
    • Ruby on Rails
      • Using Heroku
      • Installing Rails
      • Basics
        • Routing
        • Controllers
        • Views
        • Asset pipeline
        • Deployment
        • Project: Blog
      • Active Record
        • Project: Upvote
      • Forms
        • Cookies, sessions, and authentication
        • Project: Password
      • Advanced forms and Active Record
        • Associations
        • Project: Private Events
        • Callbacks
        • Menus, helpers and nested forms
        • Project: Ticket agent
      • APIs
        • External APIs
        • Project: Animals
        • Project: Photo widget
      • Mailers
        • Project: Confirmation
      • Advanced topics
        • Action Cable
      • Project: Social network
      • Next steps
  • Getting hired
    • Preparing to find a job
      • Plan a strategy
      • What companies want
      • Get yourself together
      • How to prepare
      • Project: Make your website
    • Applying and interviewing
      • Qualifying leads
      • Project: Make your resume
      • Applying for jobs
      • Preparing for an interview
      • Handling an offer
      • Final words
  • Maintained by
    • wbnns
  • License
    • CC BY-NC-SA 4.0 © 2022
Powered by GitBook
On this page
  • Connecting with others
  • Why a community is awesome for you
  • Why a community is awesome
  • Before asking for help
  • Asking for help
  • An important read
  • Formatting your questions
  • Chat features
  • Assignment
  1. Foundations
  2. Introduction

Join a supportive community

Learning web development will be a long and arduous journey, but you can make the marathon a lot more fun by pairing up with others.

PreviousMotivation and mindsetNextHow does the web work?

Last updated 4 years ago

Connecting with others

Working and collaborating with other people is an important part of working as a web developer. The Odin Project, which the open curriculum that this GitBook is based on, encourages you to participate in their online chat community, which we'll talk more about below. By joining the community, you can grow alongside other Odinites (Odin Project users) and help each other learn web development. While you're at it, you can check out their , and catch up on . Use #TheOdinProject to share your progress, updates, thoughts and to see what other learners are up to!

Why a community is awesome for you

Learning web development will be a long and arduous journey, but you can make the marathon a lot more fun by pairing up with others. Connecting with fellow learners is a great way to bounce ideas off each other and motivate one another to keep going. Furthermore, helping others that are a few steps behind you is a great way to deepen your own understanding and make your learning stick.

When you're slogging through the , where your code doesn't work or even make sense to you anymore, you can find an oasis of knowledge and encouragement in our community. Veterans at The Odin Project love to help fill in knowledge gaps and provide new insights and perspectives on how to improve your code. We've all been there before!

Remember that project you struggled so hard to figure out and that you're so proud of finishing? Through our community, you will get to share your work and progress with those who fully appreciate how much hard work went into it.

Why a community is awesome

We are working hard to update existing lessons and produce new content, so we would love to hear your feedback on the lessons and projects. We hope you find the lessons fun, engaging, and informative and find the projects challenging but achievable. So please let us know your thoughts!

Before asking for help

As most of the projects are designed to push you to your limit, please remember that there is always a community to turn to! You don't need to know how to solve every problem straight away, BUT you do need to have a general idea of where you are going. This becomes really important when asking your questions because sometimes the problem is your approach and not your code.

If you're feeling stuck, it's a good time to pause and take a breather. Break the problem down into little pieces and then decide what is really holding you back. We call this technique .

You should also do a to find relevant information for your problem. Read about . You can also look back at previous lessons for tools that you can apply to the current task.

If these methods don't yield a solution for you, then it's time to reach out to the Odin community and ask for help.

Asking for help

In addition, when you ask your questions, you should help the community help you by putting together a great question.

When asking your question, please remember to include the context:

  • What do you think the problem is?

  • What exactly do you want to happen?

  • What is actually happening?

  • How did you get there?

  • What have you tried so far?

If you can't pinpoint the problem, you can share a screenshot. This is especially useful for showing the output of commands in the command line. In Discord, drag and drop your screenshot image file into the chat box to upload it or simply use the PrtScn and paste keyboard shortcuts. If you don't know how to take a screenshot on your computer, this is a good time to ask Google.

An important read

Formatting your questions

Asking your questions in a readable format helps everyone debug them better. Here are some ways to go about that:

If you're having trouble on the command line, make sure to include both your input and the error message you're getting.

In the chat rooms, code can be displayed differently from normal sentences by using backticks (``), which can be found above the Tab key on US and UK keyboards. Backticks are not the same as single quotation marks (''), which are found to the left of the Enter key.

For a single line of code:

`#use one backtick at both ends`

For multiple lines of code:

```

#use three backticks on a separate line ABOVE your code

Your Code

#use three backticks on a separate line BELOW your code

```

In Discord, you can also use code highlighting to add color to your code by specifying the language:

```javascript

Your Colorful Code

```

Chat features

  • Have fun with giphys: type /giphy hi to say hi to everyone.

  • Type /help for more information on chat commands.

  • Show your appreciation to those who help you with @username ++.

  • Don't forget to visit all the available rooms!

Assignment

  1. In a moment we're going to ask you to join The Odin Project's Discord community, here are some guidelines before you dive in:

    • Ping (@user) With a Purpose: Only @ another user when it is necessary. Include your question or comment in the message. Wait until they reply before pinging again.

    • Don't 'Bomb' Chats: Don't send multiple messages in a row, type out your whole message, then push send.

    • Don't Exclude Anyone: These are public chats, if someone joins in on a conversation, include them!

    • Don't Disappear Right After Asking for Help on Code: If you're posting a question, make sure you have time to stick around and discuss it with those trying to help!

    • Remember the Human: Behind every username there is a person with feelings! Be kind! If you don't have anything nice to say, don't say anything at all.

    • If You Wouldn't Say It Out Loud Don't Type It: Plain and simple.

    • Read the Rules: Upon joining, you will find yourself in the "#Rules" channel. Please read the rules!

  2. Link your GitHub to your Discord profile: So others can see what you're working on and vice versa!

    • Discord Settings > Connections > Click GitHub icon > Allow Access > Make sure "Display on profile" is toggled on.

So you've spent some time struggling to solve the problem on your own, and now it's time to fire up the Odin Discord and ask for help. The first thing to keep in mind is . While this is a simple idea (with a pretty catchy motto!), it can help you get answers to your questions much faster and will make it easier to others to feel comfortable offering you help.

If the puzzle still can't be solved, push your project to GitHub or put your code in a so that others can comb through and debug the code. You'll learn all about GitHub very soon.

Sometimes there might be no one around to help you with your issue. That is the ideal time to get familiar with the . Search for specific keywords or error messages to see if anyone else had a similar issue before and how they solved it!

The article has really great tips on how to put together an effective question. An effective question makes it easy for us to help you. The strategies outlined there invite you to think deeply about your problem. Sometimes, as a happy accident, you may even lead yourself to the answer as you reflect on the matter. But asking good questions isn't just about us helping you. Great questions make you a great teammate. A future co-worker or manager does not want to spend time poking at your code to learn about your problem. You'll be expected to bring thoughtful and fully developed questions.

First, create a free . As you will discover, GitHub is an integral part of the development workflow.

Finally, sign in to The Odin Project's . Say hello! They've created an introductions-and-checkins room which is a great place to introduce yourself and we're always happy to welcome new community members. They have chat rooms for many development topics and other things. Log into the chat and start exploring!

Facebook page
follow them on Twitter
Instagram
desert of despair
rubber duck debugging
Google search
how to use Google to solve your programming questions
don't ask to ask
repl.it
Discord search function
How to be great at asking coding questions
GitHub account
Discord server