Welcome, Guest: Register On Nairaland / LOGIN! / Trending / Recent / New
Stats: 3,150,420 members, 7,808,509 topics. Date: Thursday, 25 April 2024 at 12:49 PM

Why You Should Start Programming With C. - Programming - Nairaland

Nairaland Forum / Science/Technology / Programming / Why You Should Start Programming With C. (4593 Views)

Tools You Must Have To Start Programming In Nigeria / Support Python Programming With Android Devices :qpython E.t.c / How To Start Programming (2) (3) (4)

(1) (2) (Reply) (Go Down)

Why You Should Start Programming With C. by rayval(m): 9:01pm On May 14, 2015
An opinion that is often heard today is – “C has been already superceded by languages like C++, C# and Java, so why bother tolearn C today”. I seriously beg to differ with this opinion. There are several reasons for this:
I believe that nobody can learn C++ or Java directly. This is because while learning these languages you have things like classes, objects, inheritance, polymorphism, templates, exception handling, references, etc. do deal with apart from knowing the actual language elements. Learning these complicated concepts when you are not even comfortable with the basic language elements is like putting the cart before the horse. Hence one should first learn all the language elements very thoroughly using C language before migrating to C++, C# or Java. Though this two step learning process may take more time, but at the end of it you will definitely find it worth the trouble.
C++, C# or Java make use of a principle called Object Oriented Programming (OOP) to organize the program. This organizing principle has lots of advantages to offer. But even while using this organizing principle you would still need a good hold over the language elements of C and the basic programming skills.
Though many C++ and Java based programming tools and frameworks have evolved over the years the importance of C is still unchallenged because knowingly or unknowingly while using these frameworks and tools you would be still required to use the core C language elements—another good reason why one should learn C before C++, C# or Java.
Major parts of popular operating systems like Windows, UNIX, Linux is still written in C. This is because even today when it comes to performance (speed of execution) nothing beats C. Moreover, if one is to extend the operating system to work with new devices one needs to write device driver programs. These programs are exclusively written in C.
Mobile devices like cellular phones and palmtops are becoming increasingly popular. Also, common consumer devices like microwave oven, washing machines and digital cameras are getting smarter by the day. This smartness comes from a microprocessor, an operating system and a program embedded in this devices. These programs not only have to run fast but also have to work in limited amount of memory. No wonder that such programs are written in C. With these constraints on time and space, C is the language of choice while building such operating systems and programs.
You must have seen several professional 3D computer games where the user navigates some object, like say a spaceship and fires bullets at the invaders. The essence of all such games is speed. Needless to say, such games won't become popular if they takes a long time to move the spaceship or to fire a bullet. To match the expectations of the player the game has to react fast to the user inputs. This is where C language scores over other languages. Many popular gaming frameworks have been built using C language.
At times one is required to very closely interact with the hardware devices. Since C provides several language elements that make this interaction feasible without compromising the performance it is the preferred choice of the programmer.
I hope that these are very convincing reasons why one should adopt C as the first and the very important step in your quest for learning programming languages

2 Likes 1 Share

Re: Why You Should Start Programming With C. by Craigston: 4:17am On May 15, 2015
I hope to learn C too. I think the reviews it's been given make it look scarier than it is.
Modified
I now see the importance of C and I strongly recommend it wherever it's necessary. Although modern C++ compilers have been well-improved and C++ programs can run very fast (sometimes 4 times faster than Fortran programs which used to, sometimes, run as fast as Assembly programs), C still rules when size and portability is crucial.
Many legacy programs are still written in C and need to be maintained since porting them to newer languages can be both stressful and counterproductive, considering the resources and systems for which they were written. A knowledge of C places you in a good position to maintain such systems. And you will be well-paid for it.

1 Like

Re: Why You Should Start Programming With C. by GbengaPs(m): 2:57pm On May 15, 2015
.................
Re: Why You Should Start Programming With C. by Nobody: 8:50am On May 19, 2015
Boss, people still use C were aplicable.

