Today, to become a junior-level web developer you don’t need even a college degree. There are tons of bootcamps and short-term programs for those who would like to start their career in IT.
But what does it take to become a top-tier developer?
In my conversation with Eugene Cozac, I discuss some professional challenges of high-level web developers.
Eugene: I never had doubts about my future career since coding was interesting to me since I was a kid. Before I got into programming I assembled more than 300 computers as my first degree was in Computer Engineering. But, basically, even if I have a degree, I learned a lot by myself.
Also, I started working on real projects very early, when I was in college, I already had 2 jobs. That’s why I have a lot of experience, and, most importantly, I understand the basics of programming and the entire logic behind it. I always was curious about trying out new things.
A programming language is just a tool, and for different kinds of tasks, it's better to use different tools. Also, it is like knowing many languages: some of them are very similar (like Spanish and Portuguese) and knowing one, you can easily figure out another one.
For example, for an average developer, it usually takes at least 2 or 3 weeks to start working on the project, which is fine, because you need to understand the stack, business module, business logic, code style, and all these things. I usually can start within 2 - 3 days. I try to understand all of these before I start working on the project. So, just to see how old all these things are, and understand the code style also because you need to write the same code style for these kinds of things.
Also, it helps to switch between projects very fast. So here you need not only experience but also special abilities to enable you to see the entire architecture. And what I know, I mean many developers are not doing this.
Eugene: I built it already. I finished my framework named Krypton which can be used by different developers, so this means that many developers can take this framework and just can build their own web applications. I created this framework because at some point, for me it was not enough to use only ReactJS. What you need to do is to have a platform it will help you to rebuild the components or to write the components, so as to have a basis for those things.
So, based on this, I created this framework, and took about nine months to create it from scratch. So, I did it all by myself, so I’m sure that it will become very popular in several years. Currently, I’m building an artificial intelligence chat for Shell, and I’m building it on my own framework - Krypton. So basically, it is already implemented. Moreover, I have another client, Intel 471, and I use my framework to work on that too. But when I started to implement it, it was not published because it was an alpha version. So, you’re creating a framework and, then, you can implement it for corporate work. So, it's beneficial. Based on this framework, we can create a lot of applications.
This tool makes the work of developers easier and more efficient.
Eugene: We have only 8 frameworks for ReactJS, right? Big frameworks need around 20 developers for each framework, but here I’m doing well by myself. It is already public and, probably, in 1 - 2 years it will be pretty common.
Eugene: Back in the day, developers just needed to do the tasks faster and they needed to understand that the requirements for a project in deposit were very low, so PHP and JavaScript were enough. Now, we have a lot of languages and frameworks, and we have a lot of tools that you can build because now the requirements for projects are way bigger than we think. So, now we need more high-skill developers. So, let’s say, for example, you have now GPT-3, which can write what you want, which code you want to have, or just functionality, which applicational trap, and it can create it for you.
Usually, this is not a full solution because it’s not replacing the developers. The reason is that there is not only to create an application from scratch, but you also need to talk to a customer or a client. Also, you just need to fix all of the bugs, so many things, so it’s not replacing the developers at all. What I can say is that maybe it can replace junior developers. For example, GPT-3 or AI knows how to do a lot of things, I mean a lot of very simple things. So, usually, this is what a junior developer does.
Probably in the future, it will be a bit hard for junior developers to write something sound to find work. Nowadays junior developers do a lot of routines, which middle or senior developers don't have time for. So, AI can replace junior developers, but this isn’t for sure. Anyways, the entrance into development will be very very high.
But it will be very hard to replace a senior software engineer or lead developer. That’s why I believe that everyone needs to aim to be in the top 1% of developers. GPT-3 or AI will not have enough power to build like me, for example.
For now, we don’t have any AI tool that can do the job I or any other developer with exceptional abilities can do. So AI will not replace good developers like me at all, and I think, neither in the future nor in 20 years.
Eugene: I worked for a company called GAN. It is the biggest company in the US building online platforms for casinos. When I joined this company, many casinos wanted to move their business online ASAP due to COVID.
I was in a team with two developers, so the company said “We just need to find a solution; how to build two hundred websites in no time.” So, we needed to find a platform, to find a solution that would resolve this problem.
This meant that we needed to create a platform where it would be very easy just to build all of this code and just to create all these things. So we decided to create a boilerplate which is based on ReactJS.
As there are some common things, which are supposed to be implemented on all the websites such as the payment system for PayPal or Stripe, we decided just to add all this in. I needed to create packages and then develop, and create all these websites. That way, you’ll have a base of a website and then you are adding all these packages, all these extensions, to the website. So, this platform was built by me and two other developers.
We delivered this on time, the job took about 10 months. Now I know that they built most of the websites based on the platform which I built with my two developers. It has the most casinos in the US. So, we built this platform; we did this for GAN, for corporation work, and then, GAN with a couple of developers, built all the websites for about two hundred casinos in the US, so this is it.
Eugene: The biggest challenge was to create my own framework because I think if I just have a framework, many companies can use it. Even if right now it is used by a couple of developers who will implement a project or dashboard through this framework to build for companies like eBay, Shell, and Microsoft, apparently I will be proud because based on your platform or based on your framework, people create, building applications. So, this is the most important thing. So, for me, this kind of thing.
Eugene: I don’t think there is a special way. You can find a lot of tutorials on how to become a developer, just how to learn a language, how to find a job, how to do the interview, and which questions to ask. You have a lot of tutorials nowadays; you have a lot of things. But, to be an exceptional developer, there is only one solution: to work a lot. The best advice will be just to try to make different challenging things all the time, to do different algorithms, to do something new. Also, a very important thing is not only to work hard but to work smart. This means that you need to try to do different things and see how you are picking it up. If you're picking up all these things very fast and understand all those things, maybe you are a really exceptional developer.
Eugene: In general, my advice is to see how you are getting in general the stack or just the programming language you are doing now, how you’re getting it. If you're getting this all, you understand all those things, you don't have any issues because sometimes the developers, they’re picking, for example, Python, and just when they’re trying to do something more complicated, something more complex in Python, they cannot do this.
First, you need to understand how flexible the code of this language is and how much you can do with that language.
For example, to be very good in Python, try different frameworks based on Python, but also try to jump to another language, which is very different from Python, for example, you can try JavaScript, you can try C++, which is very different, to see how fast you'll pick up, how fast you understand it. If you can do this, and it takes a short time just to understand how it works, this is a very good sign.
Then try to do something different, to write, for example, different scholarly articles, to understand if you’re getting this kind of challenge, try to do a peer review for different articles, and to create a platform, a tool which you can’t find nowadays, it should be different from existing ones and it is able to resolve more issues or just to have more pros than the tools you are using.
So, to create a tool or just a framework or something which can help people just to do all these things faster. It can be something that you have already, but it should have better features and better quality. This is about what you can do, but most importantly, be mindful of your mental health. It’s cool to try to do all these things and then to try to combine all things all the time to see how you're getting it, but don’t push yourself too hard if you feel tired. Sometimes it can get you to burnout, so you need to be very accurate; don't go to burnout, don't go into depression.
The most important thing is to be happy with yourself and to enjoy what you're doing. And as I say, you don't need to work hard, but you need to work smart.