What types of programming are there? [closed]

Closed. This question is off-topic. Answers to it are not accepted at the moment.

Want to improve this question? Update the question so that it it fit into the theme of Stack Overflow in Russian.

Closed 5 years ago.

Improve the question

I'm studying to be a programmer. I want to decide on the choice of my future profession, because they give only a little at school. Therefore, please tell us what types of professions there are in programming and accordingly, the types of programming.

Author: Kyubey, 2011-02-28

4 answers

All cy6erGn0m said correctly, but I think it is worth explaining some of them.

  • Sites. Well, that's understandable. Information sites, for mobile, applications-such as zoho and other offices.
  • Normal applications. For different OSS-Windows, Mac, unix different and more rare types.
  • Server applications. These are applications such as game servers, banking, various IM messages, databases, and much more. When there is a specialized client program.
  • Mobile devices applications. Java apps, games, nokias, simbians, iPhones, androids, ebooks, and whatever else. That is, on mobile phones, smartphones, and similar devices.
  • Embedded systems. Oh, it's a very interesting industry. Players, phones, navigators, robots, digital key rings, thermometers, various controllers. That is, they are closely related to electronics and often work in a single chip. 8, 16, 32 bit microcontrollers (ARM, Atmel, Microchip, STM, Freescale, Motorola and others), digital signal processors, FPGAs (programmable logic integrated circuits) , or just logic circuits (although few people do this in everyday life). Digital electronics.
  • Scientific developments. This is special programming. mathematical languages (such as MATLAB), modeling environments (ANSYS), and just writing programs that solve scientific and engineering problems. AND CAD.

Directions not specified:

  • System programming. That is, writing drivers for hardware, writing the OS kernel. Low-level programming. Compilers and interpreters, I think, relate to the same thing.
  • Games. It is strange that they were not specified. But this is a giant branch of the industry =) Development of 2D and 3D games... DirectX and OpenGL. Shaders. And for game consoles.
  • Parallel programming, including on the GPU. CUDA and OpenCL, OpenMP, MPI. Calculations on the graphics module.
  • Development of general-purpose libraries for any functions. For example, rendering the font. Or audio and video codecs.
  • Writing plugins and scripts for existing systems. For Photoshop, for example.
  • Olympiad programming and problem solving. This includes programming in various "impractical" languages.
  • Programming for accounting, financial, and other business products. Type 1C: Enterprises.
  • Programming of expert systems. I think it should be taken out separately.
  • Database programming. Serious ones, which are much more than two or three tablets=) No wonder a special language was created for them.

But that's not all, there are a lot more of them. I just don't know some of it, and I couldn't remember some of it.

 6
Author: Алексей Сонькин, 2011-02-28 17:06:47
  • Web-site development
  • Web application development (may overlap with the first one)
  • Development of "normal" applications, thick clients
  • Development of server applications
  • Mobile app development (j2me, android, iphone, etc)
  • Development of automated testing tools
  • Development of automated tests
  • Application development for embedded systems
  • All kinds of Science-development
 2
Author: cy6erGn0m, 2011-02-28 16:19:45

The topic is very extensive and almost everything I know has already been said. I will add only a little about "embedded systems". Their correct name is "Real-time systems". The area is very relevant and is associated not only with programming various firmware for players, phones, etc. The scope of its use includes all kinds of robots, automated systems (such as traffic light control in developed countries), space satellites, medical equipment, and much more. Used software (except for simple firmware) - an OS of the Qnx type. Programming languages-structured C, Smalltalk, various functional and recursive logic languages such as Lisp, Erlang, Prolog.

 1
Author: LackOfKnowledge, 2011-02-28 18:50:10

There is also reverse engineering: restoring the original algorithm of the program in the presence of any restrictions: -). It usually continues in the form of implementing a modified algorithm in its program. Given that, as a rule, binary code parsing is required, without the presence of any source codes of the software product being parsed, high qualifications are required: the ability to work with specialized tools (disassemblers, debuggers), knowledge of assembler and PC operation on lower levels, etc.

They pay very well accordingly.

 0
Author: gecube, 2011-03-27 05:54:05