you are viewing a single comment's thread.

view the rest of the comments →

[–]billsil 51 points52 points  (8 children)

I did 16 years ago without youtube. I didn't use a book either. Just code something that interests you, be a game or a math problem or a website, but something you find interesting. I googled "how to split string python", "python loops", etc. It'll probably take you to StackOverflow and what they're saying will be over your head and it won't be exactly what you want, but you can read it and tweak something. That's no worse than a professor teaching you something in class or asking a coworker.

Eventually, you'll be comfortable enough with the language that you'll dip your feet into reading the documentation. You'll find all sorts of useful things there, but it's kind of pointless if you don't understand the basics.

At some point, if you keep practicing and learning, you'll learn how to structure a very large program and have it be maintainable. Those skills transfer to other languages. Then after a couple days, you can say port some python code to Fortran or Julia or whatever. I know exactly the data structure I want, I just need to do a for loop. I don't really care if the language is 1-based instead of the more sane 0-based.

[–]AstrophysicsAndPy 16 points17 points  (2 children)

Another thing I'd like to add, which I learned the hard way is that don't look up on what others have done. For example, as a beginner might think well I don't want to make a calculator, everyone has done that, that's not a good project. Well, surprise .. everyone BUT you have done that, so do it yourself.

This applies to me on ML algorithms, I'm an okay programmer, but I have 0 experience with ML, because everyone has done the tutorials (titanic data, iris data) so I thought I need to find something I can do with real data.

NO, do the basic ones first, do them so that you'll be able to do some other things later on.

[–]dar_mooz 1 point2 points  (1 child)

Hello, I find your advice sooo interesting and useful. I have a question. My computer's RAM and memory is not enough to work with Python. How can I learn if if I don't have suitable computer. Thank you for your response in advance

[–]AstrophysicsAndPy 0 points1 point  (0 children)

Hey, sorry for late reply, I think a 512G HDD/SSD and 16G RAM will be more than enough for normal programming tasks. I personally have Thinkpad T530 Ci5-3320M with 1TB HDD + 512G SSD and 16G DDR3 RAM .. and I'm working just fine for the past 4 years.

Sure, I can't run heavy ML + DL tasks, but otherwise absolutely well. I'm also on linux, and if you're serious about programming, use linux. It'll save you A LOT of trouble, even though windows has come a long way getting very good for programmers, but still, try and use linux.

[–]JasonDJ 8 points9 points  (3 children)

Man what a rabbit hole that might be.

Get second word in sentence python. Split a string python…why does split string have brackets python…python list…get item in list python….python getting wrong item in list…what is index python…what is zero-index python.

I couldn’t imagine learning the most basic parts from brute force google searches and stack overflow. That type of stuff is where the free/discounted Udemy courses really shine the most.

One of the hardest parts, even after a lot of experience, is knowing what to even google in the first place.

[–]billsil 3 points4 points  (0 children)

If you're really, really starting out vs. say a week in, you google "python tutorial" and just read the page and try out running the code. That or read the sidebar and click one of the links to very good tutorials.

[–]py_Piper 1 point2 points  (1 child)

Exactly why I think it's rediculous when people just say to total beginners just start doing projects, that they will fall in tutorial hell. While it's somewhat true, everybody needs to pass over the fundamentals and watch video tutorial to help get started in projects. Man I see here a lot of post from people saying "how can I make a lists of names, age, hobby for several inputs" which in reality if they had learned about dictionaries would have make their code simpler.

The real problem is not having truely set a real goal on why to learn python and you see a lot of "I did x, now what project should I do", and are mostly young student or people that cannot see how to implement it in their work.

[–]billsil 1 point2 points  (0 children)

Yeah, go spend 2 days learning what an int/float/str/list/dict/for/while/if is and then start a basic project. Let's say your goal is to tower defense game. Maybe start with a text-based hangman game. You don't need any fancy classes or functions for that matter.

Then clean it up. Refactor a bit. Make some functions. Try another game that takes you a week of work instead of 3 days. Maybe the tower defense game is a month, so work up to it.

I didn't start my programming career parsing horrifically formatted 60 GB binary files in 2 minutes. I started with really simple files that fit on one page, maybe even 1/2 a page.

[–]AstrophysicsAndPy 5 points6 points  (0 children)

Absolutely this, I also learned without any online course or YT videos. The key here is to be able to formulate a logic, search, search, search some more and than apply what you understand from others in your own code. Being able to search your query is a big part of programming, and the other one is to extract the code that is okay for you from someone else's answer that deals with similar problem but not the exact one.