In no particular order, I’m throwing down thoughts in three general categories:
What went well
What didn’t go well
What I might have done differently, were I to do it again
I believe there is a narrow window for me to capture this information well. As soon as I get a job, I’ll probably forget everything that didn’t go well, and if I were to never get a job, I’d forget anything that went well.
I’ve learned a ton, and my pace of learning has steadily climbed through Turing, as I build a more and more robust mental for existing information. It’s easier to add new information when the framework for the old stuff is strong.
I use Anki (a flashcard app) every day, so even on days when I don’t write any code, I’m still getting reps in of practice, and strengthening mental pathways. I’ve used Anki every day since Turing started, and have almost 1000 cards in my programming deck.
As a student at Turing, I’ve recently been thinking about learning how to learn, specifically in the context of software development.
I am a bit hyperactive when it comes to trying to learn new things. Over the years, I’ve done plenty of ineffective learning, and at least a little bit of effective learning. The good news is that even as I’ve not learned most of the topics I’ve originally set out to learn, I have learned a bit about learning. (Does this make it “metalearning”?)
I’m defining “learning” or “learning a topic” as to be able to rearrange or reorganize or reuse the idea or pieces of the idea in new ways to resolve unstructured problems I face.
I’m a huge fan of “a good workflow”. Makes you think better.
This is still under construction, but I’m fleshing out all the tools, tidbits, and other things that serve me well every day as I build my skills as a developer. It will always be a work in progress, but will hopefully serve others.
Last updated 06/02/17. If you’re curious, version history here
Without getting too philosophical, the process of formulating questions and finding answers to them is a big part of what makes us human.
As developers, we’re asked to solve difficult problems. If we don’t happen to have all the knowledge we need for this problem readily accessible in our head, we turn to documentation and googling.
On many problems, this is sufficient. On the hard ones, this will not be sufficient.
We’ll need to ask for help.
Since the hardest problems are also the ones we’re most likely to need help with, if we can optimize how we get help, it’ll return outsized results at advancing our skills and helping us be useful contributors to a development team.
As a counterpoint, imagine you had terrible question-asking skills. In what aspects of your day-to-day would this have the largest impact?