Python Master Thesis
The steps to becoming a Master Pythonista
This is just off the cuff (not very refined), but a sort of personal go-by on the steps towards becoming a Master Python Programmer.
- Hello World!
- Get a working installation of Python.
- Basic Syntax Mastery
- Tuples, List, Dictionaries
- Know them. Live them. Love them.
- List Comprehensions
- Generators, too
- This IS Python.
- Well, a very important part of it.
- Almost as versatile as regular expressions.
- Pick one. Learn one. I don't care which.
- In the order I would choose (off the cuff), but if you're seriously looking to this list for advice, load Anaconda and use Spyder (loaded with Anaconda) until you know enough to make your own decision.
- Um, experiment. Make your own decision.
- Learn the Basic Library (a.k.a Python).
- 300+ Modules
- 10,000+ Functions
- Sure, most of them are crap (won't apply to you, certainly don't apply to me), but I can guarantee that you will write dozens of these over from scratch until you know they are there; and then, you can chuckle when you see others reinventing the wheel, yet again.
- So, read the library.
- Or at least, skim it
- And then, skim it again and again and again.
- The scope of the library is why learning a language in a weekend is a misleading myth that has never helped anyone on the road to mastery.
- It's also why learning a second language isn't all that important.
- PHP, Ruby, Perl, they'll all do what Python does. And if they do what you want to do better than Python, you really are better off specializing in one of them than being half-proficient in both Python and the other.
- Use Python for Everything.
- Yes, Everything.
- Write scripts for every last thing.
- Classes & Objects
- Maybe about here in your journey it would be time to make one.
- Nah, it's probably too soon.
- Still, know what they are.
- Learn the Second Hand Libraries
- Numpy, Pandas, Cubes
- Just to hit a few on the data processing side.
- What's your passion? There's a library for it.
- Find it. Learn it. Love it.
- Embrace it's competitors.
- This is one of the real powers of Python.
- One need never exit the ecosystem.
- Yeah, I haven't bothered to do this, so who knows where it should really fall on the list.
- Get Involved
- Patch Libraries
- Extend Libraries
- Make Libraries
- Patch Projects
- Extend Projects
- Make Projects
- You know, or don't.
- There are already libraries for everything.
- So before patching, extending, or making something, it makes sense to review what's out there to insure someone else hasn't beaten you too it.
- Which isn't a bad thing, they've saved you lots and lots of work if it's there.
- And yes, it will be there.
- Python is about leveraging other people's work
- So, Let Other People Work for You.
- And when I say 'Patch', 'Extend', 'Make', please realize that these are three different skill sets.
- A fourth skill set being the ability to 'Use' the aforementioned 'Patched' & 'Extended' Libraries.
- This being my speciality.
Obviously not in order, as it could be hard to get to the fourth step without already having an IDE in place, but it gives some idea as to where I am and where I'm going.
I've been puttering around with programming rather seriously for 2+ years, and only settled on Python in the last two months. There's lots to be learned in other places, but where I am now, most of it I can learn faster, deeper, and harder by sticking to one paradigm and for me that paradigm shall be Python.
And no, I'm not planning on contributing to a library for years and years and quite possibly years to come. I haven't even scratched the surface of what's already out there. So at a guess, I'd say working seriously on a library now would be premature (for me, you, anyone with my level of experience) by something on the factor of ten years.
But hey, who am I? What do I care
This is my roadmap for myself.
And if you take nothing else away from this, take a look at List Comprehensions again (or Regex's or just the standard library), I'm guessing you'd be suprised at what's in there, off the rack, ready to rumble.
Oh, yeah, this being a rant about Python, I probably should throw some code in here. My favorite function of all time. I use it way more often than you might expect.
from somebodyElsesLibrary import timeSavingFunction
solution = timeSavingFunction(problem)
Short but sweet, just the way I like it.
This is me giving back...
or the blind leading the blind.
I have the humility to let you decide which.
© copyright 2015 Brett Paufler