pseudoyu

pseudoyu

Blockchain | Programming | Photography | Boyi
github
twitter
telegram
mastodon
bilibili
jike

Weekly Report #23 - How to Learn a New Technology (A Discussion by a Liberal Arts Graduate Transitioning to Coding)

Preface#

weekly_review_1219_photo

This article is a record and reflection on life from 2022-12-14 to 2022-12-19.

This week, I continued to work from home due to the pandemic (I feel like I can drop this opening line now; it has become the norm). I am still "distracted" by learning front-end development while also writing some back-end code for work. There were even a few days when I lost track of time until dawn, feeling like I was back in Hong Kong last year, rushing to meet deadlines and preparing for final exams. However, this time, there was much less external pressure and anxiety, and I enjoyed it more.

Having experienced working late into the night for a while, I have come to appreciate how precious it is to have some free time to learn what I want or simply to daydream with my cat. However, I feel like it has been a long time since I wrote anything substantial or shared my experiences; I have mostly been adjusting my state and sharing my daily life. Today, I would like to share some of my learning experiences, methods, and thoughts, which may be more conceptual, with more specific sharing to come later (perhaps?).

After some thought, I decided to add the following two paragraphs.

Initially, I just thought it was time to write an annual summary, so I looked back at my articles from this year (or more strictly, from May when I started updating again). Aside from many articles on tools and efficiency published in May, most of them were weekly reports, filled with thoughts, ideas, emotions, and random musings. Although they serve more as a channel for expression, I occasionally feel ashamed for sharing too many emotions, as if I have turned my blog into an outlet. I wanted to bring some valuable insights, which led to this experience-sharing article, and before I knew it, I had written nearly 7,000 words.

There will be an annual summary, detailing various events from this year—what I lost, what I gained, what I am grateful for, and the inevitable regrets. I hesitated about whether to mention certain things, but I decided to face it more authentically. After all, everything has an expiration date, including canned pineapple, and this year is no exception. The joys and sorrows of this year have shaped my 2022 and contributed to a more complete version of myself.

I will post it on December 31, a day that is quite special to me.

Since some point this year, I have added a theme song to each article, "The Later Us" by Mayday, a song I really like. Today, I changed it to "Brand New Day," the theme song from the movie "Bottoms," which I find very pleasant and quite fitting for this article.

How to Learn a New Technology#

My Journey of Exploring Learning Methods#

Initial Exploration#

I have never been someone who highly values various learning methodologies. I have always felt indifferent towards the "how-to" aspect. In high school, I couldn't finish reading "How to Read a Book," as I thought it was a very individual matter. I have seen many posts, but they often pale in comparison to the so-called "enlightenment" I experienced at certain stages, which is mostly unrelated to talent; it was just finding my own way through exploration.

The turning point came in high school when I encountered some students from Zhejiang University selling their summarized and printed materials and experiences for college entrance exam preparation in a bookstore. Out of curiosity, I bought a history subject book and flipped through it during my free time. It contained some timelines and memory techniques, which I found very helpful when I later learned this knowledge, allowing me to apply it more effectively. Eventually, history became a subject where I often ranked among the top in my grade, and I gradually developed an interest in studying history (I even considered applying to the history department at one point).

Looking back, the content in that book wasn't unique; it was just knowledge presented from the perspective of a college student who had successfully navigated the college entrance exam. This had a "dimensionality reduction attack" effect, inspiring me to gradually explore my methods in other subjects.

Learning Mindset#

This article does not intend to (mainly cannot explain clearly) introduce various theoretically grounded learning methods. There are many videos and articles about "XX Learning Method," and after some summarization and internalization, they may not be as effective as reading the original text. I would like to recommend Senior Student "It's Lottuo"'s article "How I Learn a New Technology or Knowledge? WW Learning Method? Taking Blockchain as an Example.," which I found very beneficial when I first started learning blockchain and many other subjects.

This time, I want to discuss a point that I believe is very important but often overlooked—learning mindset.

I was assigned to the English major in college, and after about half a semester, I clearly realized that this was not a field where I would continue to invest my passion or make a living. However, at that time, I didn't have a clear goal, so I started learning various skills to alleviate my confusion and anxiety.

In the club, I was mainly responsible for some "technical" tasks, which primarily referred to skills like graphic design, photography, and video editing. I remember my first major project involved creating a promotional video/MV under a tight deadline. It didn't seem complicated and had no special effects; it was just basic processing, splicing, and exporting of video materials, and adapting them to different screen sizes for good display effects.

So, one weekend, I downloaded Adobe Premiere Pro (commonly known as PR, a software that tormented me for five or six years, and I never expected that many of my subsequent tasks would be related to video editing, which is quite a coincidence), watched some beginner tutorials, and finished it in two days. When I submitted the task, my fellow club members, including the president, were quite surprised and asked if I had learned it before and how I did it so quickly.

