Creating Your First Coding Project
tldr;
Make a todo app in Python (JS if you want to do web)
Idea Lists
Open source projects: Awesome for Beginners
Why do we make side projects?
- Get a job
- Improve skills
- Create tool for myself/others
- Code without the constraints of a job (be creative)
- Possibly make money (more for experienced devs)
What gets in the way?
- Can’t decide what to do
- Can’t code well enough
- Too big/intimidating
- It’s too hard
- Can’t find time
- Too many/too few resources (don’t know how to research)
- Toxic communities
Things to understand
- I can’t start your project for you- eventually you have to actually do the thing.
- You will never be ready to start your first project, and you won’t really be ready for your first job. Go for it anyway- failure is a normal part of the learning process.
- Learning to code is not too difficult. Learning to code well is hard. We all learn to write but not everyone is a professional author.
- Why Learning to Code is So Hard
- Side projects as a professional dev are different from the projects you do when you are first learning (sometimes). aka creating a product you can make money off of generally shouldn’t be in your list of goal IMO
- What project you pick doesn’t actually matter that much. Flip a coin or roll a die if you need to. Build a random coding project generator. ;)
- Software is never “finished” in a lot of ways. You could always improve the code quality a bit, add a feature, or fix a bug. You can create a list of features for your MVP and target that. At that point the project is “done” even if you keep working on it.
- You have a major advantage- community. The tech community can be toxic, especially for newbies.
- You are on your own timeline. “30 projects in 30 days” and stuff like that is cool, but not required.
Starter Projects
- Todo App
- Calculator App
- Simple Game (tic-tac-toe - Example)
- Budget App
- Custom user interface for a service you use via their API
- Personal/Professional page
- Chat app
- Pomodoro Timer
- Link Shortener
- Clone a website/app/etc you use often
Process
- Figure out when you are going to work on your project.
- (If you are new and not doing CS degree or bootcamp)
- Figure out a language (Python or JS)
- Doesn’t matter if you need to change later- first one is the hardest
- Use something like freecodecamp.org to get the basics
- You don’t need to complete it, just get an initial idea of what to do aka need to learn the alphabet so you can start reading
- (Start here if you already know the basics)
- Pick a project- roll a die if you have to. The specific project really doesn’t matter that much. (todo app is a good default)
- Decide on the features you want in your project- you can make a wish list, but for now you only want to work on the minimum number of items you need to create a working project (MVP)
- Create a Todo, list todos, mark a todo as complete
- Break your first feature into individual tasks
- User enters text
- User click submit
- Data is sent to API
- todo is stored in DB
- the response is sent back to the UI
- UI is updated with the new todo
- Build the first task
- Build the second task
- (etc., etc.)
- Refactor only when there are bugs or code is completely unusable while you are creating that feature- don’t worry about “pretty” at this point.
- At the end of each feature look through your code and you can do small adjustments- again, don’t spend a lot of time trying to get it perfect.
- Once you’ve completed your MVP you are now “allowed” to spend some time on code cleanup.
-
| Congrats! you’ve completed your first project. Show it off if you’d like in #cw |
projects |
- Take a bit and reflect on how the project went. At this point you have a choice- continue to add some of those wishlist features to your current project or start a new one.