Idea Generation Guide
Published: 2023-09-12 14:13:41

# Idea Generation Guide

A challenge when learning any new skill is to be able to apply that knowledge. Many programming students end up in tutorial hell<sup><a href="https://www.freecodecamp.org/news/tag/tutorial-hell/">1</a>&nbsp;<a href="https://www.reddit.com/r/learnprogramming/comments/qrlx5m/what_exactly_is_tutorial_hell/">2</a></sup>. This guide aims to outline general challenges that new students can apply programming concepts to solve with any language.

The core of computing is a [series of switches](https://www.bloomberg.com/graphics/2015-paul-ford-what-is-code/#lets-begin) that turn on and off. [Thinking like a programmer](https://www.codecademy.com/resources/blog/how-to-think-like-a-programmer/) is the process of turning something that's complicated and messy (like the real world) and breaking it down into individual problems. Then solve each individual challenge. After solving enough problems you've built a program. Hopefully this guide will help to create a basic mental model for some early programming concepts along with guiding some early practice to fully grasp fundamental principles before jumping into some overly complicated tutorials.

### Do stuff (operations)

The most simple programs do something and return an output. The simplest program that every student should first write is print ["Hello, World!"](http://helloworldcollection.de/) to the output. From there, apply basic math operations and see the output. Just knowing these basic math operations you can automate quite a lot in your life.

#### Code Challenges

- Calculate the tip for a meal
- Prints a school schedule
- Make a program that prints a shopping list
- Create a program that prints the solution of
  - Adding some numbers together
  - Subtracting some numbers
  - Adding some numbers to a string
  - Subtracting from a string
  - Adding a number plus a boolean
  - Dividing some numbers and multiplying others

### Store stuff (variables)

Operations are the fundamental heart of any program. But, it can get hard to read fast if it's all on one line. This is where [variables](https://launchschool.com/books/javascript/read/variables) come into play. The ability to have a storage container levels up a program and gives it the ability to perform operations one at a time instead of all at once.

### Decision making (Control flow)

The ability for a program to do operations on something and to decide what to do with that output are the two key 



- Do stuff (operations)
- Storage (variables)
- Decision making (Conditionals)
- Repetition (loops)
- Organization (functions)
- Modules (dependencies)
- Project Example

## Resources

1. [Free Code Camp Tutorial Hell](https://www.freecodecamp.org/news/tag/tutorial-hell/)
1. [Reddit Tutorial Hell](https://www.reddit.com/r/learnprogramming/comments/qrlx5m/what_exactly_is_tutorial_hell/)
1. [What is Code](https://www.bloomberg.com/graphics/2015-paul-ford-what-is-code/#lets-begin)
1. [How to think like a programmer](https://www.codecademy.com/resources/blog/how-to-think-like-a-programmer/)
1. [Hello world in every programming language](http://helloworldcollection.de/)
1. [LaunchSchool Variables](https://launchschool.com/books/javascript/read/variables)