Hey everyone,
This is Vijay. I am a junior developer and I start working for around 6 month ago. Here at my workplace they are using Angular and Node stack along with Mysql.
As I have told that I am working here for 6 month I have been exposed to all of these three technologies and I am learning all three at once. I worked on backend for 3 months then I switched to front end. Also a little bit of mysql for defining views to fetch different type of data that consists of joins and aggregate.
I am being careful to learn about all important stuff as in authentication and authorization, defining caching layer at backend side.
To learn good practices for good performance UI, where I have realized we have messed up our front end codebase a lot right now. Because we don't have any senior I can ask questions too.
All I could have counted on was myself and all the things I can explore.
After 6 months of learning and trying all these things have now started to make sense.
Why codebase layout is super important, why MVP, MVVM and almost anything sucks.
I really feel afraid of telling my manager to use any given kind of layout for our code because I can't imagine in my head how a given methodology will help us solve make sense of our code in a good way.
So I think I have a lot of questions right now?
1 Am I going on a right path where I am giving breadth of topics more preference over depth.
2. How to look at your codebase both backend and front end lay it out in a way that feels natural, what I meant is MVM and MVVM is kind of messed up when you have lot of things to put around.
My boss is saying to turn monolith app into micro services and to use dockers and all which I still have to learn.
So any kind if help would be appreciated.
Any kind of advice that you can give a 6 month old developer on which path to follow to become a world class problem solver.
Thank you. I know it's long but thanks for reading till now.
To truly improve, they have to train properly. A basketball player trains their dribbles, running, shots, peripheral vision. A programmer has a lot of other small things to train - algorithm, optimization, passing around bits of code from one class to another, or disciplining themselves to stay in flow.
My training routine breaks things down into 4 levels:
1. Understanding the concept. Also includes knowing how to google certain types of code, knowing what to look for, what to copy.
2. Being able to build it without any hints.
3. Feeling/instinct. You no longer have to think. Not only that, but you can immediately 'feel' a mistake or error, and where.
4. Potency. You do it faster and smaller. There's no end to it.
The people who are deep in level 4 are invisible to those at level 2 or less. Sometimes it seems like magic, sometimes it seems like incompetence or stubbornness.
Creativity only happens when you have many parts at level 3 and above. You have to internalize/feel the parts, before you can code very effectively. Then when you have a problem you're trying to solve, your brain just sorts it out in the shower.
But with programming, once you code something once, it becomes a function. Many people don't solve the same problem twice. It gets copied and pasted. And thanks to Stack Overflow, it's possible to go 20 years of experience without ever reaching level 1 skill.
This is not necessarily a bad thing. This means you can ignore parts like memory management or effective sort algorithms and focus on the important things. It's up to you to figure out which skills are really core to your ambition and focus on that.