So in my engineering degree, first year, there's a CS/programming course and the language used is C...

So in my engineering degree, first year, there's a CS/programming course and the language used is C. Are we a meme or is it normal?

What the fuck kid?

C is arguably the most important language.

You better learn D as well

I know it is, but that's kinda my point. It is also quite difficult. Is it normal to start with a tough language?

learning C, C++, C# or as above mentioned D is the way to go. C lacks the OOP paradigms but it will generally make you a good programmer if you start out with C. Learn to create stuff like link lists, work with pointers and other basic stuff. Today I'm lazy and mostly use C# because it gets things done faster but I always remain happy that I started with C then went to C++ and ended up with C#. C pretty much makes sense to start with at least a whole lot more then Java.

Yes because it will give you a low level overview of how all things behave and work under the hood. Later on everything will just become easier but the best way to understand underlaying concepts is to dive in deep first.

If solving your programming problem in C is too difficult, there's no reason to use anything short of lisp/scheme/racket.

C is not a good language. It is remarkably feature-poor for its time. But it is relatively simple and has an almost context-free grammar. It sits at a sort of sweet spot that ostensibly better languages like Forth couldn't quite locate.

It's a good first language.

Java, C++, C#, Obj-C, even Python are all based off C. If you learn C first, the rest of those are all super easy to pick up; all you need to do is learn the syntactical sugar. The rest of them are basically C under the hood but they abstract away many of the details for you. This is convenient when you are programming to actually make something but only because you have already learned what details are being abstracted away for you. For example, in python you might have a string
animal = 'dog'
And given you are familiar with python's syntax and tools, you might try to compare this variable later in an if statement like so:
if animal is 'dog':
Do something
This will always evaluate to false, because the 'is' keyword really only checks to see if two things are pointing at the [math] same [/math] data, not just equivalent data. In other words, the 'is' keyword compares the pointers. When you gave the literal 'dog' in the if statement, you created a brand new variable in a new memory location, which of course had a different pointer. In C, you would would have to explicitly tell it to compare the memory addresses by using the & symbol.

If you learned Python first and then C, you most likely wouldn't even know what a pointer was and not know how any of this works. This is a shitty example but I'm sure you get the point.

it's a meme language developed by hacks who couldn't handle real programming.

better go look for a different college.

Literally every kernel is written in C. I'm guessing that you guys are dumb CS majors that dropped out of engineering.

Have fun learning new js frameworks every three months.

I'm unsure why you quoted me in your pathetic tirade.

Because C is a good language. It would not be foundational to so many others if it were not. There are many things done in C that don't have worthwhile implementations in other languages. I'm not even sure what you mean by "C is not a good language," other than it made you very frustrated as an undergrad.

>Because C is a good language. It would not be foundational to so many others if it were not.
Are you sure there are no other reasons why a language might be foundational to so many others besides being "good"? Or are you going to just make the degenerate argument that this is how we should define "good," which C then trivially satisfies?

What makes a language good is not simply what it can do but also how well it can be adapted, extended, and understood at both high and low levels. This is what enabled C to take off in the fashion that it has.

How would you define a "good" language then, friend?

>How would you define a "good" language then, friend?
It would depend on which purpose the language was put.

That's absolutely not normal. Ask your professor why they aren't teaching a modern language like Python. Having to learn C in 2016 is comparable to having to learn COBOL.

Python is a meme language for twitter hipsters.

You said, broadly,
>C is not a good language.
What would it take for you to say
>X is a good language.

Or do you actually have such a worthless opinion as to say that no language is ever good, one can only be good for certain purposes?

>Or do you actually have such a worthless opinion as to say that no language is ever good, one can only be good for certain purposes?
That is my worthless opinion, yes.

Yes, I had the same here for my physics course, the intro was with C too.

Then I politely request that the next time you feel like sharing that opinion, please amend it to
>C, like every other language, is not a good language.
You will save me and others the mistake of thinking that you were actually trying to say anything at all.

Request denied. So long as people insist on praising languages for no task at all, I will continue.

Yes, you will need it later for microcontrollers. C is exactly the kinda thing you will need.

Don't worry if you can't do it you will drop out later hopefully, but C isn't that hard for what you need though.
If you can't understand pointers and write assembly please don't graduate, thanks.

Ah see now you have a nontrivial point to which I agree. I'm guessing you spend too much time on /g/ which led you to assume that people were engaging in linus-esque language elitism.

Op is back.
One of the books the professor suggested is "The C programming language" by Brian W. Kernighan and Dennis M. Ritchie.
Anyone here has thoughts on it?

this must be a troll

I swear to our Lord jesus.
Should I be a troll because it is a very notorious book and I did not know about it or because it is complete garbage?

its probably the most famous programming book of all time. it definitely, definitely is the most famous c programming book of all time. you would know this if you googled it.

I Googled its pdf and it sure as hell came up quickly. Didn't do actual research on it yet though. Good to know.
So, aside for being famous, is it good for learning? Many famous learning resources aren't really

I'm majoring in EE and my first programming class used C and MIPS assembly. Just hope that it isn't the only programming class you have to do since just doing one semester of programming won't help you at all.

Ahem. Of course not. I have TONS of them.
(I actually don't this is my only course strictly related to programming am I screwed)

so many undergrad CS kids who haven't worked a day in tier lives. You don't have to learn C to be a good programmer, and i would go as far as to say any improvement transferable to OO design provided by spending time with C would be smaller than if you had just spent the time with your favorite OO language. If you plan on going into non-computing intensive software design the time spent with C isn't necessarily worthless, but it is somewhat wasted. On the other hand you have undergrads on the other side of the spectrum who know nothing about the language and when it actually is good, or even neccessary. Like these dumbasses

Whatever you are starting with is honestly completely irrelevant. Learning how to program isn't bound to one language, the important part is to get your thinking right to solve problems with a computer. Whether you start with C, Java, Python or whatever else, won't matter in the long run.

>so many undergrad CS kids who haven't worked a day in tier lives.
I'm not a CS kid, for engineers C is needed, because most MCU programming is done in C/Assembly.
>just spent the time with your favorite OO language.
Holy shit, this is cringe tier. Please fuck off back to your containment CS and SE thread on /g/.

You don't need classes to learn programming. You just have to go program shit.

>doesn't know C
>expects brainlets to do proper OOP
>mfw i have no face

>unironically shilling for OO
holy hell kid

Be grateful, starting with C means there's a good chance your school is not shit and will actually teach you something useful.

only 5% of the people who ever program need to use C as their main choice of language. In context to OP's question, C is shit.

>studies C, struggles ripping brains out because this shit is so fucking hard
>never use it for the rest of OP's life.

C is a meme

As an engineering student he is already familiar with that.

>Studying engineering and not using C.
Holy hell, are you even trying?
This.

you sound like you dont belong in college.

i would normally laugh at you for failing out but the college kikes will just pass you through and take your money.

enjoy being in debt for the rest of your life.

I had to use C for my intro to programming class as well as my CSI class. When you got to CS2, you were supposed to be using Java.

> debt
An amerifag likes projecting doesn't he

Eh, we did Java first and C/Python in second year as preparation for an OS paper in third year.