What is the main criterion for career success? How to get to the desired job, if not enough experience? In this article I tried to answer these and other questions related to the career of an IT specialist.
First about my career
')
Now I am the owner and technical director of
ByndyuSoft , I work as a teacher at the Department of Computer Science at
SUSU and conduct trainings under the general title
Effective Programming . I will give the profession in the form of a list:
- Founder of an IT company, B & Z
- Lead Developer, fuse8
- Head of the department of color printing, printing house Almaz
- Taxi driver
- System Administrator, WG Mark
- Cashier, Pyaterochka
- Waiter, several restaurants in America
- Loader, tractor spare parts warehouse
I appreciate all this experience and I can not say that some profession was more important than others. I looked at different companies, different areas and now I stopped at IT.
â„–0 Briefly about the main thing
The main thing that I was taught and that I understood from my own experience can be said in one sentence of three words:
All decide the relationship
Who cares about making new connections and maintains old ones puts himself in very favorable conditions. And this applies not only to a career in IT, but in general to everything you do.
And vice versa, if you scatter relationships, put yourself above others, behave biased and meticulously, and of course, consider yourself D'Artagnan, and not consider everyone else as such; it must be understood that the notoriety spreads quickly, and the circle of friends, colleagues and relatives is not infinite.
I spoke with this topic publicly several times and asked the audience to vote for this point of view. According to my observations, only one out of five supports this position. The rest agree partially or completely disagree. Interestingly, out of 20% of consonants, units are actually moving in this direction.
Here for those who do not apply the principle of three words in their lives, it is necessary to focus on the following two topics, which I will cover further.
â„–1 we are hired
First I want to say that I took all these recommendations from my own experience or from the successful experience of my friends and colleagues. Most of the notes are suitable for a career in any field, not only in IT.
Where to get experience?
The question that interests everyone when he thinks about finding a job is: “Where do I get work experience from, if I'm just learning / working in another field / working with other platforms?”. This is a very reasonable question, because employers want to hire a professional who will immediately solve the tasks with a high degree of probability.
Here are some ways to gain the necessary experience:
- Participation in open source projects
My friends are often involved in open source projects. They created their projects or supported existing ones. These projects included feedback from users, teamwork, release of versions, and planning.
- View OpenSource project code
At one time I was following the development of NHibernate, NAnt and several more projects on CodePlex. I looked through the commits that the developers did. Understood in the already written code and unit tests for this code. I tried to understand the principles by which developers built their applications. Did as they do in their programs.
- Course and diploma
If you study, then you have a great opportunity to take the project more difficult and more interesting. For five years, you can have fun with software development. You can try different approaches, rewrite your programs several times. Studying at the university is a unique time when you have everything for self-development.
- Freelance
I think that many of the programmers have made at least one project for their friends, relatives or through sites like free-lance.ru . Work on freelancing makes it possible to experiment with different languages, making small projects or modifying existing ones. For a little money, making projects with low risks, you can gain experience in the area you need. Now all programming languages ​​and platforms are represented in freelance, so this opportunity cannot be ignored.
- Internships in companies
Now many companies are happy to take novice developers to their internships. You can work in such large companies as Microsoft, Intel, and others, just by hitting them for an internship. On internships, of course, do not allow to participate in critical and large-scale projects, but you will be able to communicate with experienced developers, perhaps, to work with them in a pair. Again, based on the results of the internship, they can be invited to work. In our company there are also internships for students, however, places are limited.
Find someone who will explain
Looking back, I made an unexpected comment. Take the study of design patterns. I read a lot of books, watched videos on these topics, read articles. But, all this study would have ended in nothing, if not for two factors. First, I had to apply this in real projects. Secondly, I found those who could be consulted, who could intelligibly explain. And so on each topic. Be it TDD, Agile, DDD or something else.
Look for people who can explain to you. Here are some tips for finding them:
- Write to those who write articles and books.
People who write public articles or books will be very happy to receive feedback from you. Write them a question or clarification on the article and you will be answered.
- Attend conference
Now in the field of IT more and more conferences and meetings are recruited. Only in Chelyabinsk there are .NETconf , SUNETA , beerconf and others. If you live in Moscow or St. Petersburg, then the density of IT conferences per month is very high there. When you come to the conference, be sure to take your business cards with you and do not hesitate to give them to your interlocutors. Take a laptop with you and ask about the problem in your code from a speaker who talks about a related topic.
- Ask teachers
Again, students are in the best position. Students have a special person who will answer their questions - a teacher. Now I teach at the university and I am surprised to see that only a small number of students enjoy this privilege to the maximum. For some reason, most of the students are embarrassed to ask and clarify.
If you are not yet sure whether to look for a mentor or not, then I will quote the well-known phrase: “If you ask, you will be a fool for 5 minutes, and if you do not ask, then your whole life.”
Be open
When a resume comes to me, the first thing I do is enter the name of the applicant in Google and read his articles, comments on articles, questions and answers on the forums, I watch profiles on social networks and videos from speeches. I think that I am not the only one, so it is worth thinking about your public reputation. Even one good article or one good speech is enough to form the first impression of the applicant.
Emphasis on positive
Usually like people smiling, balanced, constructive. Conversely, sad, angry, pessimists do not like or leave a negative image. So, when you communicate with your future employer, then try to get into the first group of people. It seems that this is obvious, but there is one topic on which developers stumble. This is the theme of the sacred warrior. How often have you heard from colleagues sad conversations about the fact that:
- i hate windows / linux / mac ...
- I hate .NET / Java / C ++ ...
- I hate IE / FireFox / Chrome ...
Life is always wider than our understanding of it. Let your hatred of the platform or technology be at least neutral. Do not rush to go to extremes, so as not to fall under the joke: “You do not like cats? You just don't know how to cook them. ”
Why do you need this job?
The personnel manager, project manager, or lead developer needs to understand your motives that led you to look for work. In the head of any manager, the words blink in neon letters: a good candidate is a motivated candidate. At the interview I always ask about the goals of the candidate. Goals should be outlined for the year ahead, and ideally 5-10 years.
Not everyone understands what a goal is. I will give a few examples of goals:
- I want a lot of money
- Want to travel
- I want everyone to love me
- After 3 years, I want to participate in a project with 100 developers and a salary of 100 thousand rubles a month.
The first three goals are not, because they are not measurable. Let us analyze in order. If the candidate wants money, it is quite normal. But money alone cannot be the goal, because need for something. That's what the money for the candidate, it turns out at the interview.
When a potential project manager came to me for an interview, I realized that I would refuse after the dialogue:
- Why did you come to manage projects?
- I want everyone to love me.
What does “everyone loved” mean? When will this "everyone loved" come? When will it be possible to say that now everyone loves me and the goal is achieved?
The last goal I consider the most acceptable, because it is measurable. It is clear that in 3 years it may not come, but if the plank is set and the eyes are burning, then there is every chance to grow. Candidates with understandable motives are the most desirable.
How to make a resume?
The first thing an employer sees is your resume. The summary should be solely on the case. After viewing the resume, the employer should know the answers to the questions:
- What do you want?
Specify your goal clearly, you can directly the first sentence. Next you need to understand what you have already achieved.
- Describe previous experience
Projects with your participation, your personal contribution to these projects, your responsibility and result.
This was about what should be in the resume. And now how to make a resume? These little tricks should help you:
- Find ready-made resumes
Collect and analyze as many resumes as possible on the market. This will give you an idea of ​​the area where you want to go.
- Collect Job Requirements
An even more powerful tool, collect as many vacancies as possible from the ones you want to get. Analyze the requirements for candidates and immediately understand what you are missing, what to look for when composing a resume.
Interview
I will not talk about the psychological component of the interview, just a few tips:
- Prepare a resume
Yes, you have already sent a resume. And yet bring another copy with you. After the interview, you can leave your resume, if there is a business card, then with it.
- Tell about your goals
Feel free to talk about what you want to achieve. Tell your goals clearly without hints or walking around the bush.
- Tell us about your achievements
All this is already described in your resume, but the gleam in your eyes when telling about your own achievements will not leave the interviewee indifferent.
- Interview company
You came to the interview not only to show yourself. You need to make sure that you want to work in this company if you are offered a position. Ask questions about the company, company goals, plans. You will learn many interesting things, plus these questions will highlight you among a dozen other candidates who have come in a week.
â„–2 Making a career
Growth vectors
The work of the developer involves not just day-to-day coding. Everyone who develops software has at least 10 areas for development:
- Software requirements
- Software design
- Software construction
- Software testing
- Software maintenance
- Software configuration management
- Software engineering management
- Software engineering process
- Software engineering tools and methods
- Software quality
You can read more about this topic in M. Connel's book
Professional Software Development .
Self development
If you want to remain a sought-after specialist, then you need to be aware of the IT world and constantly improve. This may sound trite, but you need to devote a lot of time to self-development. I highlighted several points that help me:
- Reading of books
I prefer paper books that I order from online stores. I read about 1-2 books per month. It happens more, but this is the norm.
- Reading articles
My list of blogs and LiveJournal in Google Reader is constantly updated and updated. Reading articles helps to stay abreast of developments and trends in the IT world.
- Writing articles
Writing articles helps streamline thoughts in one’s own mind. If you do not want publicity, it is still worth writing articles in a closed blog or simply in a text editor.
- Participation in conferences
I like to communicate a lot and make interesting acquaintances. Conferences for me are an excellent source of both.
- Learn from colleagues what else you need to grow
This is the most effective and psychologically complex way to "pull yourself up by the hair." To ask my colleagues what I lack, how to become better. Be sure to ask - learn a lot of interesting things.
First the developer, then the manager?
Building a career, developers often think: first, I will work as a developer, then become a project manager. Met such? I myself first worked as a developer, and then became a project manager. Those. This scheme works, but there are pitfalls that are not obvious to beginners this way:
- Manager! = Developer
A good developer will not turn into a good manager.
- Different books, different approaches
When I decided for myself that I would be managing IT projects, I completely changed the library and RSS feeds. The transition from the developer lasted about two years and even now I still can not say that I feel 100% leader, because I simply do not have enough knowledge and experience. Now the most interesting for me are: psychology, project management, methodologies, risk management, personnel management, requirements management, etc.
- Different boundaries of responsibility
If we talk about the hierarchy in the organization, the project manager and the developer are on the same level. The only difference is in the scope of responsibility.
- Who do you want to become?
Once again, I suggest you clearly define your goals. Who do you see yourself in 1-2 years? Depending on this, you need to select books, conferences and RSS feeds.
Technologies or approaches and principles?
There is such a tendency: novice developers pay much attention to technologies (programming languages, platforms). After several years of working on commercial projects, much more attention is given to devoting approaches and principles of development. It becomes clear that the "silver bullet" as it was not and will not be that the choice of programming language depends on the application, as well as the platform.
I think most developers who read this chapter also noticed this change in priorities. After all, technology changes very quickly, and the right approaches only accumulate over time. It will be practical to invest most of your time in exploring approaches and best practices.
I have a collection of books that I advise developers who have embarked on the path of learning the principles of “
What young programmers need to know .”
The chapter about a career, I want to end with the words of my grandfather, who loved to say: “Until 30 years you work for your career, after 30 years you work for you”.
Conclusion
I will be glad if you extract something useful for yourself. Successes in professional and career growth!
Links
The article is written on the materials of
the .NET developer conference and the
Days of Technologies conference.
HeadHunter Analytics:
Through Communications to Riches