Developing for Linux

So this is my first post here at Tek Syndicate. If this is in the wrong forum, by all means move it to it's proper place.

Anyways, for the longest time I have interested in learning how to program. Iv'e been on the hardware side of things for a little over a decade now, and I want to get a better knowledge of how programming works.

The catch is, I'm not fond of the direction Microsoft is taking Windows. Microsoft's new found anti-desktop strategy really bothers me. I also feel like they are trying to dismantle to open nature of the desktop computer, so I knew I needed to get away from their system. This is where my attention to GNU/Linux comes in. Iv'e actually been interested in the platform for years now. And I can't tell you how much I have tinkered around with it in the past. So by no means am I a complete "newbie" to Linux. But before I start looking further into development for Linux, I have a few concerns.

1. As a complete beginner to programming, which programming language should I start off learning? Which would be most appropriate for the GNU/Linux environment?

2. It seems everything is slowly moving to the cloud. And while I believe the cloud is great for some applications, I'd much prefer to run most of my applications natively on the client side. I'm worried though that eventually everything will move to the cloud and take the form of web apps. Because of this, is there any reason for me to continue looking into developing native side applications? Or should I jump ahead developing web apps?

 

Thanks for any feedback!

1. C for low-level stuff, C++ and Python for app development

2. Linux users hate giving up control and most of the hate the cloud. It's just that linux is on all servers so you will also find much stuff involving cloud technologies. Native apps are still huge and we like controlling our stuff which isn't really possible with web apps so just think about what makes sense for a specific application and when in doubt make a native app.

+1

And unless it's our own cloud, which is a breeze on linux.

Might be interesting to know how many experienced linux users on the forum have rolled out heir own cloud.

Most experienced linux users in my linux enthusiast club have. I have my own mailservers, application servers, apache/Mariadb (mostly for drupal, typo3 and magento), sftp, media. Anyone else?

I've been using Linux for several years just on my personal computers. I'm really starting to get interested in the more complex stuff. The idea of having my own mail server is very interesting to me.

Lately busy by figuring out stuff about encryption in general.

I have mostly always had my own linux gameservers for the games i used to play, after that i was going more in depth of all sorts of public services that i could run from linux like: Webservers, Webbased mail, multiple virtual webhosts, and personal(+family) backup ideas.

I also got indepth in (s)ftp in relation with SELinux, and various security "packages"

Also did stuff in terms of executing system resources safely from websites.

Before that (my baby steps) i made some tools in VB2008 as my first simple programs, mostly just stuff put together from parts i found by searching, but eventualy i got some nice things done.

I can name a huge list of things i know and dealth with but i concider those more "knowing" than "understanding"

I also never really sum up what i know since i deal with quite a lot of stuff, things seem to develop faster than i can keep up with

So C/C++, eh? Well then, let this be the start to something good.

I would like to know that are you going to be programming software or hardware. If hardware, check this out:

http://programmers.stackexchange.com/questions/97729/where-to-start-to-learn-c-c-embedded-linux-programming

Ït's a little boring site but try to still hang on.