ProgrammingThis forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
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.
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.
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??
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...
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...
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.
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?
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.
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'??
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.
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.
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).
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!
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.