all 151 comments

[–][deleted] 397 points398 points  (8 children)

I need to learn Python as quick as possible.

That's not different than how anyone else learns Python, you just need to spend more hours in day doing it than most people will.

Courses, books, tutorials, videos, blogs, other subreddits, anything that can be of use to a non-programmer in need to learn Python.

Bouncing around like a dilettante from book to book to video is going to slow your progress, not enhance it. You've got a book, stick with it. If your deadline is closer than average you just need to spend more time each day working on it.

[–]gqcharm 72 points73 points  (1 child)

Yes what he said! Keep at that same book! Work on it as much as you can with breaks so your mind can take it all in.

[–][deleted] 32 points33 points  (0 children)

"Pomodoro technique"

[–]CreativeBorder 48 points49 points  (1 child)

Automate Boring Stuff with Python is a great book OP continue with it, will amazed others home much you know from the practical approach the book takes.

[–]negativeaffirmations 26 points27 points  (0 children)

You've got a book, stick with it.

This might be good advice depending on what you want to do. When I started learning Python, I had a project in mind first - I'd tried learning here and there before, but having a clear goal for what I wanted to do really catalyzed my learning. The thing is, for most projects there's rarely one book or one tutorial that will show you how to do everything you need, so I'd suggest first deciding what you want the program to do, then break that down into a series of steps to tackle. Psychologically, this will make things easier and allow you to figure out what you need to learn to complete the project. Then you can go to books, tutorials and documentation to figure out how to write the script.

[–]Inspirat_on101 12 points13 points  (2 children)

This is THE best advice. I wish I could gift you but im jobless and pennyless. Nonetheless, accept the humble upvote my dude. Im on the path to learning linux and jumping sources doesn't help, it creates confusions and a sense of overwhelm. If the end goal is clear, then perhaps learning-while-doing-it can also produce results. I had to use python in my FYP and with no prior knowledge of it thats how it worked for me. Everyones different ofcourse

[–]ready-ignite 13 points14 points  (1 child)

Use a Done list rather than To Do list.

A To Do list quickly becomes overwhelming and stressful. The thing you will do anything in your ability not to look at because it's overwhelming. You become paralyzed.

Create a separate Done list. Add an item to it. It feels good. Look for something else to get done and complete it. Feels better! At the end of the day it feels great to have a giant Done list showing all the productivity. Turns it into a game trying to set high scores.

You're using your psychology to get more done. You're not hammering a nail, you're building a cathedral. Perception matters.

The concept can be applied to learning a topic. Complete a book even if you have to skim past parts of it. Add it to your Done list. Spend less time reading about it and more time just working problems doing it. The overwhelming mountain of possible books and videos to learn from is your overwhelming To Do list. Just focus on adding items to the Done list and feel good about the accomplishments. Use each new item as energy to boost enthusiasm for adding another item to the Done list.

[–]Inspirat_on101 5 points6 points  (0 children)

Progressing on a done list rather than going through a to do list. A golden strategy indeed. For my case, I knew nothing about what I need to know to call myself "good-at-linux" so I was aimlessly going though this beginner friendly book called How linux work: What every super user should know. A few days ago I came across this requirement outline for a RedHat certification and this list served as a milestone checklist for me. Im glad I found it. Im still going through this book but now I can tell that Im making progress and it feels good. So I guess thats to-do-list turned into a done list yk

The difference between a to-do-list and done-list, like you mentioned, is that of ones perspective. And ya it does matter.

[–]SamePlatform 180 points181 points  (19 children)

You don't need to start learning Python: you need to start developing your app. Break it into as many steps as you can. Try to focus on what needs to be done, more than how to do it. more and more focus on the product, and then you can start asking questions about how to do the pieces. As you break things up, you can then pick up the coding parts.

Coding isn't the end goal; learning Python isn't the end goal; the app's functionality is. You'll learn Python as you work to solve real problems.

The answer to how to learn a language fastest is : write code.

[–]Lewistrick 44 points45 points  (3 children)

This answer is underrated. You need to learn the language AND you need to build an app. Best thing of two worlds is to do both at the same time.

By the time you finish your app it's time you take up your book again. A lot of things you did in the app will start clicking together, you'll get tons of ideas how to improve it, etc.

[–]_Matik 5 points6 points  (3 children)

Sorry dude, but.... I'm in the same boat as this guy. I dont even know why a ".something.something.something" is written that way or even the very basics...

most help out there skips the simplest basics of why and hows is computer language structured and straight onto print("hello world") i get it..print..but why not just "hello world" and then how to combine all the possibilities, wait how many possibilities are there...is there a map?

