It's been 4 months that I've learnt just enough React to build some very basic apps that consume API and can also dynamically handle routes.
So far, I've build a number of projects with React that just work fine, but something that always seem to be in common with these projects are the lack of a solid structure and organisation to the project.
I strive to make my code follow the 'SOLID' principles and other such best practices, but I have frequently found myself in situation where I'm deep into a project and some feature addition requires either a lot of refactoring or duplicating the code.
Also, off-topic, something that I noticed is how rapidly Typescript is being adopted in almost every React project and is growing in demand among the tech companies.
So in all, I have few questions to ask the veterans and this community.
Where do I go from here to develop production grade React clients?
Does Typescript solve some part or all of the above problem?
I know, I'll need a lot of practice and I'm totally down for it, but I don't want to become a world-class spaghetti chef by cooking spaghetti all the time, instead I just need a way to learn about the design patterns and philosophies that Pro React Devs use.
A deep gratitude If someone is possibly open to guide me or mentor me in any way. Thank youš
Thank you for reading.
Latest comments (26)
Put together a list of projects that you want to create. Something exciting and that will challenge you. For the projects make sure that they increase in complexity so that you are forced to learn new things. And then just build!
You can even take it one step further and work on projects that solve real world problems. Make them open source and put them on GitHub.
TS isnāt required To be a good developer, but it will improve your code and help you understand JavaScript types better.
Hey there!
No language would be more or less oriented for a SOLID approach, but learning Typescript can never hurt for a career since it will help you grow as a developer compared to using only Javascript.
Most challenge as a dev who want to apply best practice is.. well applying best practice from the start. It's easy to write spaghetti code and tell yourself you'll change it moving forward, but if you get guidelines (something like that) and apply them from the start, it's always easier to go forward.
Another thing I find that help, is finding other people to look at your projects. Working alone remove the pressure to do something SOLID.
If you are looking for experience that will tell companies "Look here, I know what I'm doing" don't give up. it took me 6 months to find a good Dev job that I like, but something that can help getting attraction is focusing where you want to apply and making your resume look like their website (I'm trying to find the posting here on Dev that mentioned it, will edit when I find it). It gives a punch and help you make things according to a wireframe instead of just what seems easy.
Anyway, hope my comment helps,
Have a great day!
Hey, felipe that's a great resource I've personally found myself learning alot through reading through other's elegant code. And your repo brings it all together. Thanks man helped alot.
Take these steps:
TypeScript is good to learn to for getting a job, but dangerous if you rely on it as a crutch, a replacement for a solid understanding of JavaScript qua JavaScript. That type "safety" goes out the window in runtime, after your code is transpiled to JavaScript. See step 2 above, and take it to heart. Personally, I hate that so many people are imposing TS (and all the extra learning curve that comes with it) on less experienced devs (who you should be encouraging to learn JS as it is - loosely and dynamically typed), especially when you can achieve the same things with proper JSDoc comments and ESLint (and even get the same Intellisense if you enable ts-check for JavaScript in VS Code), without all the unnecessary, nonstandard syntax.
Even if you don't use it (I haven't in my own projects for over a year now), Redux is good to learn for getting a job (I'd guess about 50-75% of React roles are still using Redux) and because it relies on so many concepts that translate to programming in general (reducers, middleware, pure functions, etc.).
If you want to find a job in a company:
If you want to be a successful freelancer
No matter which, you can also try studying Gatsby or Next.js as they're commonly used React-based frameworks. Know when to use which. Also, this year is extremely tough for everyone, including developers. :( So besides seeking opportunities, we will also have to improve our skills in every way to stay competitive.
Hey don't pick your brain to hard on this.
We had the same issue with comse clients at times. They completly wanna change the flow of a system and it means refactoring the whole system. It is normal and this is why you should have a strong testing pipeline to align with such consequential changes.
One thing tho think about when building an APP (regardless of language) is to think scalability. Take a simple notification system you could do it very easily as a json payload but then what. What if in the future you want to add an action to the notification or also add tracking of interactions (views / clicks). What if you want to add priority to notifications?
The idea is any feature asked from a client should be easily scalable this might mean that you will need to put extra work at the beginning to make it easily scalable. This is why when building an app it is also important to understand where the business is gonna go. What are their future plans to make sure that the piece you create will also be compatible for any other future dev they have planned.
Ideally you should always be thinking on how will the feature be expanded in the future.
On the note of Typescript do learn it and do use it if you can. It forces you to write much more rigorous and structured code.
Was on the fence with learning typescript, now its clear typescript is the way to go. Thank you.
Hi Sandeep. Some actionable advice, I hope
I think the best way to go about doing this is to collaborate with others and work on some open-source project. When you do hobby projects, you learn the framework/language. You would also pick up some design patterns, but you learn 10x when you work with "veterans" on production grade projects. These you learn though code reviews, discussions on issues etc.
I recently came across Typescript website... and they have done a lot to make it collaborator friendly. There is a roadmap here: github.com/microsoft/TypeScript-We...
Look for issues labelled "You can do this" (github.com/microsoft/TypeScript-We...)
Raise a few PRs.. PRs against "You can do this" might be accepted. You will learn a lot when you make the changes, and but learn twice as much when your PR gets reviewed.
That is useful link, thank you!!
Hello. The concern you currently have is a very good one. It shows that you are interested in learning how to write better software and not just get stuff to work. That's a very healthy ambition.
One thing that helped me to learn this was building projects with folks that are more advanced than I am. I have found that one or two of these kinds of projects can help you learn a ton(literally every day of working with these senior folks).
So if you have any in your network you could do well to interact with them on this idea
Finally, I think you are very correct, TypeScript is something you need in your arsenal. However, I think solving the spaghetti issue should be of higher priority(you can do both at the same time you see)
Thanks Chidiebere, stepping up!
Hi.. knowing typescript is awesome because it can help with the process of getting errors. But I donāt think itād help much on getting more clients