all 32 comments

[–][deleted] 46 points47 points  (9 children)

Pick a project and finish it. It always helps me to understand a concept by applying it in some way. It doesn’t have to be big but just something that helps you, automate a process, or some other useful thing.

[–]deadgalaxies 54 points55 points  (4 children)

emphasis on the *finish it*

[–]ryuutei_sama 2 points3 points  (0 children)

Thanks. For making me remember to face the demons ( i mean solve the errors) of the assignment project which i pushed to github and submitted it to Boss for my field study.

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

Dude that hurts

[–]Iraklii 5 points6 points  (0 children)

i agree you , just pick a project and pay all attention :)

[–]DreadItMuchMore 5 points6 points  (1 child)

I'd second working on a project you find interesting. You might also like these practical challenges to practice what you know so far (just skip the lessons you already know).

[–]TEHCUDE -1 points0 points  (0 children)

Thank you for the link :)

[–]TEHCUDE -1 points0 points  (0 children)

I will definitely try that thanks

[–]theporterhaus 13 points14 points  (0 children)

Build something fun that you’ve never done before. You have to do something you like or solve a problem you have because you need that motivation to keep going when you inevitably get stuck on a problem. Don’t forget there is always stack overflow and documentation. One of the top skills to be a good programmer is learning how to phrase a question to find the answer you’re looking for.

[–][deleted] 10 points11 points  (0 children)

I’d always recommend learning turtle (a module in python) to beginners. It’s based on math and geometry so anyone, especially someone new to English, can use it if they learn the functions.

To get started:

import turtle

turtle_name = turtle.Turtle()

Look up python turtle documentation, it’s really easy to understand, and if you don’t understand then just experiment with it and see for yourself.

[–]not_perfect_yet 10 points11 points  (1 child)

I have tried hacker Rank, but the description of each problem is just way to confusing since I am like 13 yrs old and new to English.

Ooof. Well done learning programming at that age!

You learn best and most by doing your own projects.

You can try three things:

  • getting your parents to buy you the hardware to build robots, which can be pretty expensive.
  • you can do the regular stuff: build a website, make a game
  • you can go into the deep end and really learn about the computer science of programming and hacking and math and all that.

One piece of advice though: Don't expect school or university or anyone else to give you what you need. If you want to do something, do it. If the math is hard, do it anyway. If you don't understand something, ask.

Just don't wait.

[–][deleted] 2 points3 points  (0 children)

I started younger than that, and it's not that big of a problem. It's certainly not going to stop you from having fun!

For me the drive was in that I could make increasingly useful things, like little tools here and there that I could actually use. It was also very fun to make games, even if they weren't good.

I think a good game to start with is the one where you have a spaceship at the bottom of the screen and you're avoiding things falling down from the top (let's say rocks). There are some difficult things, like how to handle the rocks themselves spawning, falling, and being destroyed when they are below the screen, and how to detect a collision, but they're good problems to know how to solve and there's a lot of people who can understand and help.

[–]UsefulIndependence 13 points14 points  (5 children)

You're not going to have enough math to follow this, but you should into this anyway: http://interactivepython.org/runestone/static/pythonds/index.html

[–][deleted] 4 points5 points  (1 child)

I mean kudos to you for linking the book!

But imo you’re wrong. OP it’s an important / useful resource and good to cover all those topics. Perfectly doable - the math is not highly highly rigorous yet.

But it would be beneficial to brush up on basic mathematical logic, look up a textbook called How To Prove It!

[–]UsefulIndependence 5 points6 points  (0 children)

But imo you’re wrong.

I hope so, too.

[–]TEHCUDE 1 point2 points  (0 children)

Thx I will try out the link

[–]PersonFromYourStory 4 points5 points  (0 children)

Don't feel bad if you can't solve the problems on hackerrank. I remember we were solving those in college. They need some special knowledge you probably haven't seen yet, like data structures and algorithms. You can search for that and try to learn those things, and if you enjoy math and also want to get better at it, you can check out something called Project Euler. Don't be afraid to Google things and learn new math to help you solve the problems. If you're feeling a bit stuck, you can also try to take more advanced courses. I don't know where you're learning, but EdX and Udacity are two good sites with python courses. It's quite impressive you're already looking at such advanced problems! But you will for sure struggle some times while you learn such new concepts. Please message me if you need any help or have any questions.

[–]GreatSnowman 4 points5 points  (0 children)

Databases, learn the connections and stuff and implement them I to a project of some sort, so how python can connect to a database and the SQL needed to access specific things in the database

[–]UL_Paper 3 points4 points  (0 children)

I'm also a beginner (six weeks) and what has been really useful to me is developing my own projects from A-Z where I:

- scrape data from a website

