S
S
Senbonzakuraa2018-04-22 19:03:07
PHP
Senbonzakuraa, 2018-04-22 19:03:07

What do you need to know in PHP and what would you recommend to learn?

Greetings, I am a person who aspires to get a job as a junior in some company or studio, I ask you for advice. In order not to delve into the whole thing, because knowledge can be endlessly argued, first I will write my knowledge and ask you to supplement this list with the necessary things.
I am familiar with:

  • The simplest things, syntax, variables, operators, and so on.
  • Loops and control structures if, else.
  • Variables $_GET, $_POST.
  • Sessions.
  • MySQL, I can make queries.
  • Some string functions.
  • A bit of AJAX.
  • ORM like RedBean.
  • A bit of GitHub.
  • I'm starting to get acquainted with laravel and Composer.
  • Server part. Ubuntu server, command line, etc.

I can:
  • Write a registration and authorization script for the site using sessions.
  • Make a simple file uploader to the server.
  • Make pagination of records from the database.
  • I know HTML + CSS, I can create simple layouts.
  • I have experience in creating a news site for my region in pure PHP, using the knowledge listed above.

Implemented on the site a system for moderating content and users, editing categories, a system for viewing and commenting, a parody of a bulletin board like Avito and all sorts of little things. Of course, judging by my knowledge, you can understand what kind of Frankenstein monster I created, but at least something.
What advice am I looking for?
I'm looking for advice on:
  • What features are required to study?
  • What general terms do you need to know?
  • What would you personally recommend to study?

Oh yes, and I ask you to objectively evaluate my chances of getting a job as a junior in a couple of months (I can study at least all day long)

Answer the question

In order to leave comments, you need to log in

14 answer(s)
K
Kirill Mokevnin, 2018-04-22
@toxicmt

> What general concepts do you need to get acquainted with?
What you describe is certainly good and useful, but not enough to start writing quality software. And it's not about "learn a little more funky", but about fundamental things. The concepts that you need to know without fail (very selectively):
1. Automated testing.
1. Automatic programming.
1. DDD.
1. Functional programming (higher-order functions, libraries like https://github.com/tightenco/collect)
Masthead books: https://ru.hexlet.io/pages/recommended-books
Some clever words: https://docs .google.com/spreadsheets/d/e/2PACX-1vS...

V
voronkovich, 2018-04-23
@voronkovich

I would recommend watching the PRS-7 framework playlist on Dmitry Eliseev's channel.
It discusses the creation of a modern framework in PHP and covers such topics as: PSR, Dependency Injection, template engines, etc. I highly recommend!
I also advise you to read the book by Josh Lockhart (creator of the Slim framework) Modern PHP . You can also look at the
Slim -framework, it is quite well written :).
TDD. There is a good book by Kent Beck Extreme Programming. Development through t... . The examples there are given in Java, but will be clear to anyone who knows at least one C-like language (PHP is one of those!).
UPD: You asked to indicate whether it is possible with your knowledge to get a job as a junior. I think yes, you can.

M
MisterN, 2018-04-23
@MisterN

In general, it was correctly said above that it is necessary to dance from the requirements of potential employers. It all depends very much on the region - requirements, competition, preferred technologies. And I don’t know if I can get a job remotely without experience, I haven’t tried it. I'd say there's no harm in asking for an interview somewhere right now.
You can google things like "how to pass a php programmer interview" or something like that, look at common job interview tasks. Of course, without there are no guarantees that they will come across to you, but you will be able to see your weak points yourself and in general you will think in the right direction (employment).
Here is a typical assignment. Of course, it can be done in different ways. But as you do, you can certainly look for a june's place. Although, it is true that it is not for June and it is possible that it will take you a lot of time. But if you mastered - do not hesitate, you can already look for a job and continue to study in parallel. I've worked very well without knowledge of autotests. Not to the fact that they are not needed, but to the fact that you do not have to try to embrace the immensity. But the market still needs to be looked at. And then we really need to learn Bitrix, FIG knows. Beauty is beauty, but you have to earn money.
"Creating a mini CRM system:
Must be implemented on your favorite
Backend framework part
1. Authorization in the CRM system
1.1 Login fields on the form (Email, password)
2. Module for displaying users of the system
2.0 Displaying a list of users
2.1 Ability to set rights for users, list (Administrator, manager)
2.2 User fields (email, password, status) 2.3 Deleting and editing users
2.4 Changing the status of users, Active or inactive
2.5 Editing the list can only users with administrator rights
3. Section for displaying orders
3.1 Displaying a list of orders
3.2 Fields for the order (Customer name, Order name, product name, phone number, order creation time, status, comment, price)
3.3 Change the order status (Accepted, rejected, defective )
4. Section of the history of changes in applications
4.1 For which users the application fields were changed (Customer name, Application name, product name, phone, application submission time, status, comment, price) , phone)
Frontend part
1. Create a simple form to submit an application
1.1 Form fields (Customer name, phone, comment, product)
1.2 List of goods (apples, oranges, tangerines)

