A few years ago, I tossed between two jobs: on weekdays, as a gardener, on weekends, as a waiter. Behind my shoulders, I had just abandoned college, and I did not know what to spend my life on.
There were many thoughts, but there was no direction in which I would like to move. And just at that time I began to independently study programming. At first it was just a hobby: it seemed to me that being able to create something from the lines of code using only the brain is cool.
')
Then I thought about my life, and it seemed to me that I could well earn by programming.
Transferred to Alconost
But I immediately threw this thought out of my head: I did not have the opportunity to get a real education. Once I left college because of a lack of money, and if I went to a programmer, I would have to start all over again.
In this case, in 6 years I would finish my studies, with a debt of much more than 50,000 dollars. So this path did not suit me.
Then I thought that I could well study the web development myself well enough to go for an internship.
The initial plan was to tell several companies in the city about myself and ask if they would like to meet me: I wanted to discuss the possibility of working with them during the training - so I could pay for the training and at the same time get some experience .
Therefore, I seriously engaged in web development.
Without delay, I began to collect a real portfolio and describe my skills.
I could already be seen at sites such as Stack Overflow.
I created several applications that solve practical problems and put them on GitHub. They are not particularly remarkable: their task is to show that I can program.
So, one of the companies, instead of offering part-time work or contacting them after graduation, decided to take me for a six-month full-time trial period as a junior developer.
I was delighted. It turns out that after I began to take development seriously and started coding for a specific purpose, I managed to learn something.
Therefore, I was able to answer the questions that I was asked at the interview, I was able to tell about those modest applications that I had managed to develop by that time, and even managed to explain how my projects work.
I stayed with this company for two and a half years, and then got a job as a web developer in the city where I live.
Life as a permanent learning
An important part of my development as a professional developer was the time spent on an internship at a previous company: I learned everything I could.
Practical knowledge gained while working in a company cannot be overestimated: it is very important to know how to work with clients, colleagues, and also within the limits of the specified limitations. And this can be learned only in real work.
Today I can know more than when I first started working on web development, but I will never cease to consider myself a student. To be a great developer, you need, among other things, the desire to constantly learn. The moment we begin to consider that we have mastered a skill completely, we stop growing.
Hemingway said this better than me:
"We are all students in a craft in which no one ever becomes a master."
He talked about writers, but this also applies to design.
Self-study in combination with work in the company allowed me to learn a lot (
I even write a book ). I understand the practical side of web development and I know how to become a professional from an amateur. This path can be passed by anyone, regardless of the availability of time and ability.
So that you understand better what I am talking about: I worked two jobs, and I had to get up at one of them at four in the morning and drive a forklift.
Learning programming, when you already have “adult” work, requires determination, motivation and perseverance.
From amateur to professionals
I will describe the main steps you can follow. Each will have its own specific trajectory of movement, however, there are certain actions that will help to get on the right path.
1. Realize that this is feasible.
Everyone can independently learn how to program. Sometimes you can hear that for self-study you need to be a person of a certain mentality. In a sense, this is true: you will not receive immediate payment for your own efforts, so there must be some other incentive. Still, self-study is available to everyone.
In our society, there is an idea that someone is born with certain inclinations, and someone is not. This hinders professional growth, and this is one of the reasons why many feel dissatisfied with life.
If you always assume that something is either given to you or not, then it is very easy to give up and give up.
I would like to immediately destroy this myth. Everyone can learn how to motivate themselves and study their own programming. Or start a successful business. Or achieve a long-term goal.
It is not necessary to be born with certain inclinations or to hope for a happy occasion - but here persistence is necessary.
If you can plunge into work, survive a difficult time and work hard - you will achieve your goal.
The latter is especially important, but I would like to warn you about something before moving on.
We attach too much importance to success - ours and those of others. This is called
a survivor error .
There is an element of luck in everything: sometimes it just happens. For example, I contacted a web development agency - and I was fortunate enough: they were just looking for an employee, and I approached their requirements.
But what is luck?
Of course, to get this job is good luck, but this good luck wouldn’t have happened if I didn’t dare to study programming and submit a resume to this company.
Luck and truth play their part, but it will be wrong to say that everything depends on it in general. You can increase your chances of a successful case - just need to be ready to give everything.
But luck will never turn its face, if you do not strive to achieve excellence in anything.
2. Strive for excellence in your craft.
I have weaknesses, and one of them - I get bored and I start to get distracted. There is a desire to take on the next project. Such inclinations will not succeed.
Having the opportunity to quit any project and move on to another, which is more like today, is from some point like freedom, but ...
It is a trap! If you can only take one thought out of this article, let it be this:
The most important key to becoming a professional developer is coding. Encode and do not stop until you get what you want.
And this applies to everything.
People are tense about which framework to use. But another thing is important: choose one and work with it. Then you can go to another and learn new languages.
What is important is what kind of problem-solving skills you will gain in development. The ability to think like a developer is important.
I was learning to program in the Laravel framework, but the company I got involved in was using CakePHP - and that was unimportant, because they knew that I could get the technical skills necessary to move to another framework.
So choose a direction and hold on to it, no matter what. And get rid of the temptation to be distracted by something else.
Little can be compared with the inexorable desire to master the craft.
It is not simple. But learning to ignore distractions, you will notice that you begin to get more pleasure from work.
Mike Rowe likes to say that you don’t need to start by searching for your vocation.
The people around are so unfortunate because they are striving for an impeccable career: they are looking for their vocation - something that they will be passionate about.
But dedication is the result of an irresistible desire to improve in their craft. And if you learn to think in this way, your abilities as a developer will gain new breath.
3. Start writing code right away.
Ambitious developers may fall into the trap: they will read too much, without doing anything.
Manuals and books are great at learning the basics, but the catch is that they give a false sense of confidence.
You happened to read a book on programming and went to do something yourself -
but in the end you realized that you have no idea how to do it ? Then you know what I mean.
The solution here is simple, but not easy at all ...
Start writing code.
Do something. Write an application that solves a problem from your own life or from the life of someone nearby.
Do something for fun.
Do something - and publish. Open source and put it on GitHub. You do it not for someone else - you do it for yourself, so do not worry about what others think.
First your code will be ugly. Sometimes I look at the code that I wrote just a few months ago, and it starts to make me sick. But you can not become a developer without developing anything. Books are wonderful: I can swallow book after book without stopping. But the next step is to apply this knowledge.
You will have to face challenging tasks and make an effort. And this is good: this training is the most effective.
Begin with applications that solve specific problems — I'll talk more about this later in step 6.
4. Label yourself online
When you start programming, you will want to indicate your presence on the Internet. A GitHub account is a great start.
Here you can lay out the projects you are working on and share them with the rest.
But you want more - and here I advise you to raise your own website for a portfolio.
This site will perform several tasks:
- It will be available to employers as a source of information about you.
- It will be possible to present your work (so that not only GitHub knows about them).
- It will be a platform for self-expression and professional activities.
And the last thing is very important: having started your own, albeit small, projects, you should immediately start writing about them. Start a simple blog where you will talk about what you are working on and teach others everything you know.
This is one of the best ways to let potential employers understand who you are and what you can do. Thanks to this, you can earn a reputation and start building your own platform.
So you can expand employment prospects and get the opportunity to earn extra money - writing or freelancing.
The site should serve a very specific purpose.
Most create an online resume, but you have to go further: answer yourself the question of what exactly your goal is, and then design and design the site with that goal in mind.
If you are looking for work related to a specific project or a specific framework, this should be on the site.
I propose to break the site into 4 main sections:
1. Homepage
The main page is the entry point to the site. It should briefly state who you are and what you do. It should also direct visitors to the information of interest.
For example, you will have two main buttons: one will be sent to the section with your articles on web development, and the second - to the page for potential employers (if someone wants to hire you).
2. Articles
Your blog and the manuals you write will live here. Write as much as you can - and do not be afraid to distribute links to your articles.
3. Information about you
A simple section "about yourself", which describes in more detail who you are and what you do. There should be no life story, and information related to what you want to do.
No need to describe the details of your personal life - tell us about what led you to web development, how you achieved what you have, and where you want to go. Mention a couple of your favorite projects and leave links to them.
4. Employers
An important part of the site is a section for those visitors who are interested in hiring you as a developer.
Try to find the right balance between honesty and the desire to present yourself to the employer in the best light. The information on this page and on the page about yourself is likely to be the same here and there. Information for employers should specifically describe the skills and what the employer can expect from you.
Do not forget also the contact form - so that you can write.
Start writing not only for your own site - offer articles to large sites. Then it will be possible to put links to such articles in the section “about yourself”.
5. Teach others everything you know.
Nathan Barry is a big fan of the “teach everything you know” approach. That's what he talks about the CSS Tricks site, founded by Chris Coyier.
This site came into being when Chris started writing about what he was learning, so that others could learn with him. Now it’s one of the largest web development sites.
From here you can learn a lesson: it is not necessary to be the greatest specialist in the world to start writing and teaching others about something.
In the world of online business there is such a thing as a "relative specialist." The idea is that everyone is an expert in something about someone else.
I have questions for this idea - especially when it is used to justify selling something that should not be sold. But still this is a useful comparison.
I am concerned about the use of the word "specialist" I do not think that teaching what you know — and even selling this information — is wrong: if this information is valuable to someone, then why not?
But calling yourself an expert is probably a bit too much. So when you write about something, try to be honest.
I prefer to use the term “public education”.
Many started this and studied publicly: they studied the craft and described the course of their studies.
This is an excellent approach to teaching others all that you can. You learn more and more, write articles and at the same time improve as an author. Over time, the rest of those working in your field will begin to see you as a reputable specialist.
And it will be especially valuable when it comes to finding a job - and even if you want to start your own business.
6. Solve specific problems
One of the most important aspects on the road to becoming a professional developer is to work on specific goals.
It's one thing to write casual entertainment apps for the sake of, and quite another to create apps and websites that solve specific problems.
Web development studios are not really involved in programming - they are involved in solving problems, and programming is just the tool they have chosen for this.
Take any book on marketing or writing advertising texts - it will definitely say that you need to sell the benefits, not the product features.
Web developers need to sell their applications to show how effectively they solve client tasks, and then confirm their statements with specific indicators. Customers, as a rule, are more responsive in this case than if the developer spoke about the technologies used.
If you can demonstrate your programming skills, as well as the ability to implement a solution to specific problems and create full-fledged applications, you will become a very attractive employee for many companies.
When communicating with potential employers (or clients), filling your site with materials, think not of functions, but of benefits.
Of course, it is necessary to mention the professional skills in programming, but most spend all their time on it. Therefore, mention them briefly so that potential employers know what you are doing. If you have a portfolio of effective applications, your programming skills will speak for themselves.
7. Do not stop learning
On the day when you decide that you have mastered something, you will stop learning.
Learn how to live, constantly learning: there is always something to learn and there is always room for improvement.
This is especially important in the early stages of a career. If you are a part-time job, or an internship, or you have been taken as a junior developer, you just need to immediately include a way of thinking that will allow you to learn and grow as much as possible professionally.
And this must be done immediately, without waiting until you have a real "mentor".
Jeff Goins in The
Art of Work book talks about the relationship of the student and the master in the 21st century.
In the Middle Ages, such relationships were very formal. The master took a student for many years, and he began to gradually master the craft, until he himself achieved the title of master, who could take others as students.
This relationship has changed, but considering yourself a student is still very important. The main difference is that now you need to look for potential mentors and the opportunity to learn, and throughout your career there will be a lot of both.
In the world of web development, we are constantly in any way on the Internet, so such relationships can take different forms.
Books, manuals, courses, forums and other ways of learning are all valuable. However, it seems to me that it is most effective to learn from someone who is now where you would like to be.
That is why diligence and desire to learn is so important. For the first time getting a job as a developer is not the end of the path, but only its beginning.
This is where the real learning begins, from that moment your knowledge begins to grow.
8. Learn to collaborate
One of the main differences between amateur programming and professional development is the need to collaborate with others.
Throughout your career, you will have to interact and work with other developers, with managers, colleagues, clients, partner companies - and in general with very different people.
Therefore, it is important to learn how to collaborate effectively.
In the field of web development, communication is the main thing. When a customer comes to you and says what he needs, and you do not quite understand how it should look, then later it can cause a lot of problems and headaches.
In the same way, if you cannot communicate with the people with whom you work, this will affect your work - you simply cannot do it.
While you are learning programming, there are some great ways to practice collaboration.
In part, you will learn this when you start teaching others what you know: people will communicate with you, and sometimes it will be unpleasant communication, but this way you will learn how to behave in such cases.
I also strongly advise to participate in open source projects. They give an idea of ​​what it is like to work together on a project, where each participant can have their own ideas on how best to achieve a result.
At first, participating in open source projects can be scary, but in the end they will bring invaluable benefits to your development career.
You can start from this site.
Forward - make a living
Web development is hard. This is a constant learning and adaptation to new technologies. Going this way, you need not only to know the technology, but also to understand business processes and be able to communicate.
Fortunately, your efforts will be rewarded a hundredfold: you will write code that solves the problems of other people and makes their lives easier, and at the same time you will earn well.
Today, there are many resources that teach programming -
and many of them are completely free - but we do not seem to have enough resources to help move from the amateur programmers category to the professional developers category.
I hope this little guide will serve you as a good action plan on how to become a professional developer.
Remember: while you are inactive, nothing happens. Get yourself a simple website with a portfolio, write to potential employers, post a couple of articles on Medium - just start doing at least something.
The more you put in the effort, the more you do something, the sooner you will turn from an amateur to a professional.
About the translator
The article is translated in Alconost.
Alconost is engaged in the
localization of applications, games and websites in 68 languages. Language translators, linguistic testing, cloud platform with API, continuous localization, 24/7 project managers, any formats of string resources,
translation of technical texts .
We also make
advertising and training videos - for websites selling, image, advertising, training, teasers, expliners, trailers for Google Play and the App Store.
Read more:
https://alconost.com