Journey of Programming
At this stage you might be wondering What’s Next?
It’s a very common and fair question. I’ve been learning programming and internalized all the fundamental topics so far, what do I do now?
As coding opens the doors to an endlessly creative and productive universe, it’s normal to feel overwhelmed or sometimes lost. Good news is, there are so many exciting things you can start doing.
At Holypython.com we call this bridging the gaps:
- Bridging the knowledge gaps. and,
- Bridging the gaps between knowledge and expertise
First of all, if you haven’t got familiar with a local Anaconda installation yet, and an IDE like Spyder or Jupyter Notebook (both come with Anaconda), that’s obviously highly recommended, it’s fast and easy.
That’s where you will be creating cool stuff, think of it as your R&D workshop (or as the French say: “atelier“; also “werkstatt” in German and “zuofang” in Chinese).
If you must have an alternative, you can explore about Microsoft Visual Studio, another very common development software.
The usual path to becoming proficient in coding (or computer programming) is usually something like this:
- Understand and get familiar with coding concepts: (may differ slightly depending on the programming language you chose). For Python we have some good coding lessons.
- Programming Exercises: to make sure you are comfortable with coding concepts in point 1. We have some really good coding exercises for Python.
- Programming Tutorials: to observe and understand how to use those skills learned so far. We have those as well –> Python Tutorials
- Specialization: You might want to focus on a few topics that really interest you at this point.
Some good questions are: What will you do with your programming skills? Who will you help? What will you solve? What subject do you love? What do you love doing?
Some good options are: Machine Learning, Robotics, Computer Vision, Finance, Medicine, Computational Art, Image manipulation, game development, web development, app development, Scripting, Cyber Security, Database Applications, Data Science, Space Exploration. Technically there is no limit… And it’s okay to subject-hop in the beginning until you figure it out.
- Stepping in the wild: Whether it’s creating open source software or a library, reading other people’s source codes, checking out open software licenses, developing a website, app or a game, competing in machine learning
At this point you don’t wanna be overthinking too much you wanna be really creating as much as possible. Just identify topics/projects you really like and it’s time to show off what you’ve learned a bit.
What's Next? More Ideas
- You can start exploring useful programming topics like scripting, visualization, gui and sentiment analysis.
- You can start building scripting tools like: alarm clocks, task scheduler or email sender.
- You can familiarize yourself with Data Science and Machine Learning Algorithms. If you’re keen on it try signing up to competitions at Kaggle.
- You can explore a very interesting topic like: Image Processing with Python
- You can continue with the Advanced Python Lessons with very interesting topics like:
- You can also start your own repository at Github and initiate an open source project.
- You can find a course to specialize in a Python related topic here at Google Digital Garage.
- You can step up your Python skills with 100 Python Tips.
- You can decide in which Monetization Strategies with Python will be most suitable for you to make a living with coding. You know what they say, do something you love and you won’t work a day in your life. Couldn’t be more true.
- If you’re still unsure, you can always indulge yourself in an inspiring programming or IT book.
Bonus: Package and Publish a Library.
It can be intimidating to put your work out there for grabs and comments. But that doesn’t have to be the perspective.
Despite the overly judgmental nature of most things online, coding and software development usually have an amazing vibe and great community with good intentions.
It’s true some people take things too seriously because they had to deal with something they didn’t want to before or they have an idealistic take on everything but even then they usually mean well.
Most expert coders understand what you’re going through as a beginner coder or someone trying to advance their coding skills because they have been in your shoes before. As the saying goes every expert programmer was a beginner programmer at some point.
Since, programming is often an independent, creative, intellectual phenomenon, don’t worry about being judged or things like that too much. Just stay on the grind and amazing things will start happening at some point (tipping point).
Recommended series of Python tutorials on packaging libraries and uploading them to PyPI:
- PYTHON PACKAGING: QUICK TUTORIAL & CHECKLIST
- PYTHON PACKAGING: SOFTWARE LICENSES (OPEN SOURCE LICENSING AND MORE)
- PYTHON PACKAGING: UPLOADING A PYTHON LIBRARY TO PYPI
Tangible benefits of packaging for Python programmers:
- Helps master Python classes quickly
- Hard to find a better debugging exercise which makes you a better programmer.
- Encourages interaction with community, other cool coders and an end-user audience
- Helps gain new coding perspectives regarding software development and how to code in a way that it doesn’t stick out like a sore thumb after publishing publicly.
- You can discover open source software philosophy, key people and open software licenses.
- Makes you more confident about reading other libraries’ source codes and you can learn so much that way. This also means engaging closer and deeper with libraries in more specialized fields such as:
- machine learning + AI
- computer vision
- finance applications (trading, financial modeling, valuation, backtesting, risk management, derivatives, macroeconomy etc.)
- image manipulation
- database applications
- GUI applications
- API applications
- Web scraping
- Visualization etc.
- Helps gain a very serious attitude about all the computer programming concepts since it will be used and judged by an audience. This can be very helpful for advanced learning and gaining new skills.
- Makes you feel accomplished, dopamine yay!
- Prepares you for going big via programming in case you have a really cool idea some day. Opens doors to public audiences.
- Makes great portfolio milestones as well in case you are going through recruitment or freelancing route.