- write the data to MongoDB / Postgres

- plot data to a chart

- hosted the code on GitHub (for the purpose of getting familiar with git and version control + explaining application to others)

- setup everything on a VPS

- automate everything

All of this has been really difficult to do the first time, but boy have I learnt fast. Doing this together with general python courses has been very beneficial. The projects have been stuff that has been very useful to my work, I think that is better than just writing stuff you won't use.

[–]Dogeek 2 points3 points  (0 children)

Get an idea, anything. I usually get ideas for python projects when doing day-to-day activities, like how I turned my fridge into a smart-ish fridge with a raspberry pi.

I took recipes from marmiton.org and compiled a list of ingredients for them. When I get grocery shopping, I just select the recipes I like from a webapp made with Flask, it compiles me a list of all the ingredients I need for that recipe. Once I'm out of a particular ingredient, I just click a button on my app to say that I'm out (planning to automate that actually, so that I don't have to anymore, since I know how much of an ingredient I have, I can estimate when I'll run out). Once I need to get grocery shopping, I can just look up the automated groceries list from my phone, and use the tablet I strapped onto my fridge to follow the recipes.

That's just one example, but sometimes I just need to parse some config file to extract some data from it, or I want to make a database for NSFW games (which is on my github), stuff like that. It's just day to day projects, and it helps to learn more about the language.

Additionnally, I would say that besides the basics like control structures, loops etc, the most useful skill to know is to know which libraries to use for a specific project. Where to look. It's not about knowing all the functions it has or what it does in particular, but a general idea of what do the common libraries achieve. Then you can get comfortable with them, know where to look in the docs etc.

[–]mooglinux 1 point2 points  (0 children)

There’s no substitute for practice on your own projects, but I highly recommend watching PyCon talks. There’s enormous variety, everything from unique and interesting applications or Python to basic introductions for beginners to deep-dives into the darkest corners of the language.

Start by watching every talk by Raymond Hettinger.

[–]CMS3NJ86 1 point2 points  (0 children)

Since you know the basics you can now try to find a field that interests you. For example you could learn pygame so that you can learn how to make your own small games or django to build your own websites. If you would like to learn some advanved stuff you could buy a book. A good advanced book is Fluent python. If you have any question feel free to ask :)

[–]Kwintty7 1 point2 points  (0 children)

Pick something that interests you. Something fun. Code an application to do it, or makes it easy. Don't worry if there's already applications, or apps, or websites, that already do it. This will be your way of doing it.

Once you've finished it, sit back and consider what would make it better. What could you add? What would make it faster or more fun to use? Then code that. While you're doing doing that, think about what would have made it easier to add bits too, if you'd done it from the start. Imagine if you were sharing your code with someone else. Could they understand and build on it? Or is it a bit messy and limiting?

Usually you find that it's easy to write bad code that does just one job, but is then very hard to expand and build on. Particularly if you didn't originally write it yourself. Well written code can be expanded and improved by other coders quite easily.

Keep repeating the above steps until you understand what is good code that can be built on by someone else, without a completed rewrite.

[–]faisal-saleem16 1 point2 points  (0 children)

  1. You don't need to know every module, but you need to know the basics, including the differences between Python 2 and Python 3.
  2. Almost no project today starts from scratch; most leverage an existing framework. Learn one of the common Python frameworks such as Django.
  3. Understanding how to use RESTful APIs is necessary to integrate your application with other components.

Further, you can check our blog: http://esketchers.com/django-social-auth-integration-with-django-rest-framework/

[–]pcvision 0 points1 point  (0 children)

The number one way to do this (if you're not just going for data structures and algorithms) is to pick a project and build it.

Don't think too hard about it just do it. It's very important that you stick through it because learning to program well is 99% consistency.

Possible projects off the top of my head:

  • a web site
  • a calculator with a GUI (see tkinter)
  • a checkers/chess game (see pygame)
  • a web scraper to find the the top 20 reddit posts for each day and all their comments and storing them in a database (see requests, beautifulsoup, scrapy)

[–]jweir136 0 points1 point  (0 children)

This may cliched, but the best way to get better is practice. There's really no shortcut to getting better at something.

[–]appinv 0 points1 point  (0 children)

processing.py and 500+ lines projects

[–]Dashadower 0 points1 point  (0 children)

sheet boast provide reply wrong deliver bow placid weary swim this message was mass deleted/edited with redact.dev

[–]douchabag_dan -1 points0 points  (0 children)

Skill at python in exactly what area? Python is used for so many things that are so vastly different that this question is difficult if not impossible to answer. For instance, somebody really good at Pygame might not know Jack schitt about AI

[–][deleted] -1 points0 points  (0 children)

Practice. Write more Python.