I.e you can't expect me to write a (rich) GUI program with C...
Re: Why You Should Start Programming With C. by Nobody: 10:07pm On May 19, 2015
MisterNobody:
Boss, people still use C were aplicable.


I.e you can't expect me to write a (rich) GUI program with C...

almost all popular gui framework are all writting in c
And the most power of c language is pointer
Re: Why You Should Start Programming With C. by Nobody: 10:08pm On May 19, 2015
MisterNobody:
Boss, people still use C were aplicable.


I.e you can't expect me to write a (rich) GUI program with C...

almost all popular gui framework are all writting in c
And the most power of c language is able to deal wit memory address

1 Like

Re: Why You Should Start Programming With C. by talk2hb1(m): 11:03pm On May 19, 2015
Pointer was the reason why I ran away from C, unfortunately I learn PHP before learning Java, or C#. I was able to understand the Programming concept With JavaScript.
Re: Why You Should Start Programming With C. by Nobody: 7:20am On May 20, 2015
cbtgeek:

Almost all popular gui framework are all writting in c
And the most power of c language is pointer


The frameworks are written in C because of its closeness to the Metal... That is not a big deal

All what we need is a Faster way to solve our problems, and not all of them needs to be (extremely) Efficient.

Last bullet: lets talk C++
Re: Why You Should Start Programming With C. by kudaisi(m): 9:52am On May 20, 2015
cbtgeek:
almost all popular gui framework are all writting in c
If you had said C++ I'll agree with this statement. Off the top of my head, the only POPULAR GUI frameworks that are completely written in C Tcl/Tk and GTK+. Are there more popular ones out there that I don't know off ?
Re: Why You Should Start Programming With C. by kudaisi(m): 10:16am On May 20, 2015
rayval:
I believe that nobody can learn C++ or Java directly.
This statement may not be completely true.

Naturally while learn C++ you'll learn some C syntax, semantics and differences. Most books on C++ dedicate the first 5 chapters or there about to basic C because C++ was built on C and C programs can be compiled and run by a C++ compiler. Both languages are languages are interrelates in syntax and semantics but not dependent on each other. That said, there is no need to learn C before you learn C++ but if you learn C before learning C++ it is an added advantage.

It is a common misconception that C++ is some way dependent on C which is one of the reasons why some programmers tend to write a mix C/C++ rather than pure C++. C++ is fully specified language on it's own.

But JAVA ? You might never have to learn C/C++ to program in JAVA. Even when you want to consume machine codes (written C/C++) from a managed code (written in JAVA). All you need to know is how Java Native Interface (JNI) works and the API doc for the C/C++ code.

However, It doesn't hurt to learn C in your early stages of programming you never know when you might need it.

2 Likes