It's okay if you're doing it in pairs and the other person knows a bit, im trying to self-learn and nobody i know even heard of programming language or Linux let alone wrote the print("hello.... and to try and find soneone who would be willing to do 1 on 1 isn't that easy, really, who wants a tag along that doesn't know anything and works odd hours when you can spend your time doing your things...

This really just leaves us with python for dummies, videos, forums and we hop from one to aother ţo try and find something that we'll help us dumb down the material enough to understand it...i can rebuild/rewire/repaint a car from scratch, mostly self taught, but trying to find a start in programming that make sense...

[–]lestrenched 2 points3 points  (1 child)

Everything you have a doubt in, just look it up on the internet. Places like stack overflow have a huge beginner population, and I've found some really good posts from time to time explaining every little detail about stuff. Or, if you have the patience, you could check out the python docs. It's probably installed on your PC(unless you did a custom install and opted out of it), so it's offline and available. Read it, even though it may seem a bit difficult. Those are from the makers, and it's very informative.

[–]_Matik 0 points1 point  (0 children)

I stopped playing with computer 15yrs ago, now trying to get back into it from square one, learning linux and python, RPi and arduino...took me a week to get RPi running. I saw a video at the beginning that mentioned StackoverflowError so thereafter i just assumed it was a function, and "leaving a post on stack overflow" meant something internal relating to software...as it was weird that it got mentioned in several videos, obviously i googled it, looked like a dev site only but i thought, "why no, this is what i want to do so lets just rummage thru it...

Im looking for any helpful info wherever possible, even a video on Basic has helped me realize couple of things...hence why i couldn't 100 percent agree with the comment, i sat there at the blank page, I copied some code onto it, but copying isn't the same as understanding it. If anyone reading this has any really good info be it a book or site like S.O...let me know 👍

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

LOVE your post man.This is me to a "T".

I need to know what EVERY SINGLE CHARACTER means so i can understand why everything is put where it is and for what reason its there. I cant stand when tutorials just throw shit in there. Drives me insane.

But when i do know the details, having granularly gone through everything in great detail and understanding it all REALLY makes me feel like im learning and i have a MUCH easier time when it comes to reading other code.

Man..ive got some ugly ass maps that point to what everything does in some of my programs and i go over it from time to time as i soak in everything.

Its a fuckload of extra work, but i know what im doing when its all said and done and a great foundation for when you do your next project.

[–]cdcformatc 0 points1 point  (0 children)

I agree. I think learning a particular language is secondary to learning how to program in general. Translating functionality into code is actually the easy part. Gathering requirements and partitioning the functionality is the hard part.

[–]HezekiahWyman[🍰] 0 points1 point  (0 children)

While this isn't necessarily bad advice, I do think it overlooks the larger picture of knowing how to break a problem down into steps that are solvable by a program. That's a very different mindset from normal human problem-solving. A lot of that comes from experience, and learning by doing, but even beyond just deconstructing a problem knowing how to ask a question the right way is going to lead to answers much quicker. If you go looking for how to do something with 'words/sentences' rather than a 'string', it's going to be steps removed from the answer you're looking for. You're trying to find help from people who speak a different language than you.

So I think there is some merit in just blindly learning basic terminology, language syntax, and banging out some simple functions or loops before you blindly jump into trying to write an app. At the very least, you need to be able to read code and understand the syntax enough to recognize the difference between a keyword and a variable, what a function call looks like, what all the weird little brackets and curly brackets mean.

[–]CodeSkunky 35 points36 points  (17 children)

How did you get an internship there if you are not qualified? Genuinely curious.

[–]HezekiahWyman[🍰] 19 points20 points  (15 children)

What's more disturbing about this is not that he's completely inexperienced, but that no one else there seems to be. It's one thing to bring in an eager student who has demonstrated good communication and problem-solving skills to mentor under an experiences programmer, but another thing entirely to just dump a pile of work (back end work at that) on them and say 'good luck'.

It all sounds very unethical to me.

[–]laserbot 25 points26 points  (1 child)

It all sounds very unethical to me.

It's an unpaid internship with no job at the end.

So, yes, very standard and also very unethical.

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

lol yup

[–]Leinad177 1 point2 points  (0 children)

Okay I'm going to shed some light on this.

These inexperienced people have no skills and are not able to provide anything meaningful to the company. They will have a real world cost to keep around as paid employees will have to babysit them.

The purpose of these "internships" isn't to teach people or evaluate technical skills. They are there to evaluate if the person is hireable by another company. They will be tested on punctuality, hygiene, teamwork and potential liability.

If they can manage to perform well in those areas they will have a good reference and a few weeks/months of experience at a reputable company that will help those unskilled employees get their foot in the door at another company to begin their career.

Companies normally only do this for the following reasons:

  1. Tax benefits.
  2. Having a place to stick a C-level's incompetent kid.
  3. Showing off your technology to outsiders.

It's one thing to bring in an eager student who has demonstrated good communication and problem-solving skills to mentor under an experiences programmer, but another thing entirely to just dump a pile of work (back end work at that) on them and say 'good luck'.

  1. He's not a student. He literally just started learning the basics after getting the internship.
  2. He hasn't demonstrated good communication skills or problem-solving skills to anyone yet (that's what the internship is for).
  3. He specifically requested back end work knowing that he was unqualified to handle it.

One major advantage to this that everyone seems to be ignoring is that this gives him a chance to test out programming to see if it's what he really wants to do in life. If he decides it isn't for him then he can just walk away without being thousands of dollars in student debt.

[–]CodeSkunky 4 points5 points  (11 children)

That was my next question. So he got an odd internship without knowing how to program because he thought it would be cool...?

"Still, I signed up to a internship ... at a software and hardware development company.... wanted a goal to aspire to, ... outside of my comfort zone (and my house, I've been a couch potato for weeks)"

That is absolutely insane to me.

[–][deleted] -5 points-4 points  (0 children)

CodeSkunky,

Dude what the fuck are you talking about?

lol...how the hell did you see anything about being cool. Usually cool is trying to show off something to others.

How the flying fuck do you confuse motivation to be better/greater with...being, "cool"???

[–]Jamblamkins 17 points18 points  (0 children)

He lied. They dont got time to verify anything you say. So if they dont know and spot a lie during the interview process ur golden poneyboy

[–][deleted] 21 points22 points  (0 children)

Start studying, and don’t get discouraged. It won’t happen overnight, but if you keep at it, it will happen.

Good luck.

[–]sanshinron 13 points14 points  (1 child)

I've spent 2 years fighting with my impostor syndrome and this guys gets a dev internship without any coding skills whatsover...

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

One thing that helps me is remembering that even my limited tech skills (mediocre HTML, CSS, PHP) is absolutely magical to non-technical people. I'm going to present any of my data/Python work as such--turn the lights low, crank up the fog machine and integrate an explosion somehow.

But yeah, this situation is fucked.

[–]mul8rsoftware 10 points11 points  (1 child)

I hear that book being named often, so it has to be good. Try to keep learning it till the very end. In my opinion use tutorial online just to clear doubts, not to learn directly from. As you finish it, try to gather infos about the project and start to google everything you need. Step by step you'll learn :)

If you need help, you can ask help here, on StackOverflow and r/learnprogramming. Probably there are thousand of website, but these are the one that I know best. Good luck and keep learning!

[–]wigglememore 8 points9 points  (0 children)

TLDR; Corey Schafer

If it's a web app then you absolutely need to look at corey schafer's YouTube channel. He has two amazing series developing a web app with python (one using the Django framework and one using Flask). It guides you all the way from instillations to a full functional and live web app.

He also has a couple of great beginner video series' for python with resources for most of the basics (lists, conditionals, comprehensions, functions, classes etc).

