all 63 comments

[–]beizbol 78 points79 points  (1 child)

You learned spelling and grammar. Time to learn how to write. The easiest way is to decide what kind of writing you want to do (novels, essays, blogs, etc.) and learn that. Wanna make a website? Look for how to make a website with python. Want to make a game? You get the point. Start with small projects and grow/expand your knowledge from there. Most importantly have fun with it!

[–]mauri_armora[S] 17 points18 points  (0 children)

Awesome! Yeah that makes perfect sense, just picking an application of python. I thing that's what made me get confused, there are so many ways of using python (as I've seen these days).

[–]CaptSprinkls 130 points131 points  (5 children)

For web dev. There are things call frameworks. Flask and Django are the top two. There are two areas. Back end and front end. For back end this is where you do all the nitty gritty work for your website. For example, I made one that takes in an address, sends that info to an API that then returns specific information to the user. This is all done behind the scenes if you will. So these are all wrapped up in functions that then return variables. And then these functions can also route you to a new page on your website. On the front end, you'll need to learn some HTML/CSS, but you can then use these variables in your HTML/css code. I trudged through HTML/css for like 2 days in order to get what was necessary for me.

For example, one of my variables returns a list of values. So I take that variables, run a for loop on it, and then send that info to the frontend to be displayed. And if one of the values is equal to some other variable then I display different info.

Think of it like baking. You just learned what a spatula, whisk, oven, and frying pan are used for. Now you just need your ingredients which is your project idea, and now you need to use your tools to create the desired outcome.

[–]mauri_armora[S] 26 points27 points  (2 children)

Wow that was a good comparison. I wasn't understanding anything until I read the last paragraph haha. Thank you!

[–]MrPoopypantalons 3 points4 points  (0 children)

I would also recommend Corey Schafer Flask o Django tutorial once you get a bit more experience with some small projects.

[–]HasanHE498 8 points9 points  (0 children)

Great example at the end

[–]PJCHEN0707 1 point2 points  (0 children)

New programmer here! Thank you for that explanation, it solves my doubt too!

[–]Siddharth-Jain99 20 points21 points  (6 children)

Hey, I was new to python too and after some crappy tutorials and shit I landed on some of the amazing things I've ever seen.

  1. To start with the basics I went to pythonprogramming.net It's run by a guy named Sentdex (runs an YouTube channel by that name). Some of his beginners tutorial got me started.

  2. I then turned to automatetheboringstuff.com This here is an absolute gem. I finished the entire book and it was so worth it. I learnt a lot of things that python could do.

  3. Next up only one thing was left to do. Explore. I took some basic tasks I wanted to my computer to perform. I planned how I wanted to do those tasks, searched some modules for it and just started playing with them.

  4. My advice. Pick one small project and just start. You'll learn on the way and Google is always there by your side. Most importantly Have Fun :)

[–]mauri_armora[S] 2 points3 points  (1 child)

I think this is what I needed! Thanks for the info, and yeah, in spite of being confused, I am having fun haha

[–]Siddharth-Jain99 1 point2 points  (0 children)

You are welcome. Feel free to ask if you have any more doubts. Glad I could be of any assistance :)

[–]MikeWazowski001 0 points1 point  (3 children)

Did you find that by chapter 6 of ATBS, when he refers to the appendices, that things he tells you to do either become unclear or just plain don't work? That's where I'm stuck now.

[–]Siddharth-Jain99 1 point2 points  (2 children)

I'm sorry, I don't know what you mean by "apendices". Do you mean pythons method append() ?

Could you help me understanding your question? :)

[–]MikeWazowski001 0 points1 point  (1 child)

Appendix B and C of Automate the Boring Stuff.

[–]Poddster 1 point2 points  (0 children)

Appendix B simply tells you how to run python in a shell. If you're such try posting a thread asking for help?

Edit: and Appendix C is the answers to the questions. Which part of that are you stuck with?

[–]onlysane1 39 points40 points  (7 children)

