Hello, dear.

The fact is that being on the 2nd course of Information Technologies comes such a time when it is necessary to choose a further direction in the world of programming. Namely, between Web-Dev and application programming, besides the choice of PL as the main tool.

At the institute, we “pass” C ++ , (although I don’t dare to name a language, rather we just look at logical and output operators, the old syntax, etc.) and so for a whole semester, it seems that the lecturer lags 10 years behind life and nothing else shines for us except the tedious writing of the mathematical functions in the notebook. Immediately took my first acquaintance with application programming, left a rather positive impression.

At the 3rd Java course, it’s already scary to imagine what will happen with such an attitude to the subject by the lecturers ... But this is not the main thing, my university is considered “best” in Self-education ) and I don’t count on it, just a diploma.)


Besides, I have been doing web programming for a year and a half and I know ( HTML , CSS , PHP (medium), MySQL ), and until that time everything was going great, I was thinking of studying to be a web programmer, until I thought about the future, but it’s promising Is it because I have to choose one direction and several tools for implementation that will accompany me all my life ...

And it went, began to weigh the odds, compare the graphics of the PL for the last 7 years, look for certain advantages of the web and application programming, frantically wander around Google, looking for the makings of prospects ...


Conditionally dividing PL into categories to achieve the goal, I got a rather interesting picture:

Web programming:

  • HTML / CSS / XML
  • PHP + MySQL
  • Javascript
  • Python + Django
  • Ruby + RoR

Application programming:

  • Java
  • C #
  • C ++

The search for documentation on the PL has brought me even further, now the choice of the future has become more uncertain. On the one hand, Java is always vacant and cross-platform, besides it takes first place in the ranking for several years and does not even intend to give up.

C # - lately this language supported by Microsoft has grown before our eyes, and continues to grow, there are prospects for completely replacing C ++. The language of the future, but there is one big minus, it depends on the platforms, but rather on Windows ... C ++ is a gradually dying language. IMHO . But it can not be written off.


On the other hand, this is web programming which is a bit closer to me.


PHP is my first programming language , which I thought was pretty good and promising, until I became acquainted with Python , which impressed me very much with its brevity, flexibility and competitiveness. Of course, the popularity of PHP could be the envy of any language. At the moment, popularity begins to decline, but vacancies, like in the case of Java, do not become less, but even increase.

Python - it all started probably from him, he turned my idea of ​​programming, impressive, concise, light, strongly typed, has a lot of advantages. In a bundle in Django can circle around the finger of any competitor, but there is a significant disadvantage, it is not enough vacancies in my country.


Impressed by all this for several weeks I suffer from garbage , but rather I define my future and prospects. If I go to web development (namely, in Python, PHP, Ruby, Js), will I fail? Or, is it possible to immediately retrain in Java or C #, I certainly understand, everything depends on the person?

I wonder your opinion.


P. S Sorry for such a confused monologue and grammatical errors, if any.

Closed due to the fact that it is necessary to reformulate the question so that it is possible to give an objectively correct answer by the participants of Athari , fori1ton , VenZell , atwice , BOPOH 10 Apr '15 at 11:38 .

The question gives rise to endless debates and discussions based not on knowledge, but on opinions. To get an answer, rephrase your question so that it can be given an unambiguously correct answer, or delete the question altogether. If the question can be reformulated according to the rules set out in the certificate , edit it .

Blocked by a member Nofate ♦ 29 May '15 at 14:41 .

This question has been preserved because of its historical importance, but it is not regarded as a good question on a topic relevant to the specifics of this site , therefore we ask you not to consider it as confirmation of your ability to publish similar questions. This question and its answers are frozen, they cannot be changed. Read more: help .

