If you need starting basics, I suggest https://www.codeacademy.com or https://www.teamtreehouse.com just to help you get a feel for the syntax and understanding.

I definitely am not discouraging you from hiring someone to train or teach you, but if you go in knowing nothing, chances are, you'll be paying someone to learn the basics, of which you can do for free and in your own time.

Once you get more advanced, you'll want to check out places like Lynda.com or Udemy.com -- a place that often has some great sales -- dropping their prices as low as $10 - $20 per course ($100+ value) throughout the year.

The other way, of course, is to teach yourself and learn by trial and error. For the most part, you should learn about code libraries. I certainly am not telling you not to write your own code, but there are plenty of frameworks and libraries that help make it easier, such as Laravel (PHP) or Ruby on Rails/Sinatra (Ruby) or Django (Python), so you are still writing code, but just using common code that programmers might use often.

I took a free online course that offered insight into databases, a course offered by Stanford. I felt so proud of myself for taking the time to try and get it. Unfortunately, not to knock the course, but it was so technical, even after reading thoroughly through the chapters, I was so lost. I spent time searching the Internet for tutorials on MySQL and using it with PHP. I was able to learn and understand it in 3 hours. https://mypost.io was my first project where I used a database and built a web app that had absolutely nothing to do with WordPress.

After some trial and error, I was able to learn what I needed to know in order to use it in everyday practical applications. Could I have learned more theory? Sure. I'm not the best at math (I have a psych degree, not a computer science degree, but work full-time as a developer/designer/programmer), nor am I that great at computer or math theory. I am good at doing stuff, making mistakes, even sometimes wasting hours, only to realize the answer was right there all along and I could've probably solved it in 5 minutes.

To start, and this goes for any programming language, learn the basics:

1. "Hello World" application (learn how to output)

2. Random Number generator application (for fun but learning how to randomize a number and output)

3. Input data and return data application (If I input "123", you output "abc" .. if i enter in something else, you output "wrong")

4. Learn how loops work and how to work inside of them (For ... Each) (Count to 100.. but once you hit 50, output something in addition)

5. If .. then.. conditions using variables

Once you can do this, you have already learned a great amount of information.

After, you'll want to switch to more advanced things that you will likely be using:

6. Learn how to use _POST and _GET and _REQUEST

7. Set, read, and delete a cookie (use the information too! "Hi [Joe!]"

8. Learn how to write, read, and delete information to/from a file on the server

9. Learn how to write, read, and delete information to/from a database

10. Create a login / password form which actually logs the user in to a certain area and keeps them logged in (I utilize cookies + database for this) -- but also offer a way to log out, along with a way for the user to retrieve their password if they forgot (send email and offer a form for reset)

I'd say these 10 items will definitely help you get started on becoming a developer.

Another thing that I learned outside of school, at my very first job: My boss would ALWAYS make me write the function on paper first.

1. What is the name of this function?
2. What does it do?
3. What is its overall purpose in the application?

As much of a tyrant as that boss was... I did learn how to code the proper way because of him. In other words, the biggest mistake programmers make: They begin writing code immediately. How can you write code if you only have the idea of it? Write your plan out first for what that code should do, how it functions, and what purpose it serves in the overall functionality of the application. Then you can begin to code. You stay more focused and get lost a lot less that way.