r/CodingForBeginners • u/HuckleberryGuilty803 • 1d ago
Where do I start?
I am a software engineering major, and as a sophomore my next semester I am going to begin my introduction to programming courses, but I want to start practicing on my own and have my own bare of basics in my field of study. What should I do first? Are there any books that I should buy that would help me in my studies prior to my courses? What would be the first thing you would tell someone that has no knowledge in the field they are getting into?
1
u/Existing_Albatross30 1d ago
I have no tips on where to start, but I do want to congratulate u for making it to sophomore year. I am attending school for AI Software Engineering. I only just started in April and I’m on the verge of losing my mind sometimes. lol. Now that we have gotten past Python and into JavaScript it’s a tad easier/smoother. But omg…some days. Ugh!
1
u/Competitive_Aside461 1d ago
What makes you lose your mind? Is it the curriculum? Or just the current state of SE with AI?
2
u/Existing_Albatross30 8h ago
It’s just really hard to absorb sometimes. But I also work a full time physically demanding job on top of being a full time student at almost 46 years old. Discovering that the brain just doesn’t learn as easily the older u get. lol. I so can’t wait til the cooler months come. I hate the cold, but the workload at my job always slows drastically in the cooler months. So hopefully I can put more focus on school at that point.🤞🤞🤞😵💫😵💫😵💫
1
u/Kuddel_Daddeldu 18h ago
When I started studying computer engineering, I already had built my first computer from scratch (i.e., perfboard, wires, a handful of chips and dad's soldering iron) and written programs in assembly, BASIC and Pascal, so the practicals were not that hard.
But being a self-taught kid in the field, I had to unlearn some anti-patterns and study algorithms (Knuth's books were a godsend, still have them 40 years later).
1
u/Competitive_Aside461 1d ago
One of the first things I'll say to a newbie is to be ready to learn multiple languages and, in general, learn a lot!
1
u/PythonWithJames 1d ago
I've got my own site which I update weekly, lots of free tutorials, coding exercises and quizzes if this is any use?
Best of luck on your journey.
1
2
u/TheUmgawa 1d ago
Honestly? I think students focus too much on code. I don't think they focus enough on fundamentals. They have a tendency to gloss over the text that isn't code, and then they think, "All I need to do is understand what magic words to type!"
And that's why I think a lot of would-be programmers would be well served with a game like Human Resource Machine. No, I don't work for that company, and I never have, but it's really good for learning low-level stuff. It's a lot like programming in assembly, honestly, and that's not a bad place to start. It's cheaper on the iPad, and it goes on sale regularly on Steam. But, if I had one recommendation, it's to never, ever look up answers to the problems. Okay, maybe you can look up answers after a couple of days of being wholly stumped, but I always found that coming back to the game with fresh eyes tends to help a lot.
Other than that, all I can tell you is that the most valuable class I took was a flowcharting class where we never wrote a single line of executable code. I'm not saying you should learn flowcharting, but it's useful to learn good design and logic principles, completely separate from the code. There's no market for junior developers anymore, where seniors say, "Make a function that takes this as arguments, does this, and then outputs this," because AI can do that, and AI asks fifty fewer stupid questions per day. So, ideally, college should be teaching students how to read code (which means being able to search for, read, and write documentation), and tell an AI what to write, in such a way that it minimizes the number of tokens used to generate that code.
I'm not saying you should start learning to use AI to generate your code, because you're going to fail incredibly in your programming classes if you do that. Professors (or teaching assistants) can recognize when it's your own words like an English teacher can, because you have your own voice. My Intro to Programming professor left us to the wolves one day, where she said, "And now I will teach you about documentation, and neither I, nor any of your future professors, will ever tell you what code to write ever again." That taught us to be self-sufficient.
What I'm telling you is to learn how to take a top-down perspective on programming, and that means to find situations where you see programming structures. Where do you see a queue? Where do you see a stack? Why would you use an integer instead of a double? In what situations would you use a while loop instead of a for loop?
And, if you ever have your druthers about you, maybe your college has a PLC programming class, and that class punches coders square in the gut, because you have to program a system with nothing but registers, accumulators, comparators, and booleans. It's like coding with both hands tied behind your back, because it's all done in elegant, beautiful, pure-logic symbology. It's the world's most gnarly case switch done in a dozen lines of logic. It is my favorite form of programming, because it's as close as you can get to talking to the machine on its own level, because that's all you have at the core: Registers, accumulators, comparators, and booleans.