Re: Why You Should Start Programming With C. by Nobody: 9:16pm On May 20, 2015
if sdl can use c as its core language i believe anything is possible with c language and beside all the higher language are all using c
Re: Why You Should Start Programming With C. by drealboy(m): 9:33pm On May 21, 2015
rayval:
An opinion that is often heard today is – “C has been already superceded by languages like C++, C# and Java, so why bother tolearn C today”. I seriously beg to differ with this opinion. There are several reasons for this:
I believe that nobody can learn C++ or Java directly. This is because while learning these languages you have things like classes, objects, inheritance, polymorphism, templates, exception handling, references, etc. do deal with apart from knowing the actual language elements. Learning these complicated concepts when you are not even comfortable with the basic language elements is like putting the cart before the horse. Hence one should first learn all the language elements very thoroughly using C language before migrating to C++, C# or Java. Though this two step learning process may take more time, but at the end of it you will definitely find it worth the trouble.
C++, C# or Java make use of a principle called Object Oriented Programming (OOP) to organize the program. This organizing principle has lots of advantages to offer. But even while using this organizing principle you would still need a good hold over the language elements of C and the basic programming skills.
Though many C++ and Java based programming tools and frameworks have evolved over the years the importance of C is still unchallenged because knowingly or unknowingly while using these frameworks and tools you would be still required to use the core C language elements—another good reason why one should learn C before C++, C# or Java.
Major parts of popular operating systems like Windows, UNIX, Linux is still written in C. This is because even today when it comes to performance (speed of execution) nothing beats C. Moreover, if one is to extend the operating system to work with new devices one needs to write device driver programs. These programs are exclusively written in C.
Mobile devices like cellular phones and palmtops are becoming increasingly popular. Also, common consumer devices like microwave oven, washing machines and digital cameras are getting smarter by the day. This smartness comes from a microprocessor, an operating system and a program embedded in this devices. These programs not only have to run fast but also have to work in limited amount of memory. No wonder that such programs are written in C. With these constraints on time and space, C is the language of choice while building such operating systems and programs.
You must have seen several professional 3D computer games where the user navigates some object, like say a spaceship and fires bullets at the invaders. The essence of all such games is speed. Needless to say, such games won't become popular if they takes a long time to move the spaceship or to fire a bullet. To match the expectations of the player the game has to react fast to the user inputs. This is where C language scores over other languages. Many popular gaming frameworks have been built using C language.
At times one is required to very closely interact with the hardware devices. Since C provides several language elements that make this interaction feasible without compromising the performance it is the preferred choice of the programmer.
I hope that these are very convincing reasons why one should adopt C as the first and the very important step in your quest for learning programming languages

you don't need to learn C before you learn C based languages like C++.
some of C features are even frowned at by C++. infact not all C programms can run in c++ without modification.

hardware speed are so amazing nowadays that most programmers focus on productivities instead of performances.

1 Like

Re: Why You Should Start Programming With C. by Craigston: 11:11pm On Dec 06, 2015
Rayval, can you tell me more about Nigeriadevelopers.com?
Re: Why You Should Start Programming With C. by mexzony: 5:26am On Dec 07, 2015
rayval:
An opinion that is often heard today is – “C has been already superceded by languages like C++, C# and Java, so why bother tolearn C today”. I seriously beg to differ with this opinion. There are several reasons for this:
I believe that nobody can learn C++ or Java directly. This is because while learning these languages you have things like classes, objects, inheritance, polymorphism, templates, exception handling, references, etc. do deal with apart from knowing the actual language elements. Learning these complicated concepts when you are not even comfortable with the basic language elements is like putting the cart before the horse. Hence one should first learn all the language elements very thoroughly using C language before migrating to C++, C# or Java. Though this two step learning process may take more time, but at the end of it you will definitely find it worth the trouble.
C++, C# or Java make use of a principle called Object Oriented Programming (OOP) to organize the program. This organizing principle has lots of advantages to offer. But even while using this organizing principle you would still need a good hold over the language elements of C and the basic programming skills.
Though many C++ and Java based programming tools and frameworks have evolved over the years the importance of C is still unchallenged because knowingly or unknowingly while using these frameworks and tools you would be still required to use the core C language elements—another good reason why one should learn C before C++, C# or Java.
Major parts of popular operating systems like Windows, UNIX, Linux is still written in C. This is because even today when it comes to performance (speed of execution) nothing beats C. Moreover, if one is to extend the operating system to work with new devices one needs to write device driver programs. These programs are exclusively written in C.
Mobile devices like cellular phones and palmtops are becoming increasingly popular. Also, common consumer devices like microwave oven, washing machines and digital cameras are getting smarter by the day. This smartness comes from a microprocessor, an operating system and a program embedded in this devices. These programs not only have to run fast but also have to work in limited amount of memory. No wonder that such programs are written in C. With these constraints on time and space, C is the language of choice while building such operating systems and programs.
You must have seen several professional 3D computer games where the user navigates some object, like say a spaceship and fires bullets at the invaders. The essence of all such games is speed. Needless to say, such games won't become popular if they takes a long time to move the spaceship or to fire a bullet. To match the expectations of the player the game has to react fast to the user inputs. This is where C language scores over other languages. Many popular gaming frameworks have been built using C language.
At times one is required to very closely interact with the hardware devices. Since C provides several language elements that make this interaction feasible without compromising the performance it is the preferred choice of the programmer.
I hope that these are very convincing reasons why one should adopt C as the first and the very important step in your quest for learning programming languages
I completely disagree. C based languages may have had inspiration from C but they are totally independent and as such one can learn C++, java , C# completely without ever learning C. I admit C is still used due to speed but with today's hardware and continuous improvements productivity is what progrmers focus on.
I also belive that a time is coming when we will be able to fully write programs in java C# and others that can take advantage of today's multicore processors that will improve speed dramatically.
I can't face all that pointer shit while productivity is affected.
Good write up anyway
Re: Why You Should Start Programming With C. by Nobody: 11:08am On Dec 07, 2015
Go to Github, check the number of commits for C, and ask yourself whether C is worth learning or not?




