Hello, coders! I am glad that you are on your way to becoming a professional developer. And the most rapidly occurring issue is that you may have the lack of required experience in order to apply for a job. So, this article will be a guide in which I will tell you some important tips and advice.
I often notice that aspiring front-end developers start and abandon technology studies several times. And gradually, already on a subconscious level, there is a fear of risking learning something new. This is not strange due to both laziness and lack of proper practice.
For example, imagine the situation where a budding developer recently learned that a component has a state and a setState method. For him, this is something new and cool. Now his application can dynamically update data.
It seems to be nothing complicated. And even after spending a week, you can create a simple ToDo list. But he realizes that one local state is not enough. And not because the developer wants to study even more technologies and develop, but because crutches no longer save. And guess who comes to the rescue?
This is where all the pain begins. You begin to understand that it was not in vain that your mother told you to become a doctor, and your father – a builder. And the girl dumped you not because you are a boring asshole, but because you didn’t learn Redux. You start to hear voices. They whisper to you that there is still a chance to become a PHP developer and plunge into the backend world.
If you understand what I am talking about and you know this feeling, then this article is for you. I will describe what is especially important if you want to get experience as a front-end developer.
The main thing when learning programming and especially the front-end is to be patient. The fact that you often face difficulties in learning is the norm. Do not blame yourself for being a worthless fool who has not been able to learn some technology or language for a long time. It takes patience and years of study to become a good programmer. You will never be able to become a senior tomato in 1 year.
And I will say this: “Making mistakes is not the worst thing. The worst thing is not to learn from these mistakes. “
- Be able to ask questions
Yes, this is also important. You must be able to correctly pose the question in order to get the desired solution. Yes, it sounds corny, but it is as it is.
For example, you want to create an online store in ReactJS, but you don’t know-how. Start from something small, like getting a list of products. Nobody will explain to you how to make an entire rocket.
Also, it is not necessary to write in the search engine “Google how to make pagination in react js so that it was high when you scrolled loading information?”, Just write “react infinite scroll”. And the ability to use Google is gained only with experience. It is strange that vacancies do not indicate this item.
How do you get this experience? You need to learn English and read the StackOverflow answers, memorizing phrases closely related to your answer.
Telegram also has specialized chats on programming languages and technologies.
The most important thing in learning any technology is practice. From reading books, you will get much fewer results than from practice. Based on my personal experience, only after a year or even a year and a half, I began to understand what is written in books on JS. Only after practice, when I myself came across what was described in these books.
The main thing is to try the following principle: “30% – theory and 70% – practice”. Every time you study something, remember this principle.
Where to get practice from?
It’s a good question and I will talk mainly about my experience so that you can make your own conclusions.
Since I am fond of UI design, I develop designs myself for all my projects. And I will give you an example from my practice. (no need to panic that you are not fumbling in design. The main thing is imagination)
At the beginning of my front-end training, I often came across technologies that I did not know, but really wanted to learn. As a result, I set myself the task of creating a test project and fundamentally using only those technologies that I did not know, namely:
- Socket.IO – learn how to work with sockets both on the client-side and on the server-side.
- PugJS – I often met this template engine in various vacancies, but I could not understand why it was needed and how to work with it.
- Stylus – I don’t know why, but I liked this preprocessor and decided to include it in this stack. Perhaps because of one job from Yandex and CSSSR.
- AngularJS – since at that time I was studying this framework, it was logical to use it in this project.
- GulpJS – I needed to understand how the project builder works. There was a bitter experience, or rather an attempt to learn GruntJS, but in the end, I settled on GulpJS.
- NodeJS is not a bit of server-side development to deal with receiving and sending messages.
I ended up doing this project. I got the right practice and decided to publish it on GitHub so that employers can see my work and other people can use what I have developed.
So, I hope you are clear about what I wanted to say.
What is the next step? Repeat it!
Try the same thing again. See what technologies you would like to learn, collect the necessary stack and start cutting the project. For instance:
- List of tasks (ToDo).
- A very simple online store. It is possible without the server-side (by the way, I sawed a course on this topic)
- A list of students/patients/clients with the ability to delete, add, edit them.
- Test tasks
- An even better practice is employer test items. Firstly, this is a test for you and an opportunity to find out what you are capable of. Secondly, practice and therefore double experience from interview and assignment.
- Try constantly
Experiment with different technology stacks and programming languages. This is a very good experience.
In addition to this, you can gain experience on different freelance platforms.
If you aim for freelancing, then it is advisable to know HTML, CSS, JS and their most popular libraries and frameworks. But this knowledge is enough only for a small part of orders. Therefore, then you choose in which direction to develop according to popular orders. There are a lot of orders for WordPress and Magento, many of those where, in addition to the front-end, a back-end is needed, that is, already more for your consideration, having analyzed the market.
And where to explore all this – there are a bunch of options. Now there are a huge number of both offline courses and online textbooks, where they will explain everything to you step by step. I would recommend freecodecamp and Codecademy from the online ones. Moreover, there you can fill your first projects for a portfolio. When there is a portfolio, it will be easier to receive orders. For example, one of the tasks at freecodecamp is to make a regular landing page. After this experience, it will already be possible to search for orders in the UpWork for the same landing pages. Well, this is how, at least my plan looks like if it does not come out with a permanent job)
And the strategy for getting a junior position is probably the same, but more knowledge and experience is needed, the competition is great, and a huge amount of skills are required at once.
On the other hand, I would not recommend initially focusing on freelancing. So you will slowly grow as a developer, plus it is quite difficult to knock out a task for yourself, even a very simple one. Let’s just say it’s not for everyone – especially if you don’t have experience.
I would suggest:
– then you can sign up for courses on front-end at various companies, with the prospect of further employment. There are plenty of them now, mostly offline, but there are also online ones. There you will gain experience in working in a team, sharpen your skills a little.
– Well, then you are already trying to triple either in the company where you did your internship or somewhere else. If there are problems in the interviews, you fix it and try further. Until the victory.
So, that’s it. Do not be afraid to take responsibility and to try to apply for a job in the IT company. I am sure that you will gain the necessary experience and get the job of your dreams. Believe in yourself and do not be scared to accept challenges. And, of course, practice a lot. Thank you for being interested and good luck on your programming path!