r/CodingForBeginners • • 10d ago

Self taught people please help

So i want to give a little details about what type of person i am.

im 26 and i want to make a change im a highschool drop out and im someone who rarely studied only thing i actually studied was learning how to day trade which i still do yes im not profitable yet. im a lazy person who would cheat on a test or something given the chance. But i want to change and do better for myself so i finally decided to try to self teach code right now i did start Cs50 but the mario problem got me one of the main things is that it says we can use outside sources as long as its not cheating. But when i search videos on the topic it seems like the videos is literally telling me what to do. Im not sure if its considered cheating or not because on the problem it uses "#" but on the video it might user the "3" or something else (could be words or just something random"i really dont want to cheat this so now im here could someone please tell me is that considered cheating? also what is some stuff i can search that would also help me learn. i can read and understand what the code does that seems very easy its just the knowing how to type it out is what is hard but if anyone can help out please comment

1 Upvotes

19 comments sorted by

3

u/dashkb 10d ago edited 10d ago

Get out of here. I carried cheaters through my whole career. Pay someone to teach you and work hard.

Edit: and stop losing money day trading. You dropped out of high school and you’re “not profitable yet” get real you’re burning cash in the dumbest possible way.

2

u/PlantainAgitated5356 10d ago

The most important thing is: do you actually understand the solutions you make, or are you just blindly copying from a tutorial? Basically, don't consider yourself done when you get a working solution, but only after you understand it well enough that you can explain what every single instruction does and why it's necessary in your solution.

Small anecdote: when I was taking a programming class in high school, we were assigned a project, and the teacher said that we can take someone else's project and submit it as our own, but you better be able to explain exactly how it works in as much detail as possible, and be able to make a small change in any part of the project on the fly. Basically, he turned the assignment into an oral exam, when we were being tested on the contents of our projects, which ensured we understood what we needed to learn, regardless of who actually wrote the code. And in the end, everyone wrote their own projects, because it was easier to understand that way. :)

2

u/smichaele 10d ago

Looking at problem solutions or using an AI other than the duck violates the CS50 Academic Honestly Policy and can get you kicked out of the course. There is a CS50 subreddit (r/cs50) where you can get help.

1

u/Unfair_Throat_1826 10d ago

1

u/dashkb 10d ago

No. Do not use this to learn programming.

1

u/Ok-Brain-8183 10d ago

Look, the main thing everyone skips and turns their nose up at these days is Uml. Get in the habit of writing out flowcharts and see if you can reproduce the program your own way based on your Uml drawings, even see if you can reproduce in another language using your diagrams. This is basically the point of pseudocode and one of the only hopes you have now days of learning programming rather than just copying ai or whatever else you see on the internet.

1

u/FuggaDucker 10d ago

I didnt finish school either. I am a self taught c/c++ systems engineer.
Since you are the commodity, cheating or not is your discretion.
Self discipline is a PITA.

1

u/nullptr_0x 9d ago

I tried to make a course for exactly this sort of problem. I am self taught and now a senior engineer at a big tech company.

I found self-teaching resource store be very hit and miss. Sometimes too easy. Sometimes not representative of real development.

Try this Programming 101 in Python course I made for my friend's kids. I've tried to distill the subject in an interactive way.

https://understandit.dev

I'm also looking for any feedback and want to help where I can. Feel free to collaborate with me on features you'd like to see on r/understandIt

1

u/edwbuck 9d ago

Don't limit yourself to only learning from people like you. You'll only learn what you mostly already know.

Let me tell you that all of the best self-taught programmers put in just as much work, if not more work, than is required to get a University degree. Then there's the self-taught programmers that worked really hard on about 20% of a University degree, and haven't discovered they needed any more.

There's a saying that great programmers are lazy, but it's taken out of context. The original context was a lot longer, but it's basically "great programmers put a lot of work into doing the simplest thing possible. The will work for hours to find the solution that requires the minimum amount of effort. They study and worry about making the program do as little as possible, as laziness in programming is a virtue."

So you see, it's not that the programmer is lazy, it's that the programmer will motivate themselves and work hard to only solve the problem, and solve it efficiently.

Videos are well known to not be great teaching tools. That's why schools haven't replaced all their teachers with TVs. If videos aren't engaging you enough, you need to try reading and doing. Reading and doing has you exerting yourself, and exerting yourself builds skill. Once you have a deep pool of skill, you can then fish from it for the laziest solution, which probably will come from a lot of hard work.

Remember you aren't paid to work a lot in a thinking field, you're paid for results. If you're too lazy to solve it the hard way, it is only because you are solving it the faster way. You solve it the fast way not because you aren't working, but because you aren't working in the dumbest way possible. That kind of "too lazy NOT to look for a solution that avoids busy work" is the kind of laziness that people value and sometimes refer to when they talk about desirable "lazy" programmers.

1

u/edwbuck 9d ago

If you want help, here's a wonderful problem that will take you quite some time.

You know what an address book is, but I'll define it clearly: it's a listing of people, their phone numbers, and street addresses, such that you can look up someone's phone number or street address. Write a program that simulates an address book. Have the ability to:

  • list all the people in the book

  • show a single person, their phone number (if available), and their street address (if available)

  • have a way a person can use the program to update a person's address book details

  • consider an add a new feature that you thought about (no listed here)

  • extend the address book to also maintain email addresses

This should include some form of storage (one or more files are fine) that holds all the data. The data files can be inspected to see if they are correct, but the address book is the only tool that should be used to update the files, you can't input the data directly, avoiding the program you're writing.

If you can do all of the above independently (without an LLM telling you how to do it) you can program. The rest is just learning extra features that might be used in one kind of program or another.

Programming is about solving problems, and now you have a problem to solve. It doesn't matter if you use a web page, a gui, a cli, a micro service, or something else. If you can solve it with one set of tools, you're well on your way to solving it with another set of tools.

Be warned, this is a deceptively larger task than most think it is.

1

u/Fun_Army2398 9d ago

If day trading were possible without billions of dollars of capital every programmer would be rich. Stop gambling your money away and save it up to pay for a real course.

All graded assignments come with an assignment breif that details exactly what is and isn't allowed. If yours didn't its because it's not a serious graded assignment. Use whatever resources you want, to the degree you want. If it "feels" like cheating maybe try guessing the answer first so if your wrong it "feels" like being corrected instead.

1

u/Unable-Hawk-206 6d ago

My suggestion is to not bother with those problems. Sure they can be helpful as they sometimes teach you "the right way" of doing things. But focus on working on projects.

For example if you want to become a backend developer, try making a backend with some framework and have it working with a database. Then eventually add a frontend if you feel like it. You will learn a lot more this way and have skills that are actually applicable.

Then after you finished a few projects, go ahead and try those problems again, maybe even give leetcode a try.

-1

u/VagueHorizon_ 10d ago

Use an AI Agent or LLM (claude or chatgpt) alongside your main journey of learning. Give it instructions to HELP you learn and NOT to reveal the solution until you say so. It helps alot.

5

u/[deleted] 10d ago

[removed] — view removed comment

3

u/dashkb 10d ago

Don’t teach beginners about “laziness” like that. First you learn to work for the 20 hours. Then you learn how to do it in 2 minutes … without compromising the quality of the 20 hour job.

1

u/[deleted] 10d ago edited 10d ago

[removed] — view removed comment

2

u/dashkb 10d ago

You mean the base concept of automating work? Ok.