lowtek
Legendary Contributor
FASTLANE INSIDER
EPIC CONTRIBUTOR
Read Fastlane!
Summit Attendee
Speedway Pass
What do you want to do with programming? that's the place to start. It will dictate the first language to learn.
If you want to build web apps, then javascript is a great place to start. It's obviously front end, but with Node.js you can do some backend processing as well.
If you want to do games, you're going to need C# or C++.
If you want to do blockchain stuff, probably C/C++ and maybe Python or javascript
If you want to do artificial intelligence, then python is going to be the language to use.
Once you know what you want to do, run through code academy (as per @Longinus suggestion) or a similar set of tutorials to quickly learn the syntax. Don't spend too much time on that part as it's the least valuable.
Once you have a basic grasp of syntax, then @DennisDuty 's suggestion of project based learning is spot on. Pick a project related to what you want to do, and then do it. DO NOT look up tutorials. Get a theoretical understanding of how the project works, and then try to implement it. Struggle. Then struggle more. Then keep struggling. Then after you've spent at least 20 hours struggling with it, go find some tutorials and see which particular details you missed.
This last part is absolutely key. Working through tutorials before you have tried to code it on your own are an action fake. Trying to code something, failing, and then looking up the solution to find the particular detail you missed, is the process to learn programming.
Final note, if you're terrible at math then I would stick to web stuff. If you haven't taken a class in math in a while, then I wouldn't assume you're bad at math, rather I'd try to learn some advanced stuff and see how far you get. That's because programming is algorithmic thinking, it is not writing code.
Algorithmic thinking is precisely what you need to get through algebra and calculus. If you really can't grasp those, then perhaps it's not in your wheelhouse. Doesn't mean you can't make lots of money being a detail oriented web app developer, but it probably means you're not going to push the bleeding edge of artificial intelligence or the blockchain.
If you want to build web apps, then javascript is a great place to start. It's obviously front end, but with Node.js you can do some backend processing as well.
If you want to do games, you're going to need C# or C++.
If you want to do blockchain stuff, probably C/C++ and maybe Python or javascript
If you want to do artificial intelligence, then python is going to be the language to use.
Once you know what you want to do, run through code academy (as per @Longinus suggestion) or a similar set of tutorials to quickly learn the syntax. Don't spend too much time on that part as it's the least valuable.
Once you have a basic grasp of syntax, then @DennisDuty 's suggestion of project based learning is spot on. Pick a project related to what you want to do, and then do it. DO NOT look up tutorials. Get a theoretical understanding of how the project works, and then try to implement it. Struggle. Then struggle more. Then keep struggling. Then after you've spent at least 20 hours struggling with it, go find some tutorials and see which particular details you missed.
This last part is absolutely key. Working through tutorials before you have tried to code it on your own are an action fake. Trying to code something, failing, and then looking up the solution to find the particular detail you missed, is the process to learn programming.
Final note, if you're terrible at math then I would stick to web stuff. If you haven't taken a class in math in a while, then I wouldn't assume you're bad at math, rather I'd try to learn some advanced stuff and see how far you get. That's because programming is algorithmic thinking, it is not writing code.
Algorithmic thinking is precisely what you need to get through algebra and calculus. If you really can't grasp those, then perhaps it's not in your wheelhouse. Doesn't mean you can't make lots of money being a detail oriented web app developer, but it probably means you're not going to push the bleeding edge of artificial intelligence or the blockchain.
Dislike ads? Remove them and support the forum:
Subscribe to Fastlane Insiders.