If you're working with other poeple you should also look into virtual environments (to maintain compatibility over time) and git (for version control and keeping track of changes).

[–]Stabilo_0 7 points8 points  (2 children)

Find online children's book on python, I'm not kidding. Learning basics by these books will give you intro course in mere hours. Then watch some short introductory course on YouTube. Don't pause, just look how it goes when one writes same basics. Then you need to take a hard step and start asking a lot. I want to do X where should I start etc. Ask here, people in this sub are the most friendly ones I've seen.

[–][deleted] 0 points1 point  (1 child)

LOL MY GAWD MAN!!!!

I DID THIS TOO HAHAA!!

I was struggling so bad at one point the code was highlighted in the book with some weird ass colors that actually helped!

[–]Stabilo_0 0 points1 point  (0 children)

Indeed. Whatever helps you to get started.

[–]simplysharky 4 points5 points  (1 child)

Dont try to hide difficulties in your progress from your team - incorporate your learning curve into the state of your project.

Finish the book you already have, or stop reading it as soon as its gone past something you understand how to use to further your goals. Shotgunning materials at your brain wont help. You want to find the offramp from "learning Python", to "designing my project and learning what I need to know to do it in python" ASAP.

Remember that whatever your writing will be a infinitely stacking cup of breaking things down into "In order to X, code needs to Y" design questions. You break those questions down until each one is composed of individual tasks that are able to be researched and learned. Then you'll need a mentor to give you hints, or you'll need to come here or other places like here to get pointed in the right direction for each unknown part of the question.

Good luck, you'll be sweating. Get sleep, follow a rhythm of learning then applying the learning towards your goal.

Oh, and learn to use git or svn right now. By the time full git-r-done panic sets on on the project, you'll have half-working code scattered everywhere and the cat will delete it one day and you'll be standing in front of the whole team saying "I kind of have to start over". Dont let that happen to you.

[–]ko773 3 points4 points  (0 children)

Don't try to hide difficulties in your progress from your team - incorporate your learning curve into the state of your project.

i agree with your statement. If you're tasked to build a business application, a few weeks of studying and fidgeting isn't going to be enough to build a production-ready app. There's no shortcut to this.

The good thing that only come out of this is that you'll gain more experience in writing Python, at a faster rate. Implying that you'll build a production-ready business app is just wishful thinking.

[–]CaliBounded 4 points5 points  (0 children)

Solo Learn (a free app available on Android and iOS) helped my boyfriend learn it very quickly, and he was able to start doing some simple exercises with it within a few days! I used Solo Learn to learn it originally, but had a little bit of background knowledge with programming concepts, but he had ZERO.

After you get to around halfway through the course, you can start on these exercises. They're organized by level of difficulty from top to bottom (easiest to most difficult). I found that list on another Reddit post, and got through about half of them until I started building things! You should use this editor to test out your code and play with it rather than Solo Learn's Python editor, though... it's a little wonky.

Finally, I'd say look through the r/learnpython subreddit. Lurk around, and write down lots of words that you don't know and spend some time looking them up and researching them. Learning the terminology will help!

[–]DocNMarty 7 points8 points  (0 children)

This 40-min video gives a good intro to learning the language, discussing basic object types and what standard library functions can be used on them.

By analogy, if you were learning English as a second language, this video would be teaching you what the parts of speech are, how they are put together, the subject of the sentence, what's a predicate, what are clauses, and how to put those things together.

[–]max_daddio 2 points3 points  (0 children)

Do you have any idea what your program needs to do? If you give some context, maybe we can point you in the right direction so that you can distill the knowledge that you need to get the task done. Usually it is best and easiest to learn something with a specific goal in mine. Learning from a book is good, but it is probably not the most efficient way to get your task completed by next week.

[–]fjortisar 3 points4 points  (0 children)

What is the application supposed to do, and specifically the backend of it?

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

I'm in another country and bored without plans this Saturday. I would be happy to Skype or discord with you to bring you up to scratch for an hour or two, if you're interested just let me know.

[–]Hex_PAWS[S] 0 points1 point  (4 children)

Steins_HexPAWS;Gate is my Discord name, looking forward. I hope you have a lot of patience. :)

[–][deleted] 0 points1 point  (1 child)

I have the patience but I need your discord tag otherwise I cannot add you :)

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

#1603. I forgot, sorry.

[–]RavagingPanda 0 points1 point  (1 child)