Oyibos have deceived us alot.......most advanced network security engineering are done in C

1 Like

Re: Why You Should Start Programming With C. by danidee10(m): 1:53am On Dec 08, 2015
Ok...lemme set some things straight assembly is faster than c, also fotran is faster in some cases...but c is a great solid language, but i still prefer the pythonic way of life..... It all boils down to what the programmer does or wants to do, u can't use c to start building a web app (cgi will kill u)
Re: Why You Should Start Programming With C. by babatope88(m): 7:46am On Dec 08, 2015
I'm not an advocate of learn this first or learn that first, that is better than this, this is faster than that. The only thing I like about C lang is that, it makes you to have more knowledge about how computer( memory) works, and give some sort of confidence. Most of the great programmer have read about knows C. Why should I be different? C is one of the languages that I want and must learn, [C, Python, PHP, R, Javascript].
Working in C gives mental picture of what you are working with.
Re: Why You Should Start Programming With C. by Nobody: 9:58am On Dec 08, 2015
When I told these lamers who call them selves fúcked up programmers here on nairaland, that they start with C, they'd just be arguing blindly, one says start with Java. Another says start with php.

All these languages emanate from C. So why wouldn't we have a background of C.

#teamC

God bless Bell Laboratory for this awesome gift to mankind!
Re: Why You Should Start Programming With C. by mexzony: 3:16pm On Dec 08, 2015
gimakon:
When I told these lamers who call them selves fúcked up programmers here on nairaland, that they start with C, they'd just be arguing blindly, one says start with Java. Another says start with php.

All these languages emanate from C. So why wouldn't we have a background of C.

#teamC

God bless Bell Laboratory for this awesome gift to mankind!
Do you have to be insultive. Who told you ppl that start with other languages are bleeped up programmers. For your info yes this languages derive from C but the languages are independent on their own so don't think just because they emanate from C they can't stand on their own. Maybe you should go back and read up on the C based languages to know that you don't need to learn C before you can master java or C# or whatever.
Stop this misconception that you have to know C before knowing other languages.I dare say it that java C# and the rest although got inspiration from C are completely independent languages. I do not argue about the importance of C but as I see it I guess you are the one who is in need of knowledge.
Re: Why You Should Start Programming With C. by Nobody: 3:28pm On Dec 08, 2015
mexzony:

Do you have to be insultive. Who told you ppl that start with other languages are bleeped up programmers. For your info yes this languages derive from C but the languages are independent on their own so don't think just because they emanate from C they can't stand on their own. Maybe you should go back and read up on the C based languages to know that you don't need to learn C before you can master java or C# or whatever.
Stop this misconception that you have to know C before knowing other languages.I dare say it that java C# and the rest although got inspiration from C are completely independent languages. I do not argue about the importance of C but as I see it I guess you are the one who is in need of knowledge.

Ha yes. Knowledge! grin
Come and teach me. I'd be happy to learn
I don't know even how to program, can you teach me?
Re: Why You Should Start Programming With C. by Gentin: 3:35pm On Dec 08, 2015
mexzony:

