I wanna start learning programming. Would you mind giving me some tips how to begin with?
I really like that you've got the initiative to start learning to code!
Becoming a programmer is really easy today then it was about 10–15 years ago because we live in an information era - an era in which everything is just a tap away.
Before you start, it's great to ask yourself: Why do I want to start? What's my main motivation? What do I want to improve? - it's great if you'd answer these questions and also it wouldn't be a bad idea to write them down so that you'd know why you've started.
It's also great to remember this quote - "When you do something for money, you quit, when you do something because you love it, you do it forever" - GaryVee.
The second thing you should ask yourself is in what you'd like to build. Would you like to build a website? Would you like to build an iOS app? Would you like to build an Android app? ... You should know it because there is ton of programming languages and most of them aren't used for the same thing.
Here are some great resources to learn from:
- Codecademy - the most well known place for beginners who want to get a big of knowledge in a programming language.
- Udacity - The best course website which offers courses for people with any type of experience - from beginner to expert. I highly recommend.
- Udemy - Udemy offers variety of programming courses. Some instructors are TOP - I'd recommend you to buy a course once they're in a huge discount (You can get courses for as low as 9.99$)
- FreeCodeCamp - probably the best online place to learn web development. In my opinion, it's way better then codecademy mainly because of the sheer size of the courses. I highly recommend.
- DevTips - this is the best YouTube channel for Front-End Web Developers interested in UI and UX. I highly recommend this channel!
- LevelUpTuts - a great YouTube channel for those who want to learn how to build advanced websites - React tutorials, Angular and etc.
- Code Academy - a YouTube channel with diverse topics (from python to web development)
- Code Ninja - good YouTube channel to advance your Web Development skills
- Learn python - a great interactive place to learn Python
- Learn python the hard way (book) - I haven't read this book personally but my friends highly recommend it
These were some great resources for you when you're either just starting or when you want to advance.
I'd also like to tell you few things:
- As you've already read the quote, never do it because you're motivated by money. This is the worst kind of motivation which will not work in the long term. It's way better to do it because you want to make an impact.
- It's easy to become a developer, it's hard to be a superb developer. As I also answered in this question, it's better to take your time. (Read that answer so that you'd understand the problem before you even start)
- The best thing about coding is that you and me can code the same thing in a multiple ways. This means that there's not a written way how to do one thing.
- Learn and put in practice what you've just learned.
- Improve every day - there's always something to improve, trust me.
I wish you a good luck!
I'd also like to tell you about a project I'm working on - it will come out later in the August 2018 and it will help you learn to code - so that you won't get lost again.
If you are a very beginner , I.e. you never saw any code before and don't have the idea what is the code is and what it does , how it compiles or interprets ... then you should watch some introductory videos of programming on YouTube, i'll Recommend watching universities lectures (on YouTube) i.e. Stanford University Lectures or Harvard or even other ... they explain it very great ...
When you get some ideas about programming , then you should pick a language and there are many languages you can pick from .
I'd recommend c++ as your first language it has some pros and cons for beginners
- C++ is a typed language, you have to mention the data type for each variable at the declaration time , it's a pro because you'll get aware of various data types and their purpose.
- C++ is case sensitive and semicolon sensitive so you have to put a semicolon at the end of each and every statement. That should also help you get aware of basic techniques of programming , it actually forces you to work hard.
- Unlike other languages which work on interpreters , c++ code compiles , so it checks the whole code for errors and then compiles it to machine code , if your code has some errors or an error then it won't compile unless you fix that error. It will train you to be careful with your statements and syntax.
- C++ is extremely powerful language that even operating systems are written in c++.
- C++ syntax is very much identical to other languages like C, C# , Java and others , so you can easily switch to other languages in future and once you get strong command over c++, learning other languages will be extremely easy for you.
- C++ is very difficult language in the beginner level , you have to work hard for it to learn .
- The performance of the c++ program as compared to the modern languages like Swift , Python etc is very slow , because of excessive code.
- C++ is not a dynamic language , you cannot convert a declared variable to another easily.
var a = 3;
output : 3
There is no official way to learn programming. That is because programming does involve a lot of techniques and methodologies meaning that writing lines of code only does come in the end. This does nothing to take the fun out of programming as there are steps that can help you to write a code for a software system.
The initial steps of writing a software system involves properly identifying the problem and analyzing it. This step is important as it will help you to get a good view of the problem and that will help you to ensure that you do not end up creating something that has nothing to do with way you want to create. Therefore, if you are to learn programming, you need to learn how to think analytically as you will need to properly define the problem that you want to solve.
After that, you will need to draw system diagrams and sequence diagrams that will help you to define the core components of your system. In this stage, you need to show what approach you will use in solving that problem. Then you will finally write a code for your system. You can learn that by joining our good programming school called Holberton School.
First off, practice makes perfect. You should be writing as much code as possible. Get involved with challenges such as the #100daysofcode challenge; it will push to you be always coding, always learning more and always be interacting with like-minded individuals in the coding community,
Finally, I think you should definitely find a mentor as you begin your path towards becoming a developer. A mentor is anyone you respect in the industry, who can both provide you with insight when you have issues and can help you whenever you feel stuck in your journey. Plenty of online coding bootcamps, such as HyperionDev, offer 1-on-1 personal mentorship as part of your course, so you never feel stuck as you go through the tasks and curriculum.
Depends on if you like a structured approach or if you just wanna make stuff.
Udemy or FreeCodeCamp are great for structured approaches. Classes, assignments, projects, etc.
If you just want to make stuff, I would follow Richard Kenneth Eng's advice and learn smalltalk. I've never used it (I don't know why) but it looks really cool and fundamental. 2 other approaches I would reccomend are Python (it's also simple and looks a lot like pseudocode, which is used in textbooks or to explain programming concepts without using a language) or playing with an arduino. Arduino uses a similar language to C for the basics, but once you sink your teeth in you can be using the arduino language or straight up C, C++, even Java.
I would strongly recommend just doing whatever looks fun. I find myself growing exponentially faster in the long run than those who just learn things because they think they're supposed to. Sure I've used like 9 languages I'll never use again, and have maybe 50 unfinished projects that will never again be touched, but I learned to have fun solving problems. And while those kids who only learn because they have to stop coding when they clock out, I have made it a hobby. I never stop.
I would instruct you to choose a basic programming language ‘C programming' first and work on it for it is the basic programming language to understand the procedures of how coding works. Work hard on it and go as deep as you can before you switch to next language maybe PHP, Java, .Net . Things should be easier for you here as you have the basic concepts and all you have to learn is syntax for new language. Once you've learned the syntax and started coding then you can start coding on frameworks(Spring, Hibernate, Laravel), where the sets of codes are already written for you and all you have to do is give it some tweaking or add/ subtract the codes, and that should do.
You may be interested to the sites like:'w3schools' or ‘webtrickshome' for your online learning. That might save your time, money and energy. If you're interesting learning in person, kindly visit TrainingNepal website.
Just for you motivation, if you can't run, just walk. If you can't walk, then crawl...My point here is, whatever language you choose stay updated and don't give up learning.