Hi! Welcome to LearnHowToProgram.com. This site is a step-by-step guide to take you from zero experience to web programmer in a few short months, and contains everything you need, including lessons and practice exercises. The content is the curriculum for Epicodus, a school for people who want to change careers into programming. You're also welcome to go through the site on your own, or use it as a curriculum for another school or class.

Before we get started, I want to tell you about our general philosophy at Epicodus. Any experienced developer will tell you that the more you learn about programming, the more you realize just how little you know. Being a developer is not about learning a fixed set of skills that you can apply for the rest of your career, and that understanding fundamentally shapes how we structure Epicodus. We believe that the languages, tools, and approaches you'll learn here are much less important than the general skills of solving problems. Successful programmers embrace the limitations of what they can know, and get good at figuring out what they don't know. They develop a mindset in which not knowing the answer isn't a source of anxiety, but rather an opportunity to learn and explore.

Now, let's explore how this site works. Each course here lines up with the different courses Epicodus offers. Our "Intro To Programming" course is designed to take you from zero experience to being able to create the content of basic web pages, style those pages so that they look nice, and add interactivity. The course also covers how to use the common tools of the programming trade, including the command line and source control.

Once you have completed the first section, you will be ready to dive into a programming language. If you find that you really enjoy the styling and design of web pages, check out CSS, the language that describes how web pages look. If you're more interested in the logic of how programs work, try C#, Java, PHP, or Ruby, where you'll learn more advanced programming concepts and all the tools you need to build backend web servers.

Regardless of which course you take second, Epicodus students are required to take JavaScript next. JavaScript is the only programming language web browsers understand (HTML and CSS are markup and styling languages, respectively, not programming languages), and with the importance of the web in modern application development, every programmer needs to know JavaScript. If you're more interested in front-end work, JavaScript will let you build out interactivity in your web pages, and if you're more interested in back-end work, JavaScript will let you wire up user interfaces to work with your backends and is even used to write backend code in some cases.

Finally, you'll pick a framework to learn. .NET is typically used in corporate environments; Android is used in mobile application development; Drupal is used for content-heavy websites; and Rails is generally used for interactive web sites and apps. Don't get too hung up on picking the "right" language and framework, though. Odds are, at your first job, you'll need to learn an entirely new set of skills and practices, and maybe even a new programming language. That's part of why we require all students to study at least two languages - with two under your belt, it's not too difficult to pick up a third.

No matter what languages and framework you learn, our best advice is not to think of Epicodus as a place to learn a specific language like PHP or Java, or a framework like .NET or Rails. Instead, think of Epicodus as a place to learn how to learn.