As a beginner the first thing is to learn some Programming Fundamentals, there are plenty of free interactive websites that offers free courses and resources to understand how a specific programming language works.
Those are also supported by a community, a forum, a facebook group where people learning from all over the World are actually willing to help each other to achieve the target to pass from beginner to advanced.
One of the advantages of these website is also that they allow the user to start typing their code straight away using quiz and challenges. This might seems not much but each programming language usually need a software to run, a setup, an environment to be created, and sometimes people get frustrated by such complexity.
Especially for beginners is very easy to get stuck during the setup, these kind of websites give the possibility to learn since the beginning leaving the boring part of understanding the complex stuff later on, giving an extreme advantage to beginners that want to learn the basics.
It is also very fun to learn coding in this way! All of those websites have also mobile apps that allow you to learn on the move via smartphone or tablet too.
After learning the basics of coding the first thing to do it start a personal project, that's the best way to learn.
How do you chose a Project?
1. Do something you like. If you are interested in videogames start bulding a simple videogame like Tic Tac Toe, if you like photography build a portfolio website, if you like Fashion or Travels build a blog.
2. Make it simple. Start from something very very simple, don't start thinking about creating the next GTA VI or Facebook social media.
3. Build something useful for yourself and for someone else, this keeps you motivated and it will give you motivation every time you'll remember how the project helps your daily tasks or how many peopel you helped with it.
The first project is always the most exciting but also the most difficult. You will get stuck...a lot, but don't worry about it, it is perfectly normal for a beginner to feel frustrated at some point.
Coding is problem solving and you will get used to get stuck. Luckily there are ways to get help, online and not, and the first thing to do when stuck is to just use Google. Search the error message you get, the thing you are unable to do and most cases Google will give you the answer.
In other cases Google will redirect you to a very useful website called StackOverflow, this is a website where developer learn and share their experience and issues, and most importantly ask and answer questions.
In 90% of cases you will find an answer in eaither Google or StackOverflow, however if you do not find it do not get upset, that's not all lost. In fact StackOverflow as other community websites comes very handy when you have a question, it might take a while to answer specific questions to the community but after 1 - 2 weeks you'll get your problem solved.
All softwares you need to design your websites. There are plenty of free tools that can be used to design a website.Create a website
All you need to start coding. All free softwares that allow you to write your code and develop apps from scratch.Create an app