LinuxQuestions.org
Download your favorite Linux distribution at LQ ISO.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Non-*NIX Forums > Programming
User Name
Password
Programming This forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.

Notices


Reply
  Search this Thread
Old 11-03-2008, 08:44 AM   #1
mannclay
Member
 
Registered: Nov 2007
Location: Brooklyn, NY
Distribution: eeeMint
Posts: 52

Rep: Reputation: 15
learning to program and starting with C


I'm learning to program and decided to start with C. I'm curious what kind of demand is out there for freelance work using C and Bash Shell, or is it possible to pick up other languages once I have some basic proficiency in C.

Personally, although I have been at this for only 2 months, i really enjoy how C works! Also I want to be capable of reading kernel code.

Is all this possible?!
 
Old 11-03-2008, 10:25 AM   #2
onesixtyfourth
LQ Newbie
 
Registered: Oct 2008
Posts: 9

Rep: Reputation: 0
If you have the motivation to follow it through then yes it is possible. You may get advice that other languages are easier for a beginner but I say start with what interests you.

Find lots of good tutorials and don't be afraid to take your time.
 
Old 11-03-2008, 09:14 PM   #3
mannclay
Member
 
Registered: Nov 2007
Location: Brooklyn, NY
Distribution: eeeMint
Posts: 52

Original Poster
Rep: Reputation: 15
That is true!! I have some friends that I respect though they push oop on me with gusto I might add yet my influences come from the kernel and the hardware... They say that PHP or Java will get you jobs... But I'm not interested in web development and thought that it may be hard to find freelance work without the web industry. What do you think??
 
Old 11-04-2008, 02:37 AM   #4
Tinkster
Moderator
 
Registered: Apr 2002
Location: earth
Distribution: slackware by choice, others too :} ... android.
Posts: 23,067
Blog Entries: 11

Rep: Reputation: 928Reputation: 928Reputation: 928Reputation: 928Reputation: 928Reputation: 928Reputation: 928Reputation: 928
Moved: This thread is more suitable in <PROGRAMMING> and has been moved accordingly to help your thread/question get the exposure it deserves.
 
Old 11-04-2008, 03:47 AM   #5
jf.argentino
Member
 
Registered: Apr 2008
Location: Toulon (France)
Distribution: FEDORA CORE
Posts: 493

Rep: Reputation: 50
Just my point of view.
C is _THE_ programming language for "low-level" development, and I think it will stay as long as processors work like they work. Learning such a "low-level" language will head you to work like drivers development or embedded systems... I don't know if there's a big demand on the market for that, good luck...

But, learning C doesn't mean you have to avoid OOP, and IMHO you have to design in an object oriented way, even in C, just take a look to these pointers:
http://www.eventhelix.com/RealtimeMa...ct%5FOriented/
http://ldeniau.web.cern.ch/ldeniau/oopc.html
and don't think it's just a programmer game, many serious projects use this kind of trick, a near example is the linux kernel...

Some more advices: you have to well understand the compilation process, so write your makefile by hand, don't use IDE that hide this... Learning C syntax is important for sure, but you need to learn how to design (I think there's no magic there, just training), and tools, so learn gdb, valgrind, doxygen, splint, unit tests... A last for the road: http://www.leshatton.org/ read all of this website, it's great to understand how to code in a safer way...

Welcome to the tough but beautiful C world...

A convinced C programmer
 
Old 11-04-2008, 05:47 AM   #6
pixellany
LQ Veteran
 
Registered: Nov 2005
Location: Annapolis, MD
Distribution: Mint
Posts: 17,809

Rep: Reputation: 743Reputation: 743Reputation: 743Reputation: 743Reputation: 743Reputation: 743Reputation: 743
I am not a programmer, so take my advice sparingly.

I think there is a huge difference between SW development and coding. The latter is a tedious process which is easily outsourced to areas with low labor costs. OTOH, development requires system design and management skills, plus some creativity and artistic ability. This often means teams of diverse people.

If all you do is coding, you may find the job market tougher.
 
Old 11-04-2008, 07:37 AM   #7
mannclay
Member
 
Registered: Nov 2007
Location: Brooklyn, NY
Distribution: eeeMint
Posts: 52

