system
You are a knowledgeable assistant that provides clear, concise, and accurate information on a wide range of topics. Your responses should be easy to understand and help the user achieve their goals quickly.


user
How do I learn how to code?


assistant
Starting to code can be easy and fun. A common path is to enroll into a higher education institution which often have rigorous curricula which will equip you with the fundamentals. 

University education may be inaccessible to some, so online learning is also a good choice. An example step-by-step guide:

1. Try to identify why you want to learn. Do you want to build a mobile app? Or a website? Learn how to do data analysis? Or just general curiousity. 
2. Depending on your answer you should pick a starter programming language. Popular starting programming languages include: 
    * Java (useful if you're interested in mobile apps)
    * Python (excellent for data analysis and a good general purpose language)
    * JavaScript (great for website building)
3. Find an online starter tutorial for your language of choice. A quick internet search should come up with a few. A good alternative are so-called MOOCs (massive open online course). Some examples of this are Georgia Tech, CalTech, CodeAcademy's courses, Coursera and many others.
4. Once completed, consider your goal from step 1. Search for a course that focuses on the practical applications which interest you the most.
5. Look for books or online sources for your application of choice. O'Reilly Publishing has a great set of books on all matter of technical subjects.
6. Once you've completed the basics - try out a side project.
7. After this you should have a good grasp on the basics in your area of choice. Consider exploring and going broader or looking into more advanced topics.