If you are like me, then you have no formal education or training in web development. You simply have a passion for it, or maybe you have a great idea that you want to implement, but no resources to pay a developer.

Whatever the case maybe, you are starting a journey that is going to be very rewarding and very frustrating at times. To help you avoid the more frustrating part, I wanted to share some things I wish knew before I started.

First of all, understand how you learn. Are you a visual learner or can you retain information from reading alone? For me, I am a visual learner who needs to hear the voice of a teacher; otherwise I will not remember key ideas or concepts.

I also need to practice what I learn, and be held accountable. Meaning, I like to be tested before I can move on to the next stage. This is why I really like using Treehouse to learn different web skills.

Treehouse is not free however, and it will cost you $25 per month for their basic plan. But if you are serious about learning, it’s worth the investment. If you are looking for a free alternative, I would recommend using Codecademy.

Here is a link to my profile on Treehouse, and my Codecademy profile can be found here.

Here are the 5 things you need to know before you start your journey:

  • 1. So what programming language should you learn?

    Well, this is a loaded question! However, before you decide I suggest you start by learning the basics even if you think they are not important right now.

    Here are my recommendations in order. I have also linked them directly to the free courses available on Codecademy.

    Now, back to the original question, what programming language should you learn? My answer is: JavaScript.

    It is used on almost every website today and thanks to Node.js you can build robust websites with just JavaScript.

    I waited too long to begin learning this skill, and it is definitely needed. Even if you want to learn another programming language you still need to understand the fundamentals of JavaScript.

    Learning JavaScript will also help you to learn another programming language, as many of the concepts are the same.

  • 2. So what else should you learn and why?

    You should learn front-end frameworks:

    • * Bootstrap is a great tool for rapidly developing websites. There is also a great Bootstrap tutorial on Treehouse
    • * Foundation is another popular front-end framework
    • * JQuery will teach you how to make your websites interactive
    • * AJAX as well, but make sure you learn the JavaScript basics first. AJAX let’s JavaScript communicate with your web server
  • 3. So what influenced my decision to learn Ruby?

    The short and simple answer was I needed to save money. I had hired a developer to build a website, and he decided to build the website using Ruby on Rails. This meant that I didn’t know how to make simple text updates, and I was really frustrated at the time and money it took to make a requested change.

    I have been learning Ruby and Rails since 2014 and I believe have come a long way, but there is still so much more I need to learn, so I am constantly taking courses and watching tutorials on Udemy and on Go Rails.

  • 4. So how do you decide what programming language to learn?

    I think the first step is to figure out what you want to make or build. You also need to ask yourself if you want to make this your full-time career, or just a hobby to make some money on the side.

    There are plenty of programming languages to learn, and some are more popular than others. In addition, programming languages have their ups and downs. For instance a few years back, Ruby on Rails (Ruby) was the hot new thing on the block, but more recently Node.js (JavaScript) has risen to prominence.

    This does not mean you shouldn’t learn a language like PHP, which powers Facebook or Python which powers sites like YouTube and Dropbox.

    You may only want to build mobile apps; therefore you may want to learn Apple’s Swift programming language.

    Finally you may want to work for a government or large public sector organization, therefore there are unique skills needed here as well.

    There is a great post by Codementor, which showcases all the different programming languages, their future and potential job opportunities/salaries.

    My main point here is to do your homework. Learn as much as you can about a programming language before you begin to dive in.

  • 5. If you are not having fun, why are you doing it?

    My last piece of advice is to make sure you enjoy what you are doing. If you hate what you are learning, then why do it?

    Also, don’t be afraid to ask beginner questions – everyone was once where you are now. This is definitely something I felt intimidated by in the beginning, as there are so many experts.

    Therefore, don’t be afraid to ask questions on Stack Overflow or post on forums. Who cares if you are not an expert, that's what these forums are for! I have definitely asked some really dumb questions.

    Finally, there is nothing worse than feeling stuck or alone. Therefore, I highly recommend getting a mentor, or working with someone who has the knowledge to help you out.

    I used to get stuck on Ruby on Rails problems for days, and I would get so frustrated and angry that I wanted to give up and quit.

    Codementor is a good place to start looking for a mentor. Or you can contact me for help.

My last piece of advice is to just to start building something; it's really the best way to learn. Start building a portfolio website in your chosen programming language.

As you learn more, you can refine what you have built and add new features.