What I learned about myself
For the last 30 days, I have been practicing Python.
You know, like meditating for 30 days straight. Why? Because no one is born knowing how to "think" in a programming language – at least not that I am aware of (if you are please email me). So, like learning any other technology, to become proficient you need to practice. A lot. For most people, this means doing the same thing over and over until it becomes automatic. Like when you learned how to ride your bike or touch type (man do I suck at typing). To practice Python there are numerous online courses, books, blogs & video tutorials; however, my goal was not simply to learn about Python but rather hone my craft as a developer. What I came to realize is that there were certain learning patterns that applied to virtually all technology. So, without further ado here are some things I learned after studying Python (in no particular order):
Everyone Thinks Differently
Everyone thinks differently: It's true – everyone does think differently. Your first language may be one way but not everyone in the world learned it your way. I'm still trying to wrap my head around Python because it doesn't seem to follow a set pattern like other languages (i.e C#). I'm really bad at this; however, practice makes perfect and with time even this will get easier…right?
There are reasons some developers are better than others: A few explanations include preferred learning patterns, active listening skills, level of attentiveness & most importantly desire. This doesn't mean that everyone who is better than you is a bad person. We all have different skillsets and ways of thinking about life but the more I progress in my career the more I realize how much thought and planning goes into some really simple code.
Learn How To Learn
Learning how to learn is more important than learning itself: This has nothing to do with Python but everything to do with being a developer. As you start your career, the number of technologies and frameworks you will encounter will be staggering. For example, it's highly likely that in the next 5 years you may use 20 to 30 different languages (not counting re-implementations). That means learning as many patterns as possible because without them we would all just be trying to solve problems using trial and error – this is bad!
Your brain is a muscle and needs to be exercised! This may sound like a marketing pitch for a new program but it's true. The more you think the better your mind will become at doing so. As developers we need to challenge ourselves, not just with code but mental feats as well; i.e puzzles, riddles or anything else that requires some thought. This will sharpen your mind thereby helping you learn faster and longer.
Learning is as important as experience
Oftentimes, developers know how something works right away but it's not until they start to understand why it all comes together. We tend to think about technology like a hammer (i.e just use it). To be proficient, we need to know what makes up the hammer (i.e understanding the parts) so that when someone asks us to "make" something we can do so with confidence and effectiveness.
Learning is a lifelong journey: Practice may make perfect but don't expect proficiency overnight because that would mean you never get better and even if you did at first, time moves on and things change. For example, if you wanted to learn to dance the Jitterbug then that's what you would do for a while until someone asks you to teach them how or better yet, if someone wants to know how you did something? To become a master at anything, one must dedicate their life to it and Python is no different!
Learning python may not have been my sole intention; however, learning about myself and improving as a developer was. Now that I've started down this path there's no turning back (at least for now).
Skip Any And All Shortcuts
There are no shortcuts: To quote my favorite movie ever "The Last Samurai", "There's a right way to do things and there's a fast way to do things – let me teach you how to do it right." So many developers want results yesterday. I'm not against short cuts, in fact they are needed, but what I am saying is that if you learn through shortcuts alone (tutorial hell) then you will be lacking the necessary fundamentals to advance your craft.
Learning new technologies too quickly can inhibit the growth of a great programmer: As developers, we have infinite opportunities in front of us. This means more languages, frameworks, technologies, techniques, and ways of doing things. While this is exciting the more we learn too quickly the harder it will be to connect all of the dots later on. Take your time to advance through trial-and-error; ask yourself why you are using this technology or approach sooner than later and try not to overthink it.
Learning must begin with fundamentals: Leave the new technology to last. If you do not have a solid foundation, it's like trying to build a house on top of quicksand. The first thing we all need is to understand why and how things work, only then can we think about applying this knowledge in other areas.
Practice Makes Perfect
No one is born knowing how to program, which is why it takes so long for children to learn our native language. However; with practice and repetition the process becomes more fluid and at some point, they no longer think about what or how to say something – it just comes naturally. So after 30 days of nearly non-stop Python, I'm still not a genius (unfortunately) But, I noticed that when it comes to programming languages, they are so much easier for me to grasp now. Plus, the more you practice coding and write down your thoughts the easier it is to remember what went wrong (and right).
When I first started programming, every time things would go wrong I'd get frustrated. Nowadays, if an error occurs I'm never fazed because I know that these are necessary steps along the way. We're all human, so expect to make mistakes. Additionally, I've learned how to learn from them and grow from them.
Making mistakes is part of the learning process: It's okay to make mistakes, everyone does and if someone tells you they haven't then it's most likely a lie. So why do we fear them? We learn from our mistakes by looking back on what went wrong in an attempt to spot patterns or problems that need to be lessened to avoid repeating those mistakes again in the future. Small victories are key: While bigger picture goals (i.e goal-oriented projects) are important, I've found that focusing on smaller ones helps me see how fast I can get results without being overwhelmed (which, we should never be).
I'll admit, my first project taught me more than 30 days of practice combined. However, this doesn't mean it was a bad idea and I'm glad I jumped in headfirst. Smaller projects will get you more accustomed to the development process as well as show you how much improvement you've made over time (or how much you still have left).
You Do Not Need To Be A Genius
You do not need to be a genius to learn Python. I have a feeling that this is one of the most common misconceptions about learning how to code, as it's been my experience that anyone can learn how to do anything with enough practice and guidance.
And even if you learn something at a slower pace there is still nothing wrong with that.
Learn as much as you can about the language (and be critical about it): This was perhaps one of my biggest mistakes, specifically when I started learning code. I would read through tutorials and copy/paste any code samples without fully understanding how or why it worked the way it did. For example, I've often heard comments like "you'll learn that later on" or "That's just how Python works," which may be true or untrue but accepting these excuses will eventually hold you back from truly mastering Python.
Knowing how and why things work is what will help you expand your knowledge of the language. You're not bad at coding simply because you don't know everything, but admitting to yourself that you need to improve (and learn) will keep you moving forward in a positive direction.
Finally, after 30 days of reading & studying Python what was the most important thing that I learned?
Python is a beautiful language
I'm not saying that because it's my favorite…I'm saying that because I truly believe it. I have come to understand and appreciate the beauty of whitespace, as well as the importance of writing self-documenting code and using clear variable names. It's the little things that you'll come to appreciate after spending enough time with a language (and, by extension, develop a love for).
So I urge you all to have fun learning code. Don't be hard on yourself or compare yourselves to others. Just try new things & keep practicing!
Happy Coding! :)
Developer Relations Engineer @ New Relic.
Check out and sign up for New Relic here :D
Top comments (0)