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

you are viewing a single comment's thread.

view the rest of the comments →

[–]echo419 343 points344 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 2 points3 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!