I am struggling to learn code

Coding is hard. I understand that, and I am working on it.

Janardhan Pulivarthi
3 min readApr 16, 2022

--

I started working with code 7 years ago. I was looking at a code written in JavaScript. I wanted to replicate, me being me tried to do it in an unrealistic week. Of course, I did similar projects by understanding the basics of the technology I was working on (at this time, with something called WebGL). My suffering is compounded with I trying to learn everything at once, going from try hard-tasks first approach. Adding to this, I want to write the whole thing from scratch.

Hitting against the wall — I code days on end, again I start with the hard parts so it is a difficult situation I keep for myself. Absorbing data structures is difficult. Although, I understood some of them, worked on a few problems. My expectation of fireworks did not keep me going for a long run. I had to hit the wall so many times that it hurts the next time, I am trying to read code.

Few thinking paradigms that are making my life difficult:

  • Trying to learn it all
  • Trying to make it all — I tried to make my life difficult by working on so many things at once.
  • Trying to plan it all

What I have learned along the way,

  • It will take sometime to learn anything difficult. We got to build our basics. We need to read academic texts (I get sleep most of the time when I read them), attend lengthy lectures and do exercise problems.
  • You do not go anywhere important in just one go. For a sustainable shot at making something worthwhile, it takes a few trials.
  • I am not that smart, I have to read regularly and keep up with practice.
  • Our effort compounds, even with smaller steps.

Relearning to code

Start with programming language basics. I started learning basic syntax of Java (despite writing thousands of lines before), then covered the Object Oriented Programming concepts. Now, writing down basic program like how to add numbers, and work with strings.

  • Expanding the exploration to data structures such as linked list, binary tree, and graph algorithms. Then to System design.
  • Think learning. The concept that with reading, listening and practicing a subject we can learn, improve and gain expertise.
  • Convert a task into smaller chunks. Also, called divide and conquer.
  • Coding starts with a test. Not the other way around.

Fear of code

I am afraid of code. I do not feel at home with pointers, and dynamic programming.

Leaving to work on learning to code altogether when I find that I haven’t learned to solve a single problem. I compare with other programmers who have started coding a bit early — this stops me from writing anymore code and accepting my fear as incompetence and not attempting any endeavor to build something with code.

It is daunting to look at the top ranking coders. The thought of their rankings and standing makes me not to take the first step. In fact, in those platforms I do not even want to keep an account. This has implications on my self-worth.

Large codebases

There is this Linux. This guy Linus Torvalds, his name itself takes out any motivation in me — he wrote Linux, git — which I am even struggling to get used to. One question I face is will I ever be that good?. Bitcoin codebase still intrigues me.

My retrospectives on this

Each kind of codebase has some templates or recipes that gets repeated, so it is manageable piece of code that is what we should focus on everything else is a wrapping on it. You do not need to understand the all the code that is there. And you should not.

Wishful thinking

Learning to be practical when working with code. Validating our work, continuously testing with our being afraid. I write that big piece of code, and I expect that to work miraculously else my hopes shatter.

Nostalgia

Should I read that book I have read five years ago. Should I revisit the code that I wrote a decade back. I tried this it generally with ends with long list of undone reading not with a sense of fruitful revision.

Does people can completely understand the code

I do not know. I generally think it is so.

What’s up with caliber?

Caliber is hard to build. The ability to focus on a task over time.

Background and education credentials

Some complex paradigms takes years of slow and steady work to absorb and to do something useful with it.

--

--