What’s the first thing I should learn?

What’s the first thing I should learn?

Question:

"I'm just starting to think about becoming a software developer, and I'm wondering what skill I should learn first." -- Morrison

My Answer:

Hello Morrison! That is a fantastic question. Lot's of people who are considering a career in software development wonder the exact same thing... Can someone please just tell me where to start? I cover all of this in a lot more depth in the book The Byte Guide, but for now, let's just do a high-level overview.  To land your first job as a junior developer, there are four skill sets for which you'll want to have at least an entry-level knowledge:
  1. A Basic Understanding of How the Internet Works
  2. Databases
  3. Front-end Development
  4. Server-Side Development

1: How The Internet Works:

You'd be surprised at how many would-be junior developers I've had sitting across the interview table from me who were unable to answer questions like "What does HTTP stand for?" or "What is the job of a Domain Name Server?"  As your very first step, I'd strongly recommend taking this short Digital Literacy course from TreeHouse as a base primer.

2: Databases:

The job of a database is simply to store data. There are multiple kinds (or classes) of databases, but for now, you only need to be concerned with one: Relational Table databases. As a junior developer, you'll want to know the basics of how to design relational tables, and then how to put data into those tables, and how to get that data back out again. To get started learning this skill set I would recommend the "Beginning SQL" course on Treehouse.

3: Front-End Development:

Most applications need a User Interface -- or, a way for the user to interact with the app.  Even if you know you don't want to be a UI developer, you'll still want to at least know the basics before you apply for your first job as a developer.  Treehouse has an excellent Front-end course track that covers the basics of these skills.

4: Server-Side Development:

This is where the database and the user interface come together,  And, you're going to have to make a choice here. Whereas the skill-set for databases and UI development are pretty finite, when it comes to server-side development, you have lots of choices.  I won't go into those choices here, because I've already covered this topic in-depth on the What To Learn page. However, my personal top recommendations are Java and C#.  Treehouse has great introductory classes in both languages: Learn Java Beginning C# and ASP.NET If you'd like more details or have more questions, I invite you to send me a personal message via the Contact page, and then we can start a conversation. Thanks Morrison! Looking forward to hearing from you! -- Casey Crookston