G
G
GrIZZIy2016-08-20 16:06:13
JavaScript
GrIZZIy, 2016-08-20 16:06:13

How to develop as a novice web developer?

I am a novice web programmer, I know html css javascript php and MySQL, not to say that I am very good, but I know the basics well, I can lay out a page, register and log in users and other things for implementation that do not need to write large code, but when creating more serious things (for example, at the very least an online store, some kind of chat, etc.) problems arise from a series: how such projects are designed in advance, how technologies interact with each other, how to properly organize the code so that it can be easily edited later, etc. d.
And I would like to know if anyone knows courses (in St. Petersburg or online) for web programmers, but not for beginners, but for those who already know the basics, and that these courses are not on one specific technology, but on a stack of technologies? Or can someone share their experience, how did you develop in this area and moved from the level of a novice programmer to a step higher?
Thanks in advance to those who answer this question!

Answer the question

In order to leave comments, you need to log in

15 answer(s)
A
Anton Natarov, 2016-08-20
@GrIZZIy

Brief
Don't worry, not all at once. There are things that can only be reached with experience and practice. This applies to all programmers in general. Regarding the web, there is a lot of rests on what kind of specialist you want to see yourself in the future. There is a full stack - when a person knows most of the technologies of their bunch, but will always feel a lack of subtleties at a high level. At the same time, a specialist tailored for certain tasks will be better than a full stack, but will also need the same full stack to unite.
Live example: There is an intelligent frontender (or backender in JS) that writes the face of the site on the JS Framework. There is a backend guru who writes the site's API. In the case of a full stack (figuratively), he writes both tasks himself, but it is certainly clear that he writes it longer and it’s not a fact that the last word will be done.

- Read the blogs of foreign programmers, they make excellent architectures both in the code itself and in the DB.
- PHP and JS frameworks - the more of them, the better. All of them speed up development. All chats, social authorizations, registrations, and other priority tasks have long been written. You can concentrate on more important tasks.
- OOP is a very controversial issue here, it solves it at certain stages of development, but when this level appears, they most often resort to another programming language and rewrite the project for the sake of speed (C ++, Java, Python). You need to understand, since frameworks are built on these paradigms, but you are unlikely to have to come up with flexible solutions on your own (at least up to Senior for sure).
- Don't reinvent the wheel. Understand other people's code (This skill is very valuable after "solve / find a solution to any problem"). Any store will most often be written at best on a framework, at worst on OpenCart, Woedpress - which is just idiocy, this is a blogging system BLOG. because of the trend, eggs are twisted.
- Learn English and work not in the CIS, Ukr or places of the post-Soviet space. Look for firms of foreign branches and work there. Because one way or another, professionals are already working there and are familiar with the Western market, the European one. Interesting projects are written there and interesting solutions appear.

T
toZavtra, 2016-08-25
@toZavtra

