When Did Programming/Coding Start to Click for You?

January 31, 2026

Report a bug

Months ago on a university Reddit page, a student asked when programming started to click because they are in their second year of their studies in Computer Science and feel lost. This was my response to them (with some edits to expand on certain topics):


Unclear what you mean “click” but here’s my three stage answer. Sorry for its length in advance. Also this is from an old student who started most of their programming journey way before LLMs like ChatGPT even existed. In my opinion, you will experience many clicks in your career.

Summary:

  1. Think Like a Programmer: The first “click” occurs when one is able to break down a problem into smaller tasks and then have the ability to translate their ideas on how to translate each small task into code

  2. Think Like a Computer Scientist: Another “click” occurs when one makes the realization that there are different ways of approaching a problem that are more space or time efficient. The ability to solve hard problems by making use the tools you acquired from your education and personal experience and thinking outside of the box.

  3. Having a Personal Connection: Another “click” occurs when one has a personal or professional relationship with programming. When one writes a program that someone can actually use and benefit from. This is the experience of creating a program with more initimate relation with as school projects are just for grades and your tiny simple programs previously were just for practice and familiarization.


1. The Beginning - Think Like A Programmer

From my observation, there seems to be a learning curve to think like a programmer. This is the ability to breakdown an assignment into smaller tasks and then reason how to approach each task. This often takes the average student anywhere between 2-6 months typically. However, this wall only gives you access to think like a programmer. I am unsure how first year CS courses are like at this university but at some universities, they would give a student a 2-4 page document that describes the overall goal of the project and some minimal starter code and have students bang their head from going through the starter code and the document to figure out how to achieve the objectives and what is even wanted for the assignment.

This phase is crucial to overcome and you will gain an extremely important ability, the ability to think like a programmer. In addition, programmers often work on existing codebase so gaining the ability to read existing codebase and connecting how various components come together to solve your problems that will continue throughout your programming career.

Advice: Do not panic if you are lost in your first month or two of programming. It is normal not being able to translate high level ideas to code. This takes practice. I often tell students try writing something simple outside of class to review what they learned. When I was a kid self learning programming from books and from whatever resources there were on the internet, I would often write stupid little 10-20 line program in C such as asking a user their name and age and determine if they can vote or not, making a simple calculator that takes in two numbers and an operation to execute, printing alternative messages and etc. Small Text adventure or other simple games like Black Jack are great simple ideas. Text parsing are also great ideas.

Students often want to write complex programs which is great but you got to start from somewhere.

2. Think Like A Computer Scientists: Introduction to Data Structures

Now that you got a hang onto the basics of programming, you are ready to learn the foundations of Computer Science which may be after your first CS course or in 2nd year depending on your university. This is where you need to think more critically how you organize your data more critically and create different approaches to solve the same problem to be more efficient. Time complexity and various data structures are shown.

[A 2nd-year introductory Data structure and algorithm course] is a great course to witness the power of time complexity and making use of different data structures. You are in 2nd year and perhaps you have not taken this course yet but this course will equip you with the basic understanding and appreciation of different algorithms and data structures. If you can do all the assignments, this is where I think the “click” will occur. At least this will click to you that coding is more than copying and pasting. The course was a fun elective because it required you to understand the concepts from the course and think outside of the box sometimes. It gave me nostalgic memories of when I was young hitting my head to the wall till I can think of a potential solution.

Note: I am a Mathematics student who took a data structure course for fun at some university

I had the fortunate realization of the importance of time complexity and data structures when I was in Highschool trying to parse large sets of text data to create a relationship between different sets of data which required a lot of insertion and searches. That was when I theorized the basics of time complexity and data structures as I would spend hours and days writing several implementations on paper (I made sure to carry a pencil and paper everywhere). It was so fun to see that many of my theories were actually a known concept taught in university (all my chemistry theories were debunked unfortunately but it was fun discussing it with my teachers). I have other examples such as in first year (not [university]), we had to write a generic primitive puzzle solver “AI” that can solve different puzzles. The condition of the assignment was that we needed to have the AI solve a set of different puzzles like sudoku and Peg solitaire under 3 mins using Bread-first search and Depth-first search. My initial implementation took an hour and I kept iterating and then I had this genius idea of pruning the trees to reduce the search space which I later found out was a common technique in AI years later. Why am I babbling about this? Good question, I am bored but to answer more seriously, this is an example of “click”. The ability to think of a solution outside of what you learned or being able to identify and make use of whatever it is in your toolbox to solve your problem is more than copying and pasting.

3. Solving Real Life Problems: Finally writing something useful for once

Many students have said over the years to me of their frustration with their relationship with coding. They know the basics but are stuck on how to make use of their knowledge. Coding has become some abstract concept to them similar to Math. They know the basics but they don’t see personally how coding can help them do anything cool. This is a bigger problem in Mathematics but this can occur in CS. These students don’t have a personal nor professional realtionship with programming. They want to go outside of Hello World or whatever pet assignments they are given in class. Some students don’t understand the beauty of data structures and might say “what’s so cool about arranging numbers” or “counting the number of times a letter occurs in a string”. For them, programming will “click” when they can apply what they learn to solve more personal real world problems, something they have a connection with. Creating websites and games are amazing for this if they cannot secure a job. Being able to visualize and interact with your program is such an amazing experience or having your code being used by someone. I started my programming journey with web programming back in middle school and for some reason it was such a cool experience. Seeing how my text written in notepad could be rendered into an actual webpage was such a fascinating sight. It’s as if I was partipcating in those blogs and personal sites from Angelfire and Geocities era. Though for me, this is when it “clicked” to me that programming wasn’t for some genius wizards and motivated me to go to the library, writing notes from programming book in Indigo [a Canadian Bookstore] (which is like a library if we are honest), and browsing Youtube back when there wasn’t many videos on programming.

Scripts are such a powerful tool as well, I’ve written scripts to help automate my tedious data entry job in the past, process and analyze volumes of data for different disciplines such as in geography and in helping someone with their linguistic research. Programming is such a powerful tool and for some, programming “clicks” when it becomes a useful tool.

Twitter, Facebook