Too much code, not enough solutions
This morning, I decided to have more of an opinion piece around the lack of more advanced development guides and thoughts. So, Do you know what grinds my gears? Almost all coding content never explains how to build and design complex products. I will focus this rant on Firebase and Angular Guides, but my issue can be 100% applied to almost any language I coded in. I can find dozens of videos, books, and coding guides online. I can even find projects. However, when you try to build an application, you will encounter several issues, which I listed below in the VERY limited or no information column.
Too many guides and information | VERY limited or no information |
CRUD operations | Real-world pagination examples(Images, feeds, files, etc.) |
Basic Pagination | Real-world custom pagination example (infinite feeds, messages pagination that joins different firebase records ) |
Firebase basics (translation: Database basics) | Real-world Firebase examples (include image uploads that map to the Firebase document of a user, how to organize a Firebase site for a feed, how to organize a Firebase site for an image site, and how to organize a Firebase site for a messaging site. ) |
Firebase Rule Basics (Translation: Database security) | How to set up your Firebase rules such that one user can access the data and share access to the data |
Basic state management | How to apply state management for user settings, purchasing items, etc. |
Basic CSS and bootstrap | UI stuff other than essential CSS or using tools like Bootstrap. How to set up layouts and real-world themes |
Basic Security | Real work security for applications |
The list above is only some of the issues I noticed with guides. I tend to hear the argument that people teaching courses will teach you how to code or the building blocks of coding, and then someone could build the application themselves. However, I don't think this tells a full picture because most of the time, there is lacking information from 90% of the guides. I listed below some of the reasons I think there is not any detailed guidance.
Coding is brutal, and these are complex problems people are trying to solve.
If someone was going to pay me $50 for each hour I spent trying to design or solve a problem in code for personal projects, the cost would be 10s of thousands of dollars, if not hundreds of thousands of dollars PER year. Additionally, I cannot count the number of times that the first time I coded and solved the problem, it took hundreds of lines of code to figure out later how to solve the same problem with a significantly reduced number of lines of code. But imagine if this is a company trying to solve a problem. For example, think of Facebook; the fact that they know how to effectively share and build a system around sharing images is worth billions of dollars. However, companies don’t have their design principles. And that brings me to the second bullet.
Solution Ownership?
Disclaimer: What I’m about to say is in no way legal advice or represents any company I work or will work for.
No one owns coding in Python, design principles, or the theory around how to solve problems. There's no copyright for solutions involving code. I think this is a challenge for companies and people. One thing I would tell workers is the organization owns all the source code that is written for the organization, but the users own their passwords. However, users also keep solution patterns to solve complex problems. No organization owned the fact that… a person… knows how to deploy resources using AWS, how to migrate ECS to EKS, or how to build a complex application using Django.
Fear of not providing an optimal solution
There are many cases where there might not be the best solution, but there is an optimal or good enough solution that many people posting material online don't want to share. There is a fear of judgment.
What is a solution?
Honestly, I don't think there is an easy solution. Part of it might be weirdos like me posting content on how to solve problems online. However, I do think there's nothing wrong with being compensated for work, and it is not fair to expect people or companies to spend months solving a problem to give it for free. There have been many cases where one line of code or one small design change saves or costs a company billions. Imagine if Twitter released all its source code, design documents, and everything it takes to run Twitter publicly. That would put the company at risk. The billions of dollars spent on R&D would now be in the hands of anyone to reduplicate the company essentially. So I think the best answer for this problem is you might not get everything to make Twitter, but some companies, such as Twitter, have released the algorithms they use for feed ranking. Additionally, they're open-source communities that try to tackle some aspects of development challenges and make them publicly available.