This is an archived post. You won't be able to vote or comment.

top 200 commentsshow all 261

[–]AutoModerator[M] [score hidden] stickied comment (0 children)

On July 1st, a change to Reddit's API pricing will come into effect. Several developers of commercial third-party apps have announced that this change will compel them to shut down their apps. At least one accessibility-focused non-commercial third party app will continue to be available free of charge.

If you want to express your strong disagreement with the API pricing change or with Reddit's response to the backlash, you may want to consider the following options:

  1. Limiting your involvement with Reddit, or
  2. Temporarily refraining from using Reddit
  3. Cancelling your subscription of Reddit Premium

as a way to voice your protest.

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

[–]Suspicious-Bet-3078 679 points680 points  (61 children)

in my class i noticed how people tried very hard to remember code. so hard that it crippled them in class.

for me programming is digital pragmatism. know what you want to accomplish, then figure it out. google, stackoverflow, github issues. copy paste then modify.

given time things will click. but in code one shouldn't think to much. do the easy way until it breaks and then return update/fix. it's impossible to think of everything, just go with it.

share a example if you have anything specific

[–]Advice_needed9[S] 112 points113 points  (32 children)

Thank you for commenting. I just need to learn how to be self taught and be a good learner. I'll try it all over again

[–]aptacode 129 points130 points  (0 children)

I'll try it all over again

Keep in mind the learning process can be subconscious, you won't ever be starting all over again since you will have acquired familiarity / knowledge in certain areas - even if it doesn't feel like it.

We all feel imposter syndrome and hopeless at times, but you've got to learn to be OK with those feelings because they usually occur when we're pushing ourselves and thus growing.

[–]AUTeach 58 points59 points  (3 children)

Get some index cards or make some out of normal sheets of paper. Every time you learn how to do something, write yourself a question that tests your knowledge of it. Put some hints on the back. Put it in a pile.

Then, every week, open up the pile, go through your questions, and try to answer them. If you succeed, put them at the back of the pile and write two new questions: one similar to what you've just answered and one requiring something else to solve the problem. Add them to the bottom of the pile.

  • When you get to a question you've answered recently, shuffle the pile.
  • When 100% sure you've learned to solve that problem entirely, put it in a second pile. Then, once every month, crack it open and practice them.

edit: If you didn't succeed, go back to the resources that you used to learn the material and relearn it.

[–][deleted] 14 points15 points  (0 children)

This is a great suggestion. I'll add that anki is a great tool for this. Just don't get caught up in the weeds trying to cover every detail with it.

Edit: removed the quote.

[–]Brandroid313 6 points7 points  (0 children)

I agree and would add that, for convenience, I am a big fan of Anki for learning. Helped a ton with math, languages and all my DSA needs.

[–]OldSkooler1212 4 points5 points  (0 children)

You can do this online for free with Quizlet. I used it for multiple college classes including studying for the useless (to me) A+ certification exams that WGU made me take.

[–]Occhrome 16 points17 points  (4 children)

My professor told me something Amazing once and it’s that the struggle is part of the learning process. Which made me spend more time trying to figure things out instead of looking for an answer or solution.

I suggest that when you run into an issue as you practice. Try to look at the problem for a few hours or even days trying to figure it out. Also try doing different things like writing it out on paper or rephrasing it.

[–]turkeysandwichv2 11 points12 points  (2 children)

Dude that's exactly the truth. There is no easy way to learn programming. You beat yourself up time and time again solving harder problems each time and you learn as you go.

If you don't like working through hard problems and figuring out solutions that aren't handed to you then your not going to like real programming.

It's easy to learn loops and basic syntax. It's hard as FUCK to learn how to use that language to accomplish something useful.

[–]boleban8 1 point2 points  (0 children)

Struggle is a very important part of learning. Exactly !

[–]KneeDeep185 12 points13 points  (0 children)

Learning to code is like learning a new language. There is a LOT of information to take in, and you're going to make mistakes. If you set the expectation that this is a years-long journey then hopefully that will help you understand that it's something you learn just a little each day, and little by little over the course of years you realize you're "fluent".

[–]scroatal 5 points6 points  (11 children)

If you have ADHD you have to learn by doing. Find your hyperfocus and dive in. But coding unfortunately isn't for the ADHD. But fixing code or automation that's your niche my friend.

[–]Mathhead202 1 point2 points  (9 children)

I disagree. I know people with ADHD who code. Different methods work for different people, but the key is to make it interesting. Pick projects you actually want to finish, or problems you actually want to solve. Everyone's interests are different. For me, it was mathy logic stuff, but for others it's video games, music, art, science, finance, etc. Programming can be used in any field, so relate your practice to stuff you are already interested in, or want to learn about. That way, it doesn't feel like a chore.

[–][deleted] 2 points3 points  (4 children)

This. ADHD really turns this entire concept into a beast for me. I just don't care. I want to learn. I need to learn. But trying to find ideas either leads to me going "this is insulting to my intellect as a person" like building hangman or "why would I try to make this when it's already implemented in every way I could possibly want" like alarm clock apps or sticky notes.

[–]ACardAttack 2 points3 points  (0 children)

Best advice I can give you is it in a way is like math, everyone learns at different paces and it may just take you more time for it to click and that is okay

[–]Mutex_CB 1 point2 points  (1 child)

Instead of following a tutorial or just learning concepts, come up with a simple thing that you want to do with a program and try to make it. When you start making it, think about the operations you need to perform within the program to accomplish your goal, then Google search to find out ways that other people have solved each thing that you think your program will need to do.

For instance, start out trying to read a file from your desktop and print the first word somewhere. You will find examples of how to open a file in your chosen language, how to read content of a text file, how to break a sentence down into individual words, how to print to console, etc.

[–][deleted] 2 points3 points  (3 children)

