I recently started learning how to code Python and I've learnt a decent amount but when it comes to applying it I've realised that my lack of basic computer science understanding makes it hard for me to grasp certain concepts. I've started learning data structures and algorithms but I was wondering if there's anything in particular you guys recommend me learning.
Thanks.
1. Don't learn stuff, especially boring stuff like 'algorithms' by just trying to learn it. It is extremely inefficient. Apply it. Aka, rather than watching those loud sounding "sort algorithm" videos, just make sorting algorithms yourself and see how they all work. They are generally pretty simple at their core, just tackle the problem of sorting differently.
2. Python is weird to learn with. It is very basic to get into, sets up some very basic QOL syntax rules, but python isn't actually very common or as widespread as most other languages in the job market until you go full circle into extremely advanced areas such as machine learning / AI where python is very widespread.
3. If you want to learn so you can get a job in any reasonable amount of time without a masters degree, you probably should switch to learning something like C#, C++, java, etc. They setup a nice understanding object oriented programming and the syntax if you learn it properly extends to most other programming languages, which is important in the workplace for code readability. You could also get into scripting languages if you want to be weird, but just know that you will 99% of the time end up working on web stuff, front or backend.
Now in terms of your actual question, things you should learn, is setting up a basic foundation for building up to all that crazy stuff. Go to something like project euler, which is a website that challenges you to solve strange (generally math based) problems with programming, and solve stuff there, starting from basic extremely easy stuff to insanely hard concepts. They have hundreds of problems and if you just start at 1, it may seem easy, but you may find your code has weird problems you wouldn't expect since you may be not 100% comfortable with certain loops and conditions. This leads to you building a solid foundation and comfort level that you can build on.
Finally, last thing I promise, programming isn't just the code itself, but also the software used for programming, the workflow so to speak. If you can, try to get comfortable with common IDEs (programs used for programming essentially) such as Visual Studio (for the C family of languages), Eclipse/IntelliJ/Netbeans (for java), and Spyder/PyCharm for (python) it will make programming far more efficient. IDE's generally have a ton of QOL features that are industry standard, and if you go to the workplace you'll need to use those IDE's (mainly VisualStudio especially) to commit code to source control (aka update your program across ****** or your workplace).
Rant over, sorry about that.
Alright cool thanks alot for that man means alot honestly. Im gonna check out project euler now and see how it goes.
c++ is the way
Elon Musk
Elon Musk learned it in 3 days and that's without adderall.
Originally Posted by GAAF
2. Python is weird to learn with. It is very basic to get into, sets up some very basic QOL syntax rules, but python isn't actually very common or as widespread as most other languages in the job market until you go full circle into extremely advanced areas such as machine learning / AI where python is very widespread.
I'd disagree. Python is extremely popular especially these days. Google especially uses the hell out of it. Actually, most blogs, sources, and other media almost always lists python towards the top. The most searched tutorials are in python. FWIW, I hate python though, I prefer complete control over my data and data types. Gotta agree with you that it's weird once you know other langs
Open classrooms will help you a lot
Keep on the Python route, its a popular language, easy syntax and can do a multitude of tasks
Always set a goal and then try to teach yourself the necessary knowledge to reach that goal. That's how I did it. Build your knowledge towards a certain app.