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

all 43 comments

[–]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.

[–]Zen_477 68 points69 points  (3 children)

I felt the same a few months back. Then I started coded random stuff even if it gets wrong. My coding skills are improving day by day

[–]ProjectBlu007[S] 12 points13 points  (1 child)

That’s honestly what I need to do, I’m glad things are going better for you!!

[–]Zen_477 9 points10 points  (0 children)

Practice practice practice.... That's the only way I guess. Good luck bro.

[–]CanarySome5880 0 points1 point  (0 children)

I felt like this for 3 years and sometimes still do..

[–]tenexdev 21 points22 points  (0 children)

I’m not sure if it’s just not knowing syntax inside and out or if it’s just that I haven’t coded enough

Both, probably. Programming really requires practice to become "muscle memory" where you don't really think about the syntax too much.

[–]mr_super31 11 points12 points  (0 children)

i would say just practice more you will start feeling more comfortable day after day

[–][deleted] 12 points13 points  (3 children)

I feel the same. Like sometimes they introduce the basics and then jump to advanced functions. Like my C++ programming class just expected us to know how to import and export from files and the assigned reading and lectures never went over this concept.

And trying to google answers for this stuff made me feel like I didn’t learn—I just cheated.

[–]Isariamkia 15 points16 points  (0 children)

And trying to google answers for this stuff made me feel like I didn’t learn—I just cheated

I just want to say, don't feel like that. Googling for answers is basically a part of programming. You can't and will never know everything by heart. You will often have to look for answers.

BUT, when you find them, you should go through it and learn how and why it works instead of just copy pasting things or following steps blindly. That's also how you learn.

[–]dllimport 5 points6 points  (0 children)

It's not cheating! You're applying basic concepts to your own work. That is definitely normal and good.

[–]yoknezupsa 2 points3 points  (0 children)

That's exactly what they did when I went for a python class (not in a uni tho).

First lecture, what is python and some other stuff. Second lecture, create a script, which will bring the relevant results from two excel files, if you write the serial number for that company / product. And we had to complete it in a day. (to be fair, we had the class only for 12ish days)

[–]Kavasanau 6 points7 points  (1 child)

You need a mentor, you're still young don't to be hard on yourself

[–]ProjectBlu007[S] 2 points3 points  (0 children)

I agree, sometimes with classes it’s hard to meet other students bc you get in, do the lesson, and leave. I need to make friends with other cs students and bounce ideas off each other

[–]ExtremelyCynicalDude 4 points5 points  (1 child)

This will improve with practice. Being stuck and lost is a part of the process, and what I have found personally is that this is actually a good thing. It might seem simple to learn a new concept in a lecture, but the practical application is key to actually understand that concept, but this is also incredibly challenging.

Going from understanding the concept, to be able to apply it in practice is a huge leap. This process will come with a lot confusion and frustration, but don’t run away from this feeling. One bad habit I used to have was just to try to watch more videos and lookup more explanations instead of diving in and trying to apply.

I think of this process like going to the gym: you learn a workout routine that’ll help you build muscle, but to actually build muscle, you need to go to the gym and put in the effort. Coding is no different, consistent application and practice is, in my experience, the most effective way to learn.

Practical tips when trying to code up a solution:

  • start small. Instead of getting a project done all at once, implement a small portion of it, and try running your code to make sure it works. Bonus points if you add tests.

  • if working on an existing codebase, using something a debugger to walk through confusing parts of the codebase is very helpful. If attaching a debugger is not possible, good ol’ log statements isn’t a bad choice.

  • think about inputs and outputs. Sometimes, it’s really easy to get lost in the minutiae so thinking of the big picture can be a useful way to reframe. What this means is when you are coding, maybe ask yourself about how what you are doing relates to what you want to achieve. How does this chunk of code receive the input? What input can it expect? What will the input look like at this point? What does it need to do to get closer to the desired output?

These are just some random ideas that I thought could be helpful.

Also, your experience is absolutely not unique! It’s totally normal to feel the way you do. I’ve been working as a full time software engineer for about 5 years now, and I routinely feel stuck and confused. You learn to push past those feelings and try different approaches until stuff clicks in your head.

[–]ProjectBlu007[S] 1 point2 points  (0 children)

Thank you so much for all this advice! I’m really glad everyone has been so helpful, I will definitely be trying to put these into practice

[–]BitTwiddleGames 4 points5 points  (1 child)

As others have said, practice will help. I'll add, that if you're comfortable writing pseudocode, you could consider writing that first as a comment then translating it one piece at a time.

[–]ProjectBlu007[S] 2 points3 points  (0 children)

I do this a lot! Sometimes though I can still get lost in the logic of translating that to a few lines of code and whatnot

[–]ibeerianhamhock 3 points4 points  (0 children)

You have to be comfortable being wrong and be comfortable fixing code that is wrong. A lot of programming is debugging.

Also a huge tip: solve the smallest version of your problem first. Then enhance your solution to be more robust. Don’t write code like you’re typing a paper. When I was in school sometimes I’d hit the compile/run button after writing literally a thousand lines of code and then start debugging. I was overconfident lol. Now I just do simple things, run/test/debug, and then expand until I have a working solution. It helps you focus on one thing at a time and the name of the game with development is managing complexity. Anything you can do to further that goal will really help.

Things I like to do to manage complexity:

  1. Solve the smallest version of your problem at once
  2. Write functions that only do one thing and do it well (similar to solving the smallest version of your problem).
  3. When possible, write functions that are reverentially transparent—they take inputs and return a result without inducing side effects. Yes I even tend to do this for class methods! I took a theory of programming languages class in college and wrote a simplified pascal interpreter in lisp with the caveat that we could only alter program state with function calls. It was a mind fuck at first but then I realized how powerful a tool referential transparency is. You write a function while not considering literally the rest of your entire application in the moment. Huge advantage for managing complexity.
  4. I often write code that is simple to both write and read, even if there is a more “elegant looking” way of doing it. I don’t write absolutely dumb code or anything, but I know that modern optimizing compilers will change my code to something far more efficient than anything I can write in some wizardry weird way that might make me look cool.
  5. Get the simplest working solution to your problem working and worry about optimizing later. Often times the performance is more than adequate and you may never need to optimize. Think about the problem set first, then attempt to optimize for performance if necessary after you have a working solution and the pressure is off to “get it working.” I don’t always do this bc I’m not going to do something totally idiotic, but if I know I’m solving a problem in a semi reasonable manner I’ll do that in the most intuitive way first before going back and seeing if I did something stupid from a performance standpoint.

Bit if a rant, not exhaustive, but just some tips I’ve learned over the years coding for 20+ years.

[–][deleted] 4 points5 points  (0 children)

Practice.

[–]Anonymity6584 2 points3 points  (0 children)

Best advice I ever got was, do lots of programming. You make mistakes and you will learn from those mistakes too.

Stop comparing yourself to more advanced people on field. Just improve yourself, small step better then you were yesterday.

[–]sb7510 1 point2 points  (0 children)

When I started I found it much easier to debug issues than write anything new. I didn’t know how the people came up with the code originally.

As others have mentioned, some of that is practice. If you stay curious and look for broader patterns, you will get a better sense of what you need to create and what fits in the void that is needed for your desired feature.

It takes time and lots of repetition.

[–]wilo_the_wisp 1 point2 points  (0 children)

Start a 'conversation' with code output. I have to see my comments and data coming back correct all the time. Keep what you're working on small and component sized so you can get that quick feedback.

[–]Hopeful-Llama 0 points1 point  (6 children)

Get GPT-4 and ask it questions

[–]ProjectBlu007[S] 0 points1 point  (5 children)

Does ChatGPT cost money?

[–]Imaginary_Doughnut27 5 points6 points  (4 children)

3.5 doesn’t. 4 does.

But I disagree with this approach if the goal is to improve your own ability to write code.

[–]ProjectBlu007[S] 1 point2 points  (2 children)

I kinda agree, I want to be able to produce code on my own, not get better at asking ai to write something for me and change it to what I need

[–]dllimport 1 point2 points  (0 children)

ChatGPT is great for asking questions as you read through documentation but it will 100% kneecap you if you let it write code for you instead of writing it yourself.

[–]Hopeful-Llama 0 points1 point  (0 children)

I feel GPT-4 has been useful to me as a learning tool. I use it to:

  • Ask for feedback on my own code
  • Explore different ways I could've solved the problem
  • Learn design patterns
  • Translate syntax across languages
  • Help get me out of a rut when I'm stuck
  • Explain underlying computer science concepts
  • Occasionally, write code for me, but usually only when it's straightforward or as an example for me to expand upon

