Coding Fundamentals Are Underrated
With all the new technologies and frameworks, it is becoming easier and easier to create apps that "work". I put the work in quotes, because even though the app might function, it will most likely not scale and will probably have some big bugs as well. Without good coding fundamentals, you will almost certainly have a tough time building maintainable and scalable code.
What is a Coding Fundamental?
A fundamental is an adjective that describes forming a necessary base or core. By this it means to have a good understanding of the core of what coding is. Frameworks like React and Flutter are just complex combinations of the fundamental underlying code. But even though a lot of the underlying code is abstracted, understanding what is actually going on will still help you tons.
How To Learn?
Coding Fundamentals can range from anything like naming variables to software architecture and everything in between. You can learn these fundamentals in any language, and they will translate to any other language. My two favorite languages to learn these are C and C++. With C you will really get to understand what exactly is happening in your code. It is a low level language so you have to be more direct about how you access memory, inputs, and many other things. Then it is definitely important to move on to some Object Oriented Programming, since this is what most higher level languages follow. If you start with C it will be a bit easier to transition to C++. BUT these are just my favorites, you can learn fundamentals using any language.
How Fundamentals will Help?
Like I said at the beginning, having good code fundamentals will help you make your code scalable and maintainable. Let me demonstrate that to you using the two previous examples: naming variables and architecture.
Naming variables might sound like trivial task. But if you have worked on any big project you definitely know how important they are. With a small app you don't need to overthink this, and it is okay to have "x" or "y" as a variable name. But when your software has 100s or 1000s of variables and multiple people working on the same software they become super important. At that point it becomes critical for your code to be readable. There is a reason why google has a whole website dedicated to coding conventions and a big section is naming.
Software Architecture is one of the most important coding fundamentals, if not THE most important. Software Architecture is the layout of you code, and how it is separate into different Objects, Files, Functions, etc. This is such an important topic that most bigger teams have people dedicated only to that topic! With good software architecture, a team can work on separate parts of the code simultaneously and not impede on anybody else. It will also keep things organized and the developers will still be able to understand what is going on no matter how big the codebase gets.
I have been uploading videos to YouTube for 10 months now with a strong concentration on Flutter. Although I love the Flutter framework and I think it will keep growing over the years, I believe it has made the barrier to programming a lot smaller as well. This is great for experienced people, because now they can build apps quicker and easier. But there are a lot of people that are just starting programming, and they might be starting with Flutter. All that is fine, but I can definitely see people lacking their coding fundamentals. The most common questions I get are not necessarily questions about Flutter. They are questions that would be covered by knowing the fundamentals.
Because of this, I have decided to start another series on my channel covering the code fundamentals, where I will start from the very basics of programming and move my way into more difficult topics. My goal is to hopefully have a complete reference of everything related to code, and can guide people to the specific videos if they are missing the fundamentals.
If you want to follow along, this playlist will be featured at the top of my channel, and will be updated weekly!
Thank you for your time! If you have any feedback or want to connect with me: Youtube
My Website (work in progress): tadaspetra.com
And if you enjoy my work and would like to support me: Patreon