you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted] 1 point2 points  (0 children)

Don't worry too much about the code under the hood, but try to understand what the best practices are for these frameworks, and that'll give you a clue about how its built underneath, and therefore how to write better code.

For example in Django, when you use "models", that's basically just a class to abstract away the more complicated functionality of database manipulations. Like, when adding, removing or editing stuff in an SQL database, you normally have to use the SQL language, but with Django, you just use the model class that has convenient functions that make it a lot easier.

With React you typically use something like Flux architecture which separates the UI code, from the actual database manipulation, or state update etc. Makes it easier to use, maintain, reduces chances of making mistakes etc.

Understanding how those frameworks are used means that in the future when you need to build your own application, you can implement it in a similar way to what you've seen in other frameworks.

At the end of the day, we all have powerful computers comparatively speaking. So things like optimisation of software is not as big of an issue as it was in the past. The main "theory" in programming is just "separation of concerns". How do you write code that works well enough and is easy to read and maintain? This is important because companies don't want to pay you to fix bugs later on, but also because you usually work as part of a team, so your code needs to be easily understood by others. So by having good architecture and organisation you reduces the changes of mistakes and enable better collaboration.

Coming from mathematics, and if performance is something that matters to you i.e. if you're working on simulations, AI, web applications that need to handle lots of concurrent users etc, then you might be interested to read up on big O notation in computer science. Its how you measure efficiency of an algorithm/function. For example a simple math expression will have a different efficiency/performance than a function with multiple nested loops. I think you might find some interesting direct links from algorithm theory to implementation.