So let's get started:

When you enter the magical world of programming, in the start it looks enormous, complicated, full of problems and most of the time you don't have a clue what you're doing but don't get discouraged we've all been through that period.

1. Learn how to learn

As I said the programming world is enormous, so don't try to learn all of it at once. When you began learning how to ride a bike you didn't end up one-wheeling it the very next day. Go step by step, learn the basics first and don't complicate things. Find the best way for you to learn new thing, be it reading programming books, tutorials, videos or whatever. Remember two things out of this step: "Google is the developer's best friend" and don't be afraid to ask for help because you will encounter a lot of bugs (and suddenly realize that you hate computers). Just kidding with the last one, but you will realize that =every problem is solvable so don't give up!

2. Practice everyday

Believe me - if you stop programming for a week or two, you will become slower, forget a lot of useful things and so on, like everything in life you need to practice , programming is a skill, so you need to master it by practicing on projects, open source, tutorials and in no time you will become a bad-ass developer!

3. Don’t stop at one programming language

I'm guessing you already picked the programming language but don't stop at it. Learn other languages, you never know when you wll be in need for them. It's like when you move away from your parents and you had to learn how to cook because as it turns out, sandwiches don't exactly have enough proteins and no proteins means no gains :/ So my advice is to learn the basics of front-end (HTML, CSS, JavaScript, React - if you're feeling brave), back-end (Ruby on Rails, Python) and no less importantly - SQL for database. I am even learning IOS development. So wrap it up there's never enough knowledge.

4. The User is your boss

This is a very crucial step here. A lot of developers forget that The user is the most important in this whole programming world. Without the User, who is gonna use your incredible app? so never forget that you are making all of this for them, not for you or for other developers. Think about your every app and its UI, in 90% of the cases the thing you think is easy to understand might not be that way. Do some research and test your app on non-developer friends and of course do some tutorials. To end this step, try not to be this guy.

5. Github

This step is very important if you want to get a job as a developer. Github is a web-based Git or version control repository, basically a page where you upload your code as a result, it's easier to develop projects as part of a team. It’s also great if you are searching for a job as a developer - you can post your projects on your profile and it becomes easier for recruiters and other developers to see your code. Another great thing about github is that it's practically made for open source and for you to learn from it.

6. Join the community

This step is not so important to become a great developer but it can be crucial for your development as a developer. If you are not much of a people person as me I recommend you to force yourself to attend a meet-up. I guarantee that you will learn a lot because it's a fun way of learning and making new friends and connections. Personally, I was very skeptic of it, but it turned me into a big fan.

7. Integration tests

A lot of developers will try to drink their sorrows away once it's their turn to do integration tests, but let's be real for a second - tests are the best thing to have on your project, but pain in the ... It's essential for you to be certain that that your project is working when you add a new feature or when you alter something .It's like washing the dishes, you don't exactly want to do it, but you sure as hell can't eat spaghetti with just bare hands (at least not when there's people around). So to sum it up, don't be lazy and write those tests.

8. Giving the knowledge back to the community

Don’t forget you were once new at all this so don’t be too lazy to help , remember that it was hard for you as well and there was a lot of tutorials, blogs and people around to help you. So write those blog posts, share your experiences, open source your code and help newbies.