Original Poster
Rep: Reputation: 15
Well, i guess that is sort of what I had in mind; beginner programmer work if SW companies or small teams outsource coders. I mean, I have to start somewhere and I feel since I'm learning on my own, I would need any sort of experience I could get. And they can show me how to be a team player in the pre-coding process. I want to know more about outsourcing coders. I'm not worried about the amount of money to be made, but some compensation would be fine. It would be great to code from home or part time in-house in C and other languages once I learn them. I also work as a moving light programmer freelance and this would be another freelance job, even if its simply coding. Is there a market for freelance coders like this? Do you need years of experience to get work coding?
 
Old 11-04-2008, 09:50 AM   #8
jiml8
Senior Member
 
Registered: Sep 2003
Posts: 3,171

Rep: Reputation: 116Reputation: 116
Depending on my workload, I sometimes hire coders. I may be looking for a C coder in the not distant future, actually.

I consult, which sometimes is like freelancing but usually includes a lot more. I am very fluent in C - it is my favorite language of all the languages I know - but I also have other skills. Generally, I find myself sought for my other skills, and I use my knowledge of C to map my other knowledge into a computer environment - and generally, these days, my preferred target environment is Linux.

For instance, at the present time I have been hired to develop a second-generation system for deployment throughout the third world to provide satellite internet access in regions where there is no cable plant to permit a terrestrial network. These satellite access nodes may be thought of as fully automated and remotely managed ISPs whose backbone connection is off of a geosynchronous communications satellite. The first generation systems are deployed throughout the south pacific, in the mountains and jungles of south america, and at some locations in africa. The actual job involves a lot of knowledge of RF communications, datalinks, communications protocols, digital signal processing, PCI bus interfacing, and so forth. But the tools I use for most of this is C and C++.

Similarly, I have another contract (which ran out of funding and is pending more funding) that had me and an associate developing major components of a man-portable radar system for a major aerospace company. This job requires knowledge of radar, signal processing, etc etc but again the tool being used is C.

The point is that, yes, there are jobs in C for freelancers. But if you are just a coder, your prospects are limited and you'll be competing with people in India. The work is ALWAYS available if you can employ any programming language as a tool to turn OTHER skills of yours into a computer program to solve a problem. This is particularly true if you want to work in an embedded environment.
 
Old 11-04-2008, 10:39 AM   #9
robogymnast
Member
 
Registered: Dec 2005
Location: Boston, USA
Distribution: Kubuntu, Debian
Posts: 78

Rep: Reputation: 16
Learn the core concepts of programming: OOP, memory management, how the compiler works, design, testing, debugging, etc.

Once you become proficient in the core subjects you can transfer them to any language.
 
Old 11-04-2008, 11:22 AM   #10
mannclay
Member
 
Registered: Nov 2007
Location: Brooklyn, NY
Distribution: eeeMint
Posts: 52

Original Poster
Rep: Reputation: 15
jiml8 - Your reply was a lot of help. I'm so new to the whole industry but I'm catching up pretty fast from articles and such. I'm definitely far away from coding now since I just started but knowing that I can learn what is of interest to me and with that knowledge continue on with learning other languages is helpful. I understand what you mean by 'other skills' and simply coding is not much of a career. I'm all for it except I simply have no idea how it all starts, what I mean is from where I am to getting work. For example, who would try out a fledgling programmer with no real life experience save for playing around at home? And I do plan, when ready, to play with all types of problem solving at home yet, who offers the 'first gig'??
 
Old 11-04-2008, 01:32 PM   #11
nishamathew1980
Member
 
Registered: Oct 2008
Posts: 37

Rep: Reputation: 16
C is ideally something you would use to write programs that need to interact with the underlying hardware
(when you are writing a driver, building a compiler, etc).

C++ is more for writing desktop applications

Java/Ruby/Perl/PHP etc are useful when you are writing Web Applications.



My suggestion is to pursue a language in whichever application space you are interested in.

Linux Archive

Last edited by nishamathew1980; 11-09-2008 at 04:56 AM.
 
Old 11-04-2008, 02:41 PM   #12
jiml8
Senior Member
 
Registered: Sep 2003
Posts: 3,171

