#ProgrammingStruggles #LearningToCode #ComputerScience #ProgrammingTips
Hey guys, if you’re a beginner in programming and feel like you can’t code at all, you’re not alone. Many students studying computer science or programming can relate to the frustration of not being able to write code, even if they understand it.
It’s a common struggle, especially in the early stages of learning to code. But don’t worry, with the right approach and some practice, you can improve your programming skills and gain the confidence to write code on your own.
Here are some tips and techniques to help you overcome your programming struggles:
Understanding the problem
Before diving into writing code, it’s essential to understand the problem you’re trying to solve. Take the time to carefully read and analyze the requirements, and make sure you know exactly what is expected of your code.
Break it down
Break the problem down into smaller, manageable parts. This will help you to focus on solving one piece at a time, rather than feeling overwhelmed by the entire task.
Use emojis to visualize
Visualizing the problem can often make it easier to understand. Use emojis or simple, hand-drawn illustrations to represent the different components and how they should interact with each other. This can help you to see the logic and flow of your code more clearly.
Research and seek examples
Don’t be afraid to search for examples or references online. Look for similar problems and solutions to get a better understanding of how to approach your own code. Seeing examples can often trigger ideas and help you to figure out the best way to write your code.
Use pseudocode
Pseudocode is a helpful tool for planning and organizing your code before actually writing it in a specific programming language. It’s essentially a plain language description of your code’s logic, which can make it much easier to translate into actual programming syntax.
Practice, practice, practice
Practice makes perfect, especially when it comes to coding. Keep experimenting and writing code, even if it doesn’t work perfectly at first. The more you practice, the more you’ll learn and improve.
Pair programming
Consider pairing up with a classmate or someone with more experience in programming. Working together can give you valuable insights and different perspectives on how to approach and solve a coding problem.
Don’t compare yourself
It’s easy to feel discouraged when you see your classmates or others seemingly understanding and writing code effortlessly. Remember that everyone learns at their own pace, and it’s okay to take your time to grasp concepts and improve your skills.
Take breaks
Sometimes, staring at code for hours on end can be counterproductive. Take regular breaks to clear your mind and come back to the problem with a fresh perspective. It’s surprising how often a simple break can lead to a breakthrough.
Seek support
If you’re feeling overwhelmed and on the verge of giving up, don’t hesitate to seek support. Talk to your professors, a tutor, or a mentor in the field. They can provide guidance, encouragement, and valuable advice on how to overcome your programming struggles.
Final thoughts
Learning to code can be challenging, but it’s important not to give up. With persistence, patience, and the right approach, you can improve your programming skills and gain the confidence to write code on your own.
Remember that it’s okay to struggle and make mistakes. In fact, it’s all part of the learning process. Embrace the challenges, keep practicing, and don’t be afraid to seek help when you need it.
You’ve got this! Keep learning, keep coding, and before you know it, you’ll be writing code with ease. Good luck!
Mate. I am in the same boat. What annoys me is. The people who barely understands what a function is. Or how it works during class. Are finishing up their tasks with topics we haven’t gone through. And here I am struggling the shiiiiit out of reading and understanding the code.
I’ll give you an example . Latest task was finishing of an “casino” app on python. And I go through the code step by step and trying my best to understand what it wants me to understand. And it’s overwhelming. But it’s ok. We’re both ok. We’re not meant to click in one go and that is fine. What I did today. Was create a class , created 2 simple methods inside of them and made sure I understood how inheritance worked when creating another class that calls on the first object.
Then I went back to the task and copied a small part of the code. Started to do a small debug too see what would happen. Jumped back and forth until I understood 1% of it. That small win. Was the happiest thing during the entire day! It’ll come
Do you just stare at it for hours or do you have any tactics to solve the problem?
You can write on paper, draw, go through step by step with pseudocode, break the problem down, start with something very simple and basic and build up. There are also tools for you to use directly in the code like debuggers.
Which of these do you currently use?
Staring at the code doesn’t help. When your code doesn’t work, or works wrong, you have to actively try and figure out what’s wrong. Test your assumptions. Come up with hypotheses. Do experiments.
As someone who didnt do great in college in comp sci, but now am 15+ years into my software engineering career, I can say It takes time and everyone goes at a different pace. The important thing is that you stick with it.
Ive taken classes where I didnt understand the material until the final. Other classes, I didnt get till long after. It will click eventually and the more you immerse yourself in it, the better. So good luck and try not to get discouraged.
Dude how is this possible
Just try making a code where there’s a loop and a print
There’s an input string that asks the user a question
The loop progressively adds to the print on the screen.
Don’t be discouraged! Everyone goes through this when learning to code.
I would say get a notebook. This notebook you will now use whenever you are programming. Just start writing your thoughts about the problem in this notebook. Inputs you may need, what you need to accomplish, and some ideas for how you might solve the problem.
Do your thinking in this notebook until you come up with a plan for how you might solve it. Just write anything that comes to mind, nobody else will see the notebook so don’t worry about that.
Then try to code it. This is how I tackle tough problems, maybe it can help you. Now I have a notebook with me at all times when I code.
Your feeling is common. Some people aren’t exposed to coding until college and feel behind. It’s also a totally different way of thinking. Start from something. Take an exercise from class and ask yourself “what if”
Like what if the user enters something wrong. What if I added a chart. What if I read in some data. Or look up small games, like write a text rock paper scissors. Just do little things. Once you get started, you’ll probably keep going and eventually it’ll all click.
Don’t use ai. Google what you are tying to do. That’s what every developer does
I’m in the middle of learning myself and face this issue earlier. You just gotta code and experiment even if you have no idea what to write. Just code, even if you dont know what the hell you writting, just write, you will have alot of “AH-HAHH” moments I can assure you.
Try thinking in blocks or iterations. A few next assignments. Take it easy. Don’t feel like you have to figure it all out at once. Put it into baby chunks. Make an algorithm for yourself. Don’t give up!!! And don’t stare at the code!!!
You need to get some milk.
Put the shoes on.
Walk out the door.
Go to the store.
Buy milk.
Return home.
Try doing assignments in this fashion. Make the smallest functional piece of code for your assignment. Test it. Make sure it works. Be happy about it!!!
Make another. Connect them. Work towards completing the whole assignment.
In general if you do end up as a software engineer, you will do similar things.
Let’s say you are working on a payment system. And you need to implement communication between some random financial institution and the project you are working on. The financial institution will send you instructions in a 400 page pdf and a link to their test system. How do you go about it?
Well… First you send the simplest kind of request to their test system that you know will fail. But it’s something. The URL is correct at lest. And you build on it. In iterations.
A great quote by some random person on the internet which stuck with me:
“Great code is not shat out by a senior engineer or a software architect in one go. It comes into existence in iterations and in time.”
Something like that. And I think it’s pretty accurate.
Enjoy building things and have fun 🙂
it’s over for you
I felt this way too until I just started my first real project and then I got hooked
You’re just starting out, if you like the idea of programming now that you’re starting into it, it’s all about practice. Do your homework, but also get a book on whatever language you’re learning. Sometimes (most of the time) the class textbooks chosen are not the best for self-guided learning, but look for the O’Reilly Learn <language> books, or even some of the Sam’s Net books.
Volume, and repetition. No one starts out great, but the more you do the more natural it’ll be. Do your coursework, mess with it, do some projects on your own, geek out with friends in your classes to find things you’re interested in. Code as much as you can. If you want to do this, you can.
Enjoy it, too 🙂 You’re starting into the bit where you get to do a lot of actual coding. When you get to be an old timer, you mostly end up taking on Zoom or Teams about software that other people get to write.
Idk about ur university but mine sucks at teaching how to actually program. U just gotta go write code on ur own I think it’s the only way.
Plenty of work in construction
it’s not as complicated as it seems, there’s just a lot of “question marks” at this stage of your learning process. a lot of them, but also definitely a *finite* amount of them. so if you plug away at squashing them one by one you will eventually get through it and things only get easier.
the real skill that you need to develop is actually not so much the coding but rather the ability to formulate questions and find answers to them, and most of the time you can find the answers yourself in the documentation. this is like the central skill that you should learn above all else.
really this is what the degree is about. not just turning you from a non-programmer into a programmer, but more turning you into a person that can solve their own problems. the first-year courses are basically a quick “how-to-program” jumpstart in a single language, but after that you will be more or less expected to teach yourself other languages as needed. this should be ok, because you should be learning the skill of teaching yourself and the whole point is that once you have that you can grow faster than ever. (it’s definitely a “give a man a fish” VS “teach a man to fish” situation.)
(as far as I know this “teach a man to fish” style is the way things are when going for a degree. if you were instead going for a certificate/diploma of some kind, those are instead done the “give a man a fish” style. that is, they give you some very specific concrete information and then leave you with just that. I think a lot of people think “give a man a fish” is the only way and don’t know about the “teach a man to fish” path, but that’s what you should get from the degree program.)
The way I learn a new topic is to play with the syntax, try to rewrite it the way I understand it, when the bugs show up I try to solve those bugs and while doing that I find out the dos and donts, that’s how it stick to my memory
Coding is being eternally frustrated and trying to find out why it’s not working and then having these times of complete euphoria when it’s 3am and you wake up for some water and everything just fucking clicks and you know what to do.
If you don’t have a Mr take it apart and fix it personality give up now and switch majors. You have to like to solve puzzles. You have to be a diy type of person. Otherwise the profession is not for you
I’m the same way. For example, I can mock up a website with html and css but as soon as I actually go and try to build one, I go blank and feel like I don’t know anything. Strange feeling. I made it through college getting my Bachelors in computer science but still feel like I can’t do it when I actually sit down and try
I feel like I can’t code either.
Source: Guy who, for the past 30 years, has designed and coded test system architectures in Java, c sharp, or whatever the customer wants.
Small tip to change you “staring at code hobby”. Below is a link to Rub we Duck Coding. It is a simple concept of explaining how the code works to yourself verbally.
The ability to explain code is a totally separate skill that many professional engineers don’t have and by training yourself to be in a “let’s walk it through verbally” mentality it will help you with your own code and other tasks down the line. You WILL find more mistakes in your code than you do silently staring at it if you verbalize out what it’s doing and listen to yourself.
https://en.m.wikipedia.org/wiki/Rubber_duck_debugging
Usually it’s other way around, it’s easy to write code, hard to read.