Listen to a man who has 4 years of experience in managing a web studio.
First of all, you need to understand where you want to work and only then think about technologies and their development. When you find out where you want to work, on what projects, you will find out what technologies are used there. Then get a job there as a junior, and that's how you'll grow the fastest.
At the same time, you will see if you need it and you can go to another area with other technologies.
In addition to programming tips, there are also purely practical ones, and they often decide, for example, do you like to make a finished product or tinker with old code? All these fables and nonsense about frameworks, understand that these people who wrote code for your future job before you have brains much worse than the same programmers who created the same Wordpress, but they allow themselves to find fault with it. So you will come and look for such a person for HIS bugs 4 years ago. And imagine that these bugs are from a crooked architecture.
Further, again about frameworks, they themselves are also buggy, there are a lot of nuances, they do not always speed up development, as they wrote on Habré "this is a factory over a factory."
Therefore, what is better to code: in wordpress or in some kind of symfony - this is a controversial, holivar question. Neither is ideal. Accordingly, which stack of technologies to teach you, you need to choose based on what you want to do. And it’s better to learn the stack not in courses, but to go as a junior.
I do not advise you to study hi-load, people will just laugh in the face from a book hi-load. Sites with high traffic will trust you only when, in principle, as a programmer, you will make few mistakes so that the project does not stand still because of you, and then you will already look at the technologies that are used there.
Then, don’t forget the most important thing, we live in a country where they can’t even make a normal car, the quality of development here is absolutely the same, that is, none, they are the same people, in AVTOVAZ, in Yandex, so for all this flair around what -something there developers put the bolt.
I’ll tell you how it works from the point of view of business in Russia, and not from the side of a guy in a sweater and glasses:
1) There is a rich uncle who stole money in his time, he has a son, the son Bati has 50-100 million of his own and went to cut a startup that absolutely no one needs, hired 30 people, installed computers, here you need to know not so much the technologies themselves as FASHION technologies, you watch fashion trends and teach them or ask for a junior, voila, and now you are in the stream.
They did it, my son got tired of sawing a startup, he has a party in the Maldives, a wedding, children, etc. - everyone fled.
2) There is a state or a large office, which one way or another belongs to someone in power, they need some kind of project, they give this project to a company (that is, a son, brother, matchmaker), which has a business card website. This firm gives it to another firm, which gives it to another two to five firms. Somewhere at the end, you sit at the computer and do what they wrote to you in the TK. In order for you to change something in this TOR, it must go through 8 mouths and a bunch of approvals, and you generally better sit and stick out less. In such offices, you will saw and saw some kind of crap in which everyone around is already confused, but you do it somehow, because the change is coming soon. And then, two days before the delivery, the whole gang of intermediaries and programmers gather in one place and finally call the main customer and ask how to do it, that is, what you asked a month ago. Sometimes this brainstorm helps, sometimes it doesn't. How to get there? Again, go john.
It is noteworthy that the quality of the product of such offices is usually worse than the most seedy Joomla, but there everyone is blaming CMS, but in order to tie a vote in their product, they need to strain 8 mouths, cut a budget of 180-400 thousand, through a bunch of approvals to do everything through the ass, but through OOP and some Symfony. Cool.
3) Companies like Yandex, some banks. In such companies, usually smart people are only at the very top - these are the founders of the company, it is technically impossible for them to see behind all aspects of the company, so they have a good part of the product, the main one, for example, like Google search, and 90% of other services are complete shit (look, what did these "minds" from Yandex, like, with film search). On the other hand, each of them has Vasya's CSF at the level of the founder of the company. These Vasyas make 90% of the products there, which are, as it were, secondary. To get there, you don’t need to learn technology, but study the trends of some habr, what are they now valued, what authors are foreign: “Alan Cowell’s Mega Algorithmic Programming”, etc., read about 10 such books, learn all the basics of pure programming without frameworks, get dressed like an asshole
4) Local companies for creating websites and other programming. In such firms, there is much more freedom than in the first three, but there is not so much money, but you can immediately see the product that you are making. Here you will need both WordPress and Bitrix. It is also better to go there in June. In such companies, the chance that you will later launch your own project sideways is much higher, because. you will have experience in creating web services, sites in real time and you will see the progress of their development. But from the point of view of money, it is a rare case when they can even offer you as much as in a startup.
Therefore, if programming for the soul, having fun, then options 1 and 4. If you want work, from which many howl, then 2, 3.
5) There are still companies that work to the West, now there is money in theory, maybe as much as in a startup from a rich pinocchio, you will be very lucky if you do step 4, if 2-3, then you can take the rope and soap.
Startups give such companies little when, because a hipster millionaire needs an atmosphere, he needs workers in front of his eyes, and not on an outsourcer. But fixing bugs in a 6-year-old code at the price of a saleswoman in a New York stall is easy, it's outsourcing. The turnover in such places is wild, so they, in desperation, are looking for blacks abroad, no one sane wants to do this in their homeland. Therefore, if the outsourcer will create websites or some new systems, this is a great success.
You also need to go there as a junior. They also almost always require English, and if you have English, why do you need them?
6) You learn English, Wordpress, Joomla, Magento, CSS and go looking for clients in English. A freelancer hatches out of you, in the future you open your own office number 5.
There is another life hack, you take a subscription to an expensive fitness center and meet guys there, someday you will be lucky and you will find someone rich from officials or oligarch relatives. Tell everyone that you are a programmer and you have a "team". That's enough, the rich always have "a bunch of ideas" where to shit money (startup) or vice versa somewhere to "make money" (point 2). They will offer you a "subject" if you say that you are a programmer. All that you will have by that moment is a business card site, you know what I'm getting at? Point 2, but you will be on top, the second mouth. If you're lucky, there will be point 1, but you will be a co-founder, you will look at fashionable technologies and create vacancies with reactJS, Angular, high load and a bunch of buzzwords under smoothie. And on the exchanges, let ordinary people look for orders, who can't see the forest for the trees. Or go through the ass to point 2, when you need to go from the other side. think different.
Anyone who, based on the life hack written above, realized that he was walking in a circle, and the key opens in another place, can throw me money for advice on a wallet R738086405346
More precisely, this is not even advice, this is an instruction that really works.

