(It loads slow. Don't judge. I've learned so much since then.)
Eventually, I learned enough about development and was approached by my boss to get certified to teach Java at the high school that I work at. This led to an interesting path for me: I was learning a back-end language at the same time that I was working on my Front-End skills.
Over Summer 2018 (I have summers off for the most part), I concentrated my learning in trying connect my knowledge and learn Full-Stack. I was introduced to Flask in the process while learning to write a CRUD application. I loved that the framework was so intuitive and readable and I felt like I might have a shot to learn it. The ability to run your site through localhost almost right-out-of-the-box made things convenient as well. I felt like if I learned a micro-framework that I would stand a chance at learning something like React or Angular in the future.
The framework was a bit daunting at first, as it was completely in Python. I can read and interpret Python easily and had dabbled a bit in the language. However, the idea of writing my own HTTP requests in the language was certainly scary. I wavered for days before deciding to take the plunge and make it happen.
|It Takes a Leap of Faith|
The database slowed me down. Flask makes writing database code a breeze, as the code is super-readable and very intuitive. However, I was unaware that the SQLite DB that I was using wouldn't work in production. I had decided to host on Heroku, and due to Heroku's ephemeral file system, I had to switch to their PostgreSQL DB(Miguel covers this in his tutorial). It took me way too long to figure out that Flask makes this easy, too.
Flask uses a tool called SQLAlchemy to automatically recognize DB changes so that you can easily migrate those changes into production. Once I go this step down, I had a method of production down:
Design a feature. Mark it up. Make it functional. Make it pretty. Test the feature. Migrate the changes. Push to Production.
Flask is not the best tool in the world, but it has more than met my needs and is working brilliantly for my portfolio site.
This process has taught me a ton to move forward with: how to design and develop in an iterative way, how to think about data and it's storage in a database, and how to craft HTTP requests are some of the big take-aways.