2024 is finally here with us and as the year kicks off, I’ve noted a lot of content being released on new tech trends to expect for the upcoming year whether it be frontend development, backend development, or mobile development. All this got me reflecting upon the past year and the different projects I was involved with at work together with the many lessons that accompanied them.
The question that keeps popping into my mind is whether we are abstracting software development to a point where the fundamentals are getting lost in between. I appreciate and recognize the fact that frameworks in software development abstract a lot of complexity and help us follow recommended design patterns to write better-quality code. This is good for experienced developers but from my observation with developers getting started, this approach limits their appreciation of what’s under the hood in the specific framework and what problem it is trying to solve. This in turn limits them to think in a specific framework mindset instead of being framework agnostic and being able to handle complex issues the framework doesn’t handle or rather even enhance/extend the framework.
If you have ever done a technical interview with Google you will note that especially in the earlier rounds they focus on technical ability using the basic programming structures i.e. loops, arrays, etc.. the target is to ensure the candidate is comfortable with the basic programming principles and as such working with higher level abstractions would only help to enhance their productivity. This is part of the reason why focusing on the fundamentals is quite important, especially at the early stages of your career.
In conclusion, let us learn to prioritize the foundational knowledge in programming/Computer Science so that we can better understand the systems that we build.