【Programming】Can I teach myself programming?

by Kelly Guo

Review of Self-Learning

Duration: It’s a bit difficult to calculate, but about 10 months sporadically and not full-time. Proficient in: Python / Django Achievements: Built two functional websites from scratch.


Sharing Self-Learning Experience

It’s been a few months since the last website I developed – an ecommerce site. During the intervening two months, I had to take a break from coding due to personal reasons. During this hiatus, I worried every day that I might have forgotten everything I had learned. Due to this fear, I didn’t feel like learning and even felt afraid to look at code. Consequently, YouTube stopped recommending programming tutorial videos to me because I had not been watching algorithm tutorials.

In reality, once learning is interrupted, fear sets in that you may not be able to catch up. Therefore, the longer the break, the more likely one is to feel scared to start over.

Moreover, the platform I had deployed my project on required payment after two months, so I needed to choose a new platform for deployment. I was afraid of the deployment process and the time costs, so I didn’t open up to face it. I ended up stopping the project hastily. At the same time, I told myself, “I just haven’t been coding recently, but I’ll get the hang of it when I start writing code again.” As a result, the project was put on hold until after the Lunar New Year.

It’s been bothering me during this period of time what level I should reach in my self-learning, what my goals are, whether I really want to switch careers to become a software engineer, whether my current qualifications are enough, what I’m lacking, whether I need to completely give up my current job, and what to do if I fail in the career transition. I kept thinking and became more and more afraid of getting stuck.


After a few days of thinking, I decided to try it out and adjust my status dynamically. I started to look at job postings, curious about what kind of software engineering talent is needed and what requirements there are for beginners. I also talked to some software engineer friends, updated my resume, and started to get back into development mode little by little every day.

So, since February, I’ve been opening up my code and working on projects I’ve written before, writing code that feels a little unfamiliar.

  • Fixed small bugs on two websites
  • Redeployed websites on fly.io and reconnected databases
  • Revisited Leetcode and practiced writing problems I’ve done before (realized I forgot them all)
  • Solved issue with Git commit requiring deletion of some data, learned more Git features
  • Reviewed algorithms I wasn’t familiar with
  • Purchased the book “王者歸來演算法”
  • Self-taught writing LINEBOT and connected it to GoogleSheet as a way to keep track of my websites and other information
  • Organized my resume, LinkedIn, etc.
  • Updated Github README


Although it may seem like a lot has been done, it was actually just a little progress made every day. Fortunately, I slowly regained my touch and my brain seemed to have evolved quite a bit during these two months of hiatus. After reviewing many algorithm materials, I really understood them better and could find problems more easily when debugging. When I opened files I had written before, I was surprised to see that I used to be quite good at it, but forgot how to write some of them (I really need to write clear comments).

What I want to say is that this path can be long or short. Some people may become engineers in just six months, but being someone who takes longer does not mean failure. You never know how much time others have spent working hard, but it doesn’t matter. In the race between the hare and the tortoise, the person who improves a little every day is the most formidable. It’s okay to take a break, but after getting back on track, you still have to gradually get used to the feeling of learning. It’s okay if you don’t know what your next step is. What’s important is to regain your initial passion and creative touch.


If you, like me, don’t know what to do next…

  • Consider taking an actual course on the weekends if you’re struggling with self-discipline and can’t come up with a project to work on. Having structured material can be more solid and helpful.
  • Think about your current position. What would you sacrifice if you gave up now? Should you push forward, or hold back for the moment? Write down all your thoughts, pros and cons.
  • If you’re still unsure but don’t want to completely give up programming, here’s one suggestion: write Leetcode problems. This will help maintain your programming intuition, improve your ability to read and learn code, and when you’re ready to start a new project or decide to take a course or look for work, you’ll be ready to go!
0 留言