Thread: Becoming Linux Developer

  1. #1
    Registered User
    Join Date
    Nov 2011
    Location
    Thoughts
    Posts
    8

    Becoming Linux Developer

    Hi brothers ,

    First of all I should say thank you for your Programming communicating board !

    I wanna become a Linux Developer ( I mean relating to developing software , etc )

    A short description of my skills :

    I know PHP and I have fun with the OOP programming in PHP ,
    I know the general syntax of C++ , C# , Perl and a bit python.
    And now I'm looking in programming contest and projects to boost my algorithm designing power ... .
    #----------------

    Now , I wanna know is it good to learn C programming language completely or it's just wasting my time to accomplishing my goal ?
    Or
    I should learn python ?

    #-----------------

    Don't worry about posting , I'm patience enough to wait for your complete answers ,

    Thanks in advance

  2. #2
    Registered User
    Join Date
    Sep 2011
    Location
    Stockholm, Sweden
    Posts
    131
    What sort of programming are you interested in? Low level stuff? Kernel development? GUI applications?

  3. #3
    spurious conceit MK27's Avatar
    Join Date
    Jul 2008
    Location
    segmentation fault
    Posts
    8,300
    95% of the software running on a normal (non-KDE) linux system is compiled from C. On KDE systems this is less, since KDE is written in C++.

    I've developed stuff for linux that is in (very small scale) distribution and I do work on linux servers. When I get to choose, I work in either C or perl, a few times C++. I've occasionally had to fiddle with python stuff, but I've never put any real effort into learning it because it has not been required and IMO perl and python fill the exact same niche (so since I am good with perl, I have no need for python).

    But IMO C occupies a very different niche than perl/python; it is much more time consuming to work in, but delivers a much faster and more streamlined product. Traditionally, I think this has meant many complex, heavy duty applications had to be done in a compiled language, but due to the increasing speed and resources of new hardware, some software which traditionally would have been written in C (such as end user GUI applications) is more and more appearing in python or (to a lesser degree) perl, because those languages allow fewer people to accomplish more in less time.

    However, both the perl and python interpreters are written in C. It's very nice to be able to write customized "high performance" routines for use with perl in C, and I know the same is possible in python. Also, the linux kernel and the core system are 100% open source C code; it is nice to know that you can (at least make a good try) to understand the guts.

    So I would say if you are serious about programming on linux, you almost certainly want to study C. Being competent in either perl or python is also a good idea. And while you probably won't want to do that much with it, a bit of shell scripting is still more or less essential.
    Last edited by MK27; 11-07-2011 at 08:34 AM.
    C programming resources:
    GNU C Function and Macro Index -- glibc reference manual
    The C Book -- nice online learner guide
    Current ISO draft standard
    CCAN -- new CPAN like open source library repository
    3 (different) GNU debugger tutorials: #1 -- #2 -- #3
    cpwiki -- our wiki on sourceforge

  4. #4
    spaghetticode
    Guest
    Speaking as linux desktop user now, I have come across a lot of python apps lately. Much more than four to five years ago. So MK27 seems to be right. There's also an increasing amount of Java desktop applications, but browsing through different linux forums I get the feeling that with Oracle's overtaking of Java its attractivity for linux desktop developers seems to have decreased again. I'd also say that C or C++ would be your first choice for development under linux. At least, that's why I am trying to learn it.

    EDIT: Additionally, it's a fact the the most widely spread linux GUI libraries (Qt, GTK+ and wxWidgets) are either C or C++. Surely there are bindings for many other languages, but why use an adapter when there's a direct link?
    Last edited by spaghetticode; 11-07-2011 at 09:07 AM.

  5. #5
    &TH of undefined behavior Fordy's Avatar
    Join Date
    Aug 2001
    Posts
    5,793
    Quote Originally Posted by dennis.cpp View Post
    EDIT: Additionally, it's a fact the the most widely spread linux GUI libraries (Qt, GTK+ and wxWidgets) are either C or C++. Surely there are bindings for many other languages, but why use an adapter when there's a direct link?
    For me its because there are different types of GUI needed. I work a lot in python and C and will more than happily use wxPython for my GUI if all that user interface is a quick form-based user interface used for configuration etc.... If I wanted a word processor, then I'd use C/C++, but the majority of times I need a GUI I don't need performance and the ability to rapidly change the interface in python is rather handy.

  6. #6
    [](){}(); manasij7479's Avatar
    Join Date
    Feb 2011
    Location
    *nullptr
    Posts
    2,657
    Quote Originally Posted by Fordy
    the ability to rapidly change the interface in python
    Can you clarify a bit what you mean by that ?

  7. #7
    &TH of undefined behavior Fordy's Avatar
    Join Date
    Aug 2001
    Posts
    5,793
    Quote Originally Posted by manasij7479 View Post
    Can you clarify a bit what you mean by that ?
    I find it much quicker to make changes in a scripting language....few keystrokes...Ct-X-S....launch. You can probably get it pretty fast in C too if you use a RAD type IDE....but I'm more of an emacs fan.

  8. #8
    Registered User
    Join Date
    Nov 2011
    Location
    Thoughts
    Posts
    8

    C programming ( Few Questions )

    Thanks for your replies ,

    Actually after all searching I decided to start with C because of the
    Power of C and It's the infrastructure of many languages ... .

    I need some references for learning C programming language ( Don't forget I know the basic of how to program ! because I was PHP programmer but I do NOT know how to use modules and plugins or components , ETC )

    Now , Let me know how can I build GUI apps in C ?

    Thanks in advance

  9. #9
    [](){}(); manasij7479's Avatar
    Join Date
    Feb 2011
    Location
    *nullptr
    Posts
    2,657
    Let me know how can I build GUI apps in C ?
    Read post #4.
    (I don't know if your C decision was the best one if you only want to build GUI apps)

  10. #10
    Registered User
    Join Date
    Nov 2011
    Location
    Thoughts
    Posts
    8
    Again thanks for your reply ,

    I wanna become linux developer but I don't know how can I start ?

    How can I connect C to oracle or sql server database ?

    Thanks in advance

    EDIT : [ How can I contact you ? There is no Private MSG service in this forum I think ! ]
    Last edited by Homayoon; 11-07-2011 at 12:21 PM.

  11. #11
    Registered User
    Join Date
    Oct 2006
    Posts
    3,445
    Quote Originally Posted by Homayoon View Post
    How can I connect C to oracle or sql server database ?
    There are native libraries for both available for free. google is your friend

    Quote Originally Posted by Homayoon View Post
    How can I contact you ? There is no Private MSG service in this forum I think !
    the rules of the forum do not allow you to send private messages until you have a minimum number of posts.

  12. #12
    spurious conceit MK27's Avatar
    Join Date
    Jul 2008
    Location
    segmentation fault
    Posts
    8,300
    Quote Originally Posted by manasij7479 View Post
    Quote Originally Posted by Fordy
    the ability to rapidly change the interface
    Can you clarify a bit what you mean by that ?
    There is a big (as you scale, huge) difference between modifying 2-3 lines of code and modifying 5-10 (or 10-20, or more) lines of code, esp. when the difference is between changing "these few lines" and "that bunch of lines, plus that other bunch, plus that other bunch", because compiled languages are just plain stricter and more inflexible (which is why, given a sufficient hardware bottleneck, interpreted languages become the rule -- no one is going to write something in C/C++ if the advantages of doing so are rendered irrelevant). I sometimes prototype an idea in perl then re-work it in C. C++, even with the STL, is much closer to C than it is higher order interpreted languages in this regard. Probably dynamic typing has a lot to do with that.

    If you look at the amount of code in a major perl or python project vs. a comparable C or C++ project, you are going to see a very drastic difference (much more than C vs. C++).

    I need some references for learning C programming language
    If you live near a major city, the library system will have books.* There are also lots of things online, eg:

    The C Book - Table of Contents
    http://www.comp.nus.edu.sg/~xujia/Ex...rogramming.pdf

    I actually have not read most of either of those, but I've read parts and I think the first one is straightforward, well-organized and informative, and the second one is informative, quirky, and interesting; both of them have practical exercises. If you are coming from PHP, doing some basic practical exercises is probably a must in order to get used to the much stronger typing and manual memory management. I think you will be completely new to both those concepts and they are very significant.

    * unfortunately and ironically, I've noticed some library system search engines cannot deal with "C" as a subject matter, and adding "programming" may or may not help. So you have to check shelves. 005 is the base dewey decimal number for "Computer programming"

    Now , Let me know how can I build GUI apps in C ?
    I would put that on hold for a bit, lol. Anyway on linux, the most common way is via GTK+.

    Quote Originally Posted by Homayoon View Post
    How can I connect C to oracle or sql server database ?
    As Elkvis says, there are native C libraries for stuff like this. But a difference between C and PHP is how that stuff is "organized"; whereas it is centralized with PHP via PECL, with C, there is no such authority/repository for extension libraries. They are maintained and distributed directly by the developers. Eg, if you go search your fav SQL engine's site, you'll find stuff about the C API...

    An Introduction To The SQLite C/C++ Interface

    Again, I recommend you hold off on this a bit and do some more basic things not requiring any extensions or you may be slightly shocked and confused as to why the ___ you have to do it this way and how the ___ that is going to work anyway. PHP is also written in C, and like other interpreted OO languages, much of it is a clever, convenient interface to the underlying standard C library. However, PHP does not really presume knowledge of C and the connections will be hard to spot going from PHP->C. The "clever, convenient interface" is literal, and by contrast dealing with C itself will at first seem like the stupidest most awkward thing imaginable, lol.

    EDIT : [ How can I contact you ? There is no Private MSG service in this forum I think ! ]
    There is after you have sufficient posts but we like to keep things public for posterity, etc. Legit programming questions belong in the forum, you will get quicker answers and from more than one source
    Last edited by MK27; 11-08-2011 at 01:46 AM.
    C programming resources:
    GNU C Function and Macro Index -- glibc reference manual
    The C Book -- nice online learner guide
    Current ISO draft standard
    CCAN -- new CPAN like open source library repository
    3 (different) GNU debugger tutorials: #1 -- #2 -- #3
    cpwiki -- our wiki on sourceforge

  13. #13
    Registered User
    Join Date
    Nov 2011
    Location
    Thoughts
    Posts
    8
    Hi ,

    First of all thanks for your replies,

    I don't have much time to come behind the pc but I like the programming and developing so I'm short in time ,

    I need your experience actually how to learn C for developing the opensource system and software and doing some GUI stuff with it ... .

    I mean at first what should I do ?

    Show me the steps exactly I wanna go on schedule ; after learning the infrastructure of it how to become pro at it ?

    I know i should practice ( There is no need to say practice hard )

    This forum is really good forum for me .

    Thanks in advance ./

  14. #14
    spaghetticode
    Guest
    You have been shown the steps already. Click on the first link MK27 gave you and start working!

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Core Developer c++ need!
    By stefanbojan in forum Projects and Job Recruitment
    Replies: 0
    Last Post: 04-05-2010, 05:08 PM
  2. C++ Developer
    By miles.spencer in forum Projects and Job Recruitment
    Replies: 0
    Last Post: 12-08-2006, 05:45 AM
  3. Visual C++ Developer
    By ilogicnet in forum Projects and Job Recruitment
    Replies: 0
    Last Post: 04-27-2006, 09:17 AM
  4. C++ / Linux Developer - Menlo Park, CA
    By rmitsearch in forum Projects and Job Recruitment
    Replies: 0
    Last Post: 02-09-2005, 12:06 AM
  5. MS Developer help
    By studentc in forum C Programming
    Replies: 10
    Last Post: 05-26-2004, 01:54 AM