Getting started to teach myself was very tough since it’s difficult to pick a starting point. There are 4 phases you should go through when teaching yourself how to program. I’ll go over the process of how I learned to program by first starting with front-end programming and moving my way towards back-end development.
HTML/CSS
I started off learning the basic structure of an html page, such as the head, body and footer. Seeing my results immediately after I enter new HTML tags and refreshing the page helped me visualize the how the code changes the appearance of the page.
Part of the nature of Software Development is tinkering and playing around with the HTML is a perfect way to nurture that behavior. You’ll achieve small milestones such as learning how to center a div and placing two divs next to each other. What worked for me was learning the html table structure and how <tr> and <td> tags behaves on a webpage. The more I dived into HTML, the more questions I had. The more questions I answered, the more I learn.
I expanded to learning how to change the color of the table I created using CSS. I had many questions up to this point:
- How do I change a column to red?
- Change a row to green?
- What about one cell to yellow?
I strongly believe that if you can devote an entire day into learning HTML/CSS, you can build a very strong foundation of web development that can set you up to learn other programming languages. To start off I highly recommend getting started with HTML and CSS. This will set you up to learn Bootstrap, a very popular CSS framework.
Javascript
Since I started my software development career in web development, Javascript is an absolute MUST programming language to learn. While in the past Javascript wasn’t taken seriously as a programming language, that has now changed. Many modern frameworks and libraries are now Javascript based.
I actually started learning Javascript by learning getting started on JQuery. JQuery greatly simplifies Javascript Programming and best of all, it is easy to learn. One of the two important concepts you’ll run into are Selectors and Events.
Simply put, selectors allow you to select and manipulate HTML elements. Additionally, selectors allow you find elements by traversing down the HTML elements by searching for the id, name, class etc. Selectors are based off of CSS selectors so you’ll be familiar with JQuery if you already learned CSS.
C#
Once you are familiar with all the front-end programming, it’s time to pick a server-side programming language. Server-side programming language is code written on the server and cannot be seen be the user. Think of every time you refresh a web page. You are making an HTTP request to the server and in return will receive data in order to populate the page with whatever data the user needs.
I started with C# because the job market in my area was .NET dominant and I wanted to maximize my chance of landing a job. I’ve always been in Microsoft’s environment such as Windows so it was natural for me to pick C# as my first language. If C# is not for you, Java, C++, Python and Ruby are all very popular languages with a large support base.
The most important thing to keep in mind is, the programming language itself doesn’t matter too much. So as long as it’s an object-oriented programming language. I’ll spare you the long explanation, but object-oriented programming has 4 principles that you must understand:
- Encapsulation
- Abstraction
- Inheritance
- Polymorphism
Understanding these concepts will help you write cleaner and more robust code, and more importantly, will help you visualize the software as business entities rather than lines of repeated code.
Database
Almost every app/web application needs to store data somehow as it’s not possible to store everything in your application. Because I was primarily in the .NET framework, MSSQL (Microsoft SQL) was my primary database. I don’t want to overwhelm you with the different types of databases out there. The main thing is to pick a database and stick with it. My recommendation when first starting out is to pick a relation database. Learn to query from sample databases you can find online. Microsoft has the Adventureworks sample database that I used to practice querying data. Learn how to SELECT from a table and filter the data using the WHERE clause.
Additionally, understand what a primary key and foreign key is and apply this concept when querying your sample database. Understand how to join 2 tables on a common foreign key. If you understand this concept, you have a very solid understanding of relational databases and can move on to developing your first app.
Building my first web application
Your initial reaction is to click “New Project” on the IDE and program an application from class. DON’T DO THIS as you’ll be spending countless hours debugging small issues that will prevent you from actually learning to program. I recommend following a tutorial that has a sample application you can download and work from there. Microsoft has a very useful tutorial on how to get started with C# and ASP.NET Core.
Don’t worry too much about the appearance of the web application. Focus on basic features of your web application. Let’s say you wanted to create a website for a small business selling flowers. You web app should:
- Display the details of the flower, such as the title, price and description.
- Create a form to edit those details.
- Create a button to save the details to the database and retrieve it again by reloading the page.
If you’re able to complete these three tasks, you’ve essentially understand how web/mobile applications work in general and are on the way to becoming an all around programmer.
Final Thoughts
I can give you all the details of how to get started on learning to program. The most important thing to remember is to, well, actually get started. Learning all the front-end, server-side, and back-end languages won’t matter if you do not put these skills to practice. Don’t worry about writing perfect code, just get your application started with the features described above and Google every bug and error that comes your way. The more time you put into programming, the more you’ll get out of it. Go out there, make mistakes, ask questions and most importantly, don’t stop!
