Good morning dear!

Actually, development of application programs under Linux is of interest. Immediately make a reservation - not only the development of graphical interfaces is of interest - i.e. under QT or GTK - but about the development under Linux as a whole. And from scratch. Interested in all aspects. Something like Petzold for Linux.

What literature or resources can you recommend to study?

UPD : What do I mean by an application program ? Workplace operator shop / pharmacy / bank employee of the company. Those. nothing so connected with the system.

In my case, we set the task to implement an application for automating the work of a mid-level firm - all business logic already exists. Those. business for soapy - to master development skills.

UPD2 : What I want to know, from the point of view of the programmer, and most importantly, where to find out how to do the following things in Linux:

  1. streams - since the application will use time-intensive calculations and tasks, it is best to use streams;
  2. network protocols - POP3 / SMTP, FTP, HTTP / SOAP - development and use. The latter can be a separate item, but most likely the whole point is the possibilities / extensions of the programming language;
  3. Databases - most likely also an extension of the language, but still not bad to know how to use the database in the development of Linux applications;
  4. System services - because there are so many background tasks that are conveniently implemented only by services;
  5. Deployment - I think that everyone understands here - an unfamiliar environment, unusual actions - I would like to know how to deploy a ready application to a client without popobili;
  6. and last but one of the most important - Graphical interface - I know that under Linux there are two most important gui-toolkits - QT and GTK - but I would like to know how difficult it is to create rich graphical user interfaces - for especially cynical I will say that we don’t invent a design but a client and how it will be realized in parallel, the main thing is to see what he needs and how he wants. By rich graphical user interfaces is meant ... although look at any widget developer ( here , here and here for an example). I'm not saying that everything was ready, on a silver platter, shkoloprogeru-muskofapu is available, interested in the possibility and methods of developing such a level of gui.

I hope that I understood.

Closed due to the fact that it is necessary to reformulate the question so that it was possible to give an objectively correct answer by the participants Oceinic , aleksandr barakin , BogolyubskiyAlexey , Kromster , Max Mikheyenko 15 Oct '15 at 15:00 .

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 .

  • A terrible question. To compare difficult winapi (Petzold started with him, win32api was later), with simple POSIX calls ... Of course, if you write X under QT-GTK on C, then yes. Otherwise, tasks are incomparable in complexity. - alexlz
  • What do you mean by application programs ? Well, or give examples of system (which you are not interested). And, sorry for the illiteracy that this is written in the two-volume book of Petzold (though I have not read it), analogs of what do you want to learn in Linux? - avp
  • Workplace (client) on a machine with Linux? - avp
  • yes .. and what is the level of fiction? - dreadangel
  • one
    Alas, sometimes the web is not a good solution ... - dreadangel

4 answers 4

John Fusco. Linux. Programmer's Guide.

Description -

This guide will allow you to master the extensive list of open source tools available for GNU / Linux. The author of the book, John Fusco, describes in detail the most useful of them, using visual brief examples that are easy to modify and use in practice. Starting from the very basics — downloads, builds, and installations — you'll learn how open source tools are distributed and how to find the optimal solution for a particular task, deepen your knowledge of the Linux kernel, and how the OS interacts with software. The presentation of theoretical information in the book is focused on the subsequent practical application. Having mastered it, you can use the most advanced tools, applying them to develop your own applications, as well as to increase software performance and debug it.

  • A good book, but not for a beginner. - skegg
  • IMHO, everything is chewed up - there is no place further :) but it is understood that the Linux reader still knows. Well, if it’s really quite simple - then the series - "For Dummies" - "Programming ..." "With ..." With ++ ... " - Ruslan

If you are interested in writing in C, then the book by N. Metyu, R. Stones “Basics of programming in Linux” is quite “from scratch”, everything is chewed;)

  • The very thing you need. - skegg

Not a new book (2004), but I liked it. Quite a lot and sensible about the interaction of C programs with the system (files, tables of contents, tty, signals, processes, streams, sockets, System V IPC).

Bruce Moli. Unix / Linux: theory and practice of programming.

the original name is Bruce Molay. Unix / Linux Programming.

    Given the above task, you need to look towards Java EE. Meaning you dig into low-level programming, if you need to solve business problems?

    • Well, that's why all questions about developing applications for Linux are immediately based on the answers to "use Javu". It's all the same as .NET under Windows - I do not argue. Zhava is very good - especially as a server part, but as a dextup? - dreadangel
    • 2
      Those who answer so apparently studied java'u. And they want others to study it, “so that life doesn’t seem to be honey” But there’s really a rule, no one needs a program under Linux. Which means: there are some linux-specific things, you don’t need to use them. And so the bottom level POSIX, which many people support, is not worth talking about qt-gtk. - alexlz
    • @dreadangel, and what GUI do you see on your Linux desktop? Any python windows? I have not tried it, but I think you can do it beautifully. - avp
    • @avp Python windows in linux is not so little. As part of the distribution. For the first time I saw such a case in 2001-2002. Fetchmail configurator. Now a lot more. - alexlz
    • You probably misunderstood me. I meant the Java Platform, Enterprise Edition - this is a whole stack of technologies for both the client and the server. For a client, you can use JSF (JavaServer Faces) j, Java Server Pages, Adobe Flex. If you need all the same under the desktop, then I can advise Qt - Vyacheslav Koval