How to Become a Full-Stack Developer?
The tech industry is experiencing an increasing demand for full-stack developers. You can see the job listings in abundance with lists of requirements becoming ever so long intimidating. Observing the tendency, many developers have already jumped on the chance to embrace full-stack. In fact, according to the StackOverFlow 2020 developers survey, 55% of responders consider themselves as full-stack developers, and we can expect this number to grow exponentially in the near future.
But what is a full-stack developer? How are they positioned in a development team? What is the difference between a software engineer and a full-stack developer? Is one better than the other? And how do you become one? The list of questions can go on, but there’s no better way to find out about the ins and outs of the profession than to ask the person doing the job.
We have talked to Dimitrij Subashev, a Software Developer at Symphony Solutions Skopje office, about what becoming a full-stack developer entails, the intricacies and nuances of the job, and his experience in his career journey so far.
1. Hi Dimitrij! Could you please introduce yourself firstly a little bit?
Hello everyone. My name is Dimitrij Subashev and I’ve been a PHP developer for more than 5 years now with overall experience in the IT industry of over seven years. I’m one of the few people that founded the Skopje office. I have been working on many projects here at Symphony as a PHP (back end) developer and I have decided to try what full-stack is all about 😊
2. What is a full-stack developer?
For me, it is to be a ninja developer 😊 Just kidding! But it’s really a person who has excellent knowledge and skills in back-end (server software) and front-end (client software). Let’s look into this a little bit more just to simplify things:
- Back end (using PHP, ASP, Python, or Node)
And let’s not forget about:
- database (using SQL, SQLite, or MongoDB).
Working with full stack has some advantages:
- You can provide help to all of the team members
- You can reduce the cost of the project
- You can make a prototype very rapidly
- You can switch between front- and back-end development based on requirements
- You can reduce the time used for team communication
- Being a full-stack developer is increasingly complex
- The solution chosen can be unsuitable for the project
- And also, it is barely possible to be up to date with all of front-end and back-end innovations.
3. How did you decide that full-stack development is for you?
I didn’t decide that full-stack is for me, I just decided to give it a try, because these days we hear that companies are looking for full-stack developers. So, I told myself let’s see what will happen. I want to see if becoming a full-stack developer is really the top of the iceberg for being a developer. And if it’s really possible to be that good in both areas.
It’s not that I don’t want to become a ninja developer 😊
4. What skills helped you when studying?
So basically, every experience that you have or even a beginner’s knowledge that you have can help you in this process.
5. What does a full-stack developer need to know now?
Hmm… This is a tough question. Maybe I won’t answer correctly but things are changing so fast in the IT world 😊
What the roles and responsibilities of a full-stack developer will be, largely depends on the project. But if you’re looking for a general go-to list to get you started, according to the internet, these are the skills that you absolutely need to have:
- Git and GitHub
- Back-end languages
- Web architecture
- HTTP and REST
- Database storage
- Basic design skills
- Soft skills
And I think this is a short list of skills. The real list will be much longer.
All I can say is that he needs to be really, really, really good in back end and front end. And from what I can tell, this experience comes with years of dedicated and hard work… Ten years of experience and more.
6. What program languages/technologies would you advise to focus on?
Even if you are a full-stack developer, you need to spend a lot of time (and when I say a lot, I mean it) on tracking all the new things that are introduced by those technologies that you are working with.
Everybody suggests using technologies that are working smoothly together. For example, Laravel Vue, Java Angular, React Express, etc. But this does not mean that you can’t combine Laravel Angular. And, of course, you should be aware of the most popular programming languages and what they are.
7. Maybe you can recommend some resources where you study, for example, front-end development or DevOps and Cloud, or other technologies, or tools you used for each one when studying.
There are many ways to learn some new technology. The internet is one big library (or as we developers say, Google knows everything). You can use any other site, especially dedicated ones for these things like Udemy, Pluralsight , or many others (for most of them you need to pay though).
I, for example, use Udemy, YouTube has some free tutorials, and there are a lot of sites that can be found on Google that explain everything step by step. And not to forget that the best way to learn is from an experienced colleague that is willing to transfer his knowledge to you.
8. What to start with?
This is hard to answer because there are a lot of influencing factors here. Does the person have some kind of experience as a developer, is it back-end or front-end, or is he a beginner? If we are talking about beginners, then the first step will be to decide what they want more and what attracts them more, whether it’s front-end or back-end. Whatever they choose, then they need to start with something for beginners and continue gradually to advance. That will be the starting point for them. And if they have some developing experience then it’s much easier for them, they will just start learning the other end that they are missing, whether is it a back-end or front-end.
9. What were the challenges you faced when learning new skills?
There are a lot of challenges in this line of the job as an IT developer. I can’t single out any specific challenge while I’m learning or working but the choice to learn something new is a challenge by itself and it’s not an easy task. You won’t become a ninja overnight 😊
By the way, my biggest challenge is free time because family time is very important to me.
10. What advice to become a full-stack developer would you give to those who are starting out on this path?
As I mentioned before, the first step for beginners is to choose either the back-end or front-end and to continue from there on, or if the person has experience with either one, then just start with the beginner’s lessons for the opposite end.
Try it, feel it and you will see how it goes for you. Either you like it or you don’t.
11. Is being a full-stack engineer worth it? Maybe you can express your thoughts on being a full-stack vs half-stack developer?
As I’m not a full-stack developer yet, I can’t answer this question. But on the other hand, if you are a good full-stack developer and you are doing your job right, then I guess you are worth twice as much to the company. In that case, I think, these people are a must.
12. How would you summarize your experience? Any advice?
Ok, finally the end! 😊 So, as a summary, what can I say more than I haven’t said so far?
Don’t be afraid and try something new. You never know, maybe you will like the new technologies so much that you will change your career path completely, start working in it and never look back.
Or who knows maybe you will be the next full-stack developer.
Whatever you do, do what attracts you and what you like. Never spend time learning something that you don’t like just because someone said that it’s popular now. Now it’s in, tomorrow it’s out, and you are stuck with something that you don’t like. So, know what you want, keep your focus on the goal and upgrade yourself as much as you can.
These are the valuable insights that Dimitrij kindly shared with us. Now we all know a little bit more about how to become a full-stack developer. It’s a process that requires a lot of work and dedication. It takes time. A full-stack developer is a versatile engineer that never stops learning and is involved in all processes in a development team. This is a role not for the light of the heart of feeble-minded. Just like Dmitrij said – it makes you a ninja.
Take it with a grain of salt but one thing is certain. If you set out on this journey, it will be demanding and you’ll never stop working on your own skills and evolving, but the reward at the end will be worth it. Full-stack development is a stimulating and exhilarating lifelong pursuit that opens up a wide range of opportunities. It’s what companies want. And you, as a developer, have all the power to make it what you want it to be, build your own path and maximize your potential.