A
Anton, 2018-04-23
@anton99zel

Partially agree, and here's the overall result:
Roughly speaking, the market for "website creators" is divided into two camps: schoolchildren who are ready to cook up something from a ready-made template for 500 rubles in 2 hours, and professional freelancers and web studios. Customers, fortunately not all, but still looking for those who will do well and very cheaply. But then, all the same, such customers go to the stock exchange in order to find those who will correct the jambs of schoolchildren, and also implement all the "Wishlist". More often I see not those who need a website, but those who need people with a file. This can be especially observed in the field of online stores, when every schoolchild can install cms, and then when you need to configure various kinds of functionality, then schoolchildren, by virtue of their knowledge, cannot do anything. This applies to various kinds: working with Internet payments, synchronization, finalizing various filters, writing your own developments,
Therefore, customers are more interested in a person not with knowledge of bare php, but rather a person who can find a solution to a particular problem, write code and cover it all with styles and scripts. It is necessary to study related "sciences" as well. And not so much in books as in practice.
In my opinion, half of those who respond to freelance tasks have no idea how this or that task is done. Once upon a time, I posted a task on freelance: it was necessary to make friends with Bitrix IPB, make single users and authorization. Of the ten who responded, no one was able to do so. I had to figure it out myself, literally three days and I succeeded, but in those days, for me it was like a hobby.
Read Habr, a toaster, make your own test site and come up with new functionality based on it, it will be theory with practice. Problems can be peeped here or on freelance. But in general, the store of knowledge that you described is enough to start working somewhere, but you need to grow every day. It seems to me that in this area - you study and work all your life.

X
xmoonlight, 2018-04-22
@xmoonlight

In PHP, in the basic level of learning - everything is simple:
You need to be able to create several new objects based on the one already created.
For example, we have a blog.
On the page, you need to place 2 authorization forms, 2 search strings and 6 blocks with certain selections: 5 most read section1, 5 newest section1, 5 most read section2, 5 newest section2, 5 most commented section1, 5 most commented section2.
These are three classes and three objects. Everything else is cloning the created desired object and replacing properties.
Then, arrange all this in a normal architecture.
So that 1 search line or 10 lines in a row is not important: running the cycle the required number of times and the required number of search lines with the handler are ready.
And most importantly - control of input and output data!

S
Sasha Zhelezovsky, 2018-04-23
@goper

REST API, SOAP, RPC and other client-server badyagi

V
Vladimir Druzhaev, 2018-04-23
@OtshelnikFm

js - yes, this is the front as it seems to you, but you can't do without it
Security - everything you write, accept, output - requires an understanding of the upcoming problems. Therefore cleaning and validation - as a minimum.
Working with cookies
Working with memcache and, in principle, with
OOP object caching is strange, but this is by itself point number 0
Docks - I think the team will require documenting the code (PHPDoc)
To get even faster - wordpress api. But then only the first three of my points will remain.

P
Programmir, 2018-04-23
@Programmir

I learned php and laravel but can't find a job. Now every student can rivet websites, everyone rushed to the web.

O
OnYourLips, 2018-04-26
@OnYourLips

Follow this checklist:
www.phptherightway.com

M
mirosas, 2018-05-10
@mirosas

I would advise you not to go as a junior to an office, unless you live in Moscow, or you are very attracted to work from pick-up to lunch. Programming for the sake of programming with freelancing is incompatible, there are specific tasks, but you would most likely choose not php if you were interested in programming for the sake of programming. In general, working in an office is good, but at a rate of 60 rubles per dollar, what's the point?
Why? Well, the skills you describe, if you still learn WordPress a little bit, and if you know English at least a little, it’s enough to freelance to earn a hundred a month in six months, and you’ll only have to work hard for the first two or three months. If you know English at least at High Intermediate, then it makes sense to try to work remotely as a php developer (without any riveting of WordPress plugins there). And you can start doing all this right now, learning along the way, and getting paid for the first 2-3 months about 3-5 dollars per hour.

Y
Yan-s, 2018-04-22
@Yan-s

getjump.github.io/ru-php-the-right-way

V
vanyamba-electronics, 2018-04-23
@vanyamba-electronics

I recommend getting acquainted with XML-RPC, since you already know AJAX.

M
Maxim Timofeev, 2018-04-23
@webinar

It all depends on the requirements of the employer, and not on our parting words. And also from the price tag that you are counting on.
However, I did not see OOP in your list. And without it, there is no way and nowhere, only wp torturing. And you started laravel there, you’ll definitely understand it until you master OOP. So I hope you just forgot to mention.
Everything that my colleagues wrote is very important, but not critical for a junior at most companies. Especially if you really get to a company where you will be forced to cut wp with a file. But I wouldn't go for those. This is the road to nowhere. You can consider in the short term, so that there would be a record in the labor, at least some money, and in parallel after work, read and master what will distinguish you from a student.

V
Vilintritenmert, 2018-04-26
@Vilintritenmert

What PHP Junior Developer Should Know

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question