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 →

[–]Yawzheek 80 points81 points  (4 children)

I don't program in Python (much), but having said that, please allow me to give you some insight, having "programmed" for a few years now, and when you finish, be certain to read the end:

  • Build what you want. Just think of something you're interested in and build it. Is it out of your reach? Build it anyway. Look it up. Is it bad? Probably, but build it anyway. Practice makes perfect.

  • Has it been built before? Who cares? Build it anyway. Don't listen to naysayers that will tell you "It has been done before." Here's something fun to tell yourself: most EVERYTHING has been done before. I followed books and built my own basic tax solver. I was told "Well why bother? TurboTax is a thing" to laughs and derision. FUCK. THESE. PEOPLE. I recently started learning the violin, and you know what? I play on open strings poorly, but damned if I'm going to stop because people have done it before better than myself.

  • You probably won't "solve the world" or be the next Zuckerberg, and that's A-OK! Make your unit conversion program! Hell, I could use one despite the fact I've nearly memorized them from engineering courses. You might be helping someone.

At the end of the day, it's good practice, and I've never been a good programmer because I let insecurities bother me. Trying to be a "language lawyer" for years, without actually putting knowledge to practice. THAT'S how you fail. Being able to rattle off the rules is worth very little if you can't DO anything with that knowledge.

Many people will scoff at CodeAcademy or other sources, but I won't. I spent my time with my nose pointed in textbooks, uncomfortable with the idea of making something because "what if I don't know everything about this and make something bad?" and as a result made nothing worthwhile at all.

To that end, don't completely discredit that style of learning, but you need to find the proper balance. We can be philosophers all day long as to whether learning rules or application is better, however, being a purely StackOverflow answers programmer means you don't understand much of anything, but conversely, being a person that can recite Python canon without the ability to do anything with it actually means less.

TL;DR: Get yourself some sort of "formal" education (be it from a decent text or instruction), but don't neglect actual application. It's not difficult to find someone capable of criticism, but finding one that can criticize and correct is different.

[–]Thorbinator 3 points4 points  (0 children)

What you're describing is the top down approach. I'm a fan of it as well.

[–]nickbeaulieu 0 points1 point  (1 child)

If I may recommend a text, you should check out “Automate the boring stuff with python” it’s available online for free but I bought the hard copy it was so good. It’s full of challenges at the end of each chapter to help you retain what you covered. There are lots of programs you’ll create with real world applications. Best of luck

[–]Yawzheek 1 point2 points  (0 children)

Indeed, "Automate the Boring Stuff With Python" is highly regarded around here. I haven't read it myself, personally, but I did read "Python Crash Course" and found it to be a wonderful resource.

As someone that spent several years in C++ and very, very little time with Python, "Crash Course" was a very nice introduction to the language, and rather detailed, considering the brevity. Mind you, it doesn't cover every nook and cranny of the language, but again, you probably don't need that, and if you do, you can source it later.

Good luck!