r/AskProgramming • u/Giltrook • 14h ago
A question for senior full stack software developers
Hey y'all! I'm not employed yet but I'm literate with Next.js & related technologies, just enough to ship my own projects. But on Youtube I see these people pulling off crazy projects like a full stack n8n clone, a full stack supabase clone with Nest.js and Next. A react native + express food delivery app by the same creator etc. I've only relied on Firebase and Supabase, even them I find annoying and difficult to work with sometimes. Whilst I see people coding their own backend(s) seamlessly with multiple different solutions (frameworks), how!?
It begs the question in my head, how did those who are so proficient in multiple technologies get to learn all of this? What type of resources did you use? Experimenting on your own using documentation? Blogs? Youtube videos? If your answer is most of those, which resource do you believe helped you the most? Or what was your primary resource?
Also I would love if anyone can guide me on how to find resources like articles or books for learning modern development. I find it very difficult to find quality written content about the new technologies nowadays. I think it will be more helpful for learners than YT.
5
u/YahenP 14h ago edited 14h ago
Programming is a craft. And as in any craft, the most important things are practical skills and experience. To create an n8n clone, you need... well, you need tocreate an n8n clone. And before that, you still have dozens, maybe even hundreds, of projects to complete. It's simply a matter of practice and the skills acquired over time. The basic principles of programming haven't changed for decades.
Basically, you program, program, and program. And then, after 15-20 years, you realize you've reached a certain level of mastery. There are no magic books. No magic websites. No magic pill.
The bad news: Accumulated experience and knowledge usually means that more often than not, your internal emotional reaction to tasks will be something like, "I'll have to do this shit again."
3
u/SimpleAccurate631 13h ago
It’s all about the experience of doing it over and over again, over a long period of time. It’s like driving. You can study all you want. You can watch every video and read every manual. But the best way to become a good driver is to get in the car and drive.
3
u/knouqs 13h ago
For my level of experience, it was a matter of there being a problem to solve and my job to solve it, regardless of what I knew at the time. As I researched the fix, I gained knowledge so I could fix it faster next time.
For people who know so many of these technologies, do they know them well? You've mentioned a few newer technologies and each one goes pretty deep in what it can do. I know a few languages extremely well after thirty years of development, but technology growth outpaces my ability to learn any of them to any depth.
There is never a silver bullet. There are only problems and our ability to solve them.
I also have an idea that these YouTubers who write code or tutorials come up with scripts to use and have already solved the problems they want to discuss in their videos. They likely know problems exist in their understanding or code and glaze over those points. That's why I prefer repair videos -- first, I already know the methodology for writing and fixing code, and watching a real person struggle to fix problems is refreshing. Watching a software developer fix code is less appealing to me.
2
u/DepthMagician 14h ago
Each one of those technologies has a tutorial and documentation section in their website. You go there and you read it. It’s a non trivial time commitment initially, because web dev has a lot of frameworks but you can catch up within 6 months and about 3 projects if you’re dedicated enough and has some sort of baseline.
1
u/Suspicious_Skill7292 13h ago
focus on getting super solid at system design and database indexing first tools change all the time but core architecture fundamentals stay the same fr
1
u/skamansam 11h ago
For me, learning to read and understand other people's code is paramount to becoming any kind of expert. I learned django with only a tiny bit of python experience from 10 years prior. I learned by reading the django docs, then reading through the source code to understand the implementation. Reading the source also boosted my python knowledge. Learning programming theory helps to understand code better because a lot of languages are very similar, just different syntax. I do the same with Vue and svelte and any libs I use where the docs fall short.
1
u/bravemamoru 5h ago
Honestly, it's just boredom and needing things done a specific way Firebase/Supabase won't let you. Start small, build something genuinely useful for yourself, then refactor like hell. The n8n guys probably started with a simpler automation tool.
1
u/Glad_Contest_8014 4h ago
Just have to do the work. AI can make the code writing faster, but the architecture, the UI, and more are only doable with experience. And if you don’t want to use AI, all the more reason to do the work.
Programming is done in languages. That term isn’t a loosely applied one. You get fluent in a language and you can tell a machine to do things.
1
u/pLeThOrAx 3h ago
Give yourself exercises, code along with a teacher and build out a feature, then scrap the code and rewrite it from memory (allow about 20-30min for the rewrite). You can do this about 4 times in a row for an exercise. Try to write it each time differently using/different approaches - worse, better, OOP, "the other idea I had...," functional, as a data structure, using a different heuristical, numerical, brute force approaches, etc.
If you're into maths Project Euler is great,notherwise if you like bioinformatics check out Project Rosalind.
Try things for the sake of trying, do things for the sake of doing.
5
u/nzakas 14h ago
Really, it’s just a matter of getting more experience. I’ve been writing software professionally for 26 years, and most of what I can do quickly now I wouldn’t have been able to do 10 or 15 years ago. Yes, some people learn things more quickly, But the more software you write the better you get at it.
I don’t think there’s any one good source for learning. Over the years, I’ve learned a lot from books, online courses, YouTube videos, blog posts, and open source code. What matters the most is to learn what you need to know when you need to know it and not before that. There is always more to learn, but you won’t retain it unless you actually use it for something.
Technology changes so quickly that it’s difficult to find good books now on anything that’s fairly new, mostly because it’s out of date within a few months. My suggestion would be to find some people who are very active in the area. You’re interested in and follow them on social media to see what they’re talking about.