3 minutes
[Talk2Learn] Takeaways
Diving In
Before building Talk2Learn, I knew little about UI design and next to nothing about app development. Throwing myself into an unfamiliar environment, I persevered despite my difficulties in fending off boredom and confusion amidst the overwhelming level of new terminology and dizzying array of features. However, my resulting slow, then steady, improvement has pried open my eyes to the value of delving into a domain uninhibited. There’s something magical about the epiphany that you experience in the moment that you graduate from being a novice.
Learning “Learning”
No, I spelt that title correctly. Shut up, Grammarly. I’ll start by admitting that I am not very smart. I have a terrible memory, unwarranted pride and the attention span of a goldfish. I need to understand everything about a process perfectly for my brain to reconstruct it as required. Simultaneously, my affinity for what I like to call “efficiency-optimization”, i.e. laziness, dampens my ability to study effectively for prolonged periods. Engaging in a long-term project that requires an intimate, high-level knowledge of complex transformation sequences and crowded build processes has taught me how to learn. I learned to learn. Here’re my lessons, summarized:
Read the “quickstart” section…then ditch it.
“Quickstart” sections aren’t all bad. Good “quickstart” sections delineate the architecture and aim of a language. Elm’s “quickstart” section is a great example. Bad “quickstart” sections merely provide template code and expect you to spew out a product like a robot.
Avoid bad “quickstart” sections and don’t get too attached to the good ones. The purpose of “quickstart” sections is to outline a language, but a language is vast and can’t possibly be well-described in a couple of pages.
If you’re just getting started, learn the language holistically, conceptually and methodically. Understand the benefits of using the language over another. Familiarize yourself with its syntax. Read about the philosophy of its creators to get a feel for it. Obtain a high level summary of its architecture. Use a variety of resources, including, but not limited to documentation, YouTube videos and, yeah, ChatGPT. ChatGPT is a great entry point into any topic. My point is, whatever route you choose, don’t get hung up on a single source of information. Mix it up.
Don’t be afraid to ask for help.
I don’t have anything of significance to add on here. I’m not sure if this will help every reader, but, personally, my pride prevents me from asking for help at the right time. When I finally do, it feels as though I’ve lost some sort of competition of competence. Sounds stupid, but that’s because it is. Don’t be like me. As a rule, if you haven’t progressed on a task for half of the expected completion time, move on. Look around on the internet, ask friends, ask a professor, or take a break before grinding again.
Avoid template code like the plague.
Just don’t do it. When you’re just starting out, it can feel incredibly gratifying to get an app running immediately. Stop that urge because trust me, you’re better off for it. Template code trades off long-term growth and future flexibility for short-term satisfaction. You’ll feel the effects of copying too much code when you have to modify all that code. That said, at an intermediate or advanced stage, template code saves a lot of time. Here’s my suggestion; don’t copy any code until you know everything about it. Once you’re at that stage, go for it. There’s no point in mindless repetition.