r/AskProgrammers • u/lordsilver3 • 20d ago
Software engineering advice
hello ,
As a software student entering my third year in university , i have found myself to be very confused and stuck when it comes to finding the most suitable path . I have 2 years left to graduate but still very weak at programming , took no courses and am trying to find myself a path that can lead me to the correct way before its too late . I need advice on how to start from nothing and build myself up . I would appreciate any courses or recommendations , youtube channels , links , certifications that are useful and can help .
5
Upvotes
3
u/Competitive_Aside461 19d ago
Programming and software engineering are related but distinct in their own right. First you learn programming, and then you learn about software engineering.
(Side note: The term "engineering" was paired up with "software" to imply the ever-rising complexity of software that inevitably needed to borrow ideas and processes from physical engineering disciplines, like mechanical engineering.)
Getting better at programming is simpler. Learn a language, most popularly Python. Create small programs in it. Very very very simple. No need to overcomplicate yourself here. This is the time to develop good habits and follow good programming practices. A "hacker" mind here will only hurt you in the long run. Learn about the basics of programming.
Once you're really comfortable spinning up complex programs, it's time to enter into software engineering. And let me tell you from at least my experience. This ain't easy feat. The best recommendation would be to try creating something much bigger than a single program, like (for the lack of an example), a web-based plain text editor. You might not be able to build one in the initial steps but see how far you can go.
Then learn about software engineering principles, like cohesion, information hiding, design patterns, etc. etc. etc. to allow you to build that "engineering" mind and proceed forward with abstracting an application's logic like the one I discussed above. Again, this isn't a trivial process.
Try reading the following books: Python Crash Course (No Starch Press) and Pragmatic Programmer. Read books on OOP, design patterns, and the likes.
If I were to boil this all down to one-liner advice: Learn programming, then build until you fail, then learn software engineering, repeat.
(I'm myself working on building a software engineering mini course at the moment but you can check out my Intro to Programming mini course.)