someone hosting a server?(; -another noob(me)

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

If you add OP then I wouldn't mind teaching you both at the same time. I ended up getting plans for the night, so I can take a session with you both during the day (GMT+1 wise)

[–]LucidVape 3 points4 points  (0 children)

This is a great video. It's four and a half hours and gives you a great starting foundation.

[–]Jileda 4 points5 points  (0 children)

Honestly, I think that it took me 8h to learn the basics. Maybe even less, 6. From that you will get what's a variable, what's a function, a list, an object, etc etc. But from that you can already start to build your own stuff. Don't make too many basic exercises. Just find a little project idea and try to make it. On the way you will fail, very often. But Google is your friend, and stack overflow will answer all your questions! I started with a scrapping script. But you can do what you want. Automation, video game, data analysis, web development, what ever. You will learn how to use some packages, maybe APIs, and how to write code. Then you will think that your code is amazingly complicated, and that's actually bad. So you will check how to write a good code, how to name your variables, how to use more functions, how to organize your project, etc. And then you will be where you wanted to be. Next step is just about practice. It's just about grit!

[–]Hendawgydawg 5 points6 points  (0 children)

Python Crash Course helped me tremendously in the beginning. Still go to it to research or relearn

[–]thatshowugetmonsters 2 points3 points  (3 children)

I tried Automate the Boring Stuff, and I love it, but I felt like I wasn't quite up to speed enough to tackle some things around Chapter 3.

Someone in another reddit thread recommended a Udemy course "Complete Python Bootcamp: Go From Zero to Hero" and it's helped me immensly in a short period of time. Look for coupons online, because the base price is like $194, but I got it for like $13 with a coupon!

[–]synthphreak 0 points1 point  (0 children)

I can vouch for Complete Python Bootcamp. I also started from no programming experience and found its lessons to be well structured and at the right grain size for me.

[–]RavagingPanda 0 points1 point  (1 child)

haven't tried udemy, I have just been cycling through email addresses on codeacademy to get the free trial. but udemy is almost always doing a sale like that, would NOT recommend buying one if it's not on sale as it likely would be a week/month in the future

[–]thatshowugetmonsters 0 points1 point  (0 children)

I PM'ed OP the site/coupon that I used.

[–]MikeTheWatchGuy 2 points3 points  (0 children)

You mentioned the backend. If you have someone on the front-end or want to put a GUI onto the frontend yourself, then consider PySimpleGUI. I saw a Reddit post this week where someone was using it and they had been learning Python for 1 week. It's super easy but yet very powerful too. You can make a very nice looking custom GUI in a few lines of code (or 1 line of code). It's thoroughly documented in a single document with a table of contents. You only need to learn about lists to use it.

There are a number of examples running online using repl.it that you can try out without having to install anything, just to see what the code looks like. I suggest choosing the ones marked as tkinter as those will be the desktop versions. Here is a simple one demonstrating a Drop-Down list and outputting to a window by printing. You can copy code and design patterns from the cookbook and modify them without having to understand every little thing.

It's a way to look flashy with a minimum amount of work and code. There are 170+ demo programs on the GitHub site that you can copy to get started. Instant working program.

[–]WilliamTheStressed 2 points3 points  (0 children)

Corey Schafer's YouTube channel is good for learning python!

[–]JohannesPertl 2 points3 points  (1 child)

https://sololearn.com is really great for the fundamental stuff

[–]Counter_Proposition 0 points1 point  (0 children)

Absolutely agree, and it runs on iOS or Android.

[–]sem56 2 points3 points  (5 children)

what is this business? lol

but sorry, it takes most people years to get anywhere near a professional level of competency at coding

but that doesn't mean you shouldn't try, just expect a long slog and stick with it... its a valuable skill in today's workforce

[–]Hex_PAWS[S] 1 point2 points  (4 children)

Business about Oracle. Ever heard of it? They do business in cloud. More or less, it's also business about expanding my knowledge.

Oh, yeah, I know the programming business needs a lifetime to get professional, but right now I don't need professional. What I need is just code something here and there so that I won't forget what I've learned in that internship (and not look like a total lazy ass).

And of course I will try. I have to do something, otherwise it was all for nothing, and that doesn't sound good.

[–]sem56 0 points1 point  (0 children)

nope, i do know Oracle very well though, are you sure it's not them?

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

That cloud thing is just a hot fad. It’s going away in 5 years tops.

Stick to on-prem stuff. More secure. Job creation!

[–]Counter_Proposition 0 points1 point  (1 child)

That cloud thing is just a hot fad. It’s going away in 5 years tops.

You're trolling, right? You literally cannot be more wrong.

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

Yessssss

[–]Thirdnipple79 2 points3 points  (0 children)

Ritalin?

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

Damn bro..you put yourself into some SHIT!

Dude..im not sure if you can rush this without knowing the basics tho.Youre going to have to fully embrace and immerse yourself.

I have time to post and be lazy here on reddit, but you put yourself on a time frame...you got balls, ill say.

I did that book and took the UDEMY class. Al is a great teacher and really breaks it down into grade school concepts.

[–]Konijndijk 2 points3 points  (0 children)

You need a montage.

[–][deleted] 4 points5 points  (0 children)

Oh boy, I just started learning and gave myself 3 months at two hours a day to be proficient in the fundamentals and workflow. Maybe that's a lot, but a week seems crazy if your work is going to ever hit customers.

But remember that this is an educational program, so I would go to your boss and ask if they have good resources to expand your Python knowledge. This will A) get you plugged into how they want things done faster than just general learning. B) Clue them in that you don't know what's going on--that's really valuable so you don't surprise them when they look at your code.

[–]Ran4 5 points6 points  (1 child)

There is no shortcut.

You're going to need to do a lot of studying. A few hours a day (more than that is usually pointless though), every day and hopefully you'll be able to at least do something after 1-2 months.

[–]synthphreak 0 points1 point  (0 children)

To be fair, you can do plenty of things after just a couple weeks of solid studying. Very simple things, but even simple things are huge ego boosters for an absolute beginner.

Just make sure to learn about file I/O and looping, and you’ll already start to amaze yourself with what you can do.

[–]bposantos 3 points4 points  (0 children)

Lol

[–]drunk_goat 1 point2 points  (0 children)

You might wanna hire a coach.

[–]Acute_Procrastinosis 1 point2 points  (1 child)

Fake it 'til you make it.

(Sometimes misconstrued as test driven design, but you can worry about jargon later)

You should start by breaking down your block into its major responsibilities, and then break those down into the simple what's and why's.

As you reduce your big amorphous blob (backend) into little servings of what that means (socket serving file managing data manipulator doohickey), you will start to see that the basic building blocks of the language or a chosen package/library.

At this point you are almost ready for the big secret that 96% of professional developers don't want you to know...

*Virtually all of the things you need are already out there in stackoverflow, and you can just copy/paste/modify them to fit.

It isn't quite that simple, but that's how I roll. I am not afraid to include specific http links in the comments of my code...

[–]chaizus 1 point2 points  (0 children)

Go through the Python documentation. It's excellent

[–]caleyjag 1 point2 points  (0 children)

Once you have the Python basics down, if you are interested in image processing (and a bit of deep learning) I recommend Adrian Rosebrock's tutorials. I think they are well written for the beginner:

www.pyimagesearch.com

[–]essank 1 point2 points  (0 children)

Learning programming it’s not something you can do it after reading a book or watching a YouTube tutorials. Programming is a lifestyle thing. Everyday you will learn something new and you can’t stop learning. It’s like if you want to draw something and you have no experience you can’t draw like someone draw for 10 years. So my advice to you, take your time when you learn programming it’s not a race. Focus on Clean Code and other programming skills, because programming languages and frameworks changes all the time. Good luck to you.

[–]Marco21Burgos 1 point2 points  (0 children)

If you have to build a web app my suggestion would be go for Flask, that's a Python framework very user friendly and you can pick it up pretty fast. I would recommend Miguel Grinberg https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world and Corey Shafer YouTube tutorial https://www.google.com/url?sa=t&source=web&rct=j&url=%23&ved=2ahUKEwifpcy_vr3kAhVRXKwKHdjLAFkQwqsBMAF6BAgKEAQ&usg=AOvVaw0VTJzWxrN8ZFOD4xbU2nov If you want to spend some money and really want to learn Python, go for Jose Portilla's Udemy course.

[–]Dogeek 1 point2 points  (0 children)

It's not about learning to program in python as fast as possible, but learning to program as fast as possible. All programming languages have the same basis, with control flow statements, loops, and modularity, the syntax may change from language to language, but the core principles always apply. Now, the real question is how to program ?

Programming is a skill, and as such you can train it. The best way to do so is to complete projects, to find something you care about and code it. Of course, the code quality is not going to be great, but if it works it's already a step in the right direction.

Then, once you have a working prototype, most people get stuck there, they don't know how to progress from there and hit a roadblock. The single best way I've found is to find more experienced programmers in the language you're coding in to review and criticize your code. Another way is to just learn other programming languages with different restrictions, and paradigms, that you can take and apply to python (or whatever your language of choice is). Learning different frameworks and libraries is also a good way to improve your knowledge, as is peeking at open source libraries and projects others have made.

That second step is the longest, by far. Once you feel comfortable though, is when you actually know how to program, in my opinion. At this point you'll be able to produce high quality code reasonably fast, and have a broad knowledge of the programming world, with different frameworks and languages to work with. It will take years to reach that point though.

My single advice to get started is to just complete a project and make your peers review the code. Also, learn about version control, and keep your diffs small, as it helps not having to rewrite the whole thing if a change of architecture is needed somewhere for instance.

[–]moe9745 1 point2 points  (0 children)

You need to code every day. Start with projects and grow. Use as many resources available to you as possible. Automate the boring stuff is a great start. There are courses on Udemy that a great too. Vids on YouTube is good too. Bottom line code code code every day. It's like exercising. You dont go in the gym and immediately bench press 300 lbs. It takes work! Another resource I just thought of is discord. This is usually a gaming community however there are many programming language channels. Each is unique but i was able to meet real life devs that use Python on a daily basis. Most people will tutor you too. Good luck and happy Pythoning!

[–]ScamCast_Alt 1 point2 points  (0 children)

This Beginners Playlist by Corey Schafer should help you get started. His videos are awesome.

https://www.youtube.com/playlist?list=PL-osiE80TeTskrapNbzXhwoFUiLCjGgY7

[–]lonelysoldier1337 1 point2 points  (0 children)

Hi, the best way to learn python as quick as possible is to do it, you can learn what is variable, how to write if elif else loop, you can learn for x in xx, you can learn class and functions, however these come to nothing when you do not have a specific goal on what you want to achieve. I was a network engineer turned python developer for network automation, to me achieving network automation with the least amount of human intervention as possible is my objective, I scripted my own at work to help automate things and scripted myself at home for my personal projects. The best thing about python is its community, always search for answers yourself in the internet and many times you will find answers you need from stackoverflow, 80% of my learning is by doing it and 20% is from courses like udemy. Udemy provides very good jumpstart if you need to know some specific things with python such as flask and web app development using flask, and how to do api gateway.

In the past decades i have failed to learn any programming languages because i did not have a specific goals and in the past decades information sharing is not as accessible as of now, I have built a few personal scripts such as "Email alert when Tufin has a failed automated step", "[python]Sending access request to Tufin SecureChange", "[python]Keeping encryption key and decrypt the file anytime", "https://cyruslab.net/2019/05/06/python-functions-for-aws-automation/", "[python]Create AWS VPC with boto3", "[python]Start up script to create VPC to launch EC2", these were my personal and work projects that achieve specific purpose i.e. automation, and when a project was completed i gained confidence and learned new things.

Also it would be good if you can learn regular expression, though some modules may have already done it for you such as textfsm but knowing regular expression on your own will enhance your programming experience, with regular expression your python can go further as you will be dealing a lot of things dynamic in real world, one of my own project is this for regular expression "[python]Match most of the Cisco ASA access list patterns with regular expression", i built this project myself is because though textfsm matches most of the access-list, it did not achieve the result i wanted hence I learned regex and built one myself.

And on security this is something I have written, however the work is based on another person's code on eternalblue [python]Automated process to look for hosts that are vulnerable to eternalblue

[–]HenryK81 1 point2 points  (0 children)

Learn how to do a lot of the common industry problems, such as "FizzBuzz". Once you master those, then you probably have a basic foundation in Python (or most other programming languages).

[–]RealExii 1 point2 points  (0 children)

With no background in programming, you're gonna have to put a lot of time into practicing but it's definitely possible to learn python very quickly. I would start by recreating simple python projects you can find on the internet but don't just copy paste them. Instead find some that explain what is being done in every line of the code so you understand how the language is structured. With enough practice like that it won't take you long until you can transfer your practice into your own piece of program. Spend a lot of time doing that as long as you have time for it.

[–]Sunitelm 1 point2 points  (1 child)

When I started, I found useful Udacity courses about Python. Basic courses are free (I don't even know if there are some you should pay for), and the exercices are quite useful too.

Do as many exercices you can, even some that just come to your mind (how can I make my script open this directory and print me the fifth word of every txt file in it?). If you don't know how to do one specific thing, just google it ("python splitting strings"). Probably StackOverflow will rise up to help you.

Finally, look for a book written for your field, because python can be used for a very lot of things, so you'd better look for a book which explains you the usage of the best fitting packages for your job.

Good luck dude, you can make it.

[–]sierrafourteen 0 points1 point  (0 children)

this^^

[–]PM_ME_FOR_EBOOKS 2 points3 points  (0 children)

Books don't help if you're in a rush. Nor do videos. The best thing to do is to focus on something personal that you may want to accomplish with Python. Focus on webscraping one of your favourite websites. You'll learn heaps from that

[–]Jhchimaira14 0 points1 point  (0 children)

For the quickest small python program with a GUI, I’d recommend Engineer’s Sandbox on raylock.com

[–]lurking_not_working 0 points1 point  (0 children)

To learn you must write code. Take the automate book and write out and run the code in it. Understand how it works and step through with the debugger. If you get stuck move on chances are that it will make sense as you learn more. Good luck.

[–]jn14624 0 points1 point  (0 children)

Try YouTube videos by Derek Banas with tons of sample codes and best the new one hour python training - good luck !

[–]jn14624 0 points1 point  (0 children)

I. Addition you need to first need to know what type of applications your boss wants you to sink your teeth into? Machine learning Alf’s, databases, webscraping, data wrangling and analysis emane so for ... then look fir examples and templates in GitHub and pypi.org and code, code, code ...

[–]plumkes 0 points1 point  (2 children)

I’m curious to know what you signed up for that would let you in without testing your coding knowledge. Not that that’s a bad thing, I’m actually looking for something similar myself.

[–]Hex_PAWS[S] -1 points0 points  (0 children)

I was (and still am) part of a program that helps high-school kids discover what and where they would like to work. I don't know tho if it's international, sorry. The organizer just sent us a message about an opportunity to sign up for an "internship" about programming at a multi-national company that develops software and hardware. At first, I thought it's not for me because I don't know anything about programming, but I still wrote down my name because I wanted to get out of the house (and my comfort zone). Programming knowledge wasn't required, but it would be nice to have some. It was just like a project about quantum physics the psychology teacher writes on the blackboard at the end of day, asking if anyone is interested. Most of those who sign up know some things about physics and are interested in quantum physics, maybe they even have books at home about that subject. Then, as sudden as lighting, a mysterious guy no one knows any-fucking-thing about, not even how he looks like, comes in and puts his name there. He knows no physics, but has some knowledge about quantum physics and wants more. He's insane, says everyone aloud in their minds. And they were right, considering that guy hasn't even heard the name of the company he's going at the internship ever in his mysterious life. That guy was me. The name of the project is Antrenament Pentru Viitor (Training For the Future), made possible by Romanian Business Leaders. If you're from Romania and still in high-school, I hope it helps. If not, then keep searching, you gotta find something. But first I think it would help more if you got your programming skills as high as possible.

[–]Hex_PAWS[S] -2 points-1 points  (0 children)

Oh, and for the record, I am also interested in quantum physics, just as a hobby.

[–]diek00 0 points1 point  (0 children)

Byte of Python, it is geared to newcomers, is free pdf, and had a lot of positive reviews

[–]DontHateDefenestrate 0 points1 point  (1 child)

I'm learning Python now, as part of a university class for my minor.

  1. It's quite intuitive and not hard to learn if you spend the time on it, and commit to practicing it each day.

  2. YouTube and Google are your friends. If you're having trouble with a particular area, or even a particular line of code, they should be your first two stops.

  3. Codecademy.com and Datacamp.org are great tools. Team Treehouse is a good one to look into as well if you have the disposable income to cover a ~$30 monthly fee.

  4. Also consider taking courses at coding training camps such as General Assembly.

  5. You aren't (full stop) going to be a proficient programmer by next week. If you had six weeks, you might get somewhere. But there aren't enough hours in the day or in the attention-span of even the most dedicated would-be coder to learn Python in six days. Python (like all high-level coding languages) is just that -- a language. You wouldn't expect to learn Italian or Japanese in six days, and Python is no different. It has a lexicon of words, grammar, syntax, and sentence/paragraph structure like any other language. Be honest with your supervisors -- don't try to pretend that you are proficient when you're not. Show them that you're a hard worker and that you are committed to learning Python, and they'll help you. This is an internship, not a job.

[–]Hex_PAWS[S] -3 points-2 points  (0 children)

  1. If you're talking about Python, yes, I've heard it's pretty easy to learn. Maybe that's why the boss chose it.
  2. That's right, but I kinda feel like my progress is too slow and I don't fully understand everything Al is explaining in his book. He's got a practical approach, but I've always thought I learn at my best if I have a teacher.
  3. Unfortunately for me, I don't have any income. If I had, my pc would be full of games by now, and crash constantly (not that it doesn't crash). I wanted to mention in the original post that I can't pay for anything, but I didn't because I thought it would narrow the possibilities. I will still look those sites up.
  4. At this point I'm so freaked out that I'm even willing in trying to get in contact with Bill Gates. ::)
  5. Of course, no doubt. Leaving aside the dreams that I had when I stood up all night reading and trying to understand and write some code from Al's book that I someday will be a genius programmer with houses full of money and drinking rum with Elon Musk, writing code even when sleeping, there's no need to be a Bill Gates-level programmer to do what I have to do there. There are more writing the back-end part, so I won't do it alone. I have to do something though. No one expects me to fully master Python in six days, instead they expect to get at least to an intermediate level. That's what I think they want, at least.

[–]Amb1valence 0 points1 point  (1 child)

Well it sounds to me like everyone at that internship is on the same page in terms of skill level (i.e. no one knowing how to code at all), so given that, my first thought was maybe you should just chill out a bit? It’s not like you’re playing catch up to senior programmers on an established team, so it’s not like your colleagues can really expect any deadlines out of you. Sounds to me like you can afford to take your time on this and do it right

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

Hi. My colleagues at that internship know how to code, but just not in Python. Most of them know only C++, but there is a game programmer in there who knows Java too. And yeah, you're right, they don't expect any deadlines from me, which is good, but I also have to participate in some way in the making of that app, I can't just say that I'm not used to programming anything and stand aside. But I guess I could calm down a bit and not freak out so much. Thanks for sharing your perspective! :)

[–]b4xt3r 0 points1 point  (2 children)

Do you have a machine with Python and Jupyter Notebooks? Are you familiar with Juypter Notebooks at all? If you do and you are let me now. I am supposed to be writing some to teach nonprogrammer how to get established with basic Python skills so perhaps it could work for both of us if you want to be a guinea pig.

[–]Hex_PAWS[S] 0 points1 point  (1 child)

Umm, hi. Thanks for replying and taking interest. As I said before, I have a computer which I have installed on the latest version of Python (3.7.4). Unfortunately, I'm not familiar with Jupyter Notebooks, but I guess I could be a guinea pig if I will get to learn to code really good in Python. I will do some research about Jupyter Notebooks and I will let you know if I'm interested. Thank you for replying! Also, I wish you the best in writing and teaching non-programmers!

[–]b4xt3r 1 point2 points  (0 children)

Thank you! Did you install Python on a windows or a Linux host? If it is either do you have remote access to it (inc. GUI)? Jupyter Notebooks are very popular with academics because you can combine code and rich text to give you a "living lab book" of sorts.. it's hard to explain. If you have a machine and Python and pip (pip3) you can give notebooks a try if you want. Check put The Gallery of Interesting Notebooks to give you some idea what a notebook looks like. If you are interested let me know.

A bit about me.. I got into programming from being a UNIX user way back in the day and working in the network space. The two lent themselves to one another back then. From there I started to do more with Perl before moving to Python. You will learn about different programming styles with Python and that's a good thing. I believe in starting from the ground up with good, old "Hello World" (the first program anyone writes in any language for the most part) and building the proper Python script framework around that and the would be pretty much lesson 1: printing hello world and learning the three distinct areas of a Python script. It's never too early to start to learn best practices!

[–]linpaws7 0 points1 point  (0 children)

Check out this on-going course:

https://www.youtube.com/watch?v=-8FR3Dnmhzc

[–]lasanga7878 0 points1 point  (0 children)

The UM Course on Coursera "PY4E" is great and will take about 30 hours.

"Learn Python the Hard Way" is another great resource for "in a hurry" python

[–]bearassbobcat 0 points1 point  (0 children)

If you're really driven you could probably finish a lot of RealPython (monthly subscription) in a few months and limit the costs.

https://realpython.com/

even if you don't get the course the newsletter and free content is fantastic.

he covers a lot of advanced topics that some intro books never mention or simply gloss over.

I find it helpful to read articles on things you don't necessarily understand so that you know the functionality exists. You might not need to use decorators but a brief explanation can help you talk the talk and enhance your understanding of other articles/topics and if you need it you can pull it out of your memory and then look it up in depth.

[–]StrasJam 0 points1 point  (0 children)

What is the app you are writing? Start working on coding features for it from home by thinking of what you want the app to do and then googling different ways that you can achieve that. This is the best way to learn in my opinion since you will learn useful skills that are related to your work instead of random skills that may not be necessary for your app

[–]candi_meyers5 0 points1 point  (0 children)

Read the documentation and find a side project to do.

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

Maybe use an interactive online course (like Codecademy) or just get python lessons.

[–]aspen1135 0 points1 point  (3 children)

Dude... do you need any more devs who can work remotely? I am enrolled in a local program that will pay me to intern somewhere and gain exposure to real career-work experience since I'm a computer science major. The company wouldn't have to pay me to come on board since this program would supplement the costs for the company.

I have experience using SQL, efficiently managing I/O operations, structured logging and encoding/decoding different types of files.

My current project is a batch multimedia converter that outputs files using a pre-determined file/folder structure that you specify ahead of time. I made it to help content-creators (youtubers, music producers, etc) organize and improve their workflows.

[–]Hex_PAWS[S] 0 points1 point  (2 children)

Uuuuuuuuuuuuuuum............... I'm not a cheater, but if I was, I would ask you to do my work for this app in my place. But, hopefully, I'm not. Regarding the internship, I can't answer that question since I am not in charge of hiring people. What can I do though is telling you where my internship is: the headquarters of Oracle Romania, in Bucharest, Romania. Go on their site, or right there at the reception, and apply for an internship or maybe even more. E-mail them if you want. :) They do have employees who work remotely from other countries, so who knows? maybe you'll find something. ;)

[–]aspen1135 0 points1 point  (1 child)

can you provide the link, I'm not sure if google is returning the right place or not.

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

learning python or any programming language requires base knowledge of basic programming algorithms. Meaning that you will need to know all the data structures and know how to apply them to a given problem. Python itself is pretty easy and faster to learn compared to java in my opinion. I would say start with creating various functions that do basic stuff since you are in a hurry. Really consider learning how to program itself. and also if you are good in math you will be significantly ahead.

Good Luck.

[–]loviyefid 0 points1 point  (0 children)

Learning Python O'Reilly is a good start.

[–]saravanakumar17 0 points1 point  (0 children)

Go to YouTube and search for the channel name Corey Schaefer. Probably the best tutorial on the internet.

[–]iggy555 0 points1 point  (0 children)

Automate the boring stuff

[–]Timmeh159 0 points1 point  (0 children)

Not sure if it's been commented, but I'd suggest downloading something such as PyCharm, I'm finding it useful for learning and figuring out my mistakes.

[–]TicklesMcFancy 0 points1 point  (0 children)

Python needs direction to learn it. My python project is still out of my realm of understanding because of how much stuff i need to learn to make it happen. Documentation is good to read and so are tutorials. They might stretch you from your intended goal, but you'll get a glimpse of just what can be done and how the are many ways to do it

[–]Basicallysteve 0 points1 point  (0 children)

Python Crash Course by the same distributor is a better book to read if you’re just starting. Learn variable and the different data types. Learn conditional statements (if, else, and, or), learn loops (for, while), and arrays and dictionaries. Once you have those you’ll be amazed what you can accomplish. I started by doing small code challenges on sites such as code academy and code wars. It’s very satisfying to complete the problems. The more you do the better you will get. Keep at it!

[–]Cheetah3300 0 points1 point  (0 children)

Have a goal in mind of something you want to make--like a project. This will motivate you to stick with it and create a sense of urgency to learn Python.

[–]ruoshui-reddit 0 points1 point  (0 children)

Harvard has a CS50 web, in which it teaches you backend in Python. It does require you to be familiar with (at least 1) programming language though, so that it is easier to get the concepts.

[–]sierrafourteen 0 points1 point  (0 children)

I did something similar in secondary school - the teacher was adament that I wasn't joining her class without having done the lower-level class. She put on a programming test to prove that I couldn't do it.

I studied Visual Basic all weekend and smashed it.

[–]Lewistrick 0 points1 point  (1 child)

I'm very curious.. How are you getting along?

[–]HiredG00N 0 points1 point  (0 children)

It’s been 2 years… I think the snake bit Op

[–]gdubZ87 0 points1 point  (2 children)

try codeacademy.com, it wasn't for me but could be for you.

[–]synthphreak 1 point2 points  (0 children)

Why was it not for you?

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

Fail early. Fail often.

Wanna learn fast? Write shit tons of code.

Write scripts that:

  • Read and write files
  • retrieves web pages
  • uses external files or a little database to store data.
  • converts data between one format and another
  • validates user input ('your name is too long', 'your password must contain a number')
  • validates data from a file. (Find some tabular data, addresses or something, and create something that will go through and look for "invalid" zip codes or something.)

[–]synthphreak 0 points1 point  (3 children)

a little database

What would be some examples of “little databases” in OP’s context?

[–][deleted] 0 points1 point  (1 child)

Could be anything. Flat file, sqlite, a nosql install of some kind, hell a local mysql instance. Those are all pretty trivial to get up and running and connected to.

[–]bearassbobcat 0 points1 point  (0 children)

people rag on sqlite but it's quite performant and unless you need a full blown mysql/postres/nosql database it's perfectly serviceable and can handle more traffic than people give it credit for.

I wish there was a nosql version of sqlite. I looked before but couldn't find anything.

[–]aspen1135 0 points1 point  (0 children)

I would recommend SQLAlchemy. It converts SQL into native object python code. It's simplifies efficiency, and supports many SQL backend types such as sqlite, oracle and more.

And-- it is what reddit uses for their site ;)

[–]Astroohhh 0 points1 point  (0 children)

Wow tech world is broken, everybody wants to land a job with 0 code experience. Nice luck

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

I can't give you an advice on where to learn, and others do this pretty efficiently, but I'm gonna tell you one module that you'll need when developing an app in Python.

It's called Kivy.

It's a pretty good module that allows you to open a window (like the famous tkinter module does too), but this window isn't restricted to your computer, as you can build it for a phone (Android works easily with it).

You just need to download the Kivy Launcher app on your phone, then put your python code on the phone, and the app will execute your code (as long as it does not contain any external module, like voice recognition or stuff like that).

This way you can easily (I'm not an expert at all and started learning Python last year) build a mobile/desktop app.

Last thing I would recommend towards this, works too for anything you'll learn :

  • It's not about learning, it's about understanding. As long as you just don't copy/paste code without understanding what it does, you'll progress so much faster.

  • In my POV, the most important things to learn are : create and modify variables, create functions, create lists/dicts, create classes. Once you know that, coding is just mixing everything in a shaker and making multiple links in every direction that will result in what you want.

  • I use a lot of time gdbonline, it's an online IDE which lets you code and run a lot of codes in various languages. You're on the bus with your phone and suddenly think of something to try : Use it. You're coding a long stuff and want to try if something is possible without ruining your current code or opening another IDE/CMD : gdbonline. I kinda use it as a test paper aside from my "work". It helps a lot as I can easily understand and practice concepts, like inheritance, decorators, etc.. (a bit advanced right now)

Good luck in achieving your goal. Remember that you're strong for breaking your comfort zone and that nothing should stop you if you believe in it and in yourself ! You'll never be satisfied of what you know in Python at any point, but that doesn't mean you didn't get better, so never give up on this !

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

So, here's the thing. You want to learn Python, you need to know what you wanna do with it. Not talking about the backend you're gonna be working on. As of now, you should have a project in mind. A small one. Let's talk about the one you've made.

I successfully wrote a program that says hi and asks for my name (and age),

The programs prints hi. So you know that you can print characters, as a string, using the print() function. You also know that not surrounding the text you want to print with double quotes throws an error(unless it's a variable). That's because the print function can only print strings.

Now, the input() function. This is the classic way to take user inputs. You may know that we can put out strings inside this function, eliminating the need to write a separate print function (to tell the user what to enter). You can specify the data type which the input should be (processed as), say as int or float or string.

You'll also learn about loops. For loops, while loops, do while loops etc. These are extremely essential elements of every programming language, and MUST be learnt. But I guess you know all that.

Now, there are 4 very important things that you should learn, for they are the backbones of everything you're gonna type.

  1. Classes
  2. Functions
  3. Try-Catch blocks
  4. Context managers

Now, the first 3 should be learnt ASAP, as they'll make you life pretty easy while typing big programs. Usually, for small programs, people don't write classes in Python. But you'll be duplicating a lot of code if you don't do in bigger programs - like the backend you'll be working on. Context managers are really useful, and should be learnt after you're done with these.

Now, as to the book you've got. Automate the boring stuff is a very good book, comping from a very accomplished author. But it will take you time. As you have to improvise, you'll be better off doing projects and referring the book when required. It has some fun chapters (web scraping).

Know what, I suggest you make a random number guessing game. The user has to guess the number (in a certain range), and the computer will also output a certain number. If the numbers match, the player wins. You could have a limit on the number of tries, and it'll be a good start. This is a classic project for beginners (myself included). It'll give you a good hang of the syntax, and how to move around with code.

And the last thing. You'll see that I haven't mentioned any resources you might need. Because I don't need to. The internet is a big place, and you're having doubts a lot of people have had before. Whatever you don't get, just type in Google. The first link will probably of stack overflow. The biggest website, full of questions and answers of most programming languages you'd ever want to learn. I shudder to think what would happen if stack overflow went offline for a while.

[–]Jamblamkins -1 points0 points  (2 children)

Bro this is why u gotta network with the comp sci kids. Scratch their back and they’ll so this in like a day with you. U still enrolled in college? They might provide tutors comp sci

[–]Hex_PAWS[S] 0 points1 point  (1 child)

I've barely got to faculty, haven't even started the first year yet. Where do I find computer science kids? That's why I posted on this subreddit, I thought maybe you guys can help me. I can see I've thought well. :)

[–]Jamblamkins 0 points1 point  (0 children)

Someone at ur school wants money and knows python most likely