Do you have to be insultive. Who told you ppl that start with other languages are bleeped up programmers. For your info yes this languages derive from C but the languages are independent on their own so don't think just because they emanate from C they can't stand on their own. Maybe you should go back and read up on the C based languages to know that you don't need to learn C before you can master java or C# or whatever.
Stop this misconception that you have to know C before knowing other languages.I dare say it that java C# and the rest although got inspiration from C are completely independent languages. I do not argue about the importance of C but as I see it I guess you are the one who is in need of knowledge.

grin

very funny. You talking to the very wrong person, lol you talking to god of C programming himself. this guy is very experienced in C that I basically think that's the only programming language he knows.

FYI, gimakon taught me how to program in Nasm. I think he also knows python.

he's silent at certain things here and I think it shouldn't be misunderstood.
Re: Why You Should Start Programming With C. by mexzony: 5:36pm On Dec 08, 2015
gimakon:


Ha yes. Knowledge! grin
Come and teach me. I'd be happy to learn
I don't know even how to program, can you teach me?
Boss I hear you are a god in C,in that case I give you all the respect you deserve cos its not easy knowing a programming language, but I still maintain my stand that one does no need to know C to before knowing other programmimg languagesand I still maintain u were insultive and that's not the way to adress ppl.
My respects to you anyway.maybe one day you will teach me C we never know.
Re: Why You Should Start Programming With C. by Nobody: 5:43pm On Dec 08, 2015
mexzony:

Boss I hear you are a god in C,in that case I give you all the respect you deserve cos its not easy knowing a programming language, but I still maintain my stand that one does no need to know C to before knowing other programmimg languagesand I still maintain u were insultive and that's not the way to adress ppl.
My respects to you anyway.maybe one day you will teach me C we never know.

It's well
Re: Why You Should Start Programming With C. by arduino: 1:34pm On Dec 12, 2015
For all your microcontrollers/arduino components and shields buy from us on konga ; konga.com/faithtechnologies. Nationwide delivery
Re: Why You Should Start Programming With C. by bestiyke(m): 8:06pm On Dec 12, 2015
I'm always here to learn. But I believe some day I'll b teaching others. I'm learning c++ my first program. But most atimes I ask my self if am on the right path. With the people talk about Java, python etc, I wonder if c++ and junior brother c are still in use or if the are out dated. But from this post and comments, I'm encoraged. One of the books I'm using 'McGraw-Hill c++ by Herbert Schildt' sugested starting with c++ after like comparing the for (c, c++, c# and java). The author said learning c++ is more of learning two languages at a time c and c++. Instead of starting with c go straight to c++. On java c# and c++, he said the are designed to solve different set of problems. 'It is not and an issue of which language is best in and of itself. Rather, it is a question of which language is right for the job at hand', I quote. This trade has stear up my zeal the more. Thanks all.
Re: Why You Should Start Programming With C. by ezeking(m): 8:57pm On Dec 15, 2015
Tutorial videos of most Cisco Certification exams available eg....CCNA( R&S, Security, Wireless, Voice, Data Center), CCNP(R&S, Security, Voice, MPLS), CCIE( R&S and Security), Microsoft Windows Server 2012 70-411 plus more...

If interested, email me at ezeking@gmail.com....Cheers!
Re: Why You Should Start Programming With C. by bestiyke(m): 11:27pm On Dec 16, 2015
arduino:

Please start with C. It's the foundation to other programming languages you mentioned. How can you build a house without laying the proper foundation?
Though many will say they started and have perfected OOP's language skills but at some point you may need to fall back to native
C. Except you only develop business applications.
Thanks. I'm already makting progress with c++. May be I'll do when I'm don with c++.
Re: Why You Should Start Programming With C. by bb6xt(m): 2:29pm On Dec 19, 2015
rayval:
I believe that nobody can learn C++ or Java directly. This is because while learning these languages you have things like classes, objects, inheritance, polymorphism, templates, exception handling, references, etc. do deal with apart from knowing the actual language elements.