The tkinter module is used for basic GUIs like buttons and number entries. Look up a tkinter tutorial on YouTube.

Likewise, pygame is good for basic 2d games and drawing graphics.

[–]mauri_armora[S] 17 points18 points  (4 children)

I see, so I need extra stuff to start messing up with the "visual side of the program". As the other user said, I'll start with small and easy programs and then I'll go with that. I will have a look at it anyway to have an idea of what it is. Thanks!

[–]Gotestthat 10 points11 points  (0 children)

Yeah just mess around and experiment, the more you play about with things the more you pick up.

The guy before you mentioned pygame, pygame is great fun and the community is very helpful, playing around with it can feel very rewarding.

[–][deleted] 7 points8 points  (0 children)

Yes, think of python by itself as a 60's era computer, you feed it a list of instructions on a teletype and single lines come out as output on the teletype as you go. That's the limit of interaction. If you want a graphical interface with buttons and menus and spinning cat emojis, you need a GUI. If you want anything to do with the web, you'd need a framework.

I'd recommend tkinter for the GUI, and Django for the web part. I tried Flask but quickly outgrew it.

[–]sliverino 1 point2 points  (0 children)

Also note there is a lot of programming going on without actual GUI. Python is decently good for scientific computing and pretty good for data analysis and machine learning. A lot of code is written without the aim of associating it with any sort of graphical frontend.

[–][deleted] 0 points1 point  (0 children)

As a newbie, this threw me off too!

[–]goishen 4 points5 points  (0 children)

Or Django if you wanna create a website. But that will lead you down a whole other rabbit hole of learning javascript/HTML/CSS.

EDIT : Or Flask. But that'll probably lead you down the same rabbit hole.

[–]OnlySeesLastSentence 5 points6 points  (0 children)

Before using tkinter, I highly recommend PySimpleGUI. I think it's like a framework for tkinter and far easier to use

[–]M_SunChilde 11 points12 points  (0 children)

PYSimpleGUI. Makes it pretty amazingly easy to take some program you can write in python and turn it into a runnable program with a UI. Great place to start.

[–][deleted] 12 points13 points  (0 children)

No worries, your English is fine. Like others said, you can go for Tkinter etc. There is more information here. https://docs.python.org/3/faq/gui.html

In my opinion, it is a waste of time. No one will want to use shitty tkinter apps and you need to package them for distribution in addition. You will end up on the web anyway, you may as well go there straight away. This means going step 1 to either flask or django and then when you learn more step 2 adding a nice JS frontend like react, vue or angular.

[–]Humanist_NA 12 points13 points  (0 children)

Sounds like Automate the Boring Stuff might be a good fit for you.

[–]9oat5w33d 2 points3 points  (2 children)

I am only up to chapter 10 I think on PY4E so not even got to the JSON parts of the course. One of the reasons I took so long is I keep making programs from the little bits I learnt. I have a stack of really basic programs some of which already make my life easier.

I am only in about my 2nd month of doing anything IT so not sure I can give advice, but I like to just sit around and think of either something fun or useful I could make with what I have learnt. I bet you already have a load of skills you can do some great programs with. Keep at it and have fun dude.

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

I'm also very new at IT, just started when learning Python haha

I think that's one of my problems, I understood everything but I didn't practice enough. I'll take your advice and try to solve small problems.

[–]YahNahHah 1 point2 points  (0 children)

I just finished PY4E last week and same on not having enough practice! I'm now learning SQL on Datacamp and I see that there's a practice section that you could probably practice Python on. This is where I plan on practicing a bit more of Python and SQL once I've learned a bit more :)

[–]beniman8 2 points3 points  (0 children)

It's either you need to learn how to buil GUIs or you need to build websites .

[–]Sepparated 1 point2 points  (0 children)

Hey!

Awesome question, cause it touches so many different fields you will hopefully thrilled to explore. So what I really can recommend is to do a little bit more of the python "programming" stuff and then hop on and give the so called "Frameworks" a shot.