A
Andrew, 2016-08-20
@iCoderXXI

In the early 2000s, I wrote an application for accounting for non-utility housing and communal services for a local municipal unitary enterprise. This project began as a test task for hiring.
It was possible to write on anything, but at that moment Clipper 5.x seemed to me the best tool, which I, as it seemed to me then, more or less owned.
The problem was aggravated by the taciturnity of the specialists whose work I was instructed to automate.
Looking ahead, I’ll say that automation, in the end, was a success, from the mode of operation of 3 people for 8 hours a day, 6 days a week, 6 months after the start of implementation, they went into a mode of 1 person, 2 hours a day, 5 days a week .. i.e. 3*8*6*4 = 576 man-hours turned into 2*5*4 = 40 h/h, the efficiency was increased by 14.4 times.
So, when you basically know how to program, but do not understand the subject area, you need to work in pairs with a specialized specialist, literally live inseparably until the end of the project. So I did (and always do).
But the aunts, whose work I automated, never in their lives were engaged in setting tasks, decomposition, formalization and other charms of project management, and it was more difficult to get simple meanings from them than from captured partisans. At the first stage, I took incoming-outgoing documentation and built all the ways of data transformation.
Further, I implemented these paths as I understood and provided them to my aunts.
And lo and behold, usually at this stage the gift of speech erupted (aunts, like all normal people, love to criticize what they think is “wrong”), and a stream of very specific and capacious Ts (valuable instructions) began to pour on me, which I documented in detail and subsequently implemented.
After some time, I mastered the subject area so much that the aunts began to invite me to "catch glitches", which they periodically piled up in their long and painful calculations on the calculator.
For the first few months they kept double counting, the old-fashioned way, in their huge ledger, and in the program, and the program was checked against the book. After 2-3 months, they were convinced that the "numbers" in the program were more accurate, errors were caught faster, with less effort, and they began to check their book according to the program. After 5-6 months, I wrote them a module for calculating and printing a monthly report, and they stopped keeping their book, they just printed it every month on a huge dot matrix printer.
Now about how the application architecture was built. The final version was number 4, and the application had to be rewritten 4 times from scratch. On the 4th time, I realized that either I somehow competently organize the architecture, or it will be a failure, because. I'm sick as hell of rewriting the same thing over and over again.
It is conditionally possible to divide the main functionality of the application into 2 phases - entering/editing/viewing data and building reports/selections. With reports and selections, a dark forest, because. requirements change in an unpredictable way any number of times a year (in the beginning), but with data entry and editing, the situation is generally stable, especially in the previous 3 versions I have studied this process quite well.
Data entry/editing is carried out by means of forms, which, in general, repeat the structure of the database table, except for cases when fields from directories are attached.
In general, I am a lazy person by nature, and instead of rushing 100 times and fixing something on the little things, I prefer to harness for a long time, and then go quickly and carefree.
The first problem of programs based on Clipper 5.x is the banal absence of database tables or broken indexes. This is the first thing I was concerned about. the program at startup checks for the presence or absence of tables and indexes, and what is missing is completed on the fly. Thus, you can lose data, but the program will still work. To make this possible, it was necessary to prescribe the structures of the database tables and indexes in the program.
The second stage, wildly tired of copy-pasting 95% identical code for building forms, and then, when something needs to be changed, added or corrected, rummaged through tons of 95% identical code in a hundred places, I decided to join the metaprogramming camp.
To do this, it was necessary to describe each form in a certain way, and develop a form generator / grid generator for this description. When I did this, far from the first time and far from immediately, but still succeeded, adding a new form / grid to the program began to come down to describing the structures of the necessary tables, indexes to them, and the structure of the form, and, after compilation, the program built on the fly all necessary interfaces.
I also added links to other tables to the meta description of the form, and the generator automatically understood them as links to directories, as a result of which not an input field appeared in the form, but a button for calling the directory.
Moreover, the generator correctly worked out multiple nesting, and each directory called had full CRU functionality (Create, Read, Update), including filtering by columns and sorting.
Thus, I created a powerful and flexible interface generator, and the development of the CRU part of the application was reduced to the development of a description of table structures, indexes, and meta descriptions of forms.
Well, each report or selection had to be programmed manually, since there were a finite number of them, and when the main ones were implemented, new ones were added, and the old ones changed quite rarely, and they didn’t cause such pain as forms.
To implement this functionality, I had to patch the standard TBrowse grid (it is used to view tables).
The summary is as follows - to build a competent architecture, you need to have a minimum experience of a couple of thousand hours of rapid coding, and have time to collect the main rake, have time to get tired of the pain of copy-paste and debugging. You also need to thoroughly understand and see the entire subject area. Then, out of human laziness and striving for the ideal, a certain architecture will be born, and each one will have its own, individual architecture.
I believe, quite rightly, that this is a path that has been followed by anyone who has piled on their bike at least once, and many of those who ride other people's bikes.
PS: when I migrated to the web, after some time I again had to follow a similar path, as a result of which a simple AJAX framework was born on the PHP + Smarty + DBSimple + jQuery stack. Today I do my best to get away from him, although he is good enough for his tasks. There was an experience when on a shared hosting for 5 bucks a project on this framework with a creak but kept 30-40 thousand uniques per day (after a series of optimizations) and was quite well protected from clumsy hacking through SQL injection thanks to DBSimple...

