Answer the question
In order to leave comments, you need to log in
Knowledge of junior php developer?
For example, my current knowledge is:
Answer the question
In order to leave comments, you need to log in
what the ideal junior should know (my personal opinion):
- Network stack. You need to have at least a basic understanding of how to communicate with the server. Well, that is, you don’t need to climb into the wilds, but you need to understand what HTTP is or how TCP differs from UDP. In general, this is a couple of hours of reading Wikipedia.
- GIT or any other distributed VCS. Basic skills to at least understand what git revert or git rebase is, what features are, and a rough idea of how it works and why it is needed.
- Basic unix basics. Well, that is, so as not to be afraid of things like ssh at least.
- PHP. Without it, nowhere. He must understand what weak dynamic typing is (do not memorize the type cast table, but understand the pros and cons, the same story with operator priorities - do not memorize, but know how to avoid problems with reading code)
- Understand that code is more often read than written, and therefore not save 5 minutes on writing code, but write in such a way as to save 30 minutes for a person who understands a piece of code.
- Know the basic things in terms of security. XSS and how to defend yourself, SQL injections and how to defend yourself, CSRF, MITM. Understand what NDA is, that user data is classified information. How to hash passwords (not md5 but password_hash) and why it matters.
- Know SQL. Deep knowledge is not required, you just need an understanding of what a normal form is, it is desirable to deal with the issue of data denormalization. It is ideal to have at least a basic understanding of how to work with NoSQL solutions.
- Procedural programming: why global variables create complexity, what is state, how can classes be used to isolate state, etc. Encapsulation. Invariants, post/pre conditions, preservation of integrity...
- Separation of responsibility. This is one of the most important principles, and simplifying it all to "mvc framework" is slightly wrong. You must understand what you are separating from what and most importantly why.
- Automatic tests. The junior should know what they are and have at least minimal experience in writing them. Must understand the difference between unit and integration tests. Be familiar with the testing pyramid.
- Be able to solve standard problems without asking too many questions. For example, you must write user registration by email, or authorization through social networks, or comments, or a news feed.
- Know how to debug. xdebug, blackfire, etc.
In general, somewhere in a year, this entire list can be easily covered from scratch.
ps I specifically did not indicate OOP in the list, since the first couple of years developers still have proceduralism in classes. This is not bad, but what is on my list should be more than enough to solve standard tasks. But terms like "encapsulation / polymorphism / inheritance" are required without fail by the vast majority of interviewers, and therefore you need to know this. The only thing - I recommend in your free time to dive deeper into this issue and not stupidly memorize the wording.
Also, juniors do not need to know things like docker, simply because they are unlikely to be allowed to immediately manage the infrastructure. And so a couple of weeks to study and forward.
Point number zero
The developer must think and be able to use Google. The first is extremely difficult to assess, for this many “stupid” interview questions have been invented. The second point is instilled in the first days of the trial period. A stackoverflow.com account is a plus.
At least on the lower edge of junior skills you pull.
Maybe not on the bottom: show your tests.
Wangyu salary 70-110tr in Moscow.
Your level of knowledge, if you honestly described everything, is sufficient for a junior and MB even more. From what I understand, you are well trained. You can easily go to junior vacancies, and in six months or a year become middle. If you live in Izhevsk, contact me, I’m ready to take you, though after talking with HR, to my department.
Well, having looked at the code on the github, I will say that in terms of OOP, you still have a lot to understand. Especially how to delegate authority and what it is in general.
To understand the essence of abstractions, not just to learn, but to understand where, why and why, so as not to duplicate. Where to place service classes, utilities, etc.
Well, and most importantly, these are patterns in this case, you will also have to understand why and why.
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question