I have more than 20 years of experience in IT. My passion for programming has become my life’s work. I’m sure that if you are genuinely interested in software development, you’ll become an expert in no time. The main thing is to be ready for difficult tasks and never stop learning new things and believing in yourself.
In this article, I’ll be describing a typical path of an IT specialist—from a beginner to an experienced dev. Here, you’ll find out what “achievements” you can expect to get at each level and what things to consider if you’ve chosen to become an IT specialist.
Challenge Accepted!
You can draw a parallel between stages of professional development and levels in computer games. In order to secure another achievement at each level, you have to master certain skills. The higher the level, the more effort, and concentration you need to devote to complete tasks. Now let’s have a look at the main career stages for programmers, from Junior to Senior.
This gradation is only a convention necessary to simplify one’s understanding of a developer’s qualifications. It’s okay for a junior to not know something or to make mistakes. Every new day of theirs is full of unexpected challenges and achievements. However, for a senior in order to get to the next level, they will have to put in a lot of effort.
Junior? Don’t be Afraid to Ask Questions to Your Mentor
Nobody expects outstanding deeds from a Junior Developer. As a minimum, a Junior Developer is expected not to do harm. Ideally, every day, a Junior Developer gets acquainted with how work is done on the project, and sometimes gets to do some simple fixes. A Junior Developer dedicates all their free time to perfecting their skills in the area they’ve chosen and, quite possibly, combines this all with studying in a university.
In order to be able to read and understand project-related documentation, a Junior Specialist must know English at least at the Pre-Intermediate level. Additionally, it wouldn’t hurt to be able to:
- Read and write program code in the chosen language
- Follow the set coding standards
- Navigate around IDE interfaces
- Use version control systems at least at a basic level
- Use bug tracking systems
- Follow defined workflows
At this stage, a Junior Developer understands technical tasks, follows the detailed instructions which they are given and can implement a part of the typical logic of the application. A Junior Developer should be ready to take criticism. First, professionals may often give criticism in a very unpleasant manner. Excusing yourself by saying that “I’m only a jun” is not the best of ideas. You should take knowledge at any opportunity you can, particularly from your experienced colleagues. Learn to listen to them and hear them.This way it’ll be easier for you to understand what the problem is and avoid it in the future.
Another important skill in a junior’s arsenal is to be able to ask questions. As a rule, a correctly stated question contains half the answer. So, it wouldn’t harm a jun to use the “duck method”: Rubber Duck Debugging. If the duck’s failed to answer your question, try Google with the same question. If this fails too, then you can go to your elder brothers.
Junior’s Achievements:
- Understands technical tasks without a translator
- Completes tasks without bugs
- Completes tasks within the estimated periods
- First pull-request to the project
- First project pull-request without issues
- First upload to prod
- First hotfix on prod
- First overtime
- First year of commercial experience
If you have secured all these achievements, it doesn’t necessarily mean you’re a Middle now. It’s only when your mentor doesn’t have to control your every step or check every line of code you’ve written, and your colleagues start asking for your advice, that can you say you’ve got to the next level.
Middle Developer: Can Implement a Feature as Well as Give a Speech at an Event
This kind of specialist has at least 2 years of experience in IT and has already got a taste of commercial projects. He understands business needs and can implement them in technical solutions, using the common patterns to build the architecture. Knowing the purpose of the product helps him to plan correctly, choose the right tools and properly implement the needed functionality. If the client’s requirements don’t cover a certain scenario of development, he will notice this right at the stage of planning, and not when the application begins to fall apart in the hands of the end-user.
A Middle Developer understands what kind of questions he can ask a designer, a business analyst, or manager. Unlike a Junior Developer, a Middle Developer finally gets to have free time.
Middle’s Achievements:
- Has good command of English (intermediate or upper-Intermediate)
- Has filled out an issue on the library or framework which they use
- Has created their own library
- Has sent a pull-request to an open-source project
- Has got his first 100 reputation-points on Stack Overflow
- Has published an educational article
- Has presented a speech to their colleagues
Becoming a Senior Doesn’t Mean Mitting the Career Ceiling
A Senior Developer has already worked in commercial projects for more than 4 years. They can approve the right technical solutions, those which can bring benefits to the business and which are efficient and not too expensive at the same time. The most interesting part of a senior’s work is teamwork. They are often engaged in the creation of architectures and teaching beginners.
There is no limit to perfection in the career of professional developers. There is always room for growth. You can get new skills both while working on projects and in your free time. Attend topical events, take online and offline courses, watch lectures—anybody can find what suits them best. By improving your senior skills you can reach even higher levels.
Senior’s Achievements:
- 5+ years of commercial experience
- Upper-intermediate / advanced English
- 100 stars open-source project
- First 1000 reputation-points on Stack Overflow
- Witnessed the fall of the prod
- First student—a Junior Developer
- First recruitment of specialists into the team
- On-site visit to the client
So, the bulk of the path is behind us now. Next, a Senior Developer can become the tech lead or team lead, or a certified solution architect. Let’s dive into these roles as well.
Tech Lead: When Reading Profession-related Articles is a Part of Your Work Responsibilities
A tech lead has to stay up to date on the trends in his specialty and tries to implement those in their team and current projects. Effectively, it becomes a part of their work routine. On top of that, they regularly monitor relevant forums and read technical materials. As a tech lead myself, back in the day, I published a manual, “JQuery for beginners,” and started taking part in subject area conferences. I gave speeches at PHP Framework Days and Hot Code, and soon afterwards became a co-founder of the international NIX Multiconf ITConference.
Techlead’s Achievements:
- 10+ years of experience
- Advanced English (not my case for now)
- 10,000 points on Stack Overflow
- Speeches at conferences
The Team for a Team Lead is Their Second Family
I accepted my own challenge of becoming a team lead 5 years ago. A new department at NIX had to be pioneered, which is exactly what I did by creating a team of 22 Ruby developers. Basically, a team lead is a mother and father for team members. A team lead helps developers to feel comfortable in the group, defuses conflicts, monitors workloads and makes sure that everyone pulls their weight properly. This is mostly a managerial role which requires well-developed soft skills: communicative skills, empathy, and finding common ground with people with poor soft skills.
Team lead’s achievements:
- First interview
- First junior’s onboarding
- Organization of team buildings
- First resolution of a non-work problem
The Architect’s Superpower is to Solve any Problem
Having reached the level of an architect, a specialist can offer clients his/her own unique solutions. He/she can confidently explain what the customer’s business needs and how to build the architecture of an application in the given circumstances without wasting time and going over the budget.
Architect’s achievements – AWS/Azure/Google certificates
How does one start a career in IT? How do you decide on the direction?
Practical experience is the essential ingredient when it comes to getting to the next career level. However, feedback is as important, especially for beginners. That’s why it’s crucial to study together with the support of mentors: your friends, more experienced colleagues, and professional consultants.
I believe anyone can achieve great things if they like what they do. Genuine interest in whatever you do helps become a professional much faster. Think about what you like and what you’d like to do every day. If you’re excited to create things, become a developer. Can’t imagine your life without detecting critical flaws in apps? Become a tester. Anybody can become anything as long as they have the desire. You only need to take your first step and begin your path in IT.