Read more about blocked messages here .

    17 replies 17

    Young man, not there looking. We need to deal not with what you see as promising now , but with what your heart is for or what you do better at.

    A simple example: there were already millions of unnecessary lawyers and economists in the country, and all because 10 years ago they really didn’t have enough and all the idiots flooded there - well, what a sought-after profession!

    The fact that now (exactly like 10 years ago) Java, unfortunately, does not mean anything. By the time you get pretty borzo to write - it may well happen that the technology will die (finally, it certainly will not die, for it is already now a backbone) - well, in general, you understand. Similarly, it can happen with any dot net technology, PHP. Now everything is very fluid and shaky - changing rapidly.

    The only lasting value is an investment in a loved one, and an investment in a loved one is effective only when you like it. So look what you like on that and write! So when something changes you will have a very important competitive advantage, you will know very well some technology (simply because you like it).

    • 3
      Thank you for such a detailed answer, I will do so; I will do what is closer to my soul. - zvlex
    • 2
      @ R2dtw good luck! - Barmaley

    This question is incorrect. Retraining in Java or C # does not mean giving up on the web.

    Python ... In a bundle in Django, it can circle any competitor’s finger,

    No he can not. A person can, but a python itself can do nothing.

    Web programming:

    • HTML / CSS / XML-PHP + MySQL
    • Javascript
    • Python + Django
    • Ruby + RoR

    Application programming:

    • Java
    • C #
    • C ++

    Wrong again. No one bothers to use Python and Ruby for application purposes. And even javascript. XML is also not the topic here .. it has to do with everything. C ++ / C # / Java languages ​​are generally universal. Perhaps, in C ++, doing something for a long time, but this does not change matters. And, of course, the knowledge of any item from the list does not negate the need for knowledge of HTML / CSS / XML and even JavaScript.

    At the institute, we “pass” C ++, (although I don’t dare to name a language, rather we just look at logical and output statements, old syntax, etc.) and so for a whole semester, it seems that the lecturer is 10 years behind the life

    Well, it's you in vain. Learning C ++ teaches discipline. In addition, modernized languages ​​are poorly suited to study algorithms. That is why teaching should start with C ++ or Pascal. You will always have time to learn newfangled chips, but to learn to think correctly is necessary. And it does not matter if the lecturer is out of date for 10 years or not.

    • The question is rather banal, where to direct the efforts? To the web or something else. - zvlex
    • 2
      Ruby or Python - and not have to choose. Only manuals on frameworks to read :) - NWSkyFox
    • And what do you want? There is work in both directions. I don’t know how you are where you are, I cannot judge your market, but we have a choice. You can even do the same work and web development and application. This is full. - cy6erGn0m
    • In my case, the web is developing more and more. There are more job openings for web development. A good question, you know, I ask myself several times a day, I feel paranoid, I have to decide. I think I’m more likely to go to the web. - zvlex
    • 2
      And what do you care about the lecturer. I became interested in programming without any lecturer. The main thing is to decide what you are interested in and dig yourself in this direction, read, practice. - skegg

    Programmers are valued, not coders. That is, of course, coders are also valued (otherwise what would I live for, heh), but ... second-rate.

    Separation is false. Both the web and the desktop differ only in one thing - the way the appearance and behavioral logic of the frontend is described. There is no more in the layout of web pages or the layout of programming widgets than in the soldering of radio components - engineering and radio engineering works. Yes, experience is needed (without it, everything runs the risk of being crooked, cumbersome, limited, difficult to maintain, unsuccessful), but here and there the work is, for the most part, purely mechanical.

    Of course, in the field of frontends there are interesting and non-trivial tasks of visualizing or processing signals, but they are not very frequent, and in most cases they have already been solved.

    But the most interesting and nontrivial, perhaps, is always "under the hood." And there is no particular difference in what external data is received and how the results will be visualized later. By the way, a considerable heap of "desktop" applications under the hood has a browser that renders HTML + CSS. In the opposite direction, less often, but, for example, the same GTK3 has an HTML5 backend.

    Well, there is not much difference in the language in which the code is written. The main thing is that it is adequate to the task, and further - these are already questions of economics and politics, and not programming. Of these, both Python and C # and Java are general-purpose languages, so it’s wrong to say that "this one is for the web, and this one is the desktop one." Moreover, much of the programming depends on the semantics, not the syntax of the language, and the listed languages ​​have a lot of semantically similar (although not ideally similar) constructions. And syntax learns fast.

    Therefore, it would be better, I would say, to study primarily, uh, computer science. This, if you do not devote life to the riveting of business cards, todo-applications for iPhone and other utilities managers startup, always useful, in any area. It is worth exploring all the languages ​​that come to hand - this knowledge is not superfluous. However, giving priority to more interesting and, among the interesting - more market-practical. And, of course, any applied skills are technologies (layout, frameworks), to taste and demand: knowledge is power, but, as a rule, they pay not for knowledge, but for practical results. So if you have a soul to Python + Django - that’s it. There is a market for this business (with all the niches from Hindus for food to competent specialists), you should not worry about it.

      Python, like Ruby, is a universal solution. In Python, you can easily write any application software with bindings to the same QT, and in case you need to embed C-code.

        You can not charge C # with asp.net platform.

        The technology is quite convenient and flexible.

        Of the minuses, it is expensive for the client and depends on the operating system itself.

        But how strange it is to find a job is not a problem, and the Americans want their financial sites on asp.net

        • why do you write the word "Americans" with a capital letter? - skegg
        • 6
          Corrected. And why do you write the word "you" with a small letter? - Pavel S. Zaitsau
        • 6
          Fixed .. - skegg 1:09 pm

        You forgot about cloud computing technology.

          As already mentioned, the division is very conditional. At the same Python, there are now vacancies both in cloud computing and in high-loaded server solutions, although this may seem nonsense from the “formal” description of the language. And it is also important to understand that programming is only a tool. If you learn to just program, you yourself will remain just a tool for others. Understand something for real and use programming as the easiest way to transform ideas and knowledge into matter that changes the lives of people in this area. And you will be more interesting and more useful to people.

            Everything must be studied by yourself. It is not possible to create perfect algorithms by trial and error, since learning YP is 50% of the problem. The other half is to feel, to understand the language. Programming is not just learning new language, it is the study of techniques, programming patterns and technologies embedded in the language.

            I would say this: "If you want to create, go to applied programs, if you want to make money, go to the web." In general, programming should be started from childhood, then everything will fall into place by itself. You still have 3 years left, so try to do something, expand a large project and try to earn (or create) ....

              Already mentioned my IMHO in one of the questions:

              There will be (and a miracle - it turns out already: node-inspector) node.js + WebInspector, and then php, python, jsp - will be strongly pressed from the Web

              As for applied tasks, this is more a competition of optimizers (both compiled and JIT) than languages, and moreover, more programmers

                Yes you are right, I’m in vain comparing completely different directions. Probably I was confused by Jython which translates into Java bit-code.

                Two years ago, I once answered this question for myself and delved into web development, which I still quite like. Well, you shouldn’t give up what you started.


                Thanks to all.

                  You are on sites with work polaziyte, such as HeadHantera, compare salaries, you will see that the system pay more, but if you still have some kind of SAP accidentally to master, then the gap is even greater. As the sites were done and will be done, the same thing about the system software. These are two different markets, but they cannot be compared, which is more promising and what is not.

                    My advice to you. Focus on the giants of Oracle (JSF) Google (GWT, Android, etc.) although all this is JAVA.

                    • five
                      Do you think Microsoft is a giant? - Pavel S. Zaitsau
                    • four
                      I would even say - a monster. - skegg

                    To get started, take courses programmers with further employment in a large company. After that, the worldview will change))) In any case, without OOP, SQL, XML, blind typing and English there is nothing to do in IT.

                    • 3
                      In an English-language firm that actively uses OOP, SQL and XML, there is nothing for a candidate to catch without relevant knowledge. (blind dialing does not hurt in any way) - alexlz
                    • one
                      To get started, I get a job in a small studio, and then we'll see, although I have already decided on what to do next. Why take courses if everything is presented there, this information I have known for a long time, which I repeatedly used for a diploma? Nowadays, when applying for a job they ask first of all - “what do you know?”, and not what diplomas you have. - zvlex
                    • 2
                      Well, about the blind set is not sure - not the ability to quickly clap, but clapping intelligently is appreciated. I know a cloud of proger who do not own a blind method and nothing works. Although, of course the blind set does not hurt ... - Barmaley
                    • I got a job as a web programmer, now I get experience and I don’t ask myself silly questions (although it’s really hard to do a normal store in 4 weeks). For myself, I decided that I’m more drawn to Ruby and Python in the web) Then I’ll leave at the IB) - zvlex
                    • @Barmaley A blind set and a good editor make it possible not to be too distracted by keystrokes. Otherwise, additional brakes are simply obtained. This is not always noticeable, but all other things being equal ... - alexlz

                    Hmm ... Today, I will order sushi and eat them and tomorrow I will cook pasta and also eat) When I studied at an asu, I also had a choice = what to do, how many yap, what kind of study and what kind of fuck is not needed ?? The conclusion is simple, do what you like. If you want to write on the label, you want to learn pkhp, everything depends on you. no need to wrestle with such trifles, life itself will put everything in its place) ps Title is cool! I was thinking here about the world scale)

                    • Taking into account the answers, it is possible to say the same thing. Samit for solving global problems of nuclear weapons. - zvlex

                    If you want to earn and have a good career - take the web. The money is there ... But if you are not after money, examine the examples of codes of different languages ​​and see what you like more. That language and choose.

                    • one
                      Bravo. How different are the top answers from the bottom :) - Costantino Rupert
                    • @danpetruk, Try to write more detailed answers. Explain what your statement is based on. - Deleted
                    • @Iranda, done - kandi

                    I was a little late, but I did not find a single council here to get a job. Find something with a flexible schedule. Maybe with a low salary, but it really helps you to understand what you want. If you understand programming very well and know some technology, then a competent employer will not let you pass by.

                    • And I’ll do it, because it’s a practice - zvlex

                    The future is for the Internet, the future is for cross-platform C #, the future is for Ruby, Python.

                    The principles of the future: speed of development, logic of development, laconic syntax of the language, cross-platform, power, versatility, scalability, globality, quality.

                    C # develops into a cross-platform language, as soon as it engulfs the platforms, I will use this language - “wet it like this - manage to wipe it off”. Very powerful, concise, (excellent, native IDE) pontyny, convenient, fast in development. This is a new Java, only much more powerful, I do not want to offend Java'erov - no, it's better for us that there are such technologies!

                    Java compared to C # did not budge in development, while at Microsoft they invent new methods and ways for developers to simplify the lives of programmers. These methods are revolutionary! Look at the dynamics of development from C # 3.0 to version 5.5! With each version, inspiration is added, and in truth, the very power in programming!

                    Somehow I will write an article, I will give a reference and we will holivarit. ;)

                    • Only here C # has a big problem, it is completely dependent on the OS, although there is Mono. Yes, yes, I’m happy to talk about Ruby vs Python) - zvlex
                    • I wrote about cross-platform, and didn’t compare ruby ​​with python, read it inattentively! =) - Gena Ant
                    • @GenchiK That's right, in 20 years there will be nothing - one continuous television! - alexlz