ArtsAutosBooksBusinessEducationEntertainmentFamilyFashionFoodGamesGenderHealthHolidaysHomeHubPagesPersonal FinancePetsPoliticsReligionSportsTechnologyTravel
  • »
  • Business and Employment»
  • Employment & Jobs»
  • Careers

Should Modern Software Developers Still Bother to Learn C Programming?

Updated on May 4, 2013

In today's drop-and-drag world of WYSIWYG software development environments, is it really relevant for developers to bother with antiquated C programming. You bet it is!

A simple glance through any employment website, or even a peek at the local want ads, will let you in on a little secret. The world needs more software developers! But what kind of software developers are in the highest demand? The good ones.


What Makes a Software Developer Valuable?

There are literally hundreds of different programming languages in use today, and no one person can actually be good at them all. In light of this, if a hiring manager is searching for a senior software developer, what skills should they look for in a candidate? Some think they should look for a developer that has coded in their specific language for 20 years. Others think they should be targeting developers in their particular industry, like aerospace, accounting, or retail. These are fine choices if candidates with these skills and industry experience are plentiful, but they are usually nowhere to be found. The answer is to seek an individual with expertise in the fundamental languages, like C or C++.

Programmers with extensive experience in C and C++ are often used to coding with little or no help from an integrated development environment (IDE). In fact, many leading developers believe that an IDE only serves to make the software developer less intelligent by handling many of the difficult and confusing tasks. In my opinion, it is the ability to solve software development issues, regardless of available tools, that makes a software engineer truly valuable.

Focus on Programming Fundamentals

While it is nice to have someone that knows the particular language that is being used intimately, if that is the only language they know, they may not be suited well for the next project that comes along. On the other hand, if a developer knows how to fundamentally solve programming issues, they can generally apply this knowledge to any programming language in a very short amount of time. In the software development world versatility goes a very long way.

Actually, almost all programming languages perform exactly the same tasks:

  • Variable initialization and assignment - Assigning variable names to memory locations
  • Calculation - Performing mathematical calculations on values stored in memory
  • Decisions - Executing certain blocks of code when a condition is true or false, and executing other blocks of code, or none at all, when the reverse is true
  • Repetition - Repeating a sequence of instructions a certain number of times
  • File I/O - Creating, editing, reading, and generally manipulating all sorts of files
  • Common Data Structure Support - Providing arrays, lists, queues, and other objects to solve specific problems in the programming world

The list could go on and on, but I think you get the point. There is nothing new under the sun. Software developers of today are solving the same types of problems they were solving 40 years ago, just faster and with different tools. But the focus shouldn't actually be on the tools (programming languages) but on the knowledge of when, where, why, and how to use these tools.

C Programmers Have the Skills to Pay the Bills

If you run across a software developer with a lot of good C experience, which will most likely be in Linux, you can rest assured that they are intimately familiar with every aspect of computer programming, especially the really hard parts. Do you know why? Because they didn't have any fancy tools to do the hard stuff for them. They had to figure out how to handle these things on their own.

Since C programmers have to handle all of the mundane tasks of memory allocation, pointer referencing, and hundreds of other tasks that are virtually unknown to modern developers, they can almost always pick right up and be extremely valuable using any programming language or IDE. But if someone is only good at programming with a certain IDE, good luck asking them to write any low-level stuff like device drivers or assembly language.

In light of all of this, even with all of the technological advancements in programming languages and their respective environments, my advice to an aspiring software developer would be to learn C first, and then move on to other more high-level languages one have mastered C. You will find that you have a lot more opportunities than someone that has only bothered to learn the programming flavor of the day.

Programming Language Opinion Poll

Do you think it is more important to hire a programmer with experience in your specific language, or a programmer with deep knowledge of programming theory and fundamentals?

See results

Comments

    0 of 8192 characters used
    Post Comment

    • PDXBuys profile image

      PDXBuys 2 years ago from Oregon

      C was never my favorite programming language but my experience with it helped me when learning other languages like Java, JavaScript, and PHP. C was a bit too abstract for me and I always got hung up on pointers! But I use PHP and JavaScript professionally now.

    • thomasgene profile image
      Author

      Tommy Bingham 5 years ago from Deep in an underground bunker in the Southeastern United States.

      Hi Aisha,

      I am glad you found it helpful!

    • aisha91 profile image

      Rasna Aisha 5 years ago from Manila, Philippines

      Coming from the one who already has a lot of experiences, a young fellow like me should listen! Thanks for the head-up article. Voted up and very useful to younger generation.

    working

    This website uses cookies

    As a user in the EEA, your approval is needed on a few things. To provide a better website experience, hubpages.com uses cookies (and other similar technologies) and may collect, process, and share personal data. Please choose which areas of our service you consent to our doing so.

    For more information on managing or withdrawing consents and how we handle data, visit our Privacy Policy at: "https://hubpages.com/privacy-policy#gdpr"

    Show Details
    Necessary
    HubPages Device IDThis is used to identify particular browsers or devices when the access the service, and is used for security reasons.
    LoginThis is necessary to sign in to the HubPages Service.
    Google RecaptchaThis is used to prevent bots and spam. (Privacy Policy)
    AkismetThis is used to detect comment spam. (Privacy Policy)
    HubPages Google AnalyticsThis is used to provide data on traffic to our website, all personally identifyable data is anonymized. (Privacy Policy)
    HubPages Traffic PixelThis is used to collect data on traffic to articles and other pages on our site. Unless you are signed in to a HubPages account, all personally identifiable information is anonymized.
    Amazon Web ServicesThis is a cloud services platform that we used to host our service. (Privacy Policy)
    CloudflareThis is a cloud CDN service that we use to efficiently deliver files required for our service to operate such as javascript, cascading style sheets, images, and videos. (Privacy Policy)
    Google Hosted LibrariesJavascript software libraries such as jQuery are loaded at endpoints on the googleapis.com or gstatic.com domains, for performance and efficiency reasons. (Privacy Policy)
    Features
    Google Custom SearchThis is feature allows you to search the site. (Privacy Policy)
    Google MapsSome articles have Google Maps embedded in them. (Privacy Policy)
    Google ChartsThis is used to display charts and graphs on articles and the author center. (Privacy Policy)
    Google AdSense Host APIThis service allows you to sign up for or associate a Google AdSense account with HubPages, so that you can earn money from ads on your articles. No data is shared unless you engage with this feature. (Privacy Policy)
    Google YouTubeSome articles have YouTube videos embedded in them. (Privacy Policy)
    VimeoSome articles have Vimeo videos embedded in them. (Privacy Policy)
    PaypalThis is used for a registered author who enrolls in the HubPages Earnings program and requests to be paid via PayPal. No data is shared with Paypal unless you engage with this feature. (Privacy Policy)
    Facebook LoginYou can use this to streamline signing up for, or signing in to your Hubpages account. No data is shared with Facebook unless you engage with this feature. (Privacy Policy)
    MavenThis supports the Maven widget and search functionality. (Privacy Policy)
    Marketing
    Google AdSenseThis is an ad network. (Privacy Policy)
    Google DoubleClickGoogle provides ad serving technology and runs an ad network. (Privacy Policy)
    Index ExchangeThis is an ad network. (Privacy Policy)
    SovrnThis is an ad network. (Privacy Policy)
    Facebook AdsThis is an ad network. (Privacy Policy)
    Amazon Unified Ad MarketplaceThis is an ad network. (Privacy Policy)
    AppNexusThis is an ad network. (Privacy Policy)
    OpenxThis is an ad network. (Privacy Policy)
    Rubicon ProjectThis is an ad network. (Privacy Policy)
    TripleLiftThis is an ad network. (Privacy Policy)
    Say MediaWe partner with Say Media to deliver ad campaigns on our sites. (Privacy Policy)
    Remarketing PixelsWe may use remarketing pixels from advertising networks such as Google AdWords, Bing Ads, and Facebook in order to advertise the HubPages Service to people that have visited our sites.
    Conversion Tracking PixelsWe may use conversion tracking pixels from advertising networks such as Google AdWords, Bing Ads, and Facebook in order to identify when an advertisement has successfully resulted in the desired action, such as signing up for the HubPages Service or publishing an article on the HubPages Service.
    Statistics
    Author Google AnalyticsThis is used to provide traffic data and reports to the authors of articles on the HubPages Service. (Privacy Policy)
    ComscoreComScore is a media measurement and analytics company providing marketing data and analytics to enterprises, media and advertising agencies, and publishers. Non-consent will result in ComScore only processing obfuscated personal data. (Privacy Policy)
    Amazon Tracking PixelSome articles display amazon products as part of the Amazon Affiliate program, this pixel provides traffic statistics for those products (Privacy Policy)