I had two weeks of vacation planned around PyCon, but canceled it since it didn't make sense to take time off when I couldn't go anywhere because of COVID-19.
I was feeling pretty down when the conference start date passed. I had spent the past few months looking forward to connecting with all my friends in the Python community. It was hard to get work done and I found myself working longer hours to accomplish the same task.
I needed a break; decided to take a week off to learn a new language.
I appreciate the value of a framework once I understand the underlying principles they are trying to abstract. But when you're first starting out... learning a framework forces you to solve all problems using the framework's way of doing things. When I had to leave the comforts of Angular, I was lost. I didn't know the first thing about manipulating DOM objects without importing a library.
Next I decided to work on focused projects where my goal was to reimplement games I already knew how to make. Once each MVP was done, I forced myself to do something I had not done before.
For example, when making pong, I decided to implement a multiplayer version using WebSockets. It wasn't hard to do, but figuring out all the components required forced me to research and learn more about the node ecosystem.
The only way to improve is to take a step back and assess your progress; retrospectives help me fine-tune my problem-solving skills.
What went well
- YouTube is an incredible education platform
- tools like Parcel reduce complexity
- no more having to dig into WebPack
What did not go well
- Parcel handled a lot of this complexity for me
- not knowing what errors to search due to unfamiliarity of the ecosystem
- the infamous unknown unknowns
- have to deal with this every time we learn a new language or tool
What can I do better next time
- ask people what books they would recommend if they had a week to learn
- did poll friends for advice and got a helpful hint about setting up a minimal development environment
Sandbox Development Environment
A minimal development environment makes it easy to quickly iterate and debug. This recommendation is from my buddy Ian.
. ├── Makefile ├── index.css ├── index.html └── index.js
index.css are empty.
# Makefile run: parcel index.html
<!-- index.html --> <html> <head> <link rel="stylesheet" type="text/css" href="index.css"> </head> <body> <div id="main"></div> <script src="./index.js"></script> </body> </html>
Learning Your Second Language
It's a lot easier to learn a new language when you've already mastered a language.
Python looks like pseudocode. It makes code easy to write and easier to read. It's a fantastic first language. It's also a great language to learn new concepts in. I spent the past 3-4 years diving deep into Python and Software Design concepts.
Fast Feedback Cycle
One of my goals in the next year is to complete freecodecamp's Responsive Web Design Certification.
Learning a language is a great way to stretch your skills. It makes you a better programmer by helping you connect dots in your head.