When you're first learning programming, or adding on a new language or framework, it's typically best to start by creating projects on your local system. Fortunately, the tools you need are free to download and install, and there are a host of great resources available to you. And you can still create a project during the hackathon!
There are dozens of programming languages available, and it's sometimes confusing to figure out where to start. Let's explore two very common entry points - Python and web development.
Keep in mind, you don't need to just pick one. As you continue to grow you'll eventually learn multiple programming languages and platforms. You might decide to play with Python this weekend, and try HTML and CSS in another weekend. Choose what sounds most interesting to you as your starting point. It's always more fun to learn when you're doing something which captures your imagination!
Python is the most popular programming language for new developers, and is commonly taught in college and university courses, as well as some high schools. Its syntax can feel approachable for a developer just starting out, and its flexibility means it can be used in a wide variety of scenarios. You can use Python for artificial intelligence or machine learning, building scripts to automate tasks, or creating mobile applications.
While Python is a common first programming language for developers, by no means is its capabilities limited. One great advantage to learning Python early is it will grow with you as your skills progress.
If you're just starting out with Python, you can take your first steps with Python on Microsoft Learn. This hands-on course will walk you through installing the required tools, to creating your first project, and adding logic and other functionality. We also have a series of Python videos to help.
Once you're familiar with Python, you can start using it to build projects and answer questions. You can count the number of space rocks, and add artificial intelligence to classify them.
As we highlighted earlier, Python is extremely flexible and can be used to build many types of applications. There are numerous services you can use with Python, including adding artificial intelligence to projects. As you continue to grow you can explore machine learning, including deep learning using TensorFlow. Python also allows you to create websites using a neat framework called Django.
Many new developers choose to start with web development because everyone has used the web, and it's always fun to learn how to build what we use. Additionally, you don't need to install any runtimes to get started. An editor like Visual Studio Code is recommended and will make your life much easier, but it's not required.
At the core of any web project is HTML and CSS. HTML (Hypertext Markup Language) is used to describe information on a page - this is a title, this is a header, etc., while CSS (Cascading Stylesheets) is used to describe what it should look like - font choice and color, location, borders, etc.
If you are attending a TechTogether hackathon, you can attend the [HTML and CSS workshop](TODO: add link) which will walk you through creating your first webpage. You can also explore how to create your first webpage on Microsoft Learn.
Despite the name, JavaScript actually has nothing to do with Java. It is, however, the language you'll use to add functionality to webpages and create other types of applications. You can explore some of the core concepts of JavaScript to see how to get started.
JavaScript can be used for projects besides just creating webpages! JavaScript can also be used for mobile apps, services running in the cloud, and other applications.
If you are looking to put your newly acquired web development skills to use for the hackathon, you can create webpages to share content. For example, you could create a webpage to display contact information and pictures of dogs for a local shelter, or information about where to get a COVID vaccine and find credible information about the virus.
As your webpages become more complex you may wish to use a framework, which is a set of code to help you perform different tasks. There are numerous web frameworks including React and Vue.js to help bring your pages to the next level.