Answer the question
In order to leave comments, you need to log in
Learning a new primary language. Java?
Perhaps my question is not quite suitable for Q&A, but this is not a topic for habr. I can’t do without a background ...
I have been programming for about 7 years, I have been doing this for a living for about 5 years. It's been more than two years since I graduated from university, and I still haven't got a job because I'm stuck in my own "projects" (they bring money, but do not develop).
Initially, I made an unfortunate choice: Delphi (windows applications) and PHP (web). I have a good command of both.
I wrote window applications in Delphi (a lightweight client for a popular MMORPG game), multi-threaded servers (an authorization server for the same game), and relatively low-level libraries (SPI provider, an external module for protecting client applications). I wrote about one of my developments on Habré:Analogue of Time Machine for Windows
Both individual modules (personal accounts, admin panels, internal libraries) and full-fledged sites from scratch were developed in PHP. The most popular resource currently has about 30 thousand unique visitors per day (400-500 thousand pages viewed).
Of course, I had to deal with administration (linux, apache, nginx), and work with DBMS (MSSQL, MySQL), and write HTML pages (CSS, Javascript, jQuery). But this is side knowledge, not my profile.
Yesterday I started to study vacancies and realized that I was “in flight” (I won’t say that it was a big surprise): large IT companies (yandex, mail, google, ...), tied to the Internet, do not need PHP programmers. I don’t want to work in a company with a staff of 10 people and make another custom website every week. I like to create something that thousands of people use every day. I love programming. I want to be able to fire up a browser, load a page, and say "I did this".
How to achieve what you want? How to get to Yandex as a developer? Obviously , the answer is: learn Java or C++ at a sufficient level. What to bet on in order not to regret in the future? Probably Java.
Is it possible to learn Java at home from books (and how long it may take) so as not to fail an interview at Yandex? Or Yandex is too high, and you still have to first work in a smaller company to gain experience.
Now I really need a development vector, because I don’t want to stagnate for another year.
PS Or am I mistaken that you can't build a good career with PHP?
Answer the question
In order to leave comments, you need to log in
1) For Yandex, Google, etc. You need to understand mathematics and algorithms. If you go to the position of a developer, then figure it out ...
2) Next, you need knowledge of OOP, design patterns. The books are all well-known, but if you are not in the know, I can recommend a few.
3) After all this, you can start to deal with Java. You can also try Python. Both companies work with these languages. If you want to be original and go to Google, then learn Go :)
Here you are advised to stay with PHP ... In general, this is partly correct. But in Java, I think you will better understand what OOP and patterns are. You will also learn about IoC, OSGI, Maven and many other interesting things. In PHP, of course, there are pathetic attempts to clone some of this onto their platform, but as a rule, it all looks pathetic ... So it's better to learn from the originals.
In terms of time, it will take you a lot (at least 2 years) ... So you can figure out the first two points and go to the student position, where you will study and understand Java, Python, PHP and any other language that you will be given a job .
Although most of the opinion is the opposite, but I think that it is worth spending half a year studying all the main languages \u200b\u200band choosing the one you like best. This is IMHO.
But in reality, you can ask Yandex employees what their requirements for programmers are.
After all, not everyone needs Java programmers, developers in python, ruby and other languages are required.
I think Ruby for web development is now the most progressive (for me, for example), but some do not like it.
If I liked java, then I would choose java, if c++ then c++.
Learning a huge pile of languages will not give you a deep specialization in anything, and good money is paid precisely for the knowledge that does not lie on the surface and that professionals in their field have. You can make a good career using PHP. Facebook, among other things, actively uses this language, and in the light of recent events, it is a good competitor to Google. As far as Yandex is concerned, as far as I know, they can't do without PHP either, and indeed, there are a lot of companies that make good products that are far from riveting business card sites for $25/piece.
I will say a few words in defense of PHP. For example, in our company 3-4 years ago we used Java + Oracle when we made custom projects. Now we are doing our projects, using PHP + MySQL. When development speed is important, when the project is already running and cannot be stopped, PHP is what you need. Often, Java projects are clumsy monsters that you will pick for years and never see how they work. If you want to see the result of your work, to see the dynamics, then this is more PHP than Java. As you can see, I'm not just yelling that PHP is ruled, but Toad sucks. I share my experience. We changed Java to PHP and got a profit.
Yandex needs different people. For example:
Banner system developer (Perl/MySQL)
It's better when you know a few more in addition to the main language and can quickly switch to solve small problems, and you can also select the most suitable set of tools for solving the problem, rather than trying to do everything one.
Is it really possible to learn Java from books at home...
In general, if you are in your place, do not despair - sit out the depression for a while and continue to hammer your own projects with renewed vigor :)
In terms of money, by the way, changing PHP to Java means little. Here, on Habré, right now in the right column you can see 90 sput for a PHP developer.
Is it worth changing the awl for soap?
In addition, you will spit with Java in Enterprise, in contrast ... Servers are launched in production for almost half an hour, everything is heavy, clumsy. Beeee after the web.
As Foror says, it would be great to develop what is there, to make sure that your site is your asset (i.e. money drips without your participation). After overcoming this barrier, it is very easy to go to any position as a javist, even as a junior (and then, most likely, you are already higher)
Pascal - 10 years
C++ - 10 years
C - 3 years
Lua - 1 year
Java - 3 years
Javascript - 3 years
PHP - 4 years
If you open vacancies, the same HH.ru. Then there is required:
- PHP (the most in demand, but salaries are lower)
- Java (the highest salaries, but slightly less in demand than ASP.NET)
- ASP.NET / C # (rather high salaries, a little more in demand than Java)
This is my subjective experience. I myself am currently working with ASP.NET MVC, switched to it from PHP. Also my intuition tells me that in the West ASP.NET/C# is valued more and will be in demand even more.
R&R, Python rarely comes across to me in vacancies.
> large IT-companies (yandex, mail, google, ...), tied to the Internet, do not need PHP-programmers
What are you talking about? Mail.ru is full of PHP projects and I often see vacancies for PHP developers.
Something tells me that you simply do not have the information to the right extent, since you draw such conclusions.
In our city, the situation is such that either PHP or ASP.NET for the web. Now it's mainstream. I think it's the same in other cities. Knowing this and understanding it at a professional level, as well as fundamental algorithms, you will always be in demand in the market and will be able to choose where you work. And a high-load project is a big fat plus in any resume.
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question