Answer the question
In order to leave comments, you need to log in
How to get a feel for software design?
Hello dear experts!
I want to master software design, be able to identify and eliminate code smells in order to get a job as a frontend developer in a large company or on Upwork.
Right now I'm doing the following activities:
1. Reading codebases like https://github.com/hashicorp/terraform , https://github.com/chakra-ui/chakra-ui to test my assumptions and see the application of principles, patterns , refactorings on a large scale.
I imagine how bad it would be [to change a piece of code / understand what it does or how it works] if the code was structured differently, and I draw a parallel to code smells. I'm trying to mess up the relationship between inheritance and delegation. I understand the reasons for (not) applying SOLID principles, design patterns.
2. I write code using my knowledge. At a certain stage of development (frontend, subject model, tests) I stop writing code. I complicate the task and resort to UML diagrams, diagrams of imaginary large software, I write only separate snippets from the code at different levels of task decomposition and in different layers.
3. I ask questions to the IT community, I will participate in open projects.
Question :
What else can be added / subtracted here? As long as I don't freelance for now.
Answer the question
In order to leave comments, you need to log in
add / subtract for what, what is your goal? If your goal is to get into the office, then
Write the code. Programs. Lot. Can you write ToDo with your eyes closed? Ok, write an online store. Have you written? More. Already yet? Ok, write harder, sorting, server requests, write a small server. Write a fucking engine for 3D rendering in the browser on canvas (just kidding, don't take it in your head)...
Write as best you can and you will understand where the mistakes are and where to grow. Think about approaches, write the application architecture (at least with chalk on the pavement) before writing code. Try submitting your code for code review. Perhaps for a fee. I think that many people will be happy to look at a simple online store for a couple of dozen bucks. In any case, a competent mentor acts as an efficiency multiplier, somewhere, a hundred times. Now everything is online. These mentors darkness. There are teachers and seniors and archivists, whoever you want.
If there is nothing to do, then try to develop via GitHub from two accounts. Add some task manager like Jira. Are you doing well? Ok, you are ready to try teamwork. Monitor vacancies and learn the necessary skills, submit a resume ... then, I think, it's understandable.
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question