Your belief is very wrong. It is like saying nobody can learn how to drive a car without first learning how to ride a bike. Every programming language is self contained and can be learnt in isolation. However, due to similarities in syntax, paradigm or philosophy of some languages it may be easier to grasp one if already familiar with the other but never a requirement nor mandatory.

2 Likes

Re: Why You Should Start Programming With C. by nextstep(m): 6:18am On Dec 21, 2015
I think there is only 1 good reason to learn C:

You want to code that is close to the metal (operating system, driver, network, or some other place where speed and small size are essential); where you're more concerned with the flow of control (hardware, bits and bytes) or number crunching.

For most other problems, I think you're better of starting with JavaScript, Python, Java, or C++. Ideally one should learn to solve problems in a language that doesn't make the programmer manage memory (pointers) or deal with many other low level details the way C forces you to.

Unfortunately for me, learning how to program in C conditioned me to think in only imperative ways:

Declare this
Assign that
if condition is true
do this
else
do that

which is not necessarily the best way to solve many types of problems that can be better solved with thinking of data and objects (as opposed to thinking of control flow). C was invented to talk to keyboards, terminals, disk drives, network interfaces, serial ports, etc., basically a glorified assembler language (and I use that term without diminishing C's historical importance)

See this page for a good example of how object oriented programming differs from imperative programming

http://inventwithpython.com/blog/2014/12/02/why-is-object-oriented-programming-useful-with-an-role-playing-game-example/


My first real language was C, totally adequate for my foray into embedded electronics, but I think it has gotten in the way of truly understanding object oriented and functional programming. So rather than insist that C is the go to language, I think the choice of a first language depends on the paradigm you want to learn/teach.

For those who think C++ is slow: I used to think that, but learned that if the classes are well written, the compiler takes care of optimizing the code to where there is negligible difference in size or performance.

1 Like

Re: Why You Should Start Programming With C. by foldl: 6:38pm On Dec 21, 2015
nextstep:

... You want to code that is close to the metal (operating system, driver, network, or some other place where speed and small size are essential)...

If by network you mean working with raw sockets then you're fine with a language like Python which has excellent network libraries. With Python you don't loose out on speed since the libraries are implemented as C extensions, but you gain a clean and simple API.

nextstep:

See this page for a good example of how object oriented programming differs from imperative programming

For your information object oriented programming is inherently imperative, at least all existing implementations so far. If you really want to move away from imperative programming check out functional programming (I recommend Haskell).
Re: Why You Should Start Programming With C. by nextstep(m): 9:02pm On Dec 21, 2015
foldl:

If by network you mean working with raw sockets then you're fine with a language like Python which has excellent network libraries. With Python you don't loose out on speed since the libraries are implemented as C extensions, but you gain a clean and simple API.

Totally right, though someone has to write those C extensions which hook into the drivers. That's who I'm referring to when I talk about bare metal.

foldl:

For your information object oriented programming is inherently imperative, at least all existing implementations so far. If you really want to move away from imperative programming check out functional programming (I recommend Haskell).

Totally right; in fact I was tempted to mention functional programming, but wanted to keep the discussion on C-like languages that are supposed to allow the programmer to think in a more OO fashion.

As an aside, I've heard good things about Go (as an alternative to C for beginner programmers)

(1) (2) (Reply)

Text-to-Speech For Nigerian Languages / See Why You Cant Code ( Secret From Mark Zuckerberg) / How To Integrate Remita Payment On Website?

(Go Up)

Sections: politics (1) business autos (1) jobs (1) career education (1) romance computers phones travel sports fashion health
religion celebs tv-movies music-radio literature webmasters programming techmarket

Links: (1) (2) (3) (4) (5) (6) (7) (8) (9) (10)

Nairaland - Copyright © 2005 - 2024 Oluwaseun Osewa. All rights reserved. See How To Advertise. 109
Disclaimer: Every Nairaland member is solely responsible for anything that he/she posts or uploads on Nairaland.