C
Chronic 86, 2016-08-20
@chronic86

If you want to learn how to solve complex problems, you take (or invent) a project and do it.
If you want to learn how to design projects, take a piece of paper and a pen and draw, then within a week go to the piece of paper and edit.
If you want to learn how to write code so you don't have to look at it and cry later, write a lot of code.
I do not pretend to the truth, this is my ninja way. =)

J
jacksparrow, 2016-08-20
@jacksparrow

The truth is in one phrase, in order to do complex projects, you need to do complex projects. It is impossible to learn how to make them, besides reluctantly solving the difficulties that arise during creation. Or it will be like in schools where they teach you to draw in 1 day, while a master is standing over your shoulder, you seem to be a good artist, but as a result, you yourself will not learn to draw anything.

A
Alexander, 2016-08-20
@thecoding

I would initially advise you not to study stacks, but to design the architecture of highly loaded projects, projects with strong business logic. Read and watch lectures by
Oleg Bunin (HighLoad++)
Learn MVC(O-OP)
GIT (mandatory)
Unix (Linux)
climb.
Then you join some kind of OpenSource Project.
Then everything will go by itself.
Or take some more or less interesting repository on GitHub and try to file something of your own, just write the code with pens, look at the architecture and delve into it.
And an online store selling panties for Nina's neighbor (conditionally) can also be raised on OpenCart))) One horseradish will not fly up to Ulmart.

V
Vladislav Balabanovich, 2016-08-25
@vladbesson

No time to explain - learn English

R
Rafael™, 2016-08-20
@maxminimus

two ways:
1) knowing html css javascript php sql - make your bike blog chat forum shop
from scratch - in this case you will inevitably gain enlightenment and become an engineer and a ninja
2) study the framework template and work in it like everyone else - the costs of learning are comparable with the study of languages
​​- so you will be a standard replacement worker, fitter,
both ways normal
choice depends on your mindset
usually in the wild for one engineer one hundred fitters

Z
ZaurK, 2016-08-22
@ZaurK

Try to get a job as an assistant, a junior developer somewhere, so as not to boil in your own juice. Do what you can, even if it's easy at first. This will organize you and most importantly - communication with more experienced developers will help you climb faster and on a more correct path. And so, of course, as they wrote above, now no one writes bare php, basically everything is done on frameworks, it’s good if you master one particular one.

A
Alexey, 2016-08-25
@alegrans

I advise Rusakov's video courses (type in the search - you will immediately find it).
Especially if you buy after the webinar: discount + a lot of bonuses.
Pros: the video is more intelligible, it explains sensibly and with specific examples, you get the whole gentleman's set for the developer as a bonus. The guy is advanced

M
Maxim Timofeev, 2016-08-20
@webinar

Complex systems are made using php frameworks (yii, laravel, symphony, etc.), today few people write naked php.
If we are talking about a typical task, like an "online store", then sometimes it makes sense to use ready-made sms for this. There are many of them and it is worth choosing for a specific TK. For example bitrix, shop-script, magento.
But we won't talk about development using CMS, so if I were you, I would study some php framework and related technologies closely.

X
xmoonlight, 2016-08-21
@xmoonlight

Site design stages
%25D0%2592%25D0%25B5%25D0%25B1-%25D1%258

A
Alexey Karpan, 2016-08-20
@dvguinf

For an online store, there is wordpress and others, just edit as needed, know where and what.
With the knowledge "I know html css javascript php and MySQL" you can easily edit existing solutions for your own and enjoy.

E
Eugene Burmakin, 2016-08-22
@Freika

Read the book Perfect Code.

S
Sanes, 2016-08-20
@Sanes

Take the finished kernel in the form of a framework. And hang it on the sly with modules.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question