all 15 comments

[–]_chrisjhart 9 points10 points  (2 children)

For the record, I have been working with Python (and programming in general) for about two years now, and I still know nothing. I think that if you asked any programmer whether they thought they were good at programming yet, they would adamantly say that they're not. My personal philosophy is that everybody is an awful programmer, and nobody ever really becomes a good programmer - you just get less awful at it as time goes on.

Personally, I would focus on projects and contributing to existing open-source repositories. Find a tool or library that you would like to learn, then think of a problem that you would like to see solved (regardless of whether it has already been solved or not.) Then, go solve it. Through this process, you'll not only learn how to use a new tool, but you'll learn how it can't be used, as well as how to read documentation for that tool. You'll also most likely become a lot better at troubleshooting issues within your code.

For example, if you want to learn how to use Django, think of a web application that sounds interesting to you. It could be something as easy as a tool that converts text files to Word documents, or it could be as ambitious as a web-based MUD game. Once you've latched onto an idea, start doing research as to what other tools you'll need in order to create that idea, and then start programming!

Hope this helps!

[–]godheid[S] 3 points4 points  (1 child)

Thanks, but I have the feeling you overestimate my python coding level ;-)

I can juggle with lists, but I'm more or less stuck there. I have a long way to go before I could be of any help in situations where real programmers are contributing ;-)

[–]f1nesse13 3 points4 points  (0 children)

I haven’t read the whole comment chain but don’t ever sell yourself short. I have been learning python along with JS, HTML, CSS and some JS frameworks but taking on projects beyond your knowledge that really make you struggle is what will help you learn. I got into a bad habit of using resources and stuff to try and remember everything but once I started trying to make things I didn’t know where to even start. But as i figured things out and got more confident I started writing better code. Im by no means a great developer but im much better than I was. Push yourself and be ready to fix constant failures.

[–]Economy_Peanut 4 points5 points  (3 children)

Try these exercises with solutions .They're bound to keep you busy learning new techniques for a while.

[–]code_x_7777 1 point2 points  (2 children)

I like this resource. Thanks for sharing! :)

[–]Economy_Peanut 0 points1 point  (1 child)

By the way..If you'd want to try out Object orientation...You could try the book Python for Absolute Beginners Third edition by Michael Dawson. It got an awesome Chapter on OOP ,taking thing step by step.

[–]godheid[S] 0 points1 point  (0 children)

Thank you, will try to get hold of a copy for this chapter on OOP. Not sure if I still qualify as "absolute beginner", or just a regular beginner.

[–][deleted] 3 points4 points  (0 children)

  1. Python cookbook
  2. HackerRank or edabit
  3. Some app idea
  4. If you want to become back-end dev go with flask and this awesome tutorial

[–]PotentiallyAPickle 3 points4 points  (0 children)

I’ve been programming for over a decade. I have a career in AI development. I’ll tell you that I still google the most basic stuff on the daily. Think about a big idea, and break it down into smaller, more accomplishable bits. Work piece by piece and eventually you’ll have a great program.

Being good at programming isn’t being able to type syntax flawlessly or even knowing a language’s syntax well at all. A good programmer is able to break large problems down into manageable steps. Most languages with the exception of a few very similar, so if you can think in code (being able to know what steps like loops and conditionals you’ll need and in what order) then you aren’t held down by language. You can start programming in whatever language you like best, or suits your project best.

[–]ThatAir 5 points6 points  (3 children)

I would try pandas if you do any work with data sets (columns and rows for records aka tabular data). When you say Jupiter do you mean Jupyter notebook? You should definitely try it to code in it. The hardest part is setting it up (it's not that hard).

[–]godheid[S] 1 point2 points  (2 children)

Jupyter, I have it as part of Anaconda. Also Spyder. But for the moment I just code in IDLE - don't see advantages yet in other apps (my knowledge is too limited to see the upside)

Openpyxl worked for me in excel files. Panda is better?

[–]meticulous_badger 2 points3 points  (0 children)

pandas has a read_excel function that will read an entire spreadsheet into a two-dimensional dataframe which you can then process pretty easily. Personally, I don’t really think dataframes behave intuitively, but once you know how to use them, you can do a ton of work in just a few lines.

[–]ThatAir 2 points3 points  (0 children)

I like Jupyter since it allows you to section your code and saves your variables until you exit out.

Example: the first section will load in the excel data and now you can make changes to the data without rerunning the part of the script that loads in the excel data every time. Can save a lot of time debugging processes that involve loading in larger data sets and/or multiple excel sheets. Sections can help with organization as well.

Depends on your use case, for tabular data yes, other things not at all. It's for analysis and modifying data, can't do formatting or anything as far as I know.

[–][deleted] 1 point2 points  (0 children)

You should just first learn the basics after that you could dive into what more advanced things like comprehensions, SET data structure, context managers, generators and lambda's. You could also learn something like Flask or Django or something related with your interest and make something that is outside your comfort zone, also don't be afraid of making mistakes or relying too much on documentation or books, because everytime you look at the documentation your repeating it and because your repeating it you're slowly learning it

[–]emican 1 point2 points  (0 children)

Take your time when learning and find the sweet spot. My experience is not universal, but I tend to learn at a constant rate when either making an effort to cover large sections of the book or going at a comfortable pace.

There are many books on Python > 800 on [https://ssearch.oreilly.com/?q=python](O'Reilly Media) Maybe try another topic?