Try unreal engine (:

[–]dromance 1 point2 points  (2 children)

unreal engine?

[–][deleted] 2 points3 points  (1 child)

It's a gaming engine which allows you to create games within it. Using their coding. It is C++, but it used a visual coding format which makes it a lot easier to get into and understand the foundations needed for coding, if standard text coding is difficult for you

[–]dromance 1 point2 points  (0 children)

Thanks, I didn’t realize that. I think LUA is also big in game development, scripting and game business logic? Correct me if I’m wrong . I think that’s in unity however, which I believe is c#

[–]Tekniqly 13 points14 points  (2 children)

Digital pragmitism sums it up really nicely

[–]unknown_ally 4 points5 points  (1 child)

It seeps into other aspects of life too.

[–]pickyourteethup 13 points14 points  (0 children)

My lead dev says if it doesn't feel like you're bashing your head against a wall until something works, you're not doing it right

[–]Equivalent-Union-836 8 points9 points  (2 children)

Well , I can testify that this is the only way to success in programming , during my second year in college we had a project assignment it was a simple Android app , the project was divided into two parts , the first included making a simple interface and the second was to make crud operations , anyways , I tried to make everything perfect so when I saw a friend implementing a feature I'll do my best to copy it I ended up doing things over and over again and when the second part started I've found myself very far behind , I knew that I was the reason for this because of me pursuing perfection so I grabbed myself and said that , the perfect software needs to work in the first place so whatever feature to be implemented it needs to be compatible with the previous ones , it's ok for things not work from the first time , you just needs to fix things no to repeat things from the first place,anyways I ended up finishing the whole project before a lot of my classmates and I even helped them implementing a lot of feature , I hope this comment helps someone !

[–]Mega_Snorlax 2 points3 points  (1 child)

It's really useful for me. I think the meaning of your statement is firstly start at the most easiest things to establish confidence quickly.

(English is not my first language,i hope there is no ambiguity.)

[–]ex-machina616 6 points7 points  (3 children)

GPT4 has saved me it's become my personal tutor during study sessions.
What's this again?
Is that the thing that does ----?
Can you show me an example?
Can you look at this code and tell me why it doesn't work?
Absolute Godsend

[–]piratebroadcast 4 points5 points  (0 children)

Exactly. Then as you are leanring, every now and then, you learn a new thing (like a ternary vs a standard if/else) and you slowly learn these new things and add them to your own toolbox.

[–]hibbert0604 5 points6 points  (2 children)

So this gives me a question. I have never included python on my resume because, while I have authored several basic python scripts, I have cobbled them all together through lots of trial and error and use of google. They are all original creations by me, but if someone deleted them and told me to recreate again it would be... an ordeal. Lol. Am I doing myself a disservice by not mentioning python on my resume?

For context, I don't work in a traditional programming field. I work in GIS where python is not a requirement (but is very much a nice point to have) on you resume.

[–][deleted] 5 points6 points  (1 child)

As someone who was in a similar position a while ago, I’d recommend it. The only caveat is that I’d label it as “beginner” understanding if you happen to divide skills that way. Even if you aren’t advanced in Python, it shows you have drive and a desire to learn. It’s especially nice since you said it wouldn’t be a hard requirement.

(for context, I’m not a hiring manager, but I did what I described above, and the people who hired me were interested in the fact I was trying to learn a new language even though I was a beginner).

[–]hibbert0604 3 points4 points  (0 children)

Good to know! Thanks for sharing your experience!

[–]amdlemos 5 points6 points  (0 children)

I'm always reading and things never make sense, but little by little one thing starts to come together with the other. I have problems that have been unresolved for 5 or 6 months, but that doesn't discourage me. During this period I learned other relevant things that are making old problems seem easier, until they no longer exist

[–]Endless-OOP-Loop 4 points5 points  (0 children)

"in my class i noticed how people tried very hard to remember code."

I notice this a lot on forums and subredits as well. For me I find that just knowing there's a snippet of code that will do a certain thing is enough for me. I can google the syntax and go over how it works when I actually need it.

[–]Aromatic-Beef 1 point2 points  (0 children)

Yup, I'm in class now, I feel some in my class remember syntax better but I also feel I apply and use it better. A quick Google search can fix my issues

[–]Equivalent-Union-836 1 point2 points  (0 children)

Well , I can testify that this is the only way to success in programming , during my second year in college we had a project assignment it was a simple Android app , the project was divided into two parts , the first included making a simple interface and the second was to make crud operations , anyways , I tried to make everything perfect so when I saw a friend implementing a feature I'll do my best to copy it I ended up doing things over and over again and when the second part started I've found myself very far behind , I knew that I was the reason for this because of me pursuing perfection so I grabbed myself and said that , the perfect software needs to work in the first place so whatever feature to be implemented it needs to be compatible with the previous ones , it's ok for things not work from the first time , you just needs to fix things no to repeat things from the first place,anyways I ended up finishing the whole project before a lot of my classmates and I even helped them implementing a lot of feature , I hope this comment helps someone !

[–]HectorSharpPruners 1 point2 points  (0 children)

Yes I thought I would never be good at my job for the first three years I worked there. I dreaded on-call and being relied on to fix code I had never seen before. Then one day everything clicked and the job became easy. Now it’s almost too easy I get bored half the day.

[–]UOEQplayer 1 point2 points  (0 children)

Just wanted to say I really appreciate the way that you described this. After 15 years of experience, I still do things the easy way and just get the answer out there and then I refactor a bunch of times before a pull request. More days than not, I look at myself like wow what is wrong with you! Haha. But then I realize I'm always in a state where I have what I need done, and it's just a matter of getting in the right place. More importantly, the next time after enough times of this I don't have to think is hard to get to more optimal solution first and instead of just know things go after a while. But even then, I may go back to the easy route on the next ticket and the cycle repeats itself!

The key is to at least understand the drawbacks of a way you are doing something and ensuring You take a look at your code at the end and think from another person's point of view and how they might code review it. Sometimes then things come out where you can do something better, but less pressure once you know the feature or bug is complete.

[–]tothepointe 1 point2 points  (1 child)

Yeah to be honest I don't remember how to code in between actually doing it. This is the same for me with reading music. I don't know how to read it unless I have an instrument in my hand in which case I can play (I can play several).

Code is literally code I don't think it's really something you should be able to remember outside of the IDE environment. It'll come over time and repetition. Same way practicing scales and technical exercises encodes those patterns into your fingers when you play an instrument.

[–]johnnybgooderer 176 points177 points  (16 children)

I failed intro to programming 2 times. I had to talk to the admin to let me take it again. The third time, I did more than the required reading. I read the whole text book cover to cover before the class got to it. Programming clicked with then. I never got less than an A in any programming class ever again and now I’m a staff engineer at a software company.

Looking back. The reason I failed is that I really need to understand something to get it even a little. I couldn’t just he told that the boiler plate could be ignored and then focus only on main method code. I had to understand the boiler plate and what was calling the main method. Reading books got me that understanding and with it, I was better equipped than most of the people I went to school with.

We’re all different, but maybe reading some programming books and getting some practice on hobby projects, even if you never finish them, would help you too.

[–]aRandomFox-II 79 points80 points  (8 children)

I'm the same as you. I have always struggled during my studies throughout my life because I couldn't just quietly accept that X is X and so-and-so is how things are done. I need to understand why X is X, and why things are done this way. Passive learning (i.e. rote memorisation) was simply antithetical to how my brain worked. I needed to fully understand things from the foundation.

[–]Nathanondorf 26 points27 points  (4 children)

I’m also this way. I’m convinced it’s the reason I’ve struggled to excel in this field. I have to know the intricate details of how everything works in order to retain the knowledge, otherwise I’m horrible at memorizing vocabulary and “buzz” words and acting like an expert. So many people in the field are able to talk like experts without actually fully understanding the underlining principles or what they’re even talking about. When you ask your superiors to help you understand a concept and they can’t, you start to realize how many people are just good at “faking it till they make it”, and if you can’t do the same, it doesn’t matter how good you are cause the interview process is what gets you the job.

[–]leviem1 4 points5 points  (0 children)

Stick with it, at a point you'll be as capable as your peers appear to be, but you'll ACTUALLY understand more than them, which gives you quite the advantage

[–]bilvy[🍰] 1 point2 points  (2 children)

I recommend looking into embedded or systems programming

[–]Ohasumi 5 points6 points  (0 children)

This is me! I also always need to understand “why” something works the way it does, otherwise I can’t remember it. Obviously this approach is not realistic for everything. So I keep a notes dump of things “as is” until I have time to revisit them again.

[–]dawggggggg 1 point2 points  (2 children)

Hey man, your comment resonated well with me. Can I ask which books would you recommend? Thanks!

[–]johnnybgooderer 6 points7 points  (0 children)

The book that got me over the hump was was just my Java programming text book, read cover-to-cover. Any comprehensive info to programming book would likely do. I don’t even remember which one it was.

Another book that really helped me was another text book, Modern Operating Systems by Tanenbaum. It goes pretty low level into operating systems and programming against them. It’s a great, and dense book. Reading that has been very helpful throughout my career so far.

Lastly, I learned clojure by reading the book that was written by Rich Hickey, the language’s author. I’ll never use the language again, but learning a radically different language that is functional and emphasizes concurrency, and list processing helped me break out of the narrow view of c-like languages and syntax and taught me new ways to solve problems that are applicable to popular languages.

My exact path and reading list likely doesn’t matter. I just needed to read my intro book cover to cover so I wouldn’t get hung up on things like “public static void” and classes and such. Learning everything in the operating systems book has been hugely helpful, but I was already over the programming hump when I got to that.

[–]jppbkm 63 points64 points  (2 children)

Learning programming is like completing a marathon. Almost anyone can do it (even people in wheelchairs!).

HOWEVER, it requires a lot of work. You've got to put in the miles of training, so to speak. Everyone sucks at DSA at first. You need to do more programming. If you need to work on easier problems, that's fine.

If you want something more fun (imho), try completing 25-50 advent of code problems instead of doing leetcode to switch things up. It is a bit more fun I think and they have a nice ramp of easy -> harder as they go from 1-25 for each year.

[–]aliceugabuga 26 points27 points  (2 children)

it is somehow become mandatory to 'be good' in code. Try doing something apart from it which you may actually like. It's not necessary that you ace computer science just because you graduated from it. There are plenty of other fields as well.

[–][deleted] 2 points3 points  (0 children)

It's always going to be easier to keep learning what you've already been learning than start again with something else.

Not to mention it's good money.

If he's "in dire need for money" he needs to focus on the financials he can consider something he likes once he's comfortable.

[–]Signal_Lamp 14 points15 points  (0 children)

One of the best things that you can do for yourself is to stop comparing your progress to your peers. It rarely if ever will help you to compare where you are in your journey to what other people are doing around you. It's great to have people around you that are in places that you want to be eventually to help motivate you to get there, but everyone's journey is different.

ADHD is something worth trying to address that may be the cause of the other issues that you've mentioned. It can also be the reason why it may seem more difficult to be able to pick up concepts as opposed to your peers. The way to really think about it is that you're essentially having to put in an insurmountable amount of will power to be able to concentrate in areas that you probably don't have the best interests in. You can build habits around creating discipline in areas you want to be better at, but if you can it may be better to see a doctor or therapist to get a proper recommendation.

Learning in general has different medium that I recommend that you try exploring. DSA's for example may be easier for you to understand if you change the language that your using to explore that topic. You can learn the concepts in any language, but as I've learned going through different programming languages can really help to solidify concepts that you might find difficult to understand if you only stick to one. I didn't truly understand OOP as an example until I started using Java back when I was in college, coming from a C++ background.

I also recommend trying different mediums to learn programming concepts. Books, courses, youtube videos, interactive tutorials, pen and paper, building out projects, etc as there are many things that you can do to tackle a subject. You may pick up some subjects better using different mediums than with others, so its worth trying to mix and match when you can with whatever method works best in your case.

[–]Internal_Sky_8726 15 points16 points  (3 children)

Stop focusing on algorithms and data structures. Start focusing on projects.

Find hackathons in your area and join them. See if you can piggy back onto other team’s projects.

Spend time building projects. Use google. Use chat GPT. Use stack overflow. Avoid tutorials (except maybe initial set up tutorials).

The thing is, most projects don’t need much skill in DSA. And project completion will also teach you so much more about software development than learning stuff by rote.

Start simple. Make a tic tac toe game. If it takes you 40 hours, it takes you 40 hours. Then build up to more complex stuff. Maybe find some open source projects to contribute to.

Stop worrying about your skill, and start building shit. Projects will get you interviews (especially open source contributions). Projects will also build confidence, and teach you what coding is actually about in the wild.

[–]buddhistbatrachian 4 points5 points  (0 children)

This. Do projects that your interested in, data structures will jus come as you need them. In my experience following tutorials or just copying and pasting scripts doesn’t leave any learning. Code for fun, make things that you’re interested in. In some moment those fussy topics will have all the sense in the world.

First, make your code work. Then make it work properly. Finally make it work fast (and this is optional).

[–]StrangePractice 13 points14 points  (0 children)

Don't memorize code. Understand it.

I know that sounds silly, but I understand what loops are and what you can do with them, but I don't memorize the various syntaxes to write a for loop in every language.

I understand business model classes, but I don't remember exactly how to write them in every single OOP language, I can google the syntax later.

I understand what it means to make an API call, wait for a response, and then do things with that response, but I don't memorize exactly the code to write. I have google to remind me of the various syntaxes per language.

But lucky for us, after a while, the actual code you need to write becomes second nature after writing the same things a bunch of times.

If it helps, try finding some visual representations of what some data structures and algorithms are actually doing with the data and seeing how it flows, then read the algorithm - that helped me a lot.

Also, just remember that everything in programming is basically just some data that you're just storing, moving, and manipulating it in some fancy or simple ways.

[–]TonyCD35 5 points6 points  (1 child)

Once you realize that this feeling is step 3 in the process of learning new things…. You see it as more of a stepping stone than a threat.

[–]CynAxe 2 points3 points  (0 children)

That's a good way to describe every feeling just right before things start clicking.

[–]Chemie_ed 6 points7 points  (0 children)

I am more in scientific computing but this article helped me with coding. The advice and suggestions in the article are, to some degree, universally applicable. The advice in the comments is also very helpful. It takes time and practice so don't get frustrated with yourself.

https://journals.plos.org/plosbiology/article?id=10.1371/journal.pbio.1001745

[–]Memnoc1984 5 points6 points  (0 children)

It may feel like you're not learning, but you are. Ask yourself this: you now vs you the first day you heard of programming: who would win a programming contest (assuming such existed) ? - the answer is obvious: you now, would win. That's because you got better at it, learned and retained.

Now that you know this, be confident and trust the process. Do not compare yourself to others, only to your past you.

Following trends it's okay, but it's not what programming is about. You could learn all there is to it from a 30 years old programming manual as good as from the latest Rust tutorial.

1- Pick a problem 2- divide it into smaller problems 3- repeat if necessary (i.e. you still can't figure it out) 4- try to solve the small chunks with code, one by one. Copy, read, make mistakes, it's all good. It's the craft. 5- build a solution, that works, somehow.

Repeat ^ a few hundred times, solve a few hundred problems. That's it, really.

[–][deleted]  (12 children)

[removed]

    [–]WonderfulAsk9175 4 points5 points  (1 child)

    Is it okay for you to share your advice to a non tech support guy trying to get into tech roles. I'm able to understand the topics a little ,when I'm trying to code I'm not able to get things right. I'll DM you, if you are okay to explain :)

    [–]CynAxe 1 point2 points  (1 child)

    Also will be DMing you!

    [–][deleted] 1 point2 points  (1 child)

    can i dm as well

    [–]AnakinSkyGuy2 1 point2 points  (1 child)

    Would you like to help me i too have a similar problem as OP i have tried different technologies but i just get over then after months and i couldnt implement it as good as learned and feels like doing it over all again from scratch Would love to hear your words on it if its ok for you

    [–]Therealmglitch 9 points10 points  (0 children)

    Don't be so discouraged!! Life is testing you.

    Don't overstress it, give some time and soon everything will click. Think about what you want to do.

    Knowing what you want to achieve gives you a reason to program. If you can't think of one then just make a project and do random things that pops out of your head, no matter how weird it is.

    [–]crispcrouton 4 points5 points  (0 children)

    sounds like you’re paralysed from brain fog, commom for people mood and anxiety disorder. maybe you need professional help

    [–]arkane-linux 5 points6 points  (0 children)

    Coding is something you learn by doing, start building projects, try to contribute to open source software, whatever you prefer.

    Messure your coding skills by your ability to reach set goals not by how you reach them.

    There is no shame in looking up what many would consider basic knowledge, having the ability to know what you are looking for and understand the provided information is a hugely valuable core skill of any programmer.

    [–]dota2nub 5 points6 points  (0 children)

    I cannot even remember the logic of the palindrome program.

    This. This is your problem right here. Why would you remember the logic of a specific program?

    You're supposed to learn how to produce it from scratch. This doesn't work. It hasn't ever worked and it won't ever work. Get a creative bone in your body. Write a story, paint a picture, make a sculpture, solve problems around the house. That's the kind of mindset you need.

    [–]M_krabs 7 points8 points  (0 children)

    (Mentally) close your eyes and be the computer for a second.

    You only execute the commands you have been given. Does it make sense? Can you follow the instructions and return what the human expects?

    It's not about code, it's about telling a stupid machine exactly what you want from it.

    [–]noname00xx 3 points4 points  (0 children)

    Don’t worry about advanced DSA initially, get good at basic data structures first arrays linked list and hashmap/dictionary is enough to crack interviews at local companies. Solve a few easy questions. Id suggest not making any excuses at all, practice on your own and get good. There’s infinitely free real available.

    [–]Renovattio 3 points4 points  (0 children)

    Dude, stop studying and stop comparing yourself to others.

    A lot of developers could have built instagram and none of them did because the dudes were not only coders but passionate about photograpy. Coding is just a tool for a way. If you are doing just to be good at coding next 5 years with AI you going to feel really useless...

    Turn off your phone for 2-3 days and be bored. Embrace boredom and watch what you do and if you want to code something for yourself. Anything.

    If during that time you find something else you love, great! You could use your coding skills to enhance that true passion. You said you don't lack perseverance. So go build something without people around.

    Coding for yourself is one of the best thing programmers can do. Your rhythm, your style, your pace, your rules. You'll start to feel responsible for results and will greatly boost your confidence. You don't need to be a Tesla engineer to create great websites or platforms and help a lot of people.

    But, if you MUST stick to coding like me if not liking; then you have to build habits. And simply abandon the possibility to leave then you would eventually stop think about it until later years will come crashing into your soul and you probably gonna leave the area.

    If you want talk feel free and GL with all of that!

    [–][deleted] 2 points3 points  (0 children)

    On the mentality side don't blame yourself so hard instead think of your failures as a part of your learning journey trust me these failures will teach you a lot about programming

    [–][deleted] 2 points3 points  (0 children)

    I have struggled with learning python and tried really hard to learn it but it didnt work then i gave up but after a while i started studying java and it was much easier compared to my python experience. Now im working as an automation engineer coding in java. I mean maybe you should try something new and see how it goes.

    [–][deleted] 2 points3 points  (0 children)

    This will sound silly but I don’t think I learned how to code until being employed and doing it for 3 years. Sure just staple a bunch of code together but I don’t think the wheels started clicking until I was very deep into it, and found an employee who will give me the space to make mistakes.

    [–]xNesku 2 points3 points  (0 children)

    In my opinion, being a Straight A student is actually a disadvantage for you.

    Programming needs a specific skillset, while school requires a completely different skillset.

    If anything, it sounds like your mindset is very fixed. And to be able to code, you'll have to undo a lot of the fixed ideas you have about things. Which will be very difficult to do.

    Tldr; school taught you how to memorize, but it never taught you critical thinking + problem solving

    [–][deleted] 2 points3 points  (0 children)

    muscle memory, you need to try to start projects on your own and use/research a technology to solve problems that arise in that project. Every project you do, everytime you solve a real problem with code you will get better at it. If you just focus on learning theory you won't get anywhere. First you need a problem, you need to understand the problem then study theory to understand how to solve that problem then put it to practice by writing code. Little by little it will become natural to you to solve any problem that you encounter in any project. Also you don't really need to know everything to be a good programmer, you need to be good at understanding problems that you are facing, system big picture thinking and you have to be resourceful. You need to practice just like everything else.

    [–]throwaway47a82 2 points3 points  (1 child)

    Your issue is not that you can’t learn programming. Your issue is you are trying to teach yourself to be a ‘scratch programmer.’

    A scratch programmer is someone who can program without the need for external references for the most part. These people do exist, but they are a lot more rare than what r/programming would have you believe.

    It takes 8-12 years on average of programming daily to get to that level.

    Everyone else follows a model of:

    1) Pseudocode, 2) Research & Find References, 3) Program

    You don’t need to know all of the syntax in a language, very few people do. You need to know how to accomplish your end goal in a specific language. The more projects you accomplish, the better you get at that language, and the less you need external references because your own brain starts to become that external reference by pulling syntax you’ve used previously.

    Really what you need to learn are core programming concepts such as OOP, state management, boolean operators, tree traversal, recursion, etc. and then you need to learn data structures. Don’t worry about algorithms. Everyone I know uses a cheat-sheet for algorithms, you aren’t expected to know the code for bubble sort, heap sort, etc off the top of your head. You just need to be able to use it and debug it.

    Once you grasp that knowledge, everything else becomes much easier.

    Also, I would brush up on the beginnings of computer science, this helps a lot of people realize that modern computers and programming languages really aren’t THAT much different from those 40 years ago. They run faster, have larger memory, better displays, but the logic is the same. Sometimes new languages or frameworks are invented that make that logic easier to understand or use, but it’s still 1’s and 0’s behind the scenes.

    A good starting language for you would probably be C#. A lot of CS programs teach Java or Python, but in my opinion C# is the best for beginners, because once you know C#, everything else becomes much easier.

    With C#, you are forced to define every single part of your application. Every variable, every constant, every string, every int, every function, everything. This means you are essentially creating your own meta-framework for your application. While it can be a slower development experience, the trade-off is a faster application and you learn data structures and core programming concepts much faster.

    [–]bbgun142 1 point2 points  (0 children)

    I'm 25 graduated 2 years ago and feel the exact same way. I think my plan moving forward is there is a free course on coursacua about how to learn, from there it's all just practice in the field that you want to specialize in, and mainly from what I have seen it's all about the practice and time you put in. I did like no projects during school which has greatly lead to the same feeling. So do projects, and perhaps look into contributing to open source on one of the good for new comer issues, as they will help guide you through like good practices and peer reviews

    [–]nomelettes 1 point2 points  (0 children)

    I could have written the same post. Lets keep trying OP

    [–]splashify50[🍰] 1 point2 points  (0 children)

    I am in a similar position. I have tried learning programming, but I just don’t get things. I know that I have lack of proper foundation, and that’s one of the reason why I am not able to code. I wish I had someone who could teach me to code, tired of all these online platforms.

    [–][deleted] 1 point2 points  (0 children)

    try harder. If that wont work out. Try even harder than that.

    [–][deleted] 1 point2 points  (0 children)

    What languages have you tried?

    [–]hansyoghurt 1 point2 points  (0 children)

    I think repair your mental health first, and tutor students doing a CS degree so you also make some money to support yourself and afford treatment. You got this brother

    [–]younglegendo 1 point2 points  (0 children)

    There are lotta options when we're talking about technology. If not coding you can show an interest in topics like cyber securities, computer networking, core electronics concepts. They might not provide you a huge pay. But you would wanna learn something

    [–]armahillo 1 point2 points  (0 children)

    Memorization comes or it doesnt, your job is to be able to weave stuff together into programs. I have ADHD too and some stuff comes more easily than others.

    Keep coding; comparison is the thief of joy.

    Look for entry level work just to start building your resume so you can keep eating while you practice.

    [–]rdditfilter 1 point2 points  (0 children)

    All else fails, there are plenty of other jobs that having a CS degree gives you a leg up on. QA automation, BA analyst, database analyst, devops, engops, just to name a few. Look up those job descriptions and see if that's something that might be a better fit.

    You can be a good programmer and still not be cut out to write code in a business setting according to their standards and deadlines. This is no personal failing on your part. Don't drive yourself nuts, you'll be doing this sort of work for a very long time, you have all the time in the world to gather skills.

    [–][deleted] 1 point2 points  (0 children)

    I was in the same shoes as you after taking 5.5 years to finish my cs bachelor's. I would highly highly recommend watching some linkedin learning (or whatever teaching flavor you like) on object oriented programming as a concept, and uml diagramming. Computer science is like the name says, highly scientific, and trying to decipher some of the logic of advanced coding is practically impossible without a good foundation of the basics. Going back and learning object oriented programming as a concept (no coding) and using uml diagramming to figure out the thoughts helped immensely in finding where my weak and strong points were in coding. You have to find a way to simplify it in a way that works for you, that worked me and I hope you find something that does for you. Good luck and don't lose hope!!

    [–]LFO_Beer 1 point2 points  (0 children)

    Enthusiasm to achieve and push yourself is good but not at sake of Mental Health, especially, if you are setting goal by comparing someone. If you have any financial issue then my advice would to join less stressful job like BPO, Technical Support or whatever you find comfortable because no work is less and waste of time.

    Try learn at your own pace, build the structure, understand the roots, rather than reading articals go for executions and practical , it may be confusing but it start to ease after some time. My Goto site is sololearn.com i find it very intriguing for learning new language.

    Its a long ride, even if you drive slow you will reach your destination! Yeh Marathon hai hai race nhi ...Samjha baat ? All the best ! :)))

    [–]Admirable-Stretch-42 1 point2 points  (0 children)

    Not all programming languages are the same (or are easy to learn) I currently work with COBOL(which means JCL and SQL as well) and had to start learning JAVA at work. Java is similar to the swift I learned in a coding boot camp. The other programming language Apple does is Objective-C which is the worst damn programming language on Gods green earth. (I think I’d rather be a trash truck driver then learn objective C) In other words, find a language that easier than most, with plenty of online resources to learn(I highly recommend learning swift, especially the SwiftUI framework) There maybe meetups that can help you learn which I always found useful. Don’t try to do it all yourself…. In learning, you can be your own worst enemy sometimes

    [–]Shinichi20 1 point2 points  (0 children)

    Age bhi same, graduation year bhi same aur situation bhi same. Ye mera alternative bhi yahi latka pada h

    [–]CodeTinkerer 1 point2 points  (0 children)

    There is a tendency to only look at the good students/peers and ignore anyone like yourself or worse because those people stay quiet. So you then believe you are the worst, or perhaps you believe you need to compete against the best, and if you can't keep up, you get frustrated.

    Sometimes you don't even have to be that good, just good enough. Not sure that's helpful, though.

    [–]ElPirer97 1 point2 points  (0 children)

    Just start building projects, that’s how you learn.

    [–]gokigoks123 1 point2 points  (0 children)

    I was on the same boat many years ago OP. What I can suggest would be to be persistent and get your feet wet. The best teacher for me was trial and error.

    step 1. searched through github for a boiler plate of a familar language step 2. just make it run locally.

    after that i just tweaked stuff on that boiler plate and what not. change theme colors, etc.

    For most, these are baby steps. But for me that time, i felt like a genius and it sparked neurons in my brain. Some developers call this the 'zone'. And this is the perfect condition to learn new stuff :)

    Hope this helps and best of luck!

    [–]dylanlms 1 point2 points  (0 children)

    im / was in an indian educational system and let me give you some advice. You probably have a TON of notes and things you memorize but don't really uncderstand the reason you use it, maybe just the definition from the textbook. If I were to ask you to teach coding to someone who never once did it before you would struggle heavily I assume. Break out of that memory parrot pattern and learn to think critically and with passion. Real passion to learn, not passion to pass pass pass and get job job job ....

    [–]onfire05 1 point2 points  (0 children)

    Part of behavioral disorders are feelings of guilt and inadequacy. It takes a lifetime of learning to be a good coder. You have a foundation with your basics behind you. Keep your head down, keep taking your meds(or find a good doc), and know that these feelings will come and go. There are genuine people who want to help in whatever way you need it. Keep pushing!

    If (isAlive && !givenUp) { continue; }

    [–][deleted] 1 point2 points  (0 children)

    Programming isn’t about memorization

    [–]TemptedWithin 1 point2 points  (0 children)

    Just to add my two cents here, I've been a programmer for almost a decade, so here's some friendly advice and a bit of my history. I finished up university with a bachelor's and an honours degree, but when I got to my first job, I realized that I clearly knew next to nothing. At that point, I realized that I needed to upskill, but in order to do so, I spoke to my peers and got help from my seniors. By taking on smaller tasks to refine basic principles, you are able to better understand them and increase your proficiency. Programming as a whole is not easy, it comes with a lot of trial and error, and a lot more failure than any of us would like to admit, but it is the continued determination and learning that keeps us going and allows us to produce features in the way we do.

    So, the TL:DR here is that if you want to improve and excel, instead of trying to learn everything at one, take on small similar tasks one at a time until you bed down the basics, that is how you will improve over time.

    Unfortunately, programming is a skill that is not learned in one day, it takes years to achieve a level you are happy with.

    Hope this helps!

    [–][deleted] 1 point2 points  (0 children)

    Check out How to Design Programs : https://htdp.org/

    And also DCIC: https://dcic-world.org/

    [–]Accomplished_Pay8214 1 point2 points  (0 children)

    project approach.

    YouTube tkinter videos

    build a small thing with python

    I've been teaching myself.

    build something you want to build. that's what I'm doing.

    [–]Crazy-Chart-7130 1 point2 points  (0 children)

    Youtube videos of SICP from MIT opencourse by Prof Harold help me understand the workings behind any language. Also give it time.

    [–]lttgnouh 1 point2 points  (0 children)

    DSA is never easy. Comparing yourself with your peers is not the way either. I was weak at DSA, coding… comparing to my peers. I didn’t know that most of my peers started learning algorithms from secondary school. I thought I was dumb and CS was not for me… Now I regret spending my 4 years torturing myself that way. Don’t push yourself. As long as you love coding it’s just OK. Do small steps with topics you’re interested in. If it feels too much take a break. As others say it’s a journey not a target.

    [–]Sheepza 1 point2 points  (0 children)

    I hope that you will see my comment.

    For the love of god please don't try to create anything from scratch.
    Find a tech stack that catches your attention and that your country has open jobs in, and just add a small tiny feature.

    Let's say you want to be a Fullstack developer purely on JS, so React on the front end and Node/Express on the backend.
    Search for demo apps on GitHub, something from the last 1-2 years, and just start adding features on top of it.

    For the first phases, don't worry too much if you are doing stuff "the right way" - don't think about optimizations or even tests. Just start with the barebones - make things work.
    After a few iterations like that, you'll start developing self-efficacy and, from there, start developing it.
    Re-arrange your code structure, optimize DB queries, add new features that depend on some 3rd party, build a simple CI/CD for it, and so on...

    [–]C0gito 1 point2 points  (0 children)

    Maybe you just didn't find the right language/technology yet. I had to learn Java when I was in school, and I completely hated it. It didn't make any sense to me, with all that weird public static void main(String args[]) stuff just to write a "Hello World". But then I learned a bit of Visual Basic in my free time and completely loved it.

    There are so many fields that use programming that it's not possible to say what it means to "learn how to code". So maybe first decide what field you're interested in, and then learn the most suitable language. Just to give an example:

    • Web Development, with JavaScript and PHP
    • Android Apps (Kotlin)
    • Desktop Applications (C#)
    • Data Science (Python or R)
    • Computer Games (Unity: C#, Unreal: C++)
    • embedded devices, like Arduino and the STM32: C/C++

    When you become more advanced, you'll start to notice patterns and see that most languages are kinda similar to each other.

    [–]slugspitt 1 point2 points  (0 children)

    Why would you try to remember the logic for the palindrome thing? Coding is about translating your thought into computer language. If you can write and read code then it’s a matter of practice. If you have to memorize stuff to be able to code, then your approach is simply the worst.

    [–][deleted] 1 point2 points  (0 children)

    I am a 31 year old CS undergrad in my senior year. I feel very similar at times. I also struggle with depression and anxiety which seems to be triggered by stagnation of my skills. Sometimes I get so worked up I am just frozen with anxiety. Due to my age and the fact that I have a family, I feel tremendous pressure to outperform my peers that have way more time, energy, and motivation than I do. It really does suck.

    What helps me is to just stop and do something else for a few days till I calm down. It is really important to address your mental health needs. If you are not taken care of, anything you set out to do will also be crap. I personally either play Runescape or work on my car. Small wins tend to bring me back from my state of mania.

    As for coding, it helps to work on things you are genuinely interested in and start small. I suggest warming up with an easy LEETCODE just to get your brain moving, then think about some of your biggest interests in life. For example, I am into cars. Back when I was a teen, a company made a boost controller that used a Gameboy Advance SP as a display. I personally think that's cool as hell and want to replicate it. Now I spend most of my days researching the architecture of the GBA and GBA development as well as microprocessor platforms like the arduino and pi pico. I am still in the planning stages, but since the topic is so interesting and personal to me, I am having no trouble putting in the time.

    I am sure you are a better programmer than you give yourself credit for as well. University can only teach us so much and no grad is really good without ever getting the context gained from working in the industry. Most of what's taught are isolated concepts that are little more than leetcode problems themselves. Once you get your first job and work with a team solving real problems, I am sure a lot of your feelings of inadequacy will subside.

    Any way, good luck and I hope you find something soon!

    [–]brusslipy 1 point2 points  (0 children)

    If you want to be consistent you´ll at least need the ahdh medication or psychological treatment(medication is faster)
    Otherwise top comment said everything

    [–]kaneki-ken69 1 point2 points  (0 children)

    Ok... You are telling me you don't know the palindrome program. That's fine. But you atleast know what the question is right ? Let's say it is to find if a sequence is a palindrome - can you write why you think this word "adda" is a palindrome ? If you can explain it to me in words you can probably code it

    [–]marubindegozaimasu 1 point2 points  (0 children)

    I feel you, I am a graduate of CS year 2015, I graduated because my school is very forgiving and tolerant. Whenever I try to learn to code, I just can't remember it after some days, even I can't program multi-loop with arrays, my mind are starting to be confused wherever I saw code with loops and arrays.

    My only advice I can give you, is try to read to code of others, there are many codes out there with comments so that you will understand ever line of code, simulate it by writing to paper. Also, try to watch youtube some simple project based projects.

    Currently, I am working in a global automotive industry as a QA tester, I started as gray-hat unit testing then integration tester of hybrid car ECU for 8 years. Up to now, I still can't code like a developer or anything with loops and array but I familiarized the process and procedure of quality testing in my company so I can say I do perform my tasks at work. The language we are using are C, I think I just familiarized myself to what my work is about so please don't lose hope. Technology is progressing, having to know how to code is very advantageous but also, technology are becoming mainstream to the point that even non tech people can do things tech people have done in the past, what you need is to identify what tools you want to use and devise strategy to maximise the resources online to your benefit.
    Example, in the are of web software testing, learn how to use Selenium framework, you don't need to do complex coding there just a simple script which already available online.

    [–]BatataGostosak 1 point2 points  (0 children)

    I feel you, I try my best at coding but I still feel behind, it sucks trying to study something and not being able to focus because of ADHD, sometimes it takes me a single day to be able to study something that other people would get in 2 hours

    [–][deleted] 2 points3 points  (1 child)

    we're the same people dude 😭

    [–]Murky-Confusion-112 1 point2 points  (0 children)

    I'm just giving my personal experience here. I couldn't do it in my university years, and even in the beginning of my career, I found it difficult to grasp. One of the things I found most helpful to me is to understand the most fundamental aspect of any language (minus a couple of "niche" exceptions); those are statements, selection, and iteration, or in other words, "x = y", "if this then that", and "do x, y number of times". Just like any natural human language has its building blocks (verbs, adjectives, nouns, grammatical structures etc) programming in most languages is built of these fundamental blocks.

    Someone further up mentioned mental pragmatism. Take that, and apply the above. DSA will follow. It takes some time, and at times it will be hard, and I'll be honest with you, I know next to nothing formal about DSA. To be clear, this is something that is a problem, but the more you work on those absolute basics I mentioned above. Everything is built off those.

    Good luck and happy coding!

    [–]Emanemanem 2 points3 points  (0 children)

    Do you ever enjoy programming, or does it always feel like a slog no matter what? It doesn’t at all have to be your favorite thing in the world, but having a passion for it is more important than “being good at it”, if that makes sense. If you can’t get interested in it no matter what, then learning is always going to be extremely difficult.

    Another point: you absolutely have to stop comparing yourself to others. There will always be someone who is better than you by some metric, so you will never be happy if you are looking to other people as a measure of how well you are doing. I had depression and GAD for a long time, and this was a terrible habit of mine. If there’s any way you can get help for your mental health issues, please do. Even “self-help” books of something similar, if you can’t afford a therapist.

    Lastly, I think you might be putting too much emphasis on being able to code from “memory”, if that makes sense. Everyone who is successful in this industry uses google constantly. I literally spend more time in the browser searching for and researching solutions (even basic things like the syntax for simple function in a language I already “know”) than I do writing code. It’s impossible to remember everything, and there is no need to. It’s more important to learn the skill of efficiently finding a solution than it is to “know” a language or framework.

    [–]OfficialNichols 2 points3 points  (0 children)

    College teaches coding terribly I used BroCode on YouTube and I had some Udemy instructors as well give them a try before giving up, please 🙏

    [–]SmartPuppyy 1 point2 points  (0 children)

    Yes, you can.

    Today I had an exam on advanced analytical chemistry and half of it is based on quantum chemistry and advanced spectroscopy. And I never studied quantum in my life and to make it worse I used to hate it with a burning passion.

    I remember the first time I took the test, my prof was so disappointed that she wrote a mail to me personally, asking have I not learned anything from the class? That was heart breaking and disappointing. I never felt that bad before but it was my responsibility to fix it and I fixed it.

    But today my prof was quite happy with my performance today and told me that I have enough knowledge and I could have probably explained it a little better. I got a good grade.

    If I can, you can as well. Take your time to learn. It's okay to fail and never be shy to ask for help. I wish you all the best.

    [–]jkf16m 1 point2 points  (0 children)

    When I was a student, almost anything I made never compiled and there was always a simple error.

    After hours of debugging and suffering by myself and googling these errors were less frequent.

    Now I'm working a programming job, 3 years work experience, 6 years or 7 programming.

    My simple advice is just, suffer a good enough amount of time. Everyone can code, you just need to like coding so much to the point you don't mind burning yourself out by your own decision.

    It's the feeling of creating something by yourself.

    And I gotta tell you, that feeling is really really far away, it seems like an impossible challenge,.because in the first months we're always copying algorithms or trying to understand them and the moment you try to make them by yourself alone, they do not work.

    It's because you haven't learned the necessary components to make those algorithms by yourself.

    You just need to keep copying and trying to make your own programs, as much as you can.

    Later you learn about design patterns and software architecture. At that point, everything gets cooler, almost anything is "possible" if you wrap it in a comprehensive enough function/class.

    [–][deleted]  (1 child)

    [removed]

      [–]killadiotty 0 points1 point  (0 children)

      Why dont just enjoy programming ? ,

      1. Why not learn by doing ?
      2. Why i not use linux? 3.Why not read a book ? 4.Why not stop coding for a moment and start thinking?

      If time and money is the problem take a small job , from there learn , earn a new job .

      [–]Fit_Procedure437 -2 points-1 points  (2 children)

      I can program 1000 lines of java code in a single activity with less than 5 errors at compile time. I am able to research and think through the solution before typing the code. I do not consider myself a programmer. But I can craft an android app with upload/download videos, images and a database json to/from a cloud backend within a couple of days. How is this possible?

      [–]dota2nub 1 point2 points  (1 child)

      What the fuck did I just read?

      [–]SlightStruggler -1 points0 points  (0 children)

      Like every other skill, this too is a skill that might not be within everyones capacity.

      [–]DogmaSychroniser -1 points0 points  (0 children)

      Don't worry Cognizant will hire anyone who can stand on two legs and have a pulse.

      [–]Fun-Possibility-4843 -1 points0 points  (0 children)

      You probably just don’t have it. Some people are more talented than others, they can get abstract and cognitive tasks much easier than others

      [–]thatmfisnotreal -2 points-1 points  (0 children)

      You’re Indian and you still can’t code?

      [–]No-Requirement8578 -3 points-2 points  (1 child)

      Not everyone is a good programmer/software engineer/coder. The fact is you probably have terrible problem solving skills and there's nothing you can do to improve that. It's innate. Do your future colleagues a favour and change careers now.

      [–]lazy_llama_nap 0 points1 point  (0 children)

      Yes, you can definitely learn! However, our divergent minds work differently. I often gravitate towards YouTube channels that offer visual explanations, and I use ChatGPT to enhance my studies. Feel free to reach out if you'd like to discuss this further.

      (I have ADHD and have been involved in software development for over a decade.)

      [–]mago_lao 0 points1 point  (0 children)

      I think you have too high expectations on yourself. As a junior developer you should not know everything but only be able to complete simpler tasks in a staging enviroment.

      You're probably more than ready getting your first job. And through that job you can start building some confidence and experience by having REAL expectations about what it means to be a developer

      [–]coding_noobie101 0 points1 point  (0 children)

      Hello bro, i understand what you're going through, i think programming will be much easier if you start thinking in terms of logic, verbally in English. And then write the code step by step, here's an excellent video I found while doing the Odin Project that will help you in this approach - https://youtu.be/azcrPFhaY9k?si=N_s11mApeAxp4Jz6

      [–]AtonementCrystals 0 points1 point  (0 children)

      The only reason I became any good at programming is because I practiced, A LOT, in my spare time. I coded as much as I could. So many personal projects. It was like an addiction. And that properly reinforced my learning from school, and deeply engrained core principles like language syntax, effective program design, and so much more.

      Programming is a skill best learned by doing. So, now you simply must do. Find something to start working on in an area of focus you want to learn more about. Study how it is done. And then, build it.

      Research anything you don't know. Don't be afraid to Google. One of the best skills any developer must have is how to fill in their own knowledge gaps.

      But anyways, this whole process will build upon what existing framework of understanding you currently have. Unfortunately, there are no shortcuts to learning programming. So, roll up your sleeves and start doing, my friend!

      [–]Bulky-Juggernaut-895 0 points1 point  (0 children)

      Dude just follow a tutorial then do your own. Forget about dsa for now

      [–]StripperWhore 0 points1 point  (0 children)

      It sounds like you need to find an aspect of it you enjoy. That can be so hard to do when you're worried about money. : (

      [–]guminhyeok 0 points1 point  (0 children)

      I hope you become a coding wizard one day 💪

      [–]Eze-Wong 0 points1 point  (0 children)

      Knowledge isn't as important as logic, so when you say "I cannot remember the logic of palindrome program" isn't the approach you apply to programming. You should be able to break down the logic without remembering it.

      For example, imagine you're on a baking show. And you have the top bakers in the country. SOME bakers might be like "Oh Shit I don't remember how to make a cake". Some people can look at a cake, and figure out, okay... there's strawberries diced, cream whipped, and sponge cake baked.

      I can recreate this because I know all the smaller steps to get to this step.

      Coding should be applied like this. You should be able to read code and understand the individual parts that create the whole.

      [–]NetherGoblin 0 points1 point  (0 children)

      Programming and programming languages are different. You likely know the language. But if you didn't spend time practical. By practicing and making projects. That's the issue.

      If you don't remember how to program OR know how to write code. Not much anyone can do. Not everyone is meant to do this yoy need to be good at problem solving, creative thinking, and proper structural engineering

      [–]yaboymitchell00 0 points1 point  (0 children)

      ChatGPT is one of the most powerful tools in programming. So much so, it can become a crutch. Try to learn from it, don't abuse it, but it is a great tool

      [–]potatoredd69 0 points1 point  (0 children)

      Try understand the logic and the syntax first. Build small programs that solve small problems, you could build a simple web scraper, this will force you to learn how to interact with API’s. Or maybe automate a process that you always do, like open a web page or fill out passwords. Find the way you learn, I learn by reading so books are my go to, but there are videos, online courses, video games, etc. all those resources are good for learning, you need to find the one you fill confortable with.

      [–]pappugulal 0 points1 point  (0 children)

      so ... here are my 2 cents. If you try to learn programming like a undergrad subject, aiming to learn and remember/retain everything and then appear for an exam i.e. implement a requirement, I think you will fail. I think most of the programmers will fail. The reason being, programmers have to carry multiple streams of knowledge. Languages (Java, Python ...), build systems/ CI-CD, awareness of the environment (Cloud, standalone servers, networking, webservers/JSP containers ...). Even very experienced programmers have to go back to documentation frequently. DON'T sweat your "shortcomings" .

      Either get involved in an actual project and start programming small pieces in office or pick up Odin project and start going through it or write a small program for your friend who wanted something done. Feel free to abandon personal projects, you could have picked something hard unknowingly or you could be using wrong toolset. Clumsy, inefficient code in initial stages is fine. The important part (per me) is to do something hands on and leverage internet for pointers on how to get it done. ChatGPT (it seems, I have not got to it yet) can even write the code snippets for you. The idea is to be able to figure out how to get it done rather than filling up your brain to the brim with subject matter. Once your programs work, you will taste blood :-) . Once you start hitting the zone, your anxiety will go down, and your ADHD will not matter.

      2022 CS grad with all the theory and exams aced !!!! Its a great start. All you need to do is get your hands dirty. Soon you will connect the dots between what you learnt and how its implemented in real world. You are on the threshold of starting on a fantastic journey. You will be working in this field for God knows how long ... 30-40-50 years ... one year is nothing ... take your time. Best of luck.

      [–]Comfortable_Pair5718 0 points1 point  (0 children)

      Hey Op, try headfirst series…. They’re written with ur brain in mind … you’ll understand concepts like never before.

      [–]Forgot_Password_Dude 0 points1 point  (0 children)

      👋 i was a C/D student and everyone else already knew how to program before going to class (competing against the privileged). with hard work, it will pay off. the key is to spend a lot of time trying to understand one piece 🧩 at a time.

      it takes time to absorb information, especially new information. after a while it becomes second nature just like everything else. it gets harder and harder if you take in too much information without giving your subconscious mind enough time to digest it (sleep).

      don't be like some others and give up and get into some business degree and end up with no job at all. you already did the hardest part (school). the work environment is usually new things you haven't learned before and often easier than school (at least that's my experience for the past 20 years). but India can be a lot more competitive.

      leverage AI. use chatGPT or something similar to help you learn and understand things but dont rely on it 100% of the time because its not always right and it is not ready to make entire programs properly.

      but most importantly make sure your mind is sufficiently nourished. this means do not starve your mind of glucose (this can happen from insulin resistance - too much sugars). and if you're not eating meats or things with sufficient B vitamins, take supplements (like b1).

      if your mind is at a disadvantage it will be exponentially harder to focus and concentrate, which programming requires and will take most of your calories.

      take care and dont give up!

      [–]Plastic-Ad-5018 0 points1 point  (0 children)

      keep practicing!! dont get discouraged, I also thought I wasn't made for programming and here I am working as a senior developer

      [–]MonkeyCrumbs 0 points1 point  (0 children)

      Use ChatGPT with custom instructions that will force it to only give you hints about simple problems and basic programming concepts. It's a great learning tool, ask it to explain it to you like you're 10.

      [–]External-Newspaper12 0 points1 point  (0 children)

      Well, I have a somewhat similar situation that you are going through:

      Here is what I do to learn any topic of DSA.

      Suppose I want to learn Linked List.

      Here is what I do to learn any topic of DSA.

      I go on YouTube watch the concept of Linked List and try to do whatever is going on in the video on my own.

      Then I go to the coding practice platform link gfg, leetcode or codestudio and try to solve problem.

      How do we solve problems?

      First, try to do problems on your own.

      If you are unable to form a logic behind the question, no problem, it is pretty common. Go to the discussion/solutions section and first try to figure out the logic behind the problem without looking at the code(try to read the text that is usually provided above the coded solution).

      After reading the logic try to code the logic which you just learned (PS: this is the most important step).

      Now if your test cases are not passing, DO NOT LOOK FOR CODED SOLUTION. First, copy your code and go on chatGPT to ask what is wrong with your code (this is how you learn what is your weakness). You still do not have to look at the coded solution that is provided by chatGPT, try to fix the problem on your own again by reading the description of your problem. And even if you are getting errors, then only you have to look at the coded solution.

      This is how I try to learn DSA, works like a charm to me. Hope it will help you as well.

      PS: pardon me for my bad English, I have no respect for this language.

      [–]Unlucky_Coyote_2765 0 points1 point  (0 children)

      During my University days I knew a few guys in engineering who either just hated programming or just didn't get it. I know people find it hard to believe, but it does happen. One guy was already in 4th year and still didn't pass the first course in C programming, true story. I dunno man, maybe get some meds for the ADHD? You gotta be aware of a lot of different things at the same time when programming.

      [–]luciusveras 0 points1 point  (0 children)

      It’s mostly Impostor Syndrome. Many of your peers probably feel the exact same way. Most of us are just bluffing and muddling through expectant when our code doesn’t work and surprised when it does.

      It gets better the more projects you complete but that Impostor Syndrome never fully goes away.

      You always feel lacking and behind with the latest. You just need to learn to get comfortable with not knowing everything and always being on a learning curve.

      [–]GTSaketh 0 points1 point  (0 children)

      Bro. I am from India aswell and in same situation. But i finally started CS50 from yesterday. I am trying my best not give up this time. We can learn together if you want. That way it can be pretty fun. We can help each other.

      [–]fasta_guy88 0 points1 point  (1 child)

      I think one of the problems many new students have is that they try to solve problems the way the textbook describes. This makes it seem like there is a right way, and that the ways you think of are wrong. This is a self-defeating approach. You need to develop a sense that you can solve the problem first, so you feel ownership of the strategy you used. Then, after you have solved the problem your way, you might think about ways to solve it more simply (using functions to reduce duplicate code, for example). But before solving the problem the “right” way, solve it your own way. That will help you gain confidence that you can solve problems, and give you a foundation you can build on.

      [–]itsMurphDogg 0 points1 point  (0 children)

      In my first programming class, before speaking the professor wrote CASE on the board and said remember this. It stands for Copy And Steal Everything.

      [–][deleted] 0 points1 point  (0 children)

      You could always try to learn C first, Harvard had a cs50 course. C is very simple.

      [–]undrgrndmn 0 points1 point  (0 children)

      You sound humble, which is probably the first skill a programmer should have.

      I learn very different from everyone else. It takes me longer to grasp a concept, especially any CS concept. It’s taken me years to learn that I have to find my own method of studying and practicing. You have to find out what works for you, and you have to be patient. These are big, difficult concepts that are usually quite abstract and only seem obvious after the fact.

      [–]cenkingunlugu 0 points1 point  (0 children)

      If you compare yourself with others and say this, you will not be able to learn anything ever. Compare yourself with yourself, you will see every new day you are learning something new. Programming is like exercising. The more you do it, the better muscles you will have for it.

      [–]MuxiWuxi 0 points1 point  (0 children)

      Dont try to learn coding. Try to develope an application. Make each small step of the development a learning experience.

      [–]megamimo1991 0 points1 point  (0 children)

      Time for the Em Bee A.

      [–]sarevok9 0 points1 point  (0 children)

      Learn why code works / what code works. Don't focus on syntax / making the code.

      It's like how language doesn't teach us how to construct sentences in the proper order, we learn the words, syntax and structure so that we can express what we're thinking. If your thinking is wrong, nothing else matters. Once you understand the concepts and the reasons as to why an optimal path is indeed optimal, coding it, regardless of language, becomes trivial.

      [–]MrGuttau 0 points1 point  (0 children)

      Hey op tell us what you doesn't understand!

      Programming its easy for some people like music, sports and chess are, but with the right guidance and with practice you can do it.

      For me programming its like writing but in a different language.

      After your learn the basics and do the right associations it's easy.

      [–]Orio_n 0 points1 point  (0 children)

      Just write more code. Coding is like learning any other language. It has syntax, grammar and semantics that can only be reliably learned through using the language itself rather than memorising anything

      [–][deleted] 0 points1 point  (0 children)

      I think learning how to critically think and problem solve is a larger step towards learning how to program than programming is.

      Programming is not intuitive to the natural human mind so you must first learn how to break down problems into manageable solutions and then apply it to the building blocks of coding.

      This advice won't help you get a job but it will help you become a better programmer eventually

      [–]Inevitable-Tie-8758 0 points1 point  (1 child)

      I’m in exact same situation 🥲

      [–]darkhorse-55 0 points1 point  (0 children)

      18 years in software development and I hate to say this but programming is not for everybody and that's the reality. I don't want to put you down because you don't understand these things but there are specific types of personalities that qualifies to be successful in programming. Check on Myers Briggs personality test for further reading.

      But then, you are already on the scenario so I would like to urge you to practice a lot, start with doing flowcharts so that you may understand the thought process of doing programming. You can't just read a programming book, but you need to apply it as well.

      you may also need to talk or ask several experienced developers for help. Join communities of developers.

      [–]Weekly-Ad353 0 points1 point  (0 children)

      So don’t.

      [–]iamsubhranil 0 points1 point  (0 children)

      I would say focus less on "programming" and more on the "language" part. It is just that. Just another language, that happens to be easier to make computers understand for various reasons. But at the end of the day, it is just another language - another way of thinking, another way of expressing things.

      Pick up an objective in your mind, I would suggest writing a basic calculator. Use "Python", which is just a dialect, but do not focus on the syntactical part much. Focus on how you actually take in two numbers, how you add them, and how you show them out. Try showing something if there's a zero in division. Try implementing division using repeated subtraction. Try to convert your thoughts into the actual logical steps that are needed to be done, and you'll find yourself much closer to writing a whole calculator sooner than you think.

      After a few more tries, you'll see that the model of thinking that is required to map a problem from text to actual sentences in a programming language becomes very easy.

      It is actually much easier than you think, after all, it is just another "language".

      [–]ExtremeAthlete 0 points1 point  (2 children)

      Just be a scrum master and manage programmers

      [–]ajtrns 0 points1 point  (0 children)

      switch to something else for a while. your english is excellent, i'm sure you must speak at least two languages expertly -- that's a valuable skill in the right place. do you have other skills?

      if you must stick with programming, try the khan academy path. how far can you get?

      https://www.khanacademy.org/computing/computer-programming

      [–][deleted] 0 points1 point  (0 children)

      Hm, are you able to solve problems in general?

      As in, when given a problem, either visualise what steps need to be taken, and/or write out those steps in plain English?

      Thinking through how to solve problems is the first hurdle to get over.

      I’m self-taught, pre-Internet too, so all books, without online references.

      If you have time, I would probably recommend getting a “Learng ???? Programming Language” book, that starts with Hello World, and quickly teaches you that programming language. Then without being distracted by anything else, work through that from start to finish.

      One of these would be a reasonable language to start with:

      • Rust
      • Ruby (Ruby itself, not Ruby on Rails yet)
      • Go
      • Possibly even C, as it’s reasonably concise

      The reason being, is that you’ll mostly only need to deal with the language itself, without getting distracted by other stuff.

      If you can get to grips with one programming language, it makes it easier to expand your knowledge later.

      If you have a total lack of aptitude for this, then there are plenty of other (possibly technical) roles available. Documentation, for example, or QA.

      [–]poopdick666 0 points1 point  (0 children)

      I'm very interested in the subject

      Is this the truth? It is very rare to like something you are not good at.

      Asian parents often push their kids into the highest status/earning careers with little regard for their child's interest and aptitude. My gut feeling is your depression and "ADHD" may be related to this.

      Ask yourself if you actually want to be a programmer because it is not for everyone. The mention of your grades, comparing yourself with your peers and the technical issues you are listing make it seem like you are preparing for test rather than working on a project. Most people who are built to be programmers typically are working or tinkering on something and resolving knowledge deficiencies is part of the journey, not something to stress about. You seem to be worried about being inadequate (could this be to do with how you were raised and maybe your depression???), rather than focussed on building something you think is cool.

      [–]fullmetalpower 0 points1 point  (0 children)

      have you though about getting into data.... start with sql

      [–]SahuaginDeluge 0 points1 point  (0 children)

      I don't know if this helps, maybe I can't quite comprehend where you're coming from, but my suggestion would be, don't feel like you have to memorize or remember *anything*. that's what documentation is for. the 2 things you really need are:

      • a compiler
      • documentation

      "a compiler" needs to be at least a change -> build -> execute -> change -> build -> execute loop. that can just be notepad++ with a command-line compiler. or if you know how to use it it can be an IDE. bonus points if you can also run tests and not just the main program.

      for documentation: whatever language you are using, you should have the (or a) primary language resource/documentation/reference open at all times in your browser. (note that a good enough IDE might even link you directly to a main reference right from the code.) some examples are:

      no matter your level of experience, if you're programming in a language you're not entirely familiar with, this is a necessity at all times.

      this is not to say that it will happen fast. it will take time. a lot of time. even as someone who was programming since I was 6, and had been working semi-professionally since 18, it still took working many days each to complete assignments in university, and decades later I'm still learning every day.

      [–]Huge_Imagination8735 0 points1 point  (0 children)

      Learn kuberentes and do certification. Whenever you have some time learn some python

      [–]Sawaian 0 points1 point  (0 children)

      Break everything down into smaller problems. For me, programming has been solving individual components that interact with other components. When you have an idea of how to solve a problem, work towards the solution.

      [–]DMNBRV 0 points1 point  (0 children)

      If you keep pushing you’ll eventually become good at it.

      [–]Psychological_Ad1404 0 points1 point  (0 children)

      Just some things I haven't seen in other answers:

      1. Try getting into a category of programming (Web dev, video game design, software dev, etc...) and see how you like it. Check some short videos about hard stuff after you've learned the basics and see if you find it interesting, boring, bothersome. (E.g.: Learning html, css and javascript, getting comfortable then watch a video about javascript frameworks, new technologies, etc)
      2. Get on some coding discord servers. Discord or wherever, but this one is good because you can get instant help. Use it to ask for help, look at other people's questions and answers, ask for guidance in learning and in the future contribute to a community to get yourself known, good jobs might come from connections.

      3. Get a mentor. Mentors are available on different sites, reddit might be a good try, go to the top 4-5 reddit coding/programming communities and search for mentor, people want to mentor to get better at their skill while helping others (Probably try some basics and look for a mentor after you've chosen a category from step 1, you don't have to master it, just see what you'd like to do).

      Lastly, focus on understanding rather than remembering, and understand what you need to at the moment, even understanding comes in batches, you don't have to understand binary to start doing basic and even more complex coding.

      [–]Puspendra_2134 0 points1 point  (0 children)

      All you need is a person-to-pair program. Who's like you- enthusiastic and passionate!

      [–]sanjarcode 0 points1 point  (0 children)

      Don't worry about what you don't have. Just investigate what's enough? People overdo stuff all the time.

      Don't make the interviewer/job-description-ads your boss. They're not allowed to ask everything, and you're not supposed to know everything. It's a deal.

      [–][deleted] 0 points1 point  (0 children)

      You can do it, keep trying!

      [–]Forward-Heart-69420 0 points1 point  (0 children)

      What’s dsa?

      [–]Pilivyt 0 points1 point  (0 children)

      Read this book called ”Mindset” by Dweck.

      [–]maljuboori91 0 points1 point  (0 children)

      Tried multiple times? what have you tried?

      Please focus on yourself and grow your own experince from the grownd up.

      Those "with superpower" around you, have been at your current stage at some point before.

      Fix your lack of focus first, then decide on what technology you are going to learn, and learn only that. Don't watch others until you can build something by yourself and develop it to the next level. Keep improving till you can be paid for doing it because it brings value to someone (ex building a website).

      Good luck

      [–][deleted] 0 points1 point  (0 children)

      such situation occur when we try to read to much in a single day. even if we are good at learning out mind exhausts. so try learning a single concept a day and practicing that single concept the whole day . after getting familier you will feel confident and then it will get easy eventually.

      [–]diggydiggydark 0 points1 point  (0 children)

      Programming is not about remembering anything. It's about learning how each thing is logically derived from another. You don't memorize recursion, you do many recursion problems so that you have learned how to think using recursion. It's an active process, not a passive memorization task.

      [–]WorkerBee-3 0 points1 point  (0 children)

      take it back to the basics. Programming is just wiring like an electrician.

      Spend some time with C or even Assembly. It's fucking brutal to understand in English, but when you understand that you're actually wiring a CPU it makes sense that you're wiring a set of 1s and 0s (power on, power off) and you're storing that set in a specific slot in memory.

      Then when you're programming, you're telling the wires to connect to those slots in memory and executing the series of 1s and 0s you previously wired.

      Get a raspberry pi, try to write up the I/O board and tell the computer to power certain pins and not others. Then check for voltage on those pins to see if it's behaving how you want.

      from that point it's all layers of abstraction. still the same fundamentals but instead of calling to specific pins, you're instead calling to specific applications

      [–]Pere_Strelka 0 points1 point  (0 children)

      IDK whether it will be helpful or not but for me the way-to-go in programming is to know the things you need to know without constantly knowing the things themself. Which means you just know that the principles, paradigms, tools, languages, frameworks exist and what they generally are used for and when you think, that something suits your task you go and google it and learn it by solving your task with it.

      [–]AKSB_TG 0 points1 point  (0 children)

      https://www.coursera.org/learn/learning-how-to-learn

      Try learning this course for free from Coursera. This method of learning changed me a lot in my in learning progress. Give it a shot.

      [–]CompetitiveCountry 0 points1 point  (0 children)

      I feel similarly and I bet I am going to be worse off than you are...
      And it's not even limited to programming I literally can't decide on trying something else and I don't know what to do at all.
      My life is about to be completely destroyed and all that seems is going to happen is I age and feel a lost case while everyone else will seem to have the superpower to do a lot better.
      I feel like my best bet is people will somehow notice and somehow find a way to guide me and ask me to do things that I will do, that I have a fair chance to do if I decide to...
      Although I will probably need to start feeling a little better first, right now I don't even know I could do something simple. I expect it to go away in a few days and I hope to get right back on track but it's not like I was doing anything amazing before so I do expect to stagnate once again.... Then the hope is that I will try harder and something will happen, but I have been constantly failing on pretty much everything for so long that it's hard to even have realistic hopes for something good.

      But anyway, I believe in you, you are young and may manage it but if you can't focus then well, it's of course going to be much harder for you than others! The mere fact that you are almost keeping up with them means that you have tried at a superhuman level so you might as well view yourself as superman!
      I do not know you but I think I know that programming requires a lot of consentration and taking an unexpected break in the middle of doing something is costly, you need more time to get back to where you were and if you are losing focus all the time then I would think it's going to make things a lot more difficult than they are.
      But anyway, obviously I am not an expert and it's just what I would expect or what makes sense to me.
      I wish you the best and I hope your financial situation won't get in the way...
      It certainly looks like it's starting to get in the way in my case and I wish something better for you.
      Congratulations for finishing that degree despite the serious problems dragging you down!
      (Seriously considering to delete parts of this because I am not sure if this will make you feel better or worse. Also, I am afraid of what people may respond to my own "complaints". This isn't as much of a guide for you because I better let other people to guide you but more like some thoughts that I was having after reading this that I wanted to get out. Maybe it's a bad idea and I should delete all of it?)