Programming paradigm shift - Begginer
Posted by maxergon54@reddit | learnprogramming | View on Reddit | 11 comments
I'm a phd student and i have been programming for about 5-6 years now. In the beggining only python, and in the past 2 years both python and C++. I had a big problem when i was a begginer in python because i thought if i learn the language i will know how to code. Little did i know that learning the syntax is like a baby learning to stand on its knees. Its barely a starting point.
Over time I read literature/forums/github repos/ stackoverflow and lastly used AI to help me really learn to writr code in a modular, extensible, testable way...
Still, I often feel that I have a lot more to learn even though i have come a long way from the beggining.
My question to you is what was a breakthrough book/college course or anything similar that made think differently when you try to implement the ideas in your head to well structured, uncoupled code with proper interfaces.
Successful-Key4500@reddit
You still sound like you see languages as a sort of blueprints when they’re just building bricks. No one learns to make a brick wall and expect to build a mansion the next day, yet in programming…
maxergon54@reddit (OP)
My point is that programming is a relatively young scientific branch, compared to math, physics and other engineering branches which have a ton of literature. Since im self taught I'm just asking for top tier online resources that someone is familiar because its their primary job. I dont believe you can learn it in a day, but i do believe that resources Im looking for exist, they are just hidden in the ton of baddly written literature.
Timely_Raccoon3980@reddit
Modern math and physics and other engineering branches are basically same age as programming with some exceptions, I certainly wouldn't read XIX century physics books to learn current physics.
What you need is to create stuff with your programming knowledge, you need to encounter obstacles and simply conquer them, there is no book that will tell you how to do that in every case, just your time spent on developing and fixing stuff
Successful-Key4500@reddit
No mate, programming theory started with the studies of algorithms, think of the square root (or general root) algorithm(for example Newton-Raphson Method), it’s been studied and approximations could be made made way before computation, which yes sped our execution of said algorithms. But changed nothing in the underlying theory, if you truly want to understand programming stop doing so from endlessly learning syntax (do so with goals in mind) and understand the fundementals of data flow/architecture/abstraction etc
maxergon54@reddit (OP)
Of course, I didn't mean to get in the details of specific algorithms. As I said I've been programming for about 6 years now and just wanted to ask for some resources from people that have been programming for longer than that.
I asked because someone before told me to read the book Design Principles, and I found out that the ideas I used in my programs had a name (Astract Factory, Strategy, builder etc.), usually implemented in a similar way. Of course, I didnt use every pattern mentioned in that book because i didnt have the need to. Nevertheless that allowed me to label the things I've been using, and to know that Im not a completely lost case.
In that sense I asked in this thread for similar resources so that I can reaffirm / improve my coding.
I agree the best way is to just start coding and I've been doing that for personal needs/projects.
ItemAdept7759@reddit
Just ask your precious AI mate, seeing as you're getting it to do everything else for you.
EmuChance4523@reddit
So, I don't think there is a single book or resource, though the recommendation of clean code is good, I think the best is just experience in a lot of different challenges.
There are a lot of different knowledge that is needed for programming that aren't code per se. Understanding architecture, how to organize problems, which tools is good for which problem, even infrastructure is important.
And in general, on my experience, people learn that with experience more than books and courses. That doesn't mean book and courses are useless, they provide a lot of tools and good playgrounds, but I think the main breakthrough is through experience.
Also, the sintax is only important on your first steps on programming. Once you know how to code, you will just look into the paradigm and some main features of a language and switch as needed. Unless you want to be an expert on a specific language, you don't need to know all about it.
McHoff@reddit
Take a look at A Philosophy of Software Design by John Ousterhout. I've also heard good things about How to Design Programs but I haven't read it myself.
pepiks@reddit
A lot of you will understand when you will read about specific technology fundamentals. When you understand POST, GET, PUT in context creating websites coding will be easier and more logic. When I was helping my friend with phd and refactoring python code the most challenging problem was understand what she want achieve. I understood all code, but not all specific and niche knowledge.
To your analogy - if baby can't read can improve language skills reading poetry. If you don't know that something exists you can't code it.
cosmicchitony@reddit
Clean Code by Robert Martin completely changed how I structure my programs.
Latter-Risk-7215@reddit
"clean code" by robert c. martin helped me. focus on principles, not syntax.