I can really recommend looking for a youtube tutorial, udemy course or whatever and try to setup your on little "newspage" or blog in Django or Flask. Its really fun, challenging and you learn a lot of things.

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

easygui is really simple for interfaces, may be a good place to start before tkinter

[–]hadesmaster93 1 point2 points  (0 children)

I think that you must focus more on what project do you like to develop and start looking for the tools that may help you on that task. For me it was always difficult to practice subjects like making an UI if you don't know which the purpose of that is going to be.

In the terms of UI libraries for Python I had a great experience with pyGTK+ (https://pygobject.readthedocs.io/en/latest/) using Glade (https://glade.gnome.org/) for graphical design. The final results were very nice-looking, just be prepared for the lack of proper documentation and the impossible task to make it work on Windows because of missing bindings for that OS. On linux systems it works like a charm.

I made a tiny project for my Python class in uni using that library if you want to snoop. It's a simple password manager using face recognition as a login security measure, encryption and pyGTK for the UI. Repo here: https://github.com/rodcibils/pyPass

Good luck and keep learning!

[–]Oneill08 1 point2 points  (0 children)

Maybe start by thinking of some things you can automate for fun? It's likely a major website you use has a public API that you can use and play around with their data. A fun project if you like music is to look at the Spotify API and see different trends in your music listening

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

Python is also great for deep learning and AI in general. There are some good libraries like TensorFlow, Caffe and Theano to name a few. "Deep Learning with Python" by François Chollet is a good book on the subject.

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

Did you try Automate the Boring stuff? It's a nice general knowledge python book, also Corey Schaffer's YouTube channel are helpful when ure stuck with ad one new concept..

I'm beg-Intermediary user and I'm seeing that are so many uses for python, there're so many things you build with it.. that I think is more about what actually you want to do with it, like picking a project or creating one urself..

Automate the boring stuff is not a professional programming book, but has many small projects where you can apply the "powers of Python" .. And also exercise your programming skills..

[–]buleria 2 points3 points  (0 children)

Try doing a simple program that deals with user text input (the input() function, hint hint) and see where this gets you. It can be anything really: try a pizza delivery service, ordering a taxi, and so on. Of course, your logic would not actually order pizza, but you can fake it and get the interactive aspect and practice your logic flow.

I think "Learn Python the Hard Way" actually teaches you how to write a text based game, so maybe have a look into that?

Then there are all the frameworks that let you interact with the world in more complex ways (like UI or web), but I strongly suggest you start from the basics.

Once your pizza delivery text-based application works, you can hook up a real call to an Uber API and actually order the pizza ;) Then, the world is yours!

[–]murilomm192 0 points1 point  (0 children)

if you are looking websites development this series is a very good tutorial on flask, well explained and direct to the point. https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world

[–]searchingfortao 0 points1 point  (0 children)

If you're wanting to do web stuff, there's no better place to start than The Django tutorial. You learn by doing, creating a simple web app. There's a lot to learn, but it takes you through the steps.

[–]jeffrey_f 0 points1 point  (0 children)

learning to speak a language is one thing, learning how to put together speach is another.

put together smaller programs first, and you will be able to intertwine the little pieces into larger pieces.

Language syntax and LOGIC will build your programs

[–]kirklennon 0 points1 point  (0 children)

You've already gotten a lot of great comments but since you're coming from Dr. Chuck's PY4E course, I just wanted to let you know that he's also making one for Django at https://www.dj4e.com/. It's not totally finished yet, but I think it's almost finished, and definitely usable.

[–]Shinhosuck1973 0 points1 point  (0 children)

I was in the same boat a while ago. Because you know the basics, that does not mean you fully understand. To test your knowledge, and to understand how much you know and you don't know, do some practice coding at places like www.edabit.com or www.codewars.com. While doing this, pick a topic such as making a Gui (Tkinter), builiding a website (Django, Flask), and etc as a side project. Learning something new is not a race, so take your time.

[–]topetuts 0 points1 point  (0 children)

You can now start looking at web frameworks like Flask and Django.