In fact, my understanding of video shooting and editing was limited to making a birthday greeting video in my senior year of high school, which I collaborated on with a friend (I think we used either VideoStudio or iMovie, which are both quite distant terms now, and this friend is now working in directing and editing, another interesting coincidence * 2). When using PR, I subconsciously didn't think it was a difficult software or that editing was a hard task; it felt very natural to learn. When I encountered problems, I could look them up, and it didn't require much technical skill; I just learned it, that's all.

Many friends might instinctively feel a sense of fear when they start learning something unfamiliar, thinking it is complex, setting psychological barriers for themselves, and ultimately never committing to learning. Later, when I taught in the department and club, I often used a basic practical project to show everyone that it wasn't an "insurmountable" task. After breaking through that psychological barrier and adjusting the learning mindset, the learning process itself became much easier, and the results were good.

Of course, these are just some general skills; the actual programming-related technologies vary greatly. However, the journey of mindset change in this regard could take a long time to explain, as I am often asked about it. It also serves as a brief mention of my journey from humanities to coding.

My Journey from Humanities to Coding#

Introduction to VB#

As a liberal arts college in a science and engineering university, we have a very science and engineering-oriented requirement to learn computers, but only the basic VB (Visual Basic) language. Thanks to the information technology subject in Zhejiang's academic level examination requiring VB practical exams, I had some foundational knowledge from high school, making it easier to learn, although I had to relearn the syntax. Still, I felt it wasn't a difficult task.

At that time, many of my friends were new to programming languages and had a strong fear of syntax and various symbols. So, while learning, I organized a set of notes based on my thoughts and explanations, transforming a book into a thin stack of pages. My friends experienced a significant change in their learning mindset, which was quite effective (later, I even "passed it on" to the next cohort, and it became a legendary guide for seniors, which was quite a happy experience).

Changing Direction#

After revisiting VB, I suddenly realized that I really enjoyed the feeling of being able to create and implement ideas through code, and I felt somewhat "skilled" at it. This led to a somewhat bold idea at the time—"Could I also consider computer science as my future direction?"

However, due to the inexplicable school rule that "liberal arts students cannot switch to science and engineering majors," the path to changing majors was blocked. My application to minor in computer science at Wuhan University was also thwarted due to slightly lower GPA.

Forget it, I'll learn it myself.

