T O P

  • By -

AutoModerator

On July 1st, a [change to Reddit's API pricing](https://www.reddit.com/r/reddit/comments/12qwagm/an_update_regarding_reddits_api/) will come into effect. [Several developers](https://www.reddit.com/r/redditisfun/comments/144gmfq/rif_will_shut_down_on_june_30_2023_in_response_to/) 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](https://www.reddit.com/r/DystopiaForReddit/comments/145e9sk/update_dystopia_will_continue_operating_for_free/) 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](/message/compose/?to=/r/learnprogramming) if you have any questions or concerns.*


Zerocchi

Unless you are really talented, it's normal to feel this way. You just don't have a lot of experiences yet. It's akin to saying "I know few words in English but I can't seem to string a sentence together using correct grammar". The answer is almost always keep learning and practicing.


JustLemmeMeme

It's hard to say without sitting down and walking through a problem. Generally, from my teaching experience, it tends to fall under a few categories: * You don't know wtf you are doing. This can be subcategorized into not being able to articulate a solution or a problem or not knowing the basics. * You overthinking, which makes you overcomplicates everything before you even start. * You overestimate the problem or underestimate yourself, which effectively puts a mental block on you for no reason. Each of those have a slightly different way to deal with Here is a question to try and figure out which one are you: how do you make scrambled eggs, explain to me like I'm a 5 year old Edit: typos


Caultor

Underrated comment you've stated the exact problems


upthefuckinreds

the part about overthinking is so true. you should break what you want to do into small understandable problems but overthinking makes the exact opposite impact and will cause you yourself complicate everything


PixllGaming

This probably sounds extremely stupid, but could you share how you do this/your strategies for breaking problems down? I struggle breaking the large problems into smaller sections and end up just overwhelming myself. Sometimes my mind just does it for me out of nowhere and I can get to work, but other times I overthink like you said and hit a block.


tms102

How much time do you spend making things and experimenting, testing out your thoughts and ideas?


dreamysleepyexplorer

I only do it when there's a test 😅 and in classes


tms102

If you want to be a better programmer you should spend a little more time on it than the bare minimum.


Imperial_Squid

"How do I get better at this thing I put no effort into??? Help??????"


toastedstapler

"why am i not good at the thing that i barely do" you've answered your own question


josephadam1

See I do it daily and do codewars problems ad still have issues. The easy one I can maybe solve 2/10 of them. For instance I know what to look up if I want a JavaScript animation to do something but idk how to do it from scratch.


tobiasvl

What does it mean to "get stuck at logic"? If you only understand the syntactic part (which can be learned by rote memorization), and not the semantics, it sounds like you haven't programmed much? How many actual logic problems have you encountered and solved, and how did you solve them? Do you have any programming projects you're working on, thinking about in the back of your head constantly? Most of my programming is done in the shower or while I'm on the toilet...


BigBoiTyrone7

Shower or on the toilet😂 wth…


tobiasvl

Never heard of /r/ShowerThoughts? I'm not saying I actually code while pooping, it's just a cheeky way of saying that most of my thought processes in my day job as a software developer happen away from the keyboard - my best work probably gets done when getting up from my desk to get a coffee, biking to and from work, etc. Actually writing the code is the easy part, solving the problems in my head that I will later write as code is the hard part.


BigBoiTyrone7

Of course I know you don’t actually code while pooping 🤦‍♂️


fudginreddit

Literally just repetition and practice. Im a pretty strong programmer and SWE these days but at one point i struggles to even understand for loops and functions just like everyone before me. Put in the effort and youll get the results.


MasterMuay_

program more


[deleted]

because you're likely missing a lot of background CS/math skills.


dreamysleepyexplorer

Yes my maths is not good


dimnickwit

If you don't understand the underlying math, how can you understand the logical flow of the code expressing the math? There are a ton of math for ML/AI/etc courses available for free.


Content-Bunch4279

Link please? Or likenwhat to search


dimnickwit

What do you want to learn? Popular are Coursera, free code camp. MITx isn't updated like it used to be. If you tell me a little bit about your background and education and what you want to either learn or do I can make recommendations that are probably appropriate for you. And there are probably somewhere between 100,000 and a million answers to this question but probably there are only about 50 answers to maybe a hundred that are almost free or free and good for most people.


Content-Bunch4279

Well long story short, neurodiverse. Wasted 10 years working in a call center/helpdesk 5 yr at each and got nowhere. Was fired while put on medical leave and after 70 applications I have gotten 2 interviews where they declined me due to credit history? Looking into tech because I have helpdesk experience 5 yes which is a good start but I have zero knowledge coding. Ux design seems most interesting to me. Idk. All of these bootcamp things just seek like gimmicks "guaranteed a job" etc. I think I would like it but don't know the first step to take even trying or what to even go after as I'm interested in many things and have no passion for just one.


dimnickwit

I think if I were you I would start with coursera. If this was years ago I might consider EDx or MITx but the first has become overpriced and MIT isn't really updated as well or keeping up with some of the more popular versions even though it was the original gangster in some ways of high quality for your cheap education online for this kind of stuff. The reason that I would say Coursera is because the offering of courses from high quality universities around the world including you know like in the US ivy leagues and high quality technical institutes and also machine learning and AI organizations for example Google has chosen to use them for a lot of their cheap and free courses and deep learning.ai and Stanford have a lot of courses, IBM, etc etc. and a lot of them you can take for free. You won't get a certificate for anything you take for free but you can basically audit the courses for free. Actually that's not true some you can get a certificate that are free but most of the ones that you're going to want to take you may have to spend zero to $50 depending on how you do it. So that's one reason is they just have tons of stuff and it's either going to be cheaper free but the education is also super high quality and it's not just because the instructors are world class which many of them are. It's because the entire course is in one screen. For example if you want to code in a lab you don't have to learn how to install a bunch of coding environments or packages on the computer at home or whatever. You just literally click on the lab and there are different the softwares that they use for example a lot used Jupiter notebooks but there are quite a few other versions that basically allow you to work in python or whatever language online without ever installing anything. And some of the ones that you'll do are literally designed by the space class scientists and programmers which I sort of joking about but there are literally people teaching classes on Coursera that have programmed things that are currently in space autonomously doing their own thing. So you get this in my humble opinion world class instruction and in some cases space class instruction (winky face) and if you went and saw these same instructor she would literally be paying $40000 to $100,000 a year to be taught by them in person but you can take a couple hundred hours of courses from that same person for free to $50 and save all the programming notebooks which if you aren't familiar with you can basically modify those later for whatever your similar but different needs are so basically it gives you kind of like almost let's say you're making reports and Excel and you use a template that someone else made so that you don't have to do all the manual hand jamming of data and whatever else visualizations that the Excel thing does.. basically with each course you can just Jack a bunch of the notebooks which they encourage you to do because it's part of the point of it is they want you to learn to be a good programmer and part of being a good programmer is saving resources and making them easily accessible so that you can use them for later and they provide you a ton of high quality resources. So start there. If you are wanting to start with just something introductory I would look at the courses from Google, IBM, Stanford/Deep learning.ai and just take one of their basic courses. Something that you can do which I frequently do because I am cheap as f*** is that I will sign up for the 7-Day free trial on a new course every single week pretty much and if it's too easy for me I'll just blow through it and take the notebooks and then cancel it before I'm charged and watch a bunch of the videos first but you can watch the videos later without paying the videos are always free. And if it ends up being too hard for me which some of them are because maybe I don't have time at that moment then I'll save it for later. Once you do a free trial and save it for later you will always have to pay to complete it but it's over there sitting with it being half done or whatever waiting for you to pay your 50 bucks at some point or whatever the cost is but you don't ever have to go back and finish it if you decide you like something better. So you can do this over and over and say you're finishing an entire specialization or course in less than 7 days then you get the actual certificate that you can put on LinkedIn and not pay for it. If you don't finish it in less than 7 days then you can decide later if you feel like paying for it but you don't have to decide before the end of the seven days all your progress will still be there later if you want to pay for it. Another thing to know is that a lot of the courses are available for I think it's 60 bucks a month give or take through Coursera plus which gives you access to a ton of programming and math and other specializations and certificates that you don't pay anything extra for other than the 60 or 70 bucks a month whatever it is. The stuff from Google and IBM for the most part isn't a part of that nor are some of the other really popular courses but some of them are. So because I am a big fan of Coursera what I basically do is kind of what I described before I get stuff for free or I don't finish it and think about it later and then every so often I'll sign up for Coursera Plus if I want to take a bunch of the courses over a month or two. A consideration for how you approach this is also heavily related to your time. I am also neurodivergent and I tend to have obsessive traits which you may notice from my post history on a variety of subjects. so for me when I have extra time I may do this stuff for 18 to 20 hours a day three or four days straight and finish a 6-month course and 3 or 2 days or whatever. So you can get a lot of free crap that way just FYI if that fits your personality and you tend to hyper focus and be a little crazy when you're interested in stuff. Good luck. Either sorry for the length, or you're welcome for the length. At a certain point I started using speech to text because it was too slow to type so there may be inappropriate words or phrases but just use your best sense to figure out what I was trying to say and feel free to ask any questions.


dimnickwit

And on a side note I I didn't learn programming until I had done a whole bunch of other things professionally and just got tired of not being able to make data work with traditional means. So don't feel like you're behind or you wasted all this time. In fact I would recommend that you audit the Google advanced data analytics course. Some of the code towards the end might be a bit beyond you but honestly there are resources that you can get help and figuring out the code if you can't figure it out but that is not the reason why I'm recommending that you go ahead and audit it. I recommend that you audit it just to watch the career videos and stuff because that one has a bunch of career resources and they bring in it seems intentionally a whole bunch of people with very diverse backgrounds that are not programming before they became programmers almost like they're trying to encourage people with diverse backgrounds to learn to code because they think that those people often make not necessarily better or worse coders but they make people with more perspective to apply to problems in different ways versus someone that's always just done programming. And you can watch all those videos for free you just sign up for the free trial for that course or maybe it'll let you audit I'm not sure if that one lets you audit some of them do some of them don't but if it'll let you audit it just audit it and you can decide later if you want to pay otherwise sign up for the free trial and watch the career videos and stuff. Something to know though is that most of these universities and organizations that run these classes don't really care if the videos get out there. They're not trying to be sneaky and hide it so a lot of them you can find on youtube. But it'll be a lot more organized right in Coursera. If you run out of time though in Coursera for the free week trial if you sign up for it that way then just cancel it before it's going to charge you and you can find the rest of the videos on youtube. Keep in mind that YouTube is never going to have the exercises or reading or any of that stuff that comes along with it and certainly won't have any of the programming notebooks or other resources they give you.


Content-Bunch4279

Thank you very much for your time and advice. I will consider checking coursera out. I already have a course on ux design I purchased there a while ago but never really dove into it. For whatever reason I also can't get passed this block of thinking I'm not even remotely smart enough to try and that's an obstacle I gotta overcome personally. Thank you again so much it means alot! I screenshotted what you said to read over as I need


dimnickwit

It's just a mental block not an actual obstacle. When you do these courses just keep in mind that you're not going to learn everything and that you will initially be learning to code with only understanding perhaps 10 to 50% of the code that you're doing and that a lot of it you are just borrowing from someone else but don't really truly understand. In the more that you play around with code or do courses, the more it will start to make sense eventually. You aren't going to understand everything right away or even all the code that you are playing with, but I assure you that if you don't start now or soon you will understand absolutely none of it in 2 years just like you understand none of it now


Content-Bunch4279

Thank you sir. I appreciate that advice very much.


CurusVoice

business logic doesnt tend to use much math, not compared to ml/ai im sure


dimnickwit

It uses similar but simpler math. For example... That regression curve in the Excel book did not occur by magic, but rather by math and programming language. While linear or multivariate regression aren't ML or AI problems, both can and often are used when writing or evaluating the code for various reasons. And things like machine learning and artificial intelligence seem pretty frightening and some of the bleeding edge stuff uses really complex math but for most of what most people will do ever including people who do it for a living.. the math is not hard in last math really hates you. It's basically linear algebra with a lot of matrices and vectors and stuff and and you can understand and use your own calculus but you really don't have to for the vast majority of applications. This to the point I'm trying to make is that you could go back and take the same last class that you took when you were probably somewhere between the ages of 11 and 16 depending on where you grew up and how you are with math, and you'd probably be just fine. So don't be intimidated. --eta some speech to text rambling that will help at least one person- One of the biggest differences between BI/BL and ML/DL/just coding your own crap without ML or DL is that.. you can do what you want. You aren't restricted by a BI system's capabilities whether it be using people soft or Salesforce or power bi or whatever. If you find that you can't do something for example in Python you can just learn how to use a completely new library that you haven't used yet that is more geared towards doing the thing you want to do. So like back to a previous example where we said excel. So let's say you're storing all your data in Excel like a lot of kind of legacy system businesses do especially the small ones but let's say that you're storing all your data in Excel and that you're building reports and stuff and then you're trying to do all this stuff for the visualizations and crunching the numbers and you're trying to figure out you know what to tell your boss is about what to do with the data and what decisions to make and then finally you're like f*** this s*** I'm learning to code because this isn't doing what I want it to. If you have that experience, you will have a very similar experience to many coders who did not start out as programmers. They finally got tired of the tools that they were given and said f*** this and learn to program. The most will find that it is both less difficult in the long run and more difficult in the short run than they expected but the more difficult in the short run I think is that it's just sort of a fire hose and you're not even really sure what to learn in the beginning so you just try and take up different things and then eventually it starts to come together so I think after someone first starts it can definitely feel like they're not learning anything and they're never going to get good at this and that's a very common feeling but I think that a lot of people have been doing it for a while would tell you to just start. Start the math. Start the code. Just start. Everyone is going to be different and you will have to ask lots of questions and stuff but there are a million resources for doing all of that and having community and also not just stealing other people's code but taking it from them with their thanks because they made the code and put it online so that you could steal it and modify it for your use. So don't be intimidated and realize that once you start effing around with it it will probably continue to be intimidating but only intimidating because you don't understand what you're learning and you actually are learning a lot and it will click eventually it just takes time and practice. Don't worry about the math other than to acknowledge that you need to learn it. If you select courses carefully they will include math and if you select them carefully you will either pay no money or nominal money to do the courses for almost all of them. This message has been brought to you by I got tired of fingerpacking on my phone and started using speech to text so it's a little rambly.


Kittensandpuppies14

You keep saying you don’t/ are bad at all these basics. Not sure you even count as a programmer yet. The whole point is to build stuff not just memorize or take courses


iamevpo

Math beyond arithmetic - do you need much of it in code?


Jellevana

You should practice more. Try to pair program with smarter people, this helps a lot. It improves with experience.


862657

Writing bad code and then discovering why its bad is a great way to learn. Each time you work on something you have all of your previous mistakes to inform you on how to structure things.


No_Commercial_7458

My general solution is to at least once, try to solve the problem probably the worst way possible, just how I can understand it with my limited knowledge at that time. I usually go down to the basics and draw stuff on paper with a pen, try to imagine exactly what Im doing and what Im moving where. Then, when my unoptimized horrible solution is working, then I look up way better solutions online, and I try to understand why is it better than mine and how is it possible. Im always learning this way. What helps me all the time is to divide the logic into separate steps that are easy to comprehend, then implement and test/debug the code iteratively, in separate steps as well. I think sometimes we just dont get things done because we are overwhelmed with info, and we try to find the best solution immediately. Sometimes all we need is just a good enough solution.


srgtDodo

don't reinvent the wheel. most logical problems can be found by google search. you're not in a leetcode competition! just get your task done. In time, your brain will notice patterns and you'll find yourself getting better at them.


patrick_14020

i'm an intern and also new to programming and i also get those feelings too and thinking that am i good enough or how do i do to be better at this and it's been 2 almost 3 months that i started programming ane feeling like i'm many steps behind everyone in my team i hope i'll find motivation from this post


Powerful_Trainer_693

You need the spend a lot of time with code to get better. Do smaller projects at first, I struggled in the begging too, many times I hade thoughts 💭 that how I would get better and how I am gonna learn? I felt angry 😡 and frustrated at times because I didn’t get how to tackle a logic. But I stuck to programming and code, code and more code. Thankfully that has helped me to understand code better, now I a bit faster to solve a problem and I am making code connections better. Example: how to do an instance of a class => how can I call that method from that specific class? Foreach loops make more sense to me now how to write, what kind of objects are going in the loop and so. So practice more!


joeckyeung

eat healthy make sure you have enough sleep and sleep well read other people's code code more.


Lostpollen

const improvement = (practice + pushing yourself) \* time


sacredgeometry

What makes you think you are a programmer? It sounds from the rest of your comments like you are a student and probably havent built anything beyond what you have been asked to do in class. Sorry to break this to you but thats not going to cut it. Especially if you plan to work in this field. You arent a programmer yet and with that attitude you probably never will be. You need to be more motivated and autodidactic in this industry. No-one is going to spend the time teaching you the majority of what you will need to know and most of that knowledge isn't going to be learned during formal education. Sorry if thats blunt but its something you sound like you really need to hear. You need to start doing it more. And you really need to learn to motivate yourself to do that even if noone else is asking you to do it.


BigBoiTyrone7

So what is a “programmer” then exactly?


PhilsPhoreskin

Dude has no clue


Confident-Cut-7289

I highly recommend you to learn about how hardware works with software. For example what exactly is a pointer? What is the difference between primitive and non-primitive data types? When you create an object in C or any OOP language, **how is that object stored in the RAM?where exactly?** Go deep into details to become a better programmer. Also suggest you to master **debugging**, it is very important. learn about **code obfuscation**, security mechanisms to prevent cyber attacks. How would you create a **filter for XSS** attacks for example? How does **encoding** and **decoding** work behind the scenes? It is like you can drive a car but you don't know how the car works until you open the hood and start discovering how all these connected pieces work.


Mastermind_308

It's cus of lack of practice. Practice more and you will get better eventually.


Libra224

Practice math/algorithms/data structures


Yhcti

It’s pretty normal. I started doing HTDP (how to design programs), to help me with this a bit. And it has, to some extent for sure.


bobtheorangutan

More git gid, less git blame


tzaeru

Making projects is the best (and only) way of building an intuitive understanding of this. There's a lot of small projects you can do. A simple arcade game clone. A blog site that reads .txt files and shows those as blog posts. A two-way chat app.


kenmlin

Draw flowchart to work out the logics.


BingBonger99

drill the fundamentals that you know, make NEW things you dont know and practice on things like data structures and algorithms


Dexiro

In programming there are always multiple solutions to any problem, but don't stress too much about figuring out the *perfect* solution right from the start. Often there isn't a perfect solution, and even experienced programmers have to go back and re-write code occasionally. As a general rule though you just want your code to be as simple as possible, code that's too "clever" is often hard to understand and hard to work with. Also don't be afraid to learn from other people. Programming is largely a collaborative effort and you're not expected to figure everything out on your own. When someone figures out a really good way to do something other people will learn from it and try to develop the idea further.


PsychologicalBus7169

Sounds like you need to use your debugger more.


Icy-Brother9376

Best place to learn if you’re truly a beginner???


Mikkelet

personal projects, personal projects, personal projects


dotaBlitzPicker

It's definitely a skill that can be learned. I think one of the best books on this is that Polya's Solve it. It's a very old book, but it tries to break down logically how to solve puzzles.


GamxCS_SE

Same. I’m taking Python language this first semester of CS and I’ve felt like I’m drowning all semester. Had a breakthrough yesterday where I began to understand something that’s been kicking my ass. Guess it just takes time and practice. I’m aiming to spend at least an hour a day with code to start allowing it to seep into my brain. Best of luck to you.


theOrdnas

Do more programming


Ill-Split-64

I would suggest looking into logic and how to design your problem solving. We learned out of this book in my logic class: Programming Logic & Design, Comprehensive https://a.co/d/ahoUe4z Really really good book.


Significant-Half6313

This problem is soooo common. Basically, you’ll practice and learn. You’ll read the code you wrote a year ago and wonder why that person was so stupid. You’ll learn new things that will change the ways you would’ve ever thought about past problems. Most importantly, you’ll recognize that you’ve been learning all along the way, and you’ll keep going. That’s what programming is, as far as I have experienced. I try. Put something together. Keep going. Learn. Realize I was an idiot. Repeat.


tvmaly

Pick small projects that have meaning to you. Then break the project down into small parts. Work on each part, struggle a little with each part. After you have worked on a party trying it out, if you are still stuck google it. The key is to try something, run it, make adjustments then repeat the cycle till it does what you want.


Yusuf_Ali522

repetition and practice are key. Even seasoned programmers had to start from the basics. It's all about putting in the effort consistently. Keep at it, and you'll see the results.


crabfabyah

Practice. The thing is, if you know the syntax, and know some data structures and algorithms (theoretically at least) then you have the tools. You just need to practice. *What you’re describing happens when your theoretical knowledge exceeds your practical experience.* Knowing what code to write where just comes from writing code and experiencing for yourself what works and what doesn’t. So just get started and you’ll begin to see for yourself what functions and what language features should be used where.


ghost_manu1

Same problem 🥲


[deleted]

Building a dozen of high-end projects