Learn Linux programming. A brief introduction

Learn Linux programming

One of the myths that politicians and the media are installing is that those who do not learn programming are going to be the new functional illiterates.. A good excuse to spend taxpayer money teaching children to copy from the blackboard or the Internet code that they do not understand how it works and that they will be unable to recreate themselves.

It is true that Well-taught programming helps develop analytical and problem-solving skills, but, it is not the only discipline with which they can develop.

Not that I have anything that kids (and adults) learn programming, but that is because they want to do it and not just copy and paste code from Stack Overflow.

Learning Linux programming

Linux is perhaps the best platform to learn programming. Unlike Windows and Mac, all code for the entire operating system is available for study and modification. Also has the largest assortment of tools for creating programs and, except for those with a private license, all current and past programming languages ​​have a compatible version.

In general, on Linux you can run your programming skills in 3 levels

The Linux kernel

The kernel is the cornerstone of the operating system. It is the one in charge of managing hardware resources. The Linux Kernel has a new version every 3 months and has the collaboration of thousands of people, many of them on a voluntary basis and others working for companies.

To help develop the Linux kernel, you need two things; a high self-esteem and a deep knowledge of its operation and of the C programming language. The first thing is because although anyone can send modifications (patches), the criticisms of the other developers and Linus Torvalds (the main person in charge of the project) are usually bloody.

If you are not sure about facing criticism, you can try developing a module. This can be a driver for specific hardware, a window manager or any other program that serves as a link between the kernel and the programs used directly by the user.

I repeat that this is something reserved for users with deep knowledge of the operation of the kernel.

Anyway, you can find a complete documentation to get started on the subject here

In general, Linux distributions usually include the necessary tools to compile and run C programs

Script for command interpreter

The command interpreter is a tool to give orders to the system by typing text. In Unix-derived systems it is called shell. Linux distributions come by default with the shell called Bash. The BASH instruction set makes it possible to create programs to automate tasks and do anything else that does not require a graphical interface.

You can create your own scripts in the text editor of your distribution and run them from the terminal emulator.

Bash documentation can be found here.

Creation of applications

We leave for last the ideal way to start, creating applications for the desktop.

There is a lot of consensus that the ideal language to start with is Python. It is already pre-installed in all distributions and has a large amount of documentation and examples. The list of integrated development environments would take us an article by itself.

In general, it is recommended to use Visual Studio Code, but, for me a better option is PyCharmEdu. This tool not only allows you to create programs but also to learn from other programmers of the language.

I will not exhaust all the options in this article, which They include some of the long-standing languages ​​like Java, some newcomers but ascendants like Go or Rust or relics of the past like Logo or Cobol.

The important thing is that if you want to learn to program, you investigate all the languages ​​until you find one with which you feel comfortable. Unless you're looking for a job opening, it doesn't matter what the statistics or job ads say. It has to be good enough for you.

I recently discovered QB64, a version of BASIC very similar to the one I used when I learned to program with the Commodore 64 and I am very happy with the results.


Leave a Comment

Your email address will not be published. Required fields are marked with *

*

*

  1. Responsible for the data: AB Internet Networks 2008 SL
  2. Purpose of the data: Control SPAM, comment management.
  3. Legitimation: Your consent
  4. Communication of the data: The data will not be communicated to third parties except by legal obligation.
  5. Data storage: Database hosted by Occentus Networks (EU)
  6. Rights: At any time you can limit, recover and delete your information.

  1.   an unhappy user said

    A specific question: what politicians tell you that if you do not learn programming, you will remain functionally illiterate? I could believe it in the media, although those that I follow do not mention it, but they do emphasize that knowing programming will take you further; But, a politician who talks about programming things? Sorry to hesitate but? ❓

    1.    Jorge robles said

      What do you think of prawns?
      In particular, it is a very good option for those of us who are only amateurs and eventually require an application. What other alternative do you recommend versus your web forms?

      1.    Diego German Gonzalez said

        I did not test it.
        As I said in the post, it is what is comfortable for everyone. I have known people who are fans of FreePascal / Lazarus and you don't get them out of there

  2.   Camilo Bernal said

    I see Linux and Free Software as one of the greatest opportunities to generate wealth and knowledge in Latin America. It is true that, because of the Spanish heritage, for three centuries they told us that science and technology were things of the devil, and they came from Europe to burn the very few books that were smuggled in.

    But we are in the XNUMXst century, and for poor and backward regions this type of technology can be a blessing. Here companies, universities and society as a whole have very different computing needs than in the first world, and therefore community development is the answer.

    They are not simple codes; it is a real opportunity for progress and development. For now, and as Eduardo Galeano said, "The technology goddess does not speak Spanish." Hopefully we can change that

  3.   guizans said

    Hey.

    If you feel comfortable with Basic, I recommend you try Gambas. It is inspired by Microsoft's Visual Basic but it is not a clone. It is a modern language and very easy to learn and make programs. The graphical interfaces are made at the click of a button. It also has a very active Spanish-speaking community. I recommend that you take a look at gambas-es.org. Oh, and it is in almost all the warehouses of the large distributions.

    All the best

    1.    Diego German Gonzalez said

      I installed it yesterday, as soon as I have a little free time I will take a closer look

  4.   Reneco said

    With which I feel comfortable without being a programmer. Editor Geany,
    Languages ​​Vala, FreeBASIC, Free Pascal and their IDE Lazarus.
    But I do not see that learning to program and earn money anywhere, in fact the people who earn money in my country ask them for a title and put them to administer databases, in addition to buying software at millionaire prices with bribes of per half.

  5.   Jose Juan said

    You pirated the photo of the book "Java in depth 4th edition", at least mention the author of the book (but it would be advisable to mention the one in the photo), it is an excellent book to learn to program in a GNU / Linux.

    1.    Diego German Gonzalez said

      Jose Juan
      The photo is from a public domain imaging site called Pixabay.com. And it expressly says that attribution is not required
      https://pixabay.com/es/photos/trabajo-escribir-equipo-port%C3%A1til-731198/

  6.   Thomas Soto said

    I am a civil engineer with more than 20 years of professional practice and I have been enthusiastic about programming since I was in university. I learned to do programs in GWBASIC that I later developed for the entire career. Now I program in Visual Basic from Excel and recently in Python. It is rewarding to develop programs that I use in my profession and in my personal affairs.