Rep: Reputation: 116Reputation: 116
Quote:
Originally Posted by mannclay View Post
jiml8 - Your reply was a lot of help. I'm so new to the whole industry but I'm catching up pretty fast from articles and such. I'm definitely far away from coding now since I just started but knowing that I can learn what is of interest to me and with that knowledge continue on with learning other languages is helpful. I understand what you mean by 'other skills' and simply coding is not much of a career. I'm all for it except I simply have no idea how it all starts, what I mean is from where I am to getting work. For example, who would try out a fledgling programmer with no real life experience save for playing around at home? And I do plan, when ready, to play with all types of problem solving at home yet, who offers the 'first gig'??
How it starts is with you following your interests, eventually acquiring skills that are needed and that people will pay for. My own career has meandered around quite a bit, but I picked up some degrees in physics, then spent a lot of time in the DoD environment doing electronic warfare, electronic intelligence, radar, missile guidance, datalinks, battle management, anti-submarine warfare, anti-ballistic missile warfare, and related electromagnetic warfare types of things.

I came out of that after the fall of the iron curtain and did some applied research in microwave applications of high temperature superconductors. I took a side journey into rail guns and into shaped charge warheads.

I then bought a bunch of apartment buildings, became a landlord, and built a large property management software package, which I still sell.

I sold the apartment complexes and houses, and now I am consulting in the commercial communications and radar industries, and selling my software package as well.

Of course, I completed my BS 30 years ago, so I have been awhile getting here, but now I only do it if it interests me.

How do you get the first gig? Any way you can. You have to convince someone you are worth the risk and effort, and then you have to deliver. Whatever happens, you'd better deliver.

As you describe yourself, you'll have a very hard time getting a freelance coder job. Better for you to acquire some basic skills, perhaps a degree, some industry certs, and take a job with a company for awhile. This way you can gain some experience and training, and won't look like such a complete unknown to some potential customer.
 
Old 11-04-2008, 02:46 PM   #13
Sergei Steshenko
Senior Member
 
Registered: May 2005
Posts: 4,481

Rep: Reputation: 454Reputation: 454Reputation: 454Reputation: 454Reputation: 454
Quote:
Originally Posted by nishamathew1980 View Post
C is ideally something you would use to write programs that need to interact with the underlying hardware
(when you are writing a driver, building a compiler, etc).

C++ is more for writing desktop applications

Java/Ruby/Perl/PHP etc are useful when you are writing Web Applications.



My suggestion is to pursue a language in whichever application space you are interested in.
Simplistically, "C" is a subset of C++ (this is not a strict statement),
so, if you know what you are doing, you can write a driver in C++ with no performance/memory footprint penalty.

It's easier to build a compiler in Perl than in "C", but the compiler will most likely be slow.

I like using Perl + "C", gluing them together using the "Inline C" module when necessary.

There are a lot of Perl modules/frameworks using "C" to do the "hard" work, for example, PDL, BitVerctor, various GUI toolkit bindings (gtk+, wxWidgets, etc).
 
Old 11-04-2008, 03:12 PM   #14
mannclay
Member
 
Registered: Nov 2007
Location: Brooklyn, NY
Distribution: eeeMint
Posts: 52

Original Poster
Rep: Reputation: 15
I'm planning to take non-matriculated classes in computer repair, C/C++, and computer hardware interfacing and programming. I can start with small projects I can think up on my own and some that others could offer so that I can gain confidence in problem solving. But I had no idea how tough it could be to simply code for some pay or to assist as a coding gopher... Better off learning and doing PHP for pay and leave C for personal study until I feel more confident to sell my services. My plan is to get small freelance work. Can anyone offer anything like that? I just can't wait to code confidently!

Last edited by mannclay; 11-04-2008 at 03:14 PM.
 
Old 11-04-2008, 05:37 PM   #15
chrism01
LQ Guru
 
Registered: Aug 2004
Location: Sydney
Distribution: Rocky 9.2
Posts: 18,359

Rep: Reputation: 2751Reputation: 2751Reputation: 2751Reputation: 2751Reputation: 2751Reputation: 2751Reputation: 2751Reputation: 2751Reputation: 2751Reputation: 2751Reputation: 2751
You could start by looking at http://sourceforge.net/index.php. Lots of projects looking for help.
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
Starting(learning) AIX knockout_artist AIX 3 08-18-2008 11:10 AM
Advice on learning to program pengu Programming 15 01-20-2007 12:26 PM
Learning to program C/C++ in Linux 0be1 Linux - Software 7 12-28-2005 01:40 PM
learning to program (qbasic alternatives) enric Programming 11 01-10-2005 05:53 AM
Starting to program ;) Need a little help gamehack Programming 1 12-29-2003 09:45 AM

LinuxQuestions.org > Forums > Non-*NIX Forums > Programming

All times are GMT -5. The time now is 07:55 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration