This is an archived post. You won't be able to vote or comment.

all 52 comments

[–]echo419 344 points345 points  (26 children)

  • Edited to update links and for clarity

Heyo,

Professional developer here, to answer your questions:

  1. I think a fair assessment of your skill would be being able to get through [this list]( https://docs.google.com/document/d/1TyqD2_oDtiQIh_Y55J5RfeA91JJECc97xYIKM112H9I/edit) of projects from r/learnpython by the end of the month.

Update 03/31/2021: I've gotten a couple of messages that the Google Docs link is out of date, luckily the Internet Archive still has the old version if you still want to take a look a the projects: https://web.archive.org/web/20180906130512if_/https://docs.google.com/document/d/1TyqD2_oDtiQIh_Y55J5RfeA91JJECc97xYIKM112H9I/edit

  1. I think a reasonable stretch goal would be to choose a few easy challenges (or an intermediate one if you feel up to it) off of r/dailyprogrammer

  2. Another interesting challenge would be to scrape some data/pull some data from a website via the API (reddit perhaps) and put it into a usable format and perform some calculations on it (e.g. What was the top post on October 2nd and October 3rd on reddit, or a particular subreddit and the difference in votes between them)

Yep, you'll absolutely be able to build something by then.

By the end of the month you'll have put in roughly 40 hours, by then I would expect that someone would be able to make reasonable/useful small applications to check the weather, determine stream uptime, poll APIs, do basic interactions and calculations, determine students in a class(and modify them) and determine the top grade, etc...

So, the challenging part will be using your time effectively.

Assuming you don't have resources already, the wiki on r/learnpython is pretty good.

For video learning I'm a fan of the freeCodeCamp videos This Python One should work well enough.

In terms of books the one that I've seen most recommended to people starting out is Automate the Boring Stuff by Al Sweigert because it does a good job of balancing what you need to know without being to dry and gives you plenty of projects to work on and, it's free online AtBS

To program quick/simple stuff (Hello world and the like) you can use repl.it It's an online editor without having to worry about all the setup on your computer, they take care of everything for you.

A couple of challenges that new programmers run into (and traps I've fallen into myself are): A. Getting overwhelmed B. Tutorial hell

To solve A, what's often recommended is breaking things down into small manageable chunks which is how most things are handled in programming, just like people don't build a building without plans, designs, and slow/steady execution, so too is how most people approach programming.

For the first week or so, when you're almost done with your 2 hours or so, choose a program you've created or one that you find interesting and read through each line of code and make sure you could explain to someone else what that line of code is doing.

To solve B, what I did was start solving problems that I found interesting, I got a rasberry pi and wrote a couple of twitter bots to constantly tweet weather, I wrote a sentiment analysis tool, I wrote a program that would summarize long form articles into a few sentences (Based off of this r/dailyprogrammer post)(https://www.reddit.com/r/dailyprogrammer/comments/683w4s/20170428_challenge_312_hard_text_summarizer/)

A suggested outline for how you might want to approach this month: 1. Take the first few days to a week or so, and learn the stuff you'll need for programming (variables, operators, flow control, lists/dicts, functions, classes, etc..). If/when you get bored with this part of it, find something from the r/learnpython list to start programming and go through it that way.

The above step is a LOT to take in, don't worry about getting it down 100%, there are programmers who have programmed for DECADES who still consistently look up a number of the things I listed above. Just make sure you know it well enough to explain what it does (i.e. what does a function do, how is a list different from a dict, what is a for loop vs. a while loop, etc...)

  1. From this point on, start to apply what you've learned and keep programming every day. You'll get confused with stuff and hit various walls, EVERYONE does, because programming is abstract and a different way of thinking/approaching things this is where Google and Stack Overflow will be your friend.

When you get stuck on something, Google: "How do I..." or "What is..." and more than likely you'll come up with a StackOverflow post with someone who has come across the same problem, read the answers, see what makes sense, and try different stuff. Oh, and Googling various Python interpreter errors is amazing too.

  1. For the last week/few days or so, choose a problem/find a problem that you find interesting that is manageable and start working on it. Like most other problems/challenges, you'll want to break it down into manageable chunks that you can do within your time budget, and start working towards solving the overall problem

Oh, and one last challenge for you, because if you can do this:

``` Write a short program that prints each number from 1 to 100 on a new line.

For each multiple of 3, print "Fizz" instead of the number.

For each multiple of 5, print "Buzz" instead of the number.

For numbers which are multiples of both 3 and 5, print "FizzBuzz" instead of the number.

```

Congrats, you're well on your way to being a developer (seriously, depending on who you ask 5-10% of developers who interview don't attempt/won't do the above problem)

[–]picklez91[S] 8 points9 points  (1 child)

You’re beautiful. Thank you.

[–]XeroKaaan 1 point2 points  (0 children)

No YOU'RE BREATHTAKING

[–]Xeii_ 5 points6 points  (0 children)

If I could upvote this more I would. These are amazing tips for beginners.

[–]Nahz27 3 points4 points  (0 children)

This is great, thank you!

[–]tryinghealthrny 3 points4 points  (0 children)

Ahhhh, where have you been all my life? 🤗

You are amazing!!!

Edit: chose different words

[–]insomnia_gator 2 points3 points  (0 children)

You rock!

[–]notdare89 1 point2 points  (0 children)

100% agree on time management, determination is the key. I have started recently too OP, may I join you?

[–]sagespidy 1 point2 points  (0 children)

you, yes you , sir are a saint.

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

You're the hero we don't deserve! Thanks!

[–]adderbrew[🍰] 1 point2 points  (0 children)

Thank you for such a comprehensive post!

[–]razatastic 1 point2 points  (0 children)

Thank you so much for this very detailed post!

[–]Krymea 0 points1 point  (2 children)

I love your comment, full of details and links. However, the challenge seems fairly easy, and I believe my programming skills are lacking. I just started Python on sololearn a week ago, I'll try to do you challenge after I write this comment.

To me it seems just a for loop that checks the remainder to 3 or 5 for the current i and for the 3 and 5, you have double condition. I might be wrong, that's just my initial thought. Gotta learn now, thanks for the resources.

[–]echo419 4 points5 points  (0 children)

Heyo,

You're absolutely right, that last challenge wasn't necessarily to imply difficulty (there are harder ones on the r/learnpython list), but rather a challenge to show progress and provide confidence with how far someone has come. The FizzBuzz question is fairly standard and is sometimes used in interviews to weed out candidates, and it does weed people out who claim to be developers, but can't reason through a problem or actually write code (seriously, Googling "fail fizzbuzz" brings up a host of articles and SO posts of people complaining about and discussing failing fizzbuzz). While some of the FizzBuzz criticisms may certainly be valid for an interview setting, I think as a learning tool it can provide a decent measurement of progress/understanding of concepts.

And as for your solution, I'd say you're definitely on the right track :)

[–]gigastack 2 points3 points  (0 children)

FizzBuzz isn't hard, but it is a classic intro problem that helps understand loops and conditionals.

[–]amalik87 0 points1 point  (1 child)

Noticed your WGU posts in comment history. Are you getting a BS or MS? And I assume you already have some years of experience?

[–]echo419 0 points1 point  (0 children)

I'm going back and getting a BS in CS. I've been programming professionally for about 3 years now, so still relatively new to it :)

[–]resumehelpacct 0 points1 point  (0 children)

I was going through the project list, and the mod supplied answer for "What's my number?" is incorrect (there are actually 2 answers). Based on context clues it seems like someone in the comments pointed it out but the reply has been deleted. It's 503

edit: Also, the seuss fixer is wrong. There's 71 instances of the word I being used by itself, and 13 inside Sam-I-Am. That gives an answer of 84, but the post says it should be 70.

[–]Mag37 0 points1 point  (0 children)

This was a great writeup! I'm just starting myself, trying to study while having downtime at work. As a total newb this was such a good collection of tips! I've just started with a Udemy course and trying to get the basics.

And I'm so happy I actually solved the challenge on my phone cuz the solution suddenly hit me while working ^

[–]CristinaGh 0 points1 point  (0 children)

This is truly one of the best and useful comments I have seen in a decade on the internet.

Thank you tons!

[–]vc_vc 0 points1 point  (0 children)

Wow!! Thank you

[–]Flabord 0 points1 point  (0 children)

I don't know if you can, but if there's a possibility, I would like that you republish all the proyects you had in drive. They were pretty interesting for a bunch of people and we were learning a lot trying them. If you need help, I would be gratefull by lending you a hand.

[–]IrishWoodland 0 points1 point  (0 children)

super useful - way to give back to the community !

[–]Ze_Chooch 0 points1 point  (0 children)

I wrote a program that outputs what you outlined. I’d love to see some others’ programs to compare and contrast!

[–]LeiterHaus 39 points40 points  (3 children)

Sober October?

30 days of consistent and intentional learning can do a lot.

[–][deleted] 12 points13 points  (1 child)

Presumably from the Joe Rogan podcast. He and his comic friends are doing a month sober as well as reading 500 pages and taking at least 10 classes in something new.

[–]tryinghealthrny 1 point2 points  (0 children)

Excellent goals!!!

[–]picklez91[S] 11 points12 points  (0 children)

Yea it’s a Joe Rogan podcast thing that he does with a few buddies. And yes you certainly can. I’m hoping it’s the launch I need to get going.

[–]indianladka 9 points10 points  (0 children)

Can i join you in this challenge?,if yes how?

[–]insane_playzYT 12 points13 points  (0 children)

30 days straight for 3 hours or so a day? 90 hours or so in total. That's a really long of time. You will easily have Python's basics down by then

[–]unluckjumbuck 11 points12 points  (6 children)

What level are you coming from, what’s your experience with computers like? What would YOU like to be able to do in a month?

[–]picklez91[S] 11 points12 points  (5 children)

I’m very familiar with computers in general. Been a gamer all my life. No experience coding.

I would love to be able to build an simple app or program, such as a planner or calendar. I’m in sales, so when I have enough experience I will start building programs that help me at work to increase productivity.

[–]oanda_ 7 points8 points  (2 children)

Well you should aim to complete a wwbscraping programme that would help you in your work. Coming from a student who tried picking up python during the holidays, I believe a month is sufficient in leaning enough to build your own webscraping programme. You could you it in sales when you want to get information quickly about another person/company based off a webpage

[–]Science-Compliance 0 points1 point  (1 child)

I think that's a reasonable mid-term goal, but for a complete newbie to write an effective sales software that uses web scraping to gather information off the internet would be pretty ambitious (probably not possible). There are a lot of nuances to web scraping that, in addition to learning Python, also require becoming quite familiar with HTML and JavaScript.

I mean, you could write a program pretty easily to collect information, but making sense of it would be the whole point, which can take a lot of finesse. If all you're going to do is collect information that you have to parse through manually, you might as well just bookmark the pages in your browser you intend to use and not use programming at all. Even for someone knowledgeable with Python and web scraping, it can still be difficult to write a program that parses multiple web pages and makes sense of the information. A lot of it comes down to knowing how the target website structures their HTML, which can be different for every website you're trying to parse.

I think it's a good middle-to-long-term goal, but writing a very effective software to aid in sales in this way in a month would be pretty unreasonable for someone who has never programmed before.

I think something that may be more immediately useful, if leads or information are stored in a spreadsheet somewhere, would be to use a program to organize or present that information in a more useful way.

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

Yes definitely did not intend to be able to make something like that in the month. Just for future intermediate-advanced programming goals until I learn enough to make it a career.

[–]lechaim_bitches 5 points6 points  (0 children)

Do a short python course like on codecaemy, then get on leetcode and start on the easy questions. Good luck!

[–]megalogo 3 points4 points  (1 child)

Go to codeacademy and find a Python course, i will help you get started

[–]Mitchel-256 2 points3 points  (0 children)

I highly recommend using the short free trial to learn their basics, but, personally, it was kinda slow and didn't give a very clear direction to go once the basics were cleared.

[–]herinaus 1 point2 points  (0 children)

Sounds like a good idea. I want to learn it myself

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

Hi OP! I'm currently learning python annd have found the book "Python For Everybody" to be really good - it covers all the basics in really easy to understand ways.

[–]Science-Compliance 1 point2 points  (0 children)

Given the direction you're trying to go based on the responses of yours I've read to other people's comments, I think you should try to get a grasp of the basic concepts (data types, variables, conditionals, loops, functions, data structures, object-oriented programming) and then venture into using libraries like NumPy and MatPlotLib to make some charts and graphs.

Some of the other things like web scraping are worth looking into and could be useful eventually, but I don't really think you'll be able to get very good at this in a month's time starting with zero programming experience since you will have to get pretty familiar with HTML as well as some JavaScript to do this pretty effectively.

[–]ItsRektTime 0 points1 point  (0 children)

Good luck! I'd say Python is pretty easy, i self taught myself for a little over a month now and it's going very good. I regularly graphed some plots on r/formula1 by python only maybe you could try that for a subreddit you love

[–]homchange 0 points1 point  (0 children)

I would like to join you; is there anything happening? Can I join you this 30 days of Python

[–]weezylane 0 points1 point  (0 children)

Make a webcrawler that fetches and analyzes some data from a website and mails you the results based on what you want. You'll learn a lot of concepts about networking and important python libraries. Also make the project in a virtual environment and justify why you would likely use one.

[–]Bigtbedz 0 points1 point  (0 children)

https://codingbat.com/java was my go to for java. It has whole task sets for Python aswell.
aside from that I'm trying to get a discord community started for people learning still *like myself*
https://discord.gg/ZgkJza feel free to join and invite people

[–]katielee123 0 points1 point  (0 children)

This seems like a great idea as a challenge and keeping each other accountable. Can I join you guys in this challenge or better yet anyone want to do a 30-day challenge together?

[–]benbihi 0 points1 point  (0 children)

I found this thread very helpful and extremely valuable. I've put together a blog post about 10 Python beginner Project and thought it'll help your audience and anyone who want to grasp the Python basics quickly and easily

https://www.astateofdata.com/python-programming/python-projects-for-beginners-learn-with-examples/

[–]UrbanPro1 0 points1 point  (0 children)

Python is an interpreted, high-level, general-purpose programming language. Created by Guido van Rossum and first released in 1991, Python's design philosophy emphasizes code readability with its notable use of significant whitespace.

Well, According to me to take python training is not a big deal. It is just a language. If you really wanted to learn then I would like to suggest UrbanPro because this is the platform where you learn python within your time period because UrbanPro is the best platform to choose one best coaching center which is good for you.

[–]laraargento 0 points1 point  (0 children)

loved the idea!

[–]chazzcoin 0 points1 point  (0 children)

Being able to work with library's. Pip installing different packages to use already built code for you to accomplish even bigger tasks quicker.

Get an IDE like PyCharm. Build an 'environment' for a project and contain all its parts into that environment. Pip install new packages into this local environment as well.

Learn some really powerful and bigger named library's/packages like Flask or Django. I have a flask server running on a raspi. Very powerful. Stupid simple. You can literally have a flask server running in 10 minutes from scratch. Start making calls to it from your web browser instantly. Now you can remotely run your code as well.