So, I asked a friend who was minoring in computer science at Huazhong University of Science and Technology for their course schedule and textbooks. My mindset was simple; I might not have enough time and energy to self-study many formal courses, but the workload for the minor courses was manageable. Thus, I began to supplement my knowledge in foundational courses like operating systems and computer networks while learning Python (yes, I also started with Teacher Liao Xuefeng's Python course), embarking on my "distracted" journey.

Difficult Progress#

There were countless struggles and late-night moments when I felt like a failure and wanted to give up, and during those struggles, I dabbled in various internships/part-time jobs such as public account operation, product management, blockchain game planning, graphic design, and later registered a company to start a video editing studio, etc. This is detailed in another article "Weekly Report #19 - Remembering an Entrepreneurial Experience."

I really walked a bumpy road for several years. I blindly learned various languages (because I thought it sounded cool to say I knew some niche languages), gave up on boring foundational knowledge to write web and mini-programs (because I could earn extra money), fell into the misconception that I didn't need to understand various underlying principles and data structures to write good code, and experienced a bottleneck period where progress seemed minimal despite studying for a long time. Of course, there were many happy gains, but those are just part of daily life, so I won't enumerate them.

Later, due to career planning (to be honest, most English majors find it difficult to land a technical job in the current environment, which is a reality we have to face) and the desire to achieve expertise in a specific field, I took a gap year after graduation to apply for a master's program in computer science in Hong Kong. This part is mentioned in "A Confession at 23: Chasing Meaning," as I had previously received an invitation from a blockchain professor's lab at National Taiwan University, which ultimately fell through, leaving a significant impact on me. It was also a way to fulfill a dream of mine (If you don't want me, I deserve better than you).

Adjusting Mindset#

In my subsequent studies, what benefited me the most was that I never used "I am an English major" as an excuse for not doing well. After all, there are no significant barriers to acquiring knowledge now; I can learn from many open courses and tutorials that others can access. I even have the right to choose the best and most suitable courses for learning, leading me to complete many MIT open courses and Coursera classes.

When I actually attended the interview for the computer science program at the University of Hong Kong, I didn't avoid mentioning my original major as a weakness. Instead, I highlighted the efforts and achievements I made as a student from an unrelated field who was passionate about the subject, including my explorations and thoughts about the profession and industry, which I believe helped with the final offer.

The Abandoned Guide for Humanities Students Transitioning to Coding#

On a side note, I had always wanted to write a guide for transitioning from humanities to coding, tentatively titled "A Guide for Humanities Students to Programming/Transitioning to Coding" (though it sounds like a marketing gimmick for Python). However, I always felt it would just be a collection of tutorial recommendations and application experiences, with luck playing a significant role in the outcomes. Sharing it wouldn't provide much valuable insight and could easily come off as a "survivor bias" boast, so I never started writing.

However, after more than a year of work and exploration, I feel like I have managed to establish myself in the profession of programming or the blockchain industry, and I believe I have some small experiences in learning new technologies/knowledge to share. So, I plan to restart this idea and dig a small pit to fill it slowly.

But the intention behind this isn't to promote how great transitioning is or how easy it is; the industry does have certain advantages, but the hardships and struggles of transitioning and learning technology are significant. There have been many sleepless nights and moments of self-doubt, but they are not worth mentioning. Ultimately, it relies on gradual accumulation, much like the simple yet profound truth—"There is no secret, just practice."

I have seen many admired technical experts on podcasts and Twitter, including those who transitioned to coding. In comparison, I feel my abilities are still insufficient to teach others, but I want to write this down to convey my thoughts and journey, hoping to encourage those curious about this field not to hesitate due to mindset issues.

Anyone with relevant experiences is welcome to contribute.

How I Learn#

Returning to the main topic, I would like to briefly share my basic pattern for learning new technologies or entering a new field, purely personal experience.

Information Source Collection#

Perhaps due to my previous learning patterns and my personal tendency to collect information, I am very inclined to gather many information sources when learning a new technology/knowledge. Compared to search engines and algorithm recommendations, I prefer to dig through historical videos/articles from favorite YouTubers or personal blog authors, often finding unexpected delights (mainly because those experts are so knowledgeable and diverse; many bloggers I previously followed for Python and Go have updated high-quality content on blockchain). From their videos/articles, I can see the pitfalls in learning and the practical applications behind the technology.

For example, in the blog of Twitter user STRRL at strrl.dev, I can see many small projects he has tinkered with, some of which are solutions to needs I also have but hadn't thought (or couldn't achieve) could be implemented this way, providing a lot of inspiration. Additionally, when I read another Twitter user Nova Kwok's blog Nova Kwok's Awesome Blog, I often find myself thinking, "How does this person know everything?"

Besides specific knowledge and tutorials, I can also see the kind of person I aspire to become through them, which fuels my curiosity and desire to explore, giving me more expectations for the future.

Initial Understanding#

Regarding tutorial selection, I previously mentioned that I really like starting with Crash Course formats, which translates to "XX hours to learn XXX," which might sound a bit like a marketing gimmick. However, there are indeed many such series on YouTube. For example, searching for "Next.js Crash Course 2022" will yield many interesting results.

nextjs_crash_course

Recently, when I was working on a ÐApp Demo that used Next.js for basic front-end display, I checked out the Next.js Crash Course by Traversy Media. I really liked his teaching style, and in just one hour, I gained a basic understanding of this framework and the entire front-end development language. Although I found it challenging to start a project without systematic learning, I could recognize some syntax in the front-end code in later projects and easily make some customized modifications based on others' frameworks.

For instance, this is my personal homepage, modified from a project called GitHub - craftzdog/craftzdog-homepage by another favorite YouTuber devaslife after watching the Next.js Crash Course. I was able to create a beautiful little project in a short amount of time, which served as great motivation when starting to learn a new technology.

yu_homepage_profile

In-Depth Learning#

However, to write enterprise-level projects or create a complex project from scratch, merely relying on Crash Courses is far from sufficient. More systematic learning and practical project experience are needed at this point. This depends on personal preference; many Crash Course authors have their own boot camps or paid tutorials. If you find a blogger whose style you like, you can continue learning from them.

Personally, I prefer the Udemy platform, which is a relatively established online course site. Although the prices seem outrageous, they are always on sale, and they frequently issue discount coupons, which makes me worry about when it might go out of business. On average, a course costs about $9.99 to $12.99, which is less than 100 RMB, making it quite worthwhile.

For example, the aforementioned Brad Traversy offers courses on React, Next.js, Tailwind CSS, etc., on Udemy. I genuinely enjoy his project-oriented approach and teaching style. Although there are many courses on Udemy with higher ratings than his, I still chose his. These are some of the courses I purchased related to web development (many were bought at promotional prices a few days ago and I haven't started watching them yet).

udemy_web_course

Output Results/Project Practice#

I once discussed learning methods with my leader, who mentioned that when he learns a new language/framework, he first explores how to run a project, tries to modify things, and then directly applies it in the project, solving problems as they arise. This is a very efficient way to master skills and may be more universally applicable in project engineering. However, I tend to be a bit more academic and prefer to watch courses/tutorials initially, which may have lower efficiency but allows me to grasp some best practices from the start, making it easier to maintain a stable mindset when encountering problems later.

Inner OS: If I had my leader's terrifying engineering ability to discover a framework the night before and completely restructure a project the next day, I wouldn't need to watch any courses.

Watching courses also provides a sense of accomplishment from completing assignments, project practices, and finally graduating from the course. It gives me motivation at various stages of learning. For instance, I completed a React course in just over a week, received a certificate, and successfully applied it in an actual side project, which was quite encouraging for me to continue.

udemy_react_cert

Of course, this approach has a threshold; many high-quality courses are primarily in English on YouTube or foreign platforms, so some overcoming is necessary. However, they usually provide Chinese subtitles, but I personally prefer to watch in English, as it involves many technical terms, and machine translation is often subpar.

Additionally, since courses generally take a long time, it is easy to give up midway or procrastinate until I forget earlier content. To overcome this, I have adopted two simple yet effective methods—output-oriented and result-oriented learning.

Output-oriented learning is easy to understand. I update my personal blog, which used to have a lot of technical content, but now I oscillate between being a daily blogger and a tool efficiency blogger. When learning a new technology/knowledge, I take notes in Logseq, ensuring that they are not just copied course materials but rather my own edited notes with frequent annotations. I also take screenshots of key commands or code snippets and save them. After completing this, I digest the notes for a while.

After 1-2 weeks, I revisit the notes and organize them into an article. Two very important points here are that after 1-2 weeks, we often have a strong impression of what we just learned, and there is often a sense of "I already know this," but the mastery may not be solid; it could just be immediate memory. The 1-2 week period is a good digestion cycle. Organizing the notes into an article is another crucial point. We often write scattered notes or mind maps, but organizing a knowledge point into a coherent article that flows naturally for readers is quite challenging.

At this point, the annotations and screenshots mentioned earlier come in handy. I have a habit of conversing with myself and reviewing my writing. For example, after completing a module, I often ask myself, "If I were the reader, what questions would I have here? How should I answer them?" This often reveals points that are not explained clearly enough. Coupled with additional explanations added after reviewing, the final article usually becomes a well-structured technical blog that aligns with my logical thinking, making it much more effective for future review or reference than looking at others' materials.

A better approach would be to record a video explanation, as explaining something clearly in a video is a level up in difficulty compared to writing it out. However, I am still overcoming some psychological barriers to recording teaching videos.

One of my small goals for next year is to become a technical YouTuber/content creator, but I might end up as a pet blogger instead, as who would want to watch me? Those who open the weekly report are probably just here to see my cat, so I won't post today and will save it for the year-end summary to build up a wave of content.

Besides output, I have another method that I do not recommend everyone try lightly—result-oriented extreme operations. This involves taking on tasks that exceed my current ability (but not too much) to push myself to quickly master them through deadlines and results, and I tend to work harder to solve problems when they arise.

This might relate to personal mindset, confidence, and multitasking ability. I am someone who remains relatively calm in handling situations and often juggles several tasks without feeling overwhelmed. My years of experience in navigating challenges have taught me a simple truth—no matter how complex the task, it always miraculously gets completed in the last few minutes before the deadline. Perhaps that is the essence of productivity.

But now, as the projects I work on become increasingly complex, I should probably do this less; what if something goes wrong?

Conclusion#

There isn't much left to discuss in terms of methods. The above are just some experiences regarding learning a technology or knowledge. After completing the learning, it may only be said that one has just entered the field; there are no shortcuts to developing engineering skills, only continuous practice and accumulation.

Technology is a fascinating subject, and the experience of understanding and learning it varies greatly at different stages. For instance, my leader, a strong figure with over twenty years of work experience, often sends me messages late at night saying, "XXX framework/tool is quite interesting; you should try it out."

I really like his way of saying "try it out." We don't need to get entangled or argue about what it's like to turn a hobby into a profession because we genuinely enjoy it. Work is merely a byproduct that helps us make a living. I hope everyone can find their own direction of the heart.

I am not a big shot, and at this stage, it is challenging for me to write in-depth articles on specific technologies and fields (but I am working hard on it). Therefore, I want to share my various experiences, and I also plan to produce some video tutorials and written guides on more detailed technologies in the future.

Let me count how many pits I have dug today to fill.

Loading...
Ownership of this post data is guaranteed by blockchain and smart contracts to the creator alone.