<update>It has been almost five years. This article is largely outdated, although the constructive moments of the type "study adjacent areas" hardly ever lose their relevance. Personnel hunger is felt more clearly and makes more constructive in the process of hiring novice developers. The balance is shifting towards good knowledge of the language and tools from being ready to write code “somehow” but from day one.
Do not forget that all these are evaluative judgments of some anonymus. You have no guarantees that I am a developer and I understand what I am talking about. Actually, you can not even guarantee that this text is not typed by some hedgehog in payment for an eaten patty.
')
</ update>This article was the result of a two-month job search in Novosibirsk. In the process of communicating with employers, I discovered some facts that for me were very unclear. Recommended for reading to all who are going to soon become the same applicant.
When writing this article:
- in one way or another there was contact with 20+ employers
- completed 12 test items
- 8 interviews with technicians completed
- got a moderate moral injury one novice PHP developer
HTML, CSS, JavaScript
It may seem to you that it is not required for a PHP programmer to know these things, but this is not the case. Valid layout, cross-browser compatibility and other words that are written in the layout vacancies also apply to yourself. In general, this is quite logical, since even the most ideal PHP code is not needed by anyone if it also generates inadequate HTML.
In some organizations, I was immediately told that the vacancy implies the PHP developer, there are individual layout designers / scripters. However, there were few such organizations.
The most illustrative example is one of the test tasks I have completed. In it, the ratio of PHP lines: JavaScript: HTML was approximately 20:50:30.
Frameworks
Your knowledge of PHP as such interests a very small part of employers. Most companies use various frameworks in development, and they want the same from the candidate. If in the wishes for the candidate you saw "an acquaintance with the framework x", then most likely this is not a wish, but a requirement.
In Novosibirsk, the most popular (based on the junior jobs) Yii, Symfony and Zend. Occasionally CakePHP flashes.
Personally, I managed to master Yii at a basic level in a week of quiet work. Which, however, does not mean that you can not understand it quickly.
PHP is also programming
With all the ensuing consequences. Namely - without knowledge of the theory your qualification is extremely low.
PHP entry threshold is low. As a result, all other programmers look at PHP-Schnick with disdain and disapproval. And in general, there is a reason.
Ignorance of the basics of the theory can lead to such terrible things as the generation in the code of a million objects with the subsequent application to them of bubble sorting. This, of course, is hyperbole, but you must have caught the gist of it.
In general, I strongly recommend that you read a couple of books on the theory of programming. It is unlikely that you will be asked about the calculation of the complexity of the algorithm, but the general questions, some initial level of the programmer, are trying to figure out at the interview.
Development involves a lot
Personally, I never had the idea that you should think not only what language you write, but
what you write. It is very desirable to know the main IDE, or rather their main functions.
For normal teamwork, version control is required.
In addition, in projects it is customary to test and somehow report errors.
And errors are such that it would be nice to know the contents of php.ini.
And nginx / apache configs.
And you can continue for a very long time.
Get ready for a sharp outlook
When you perform every second test task, you will have to learn something new from scratch. NoSQL, AJAX, someone's API, JS libraries, and other things that you’ve heard of at best a couple of times in your life, you’ll have to learn urgently.
What you are not familiar with is not necessarily something difficult. This is really a job for a novice developer with no work experience. So, despite the apparent complexity, you will quickly find a solution to the problem, taking half an hour of documentation.
Do not refuse the task if it seemed too complicated. Just read the articles or textbooks on this topic, you will understand that there is nothing to fear.
Test items may not be accurate.
As a rule, test tasks are short and clear. And yet inaccurate. I have no idea what caused this. Perhaps make and check jobs different people.
In one task, I was clearly told to apply the PLO, then at the interview I was asked why I did it. In another, exactly the opposite. The third was asked to attach a description in English and then asked why I attached it.
In general, some of your work will be checked without regard to the task.
HRs are often adequate and professional.
Often - this is 6 out of 10. Be prepared for the fact that you will not answer the rest of the letters, test items will not be checked, we will call you back.
I really do not know what these people are guided by. Seriously, HR, why can't you spend five minutes on the person who spent the day on you?
If you encounter such a problem, do not wait for an answer. Call and write, ask why they forgot about you.
Interview is a huge plus
Communication with an experienced developer and viewing your code greatly advances you in development. Even if you were denied a job, you still got a valuable experience.
After each interview, be sure to go home for questions and clarify points that are unclear to you. As a rule, these questions are related to basic knowledge, without which your work will be at least of poor quality. Something you do not know - be sure to sort it out. If only because a similar question is likely to repeat.
Happy end
That's actually all this and will have to face a novice developer. With some preparation, your future interviews will be much easier than mine.
Perhaps the inquisitive reader will be interested, what is the end of this job search?
I realized that for a novice developer without work experience I have too little experience, and got a job with IT in general not related at all. A year later, I plan, having picked up knowledge, to start a search again.