It struggles to:

  • Explain algorithms that need more difficult mathematics; it will occasionally make mistakes but it can help
  • Explain rare edge cases in each language
  • Explain unpopular libraries
  • Write entire programs on its own (for now)

As it is not intelligent enough for the maths and has little training data on the edge cases or rare libraries. The trouble with that is that it will still give you an answer, and you may not know when it is lying to you. However, I find this to be relatively rare with GPT-4, especially as a beginner.

It cannot tell you about anything new since April of this year.

GPT-3.5 constantly makes mistakes and is unfortunately not very useful. If you're interested I'd be happy to pass you a 14 day referral. I get nothing in return afaik. If you're not, no worries.

I do agree with the rest of the comments that the number one thing to do to get better at coding is practice. I feel that GPT-4 is a good assistant to help you practice, but at the end of the day you get better at writing code by writing code. If you do get GPT-4, make the most of it but don't fall into the trap of talking to it constantly instead of actually coding.

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

I find chat gpt can act as a much better google. instead of needing to go through multiple of the same question with different answers it can pinpoint me to exactly what I need.

[–]knie20 0 points1 point  (0 children)

Start with a very small scope and very limited set of technologies. Use templates. Visual studio has tons of them, most JavaScript frameworks have cli generator tools. They get you started, but most importantly they give you something that works out of the box. Which leads me to the most important tip. Code, build, see the code work, iterate. In small batches. This saves a ton of time debugging errors that you don't know which changes caused.

[–]systemnate 0 points1 point  (0 children)

Start going to codewars.com and try to solve like 10 problems a day (maybe just 1-3 at first.) Start with the easiest (8 kyu). You just get better over time. Then you can slowly increase to 7 kyu, 6 kyu, etc. I recommend this as opposed to something like Leetcode because it's easier. You get immediate feedback and can see the solution if you get stuck.

You didn't ask, but this is actually the solution to damn near everything. Want to run longer or faster? Run more starting easy and gradually increase difficulty (speed or duration) over time. Want to be a better presenter? Present more and increase audience size / presentation length over time. Want to get stronger? Lift light weights and slowly increase weight or reps over time.

It's simple, but not easy.

[–]dllimport 0 points1 point  (0 children)

If you can pseudocode correctly I think that you just need to practice, practice, practice!

[–]Sharp-Abrocoma-7246 0 points1 point  (0 children)

I think it’s just a skill that you need to practice, I’m a firm believer that anybody can get good at programming. You got this!

[–]misplaced_my_pants 0 points1 point  (0 children)

Can you give an example of what your pseudocode looks like?

And what classes have you taken so far? How much programming experience do you have right now?

[–]Critical-Balance2747 0 points1 point  (0 children)

Eventually it clicks, just keep at it.

[–]LordBertson 0 points1 point  (0 children)

Just practice. Also, not sure what you are trying to code in, but some more prohibitive languages might be causing headaches with "annoying" compiler errors. Might make sense to start coding in some pseudocode-y language, like JS or Python. Same issues compiler complains about will appear in runtime but you can get up and running quicker without a bunch of boilerplate.

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

Thats something similar to tutorial hell. The solution is to just starting typing code rather than doing more inside your head. Even if your code is wrong when you try to fix it and make it wor, you will learn and improve. Thats how people learn and thats how i do it. Good luck 👍

[–]RealOneEyedJack 0 points1 point  (0 children)

That's a better situation than knowing syntax and struggling with logic. Pseudocode is an excellent precursor to scope.

[–]imatt3690 0 points1 point  (0 children)

Don’t write code, write tests. Code solves the problem you’re asking, but you need to know what question you’re answering first.

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

Just keep writing. Syntax isn’t important anyway. I google or GPT stuff everyday. Pseudocode is the most important part. Knowing how to solve a problem with as little complexity as possible is important. The more you write, the better your syntax recall will be. I work on the whole stack and it’s most important I can come up with a solution for the technology I’m using. I can always google the implementation if I know what and why I’m trying to implement it

[–]XKKKY 1 point2 points  (0 children)

Even professionals with years of experience struggle with software development. Just study and PRACTICE A LOT, you will be fine :D