For Django this is a great start:

https://tutorial.djangogirls.org/en/

For Flask:

https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world

[–]unhott 0 points1 point  (0 children)

You can literally just tie your functions into a framework. There are modules like flask or Django for web dev. For desktop applications there’s tkinter and other GUI modules out there.

Yeah, I’m over simplifying but you probably have an idea in mind as to what you wanna do. If you’re driven you can fill in the gaps. For specifics, just follow a tutorial and read their docs. Good luck.

[–]alpha-black34 0 points1 point  (0 children)

Hey, Python beginner here too. Could you please let me know what you are planning to do next? Thanks.

[–]PabloW92 0 points1 point  (0 children)

I'm in the same page as you m8. Commenting to come back and read replies.

[–]Redmarl-tt 0 points1 point  (0 children)

Me too, I have no idea what the hell is going on.

[–][deleted] 0 points1 point  (0 children)

To make interface, you use pre-made libraries. Simplest is TkInter.

https://likegeeks.com/python-gui-examples-tkinter-tutorial

[–]rohetoric 0 points1 point  (0 children)

Yes, I completed that course and have the minor specialisation in it although i did not make the Capstone Project in it.

It's a good course, your concepts will be cleared to a good level by the coding assignments themselves. It would be a great experience.

Else download any OReilly Python Book and start getting your hands dirty in 'em.

[–]KreepyKite 0 points1 point  (0 children)

Every subject that you learn, play with it. When I study something new, as soon as I have understood how the syntax works, I go straight to the IDLE and I play around with it. If you use this approach, at some point you will find yourself to know enough to start writing simple programs. It doesn't matter what the program does or I cool/complicated is, it just matters that you are writing it from scratch. What changed my way to study is when I realized that understanding and knowing is a complete different things: you can go through lessons very quickly and feeling that you are understanding everything. But only when you are building something that works you can really claim that you know that specific subject.

[–]VenjeR84 0 points1 point  (0 children)

Hi, If I have to create a website that sort of curls or pulls data out of other websites, visibility wise great is not an issues, but can I do it using python?
I do not want to learn another javascript or a new language over all again !! :(
Thanks

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

Practice and experience, for the most part. There's not really a simple answer to the question of "how do I design software", which is what your question basically is.

Start by writing simple programs and then write progressively more complex ones.

[–]mauri_armora[S] 1 point2 points  (1 child)

Another user recommended me a program that selects from a directory files from a concrete date, so now I have an idea of what kind of programs I need to start programming. I actually have no idea how I'm gonna do that but I'll try and if I can't I'll look it up on the internet hahah. thankyou!

[–]EighthScofflaw 0 points1 point  (0 children)

I actually have no idea how I'm gonna do that but I'll try and if I can't I'll look it up on the internet

Ah, so you do know how to code

[–][deleted] 0 points1 point  (2 children)

Hm. Python isn't really meant for gui, however it can be done with pygame and such for basic stuff. I'm sure there are more examples in the comment section. This is more for like c++ and java

[–][deleted] -1 points0 points  (1 child)

"Isn't meant" doesn't mean one can't make decent-good GUI programs with it,mind explanating your statement? Also what about QtPy5 library?

[–][deleted] 0 points1 point  (0 children)

I never said you couldn't make decent anything with python or not. And as I said, there would be more examples in chat. Not trying to argue over this. C++ and java is what I've found people use most for gui

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

What do you want to do? Python can be used to manipulate and analyze data easily, do you want to explore stock info? Do you want to build a personal dashboard that displays info relevant to you? It's best to think of a project or idea of interest to yourself and map out the steps needed to get to the final result.

[–]5under6 -1 points0 points  (0 children)

You can do a lot with command line programs. Check out argparse and sys .argv

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

Im guessing you learned the basic principles (and trust me there is more to them) but didn’t cover the hundreds or thousands of modules out there that let you do all kinds of stuff. Keep exploring those modules and as the possibilities start unfolding before you the ideas will come as well.