Choose your Learning Path. Our new Learning Paths will help you get where you want to go, whether it’s learning a programming language, developing new skills, or getting started with something entirely new.
I’ve noticed a curious thing about the term “beginner.” It’s acquired a sort of stigma — we seem to most often identify ourselves by what we’re an expert in, as if our burgeoning interests/talents have less value. An experienced PHP person who is just starting Python, for example, would rarely describe herself as a “Python Beginner” on a conference badge or biography. There are exceptions, of course, people eager to talk about what they’re learning; but, on the whole, it’s not something we see much.
I work on the Head First content, and first noticed it there. You suggest to a Java developer looking to learn Ruby that she check out our Head First Ruby. “But I know programming,” she’s likely to reply, “I’m not a beginner, I just need to learn Ruby.” People, by and large, buy into the stigma of being a “beginner,” which is, frankly, silly. Everyone is a beginner at something.
A 2014 NY Times piece noted that Google’s number 1 “must have” in interviews is the ability to learn — this rates higher than IQ, coding ability, etc. I suspect that most companies would agree.
In this world of full stack expectations, start-ups, interviews, and pure curiosity, most people are on the hunt for new skills. Why not celebrate this age of the beginner? Take pride in the fact that you want to expand your knowledge, that you aren’t becoming stagnant. There’s a whole world of topics to learn out there — we are both a community of experts, and a community of beginners, depending on the topic. The beauty here is that we can all learn from each other, and teach each other, if we throw off this shame of being “beginners.”
This brings us to a key question — where should beginners start when undertaking a new skill? I believe many would agree that the answer is to become confident with the fundamentals. If you want to start running seriously, then you need to learn the right posture, warm up techniques, stretching afterward, etc. Programming languages aren’t much different, though I’ve found that there can be disagreement over what “fundamentals” means. While it can all be quite subjective, I can share some of what I’ve learned when researching Python fundamentals.
One thing that comes up a lot is the Python Standard Library. I’m often told that the library is one of the language’s biggest strengths. It holds data types, built-in functions, and modules. Not every one is available all the time — some depend upon your system, for example. Starting here gives beginners an idea of what is possible, which is hopefully more empowering than intimidating. You can ease into exploring the various modules and comparing them to what might be similar to other languages you know.
There is, of course, some criticism of the library as well. But part of learning is also figuring out what you don’t need.
Some other factors of the language that have come up:
- Data types – understanding lists, dictionaries, and sets, and knowing when to use them
- IDLE, the Python IDE
- Control flow with for/while/if/else
- Using classes to encapsulate information
- Writing basic scripts
As you can see, it varies. All of this seems to add up to the vaguest answer I’ve been given yet: “enough to be productive.” While true, this can mean so many things, especially as Python’s popularity grows and it’s used in different areas. Someone learning Python for data analysis, for example, likely has IPython, SciPy, and Pandas on their fundamentals list. A web developer will need Django and/or Flask.
I’m interested in hearing what readers feel are fundamental beginner topics (whether in Python or other languages). Or maybe when you think of fundamentals, you think of intermediate programmers strengthening their knowledge. Let’s talk about it. Leave a comment below.
Editor’s note: You’ll often come across the question “Where do I start?” The Python for Data Learning Path provides a solid introduction to Python, and teaches you about algorithms, data modeling, data structures and other tools that make Python the ideal choice for working with data.
Public domain image via Pixabay.