How Hard Can it be ?

HURRIC4NE

Member
Apr 17, 2012
173
0
0
Hi there!

i'm goin to school (masters) to study CMIS (computer management information systems), and i would be studying some C language programs

so is it really hard? i am a fully fledged "know it all" website developer, i worked for many big clients (with employees over 50+, and got paid well doing it), i know how it all works but not inside, just outside. of the C language (with the C+ and C++, i dont know how it works... is it like an upgraded or updated language?

any help would be appreciated
 

dwell

pics?
Oct 9, 1999
5,185
2
0
Two things people get hung up with on C are pointers and dynamic memory allocation / deallocation. Pointers take a bit of a mind shift to fully understand but are in no way as evil as people would lead you to believe. Memory allocation is easy to understand at its core but there are many intricacies which trip up C noobs and even seasoned vets.
 

Ancalagon44

Diamond Member
Feb 17, 2010
3,274
202
106
When you say website developer, what do you mean? Html, javascript and CSS? Or C#/PHP/Java?

If you are from the Html/Javascript/CSS side, it will be a major change. From the C#/Java side, its not too bad, but you do need to change your mindset a bit.

A lot of the things you take for granted in C# are more difficult in C/C++. An example would be header files - C# doesnt have them, and if you want to use another namespace in your class, all you need is the using statement. It works out where to get all of the classes and other objects that belong to that namespace.

Whereas, in C, you would have to specify which header files to include. The actual files.

Memory allocation is the biggest difference though - you have to do that yourself, and you have to be far more mindful of heap vs stack, and keep track of your references to avoid memory leaks. Well, keep track of which objects you dont need anymore. No automatic garbage collection.
 

Merad

Platinum Member
May 31, 2010
2,586
19
81
If you are from the Html/Javascript/CSS side, it will be a major change. From the C#/Java side, its not too bad, but you do need to change your mindset a bit.

Probably the biggest change even from C#/Java will be the absolute bare bones standard library. In C you'll have to roll your own or find third party libraries for essentially everything. Also, a lot of things that are trivial in higher level languages can become a headache in C or C++ (for example, strings).

For the language itself though, the big tripping points are pointers and dynamic memory, as already mentioned. They really aren't that hard, but some people really have a problem understand the concepts.
 
Last edited:

HURRIC4NE

Member
Apr 17, 2012
173
0
0
i see, i'm more of a Html, javascript and CSS guy, from the looks of it, i guess its time to get started >
 

Cerb

Elite Member
Aug 26, 2000
17,484
33
86
i see, i'm more of a Html, javascript and CSS guy, from the looks of it, i guess its time to get started >
Yeah. If you know there will be a lot of C, go ahead and pick up a copy of K&R, and work through it.
 

MooseNSquirrel

Platinum Member
Feb 26, 2009
2,587
318
126
Do they not teach C programming anymore?

I can understand not bothering with assembly as C is basically easy to read assembly.
 

veri745

Golden Member
Oct 11, 2007
1,163
4
81
Do they not teach C programming anymore?

I can understand not bothering with assembly as C is basically easy to read assembly.

C was all I got in college (plus a couple scripting languages), and I graduated 4 years ago with a B.S. CmpE, so it's definitely not an untaught language.
 

degibson

Golden Member
Mar 21, 2008
1,389
0
0
C as a language is easy. The stuff that C does gets arbitrarily, stupefyingly hard. Don't confuse the two and you'll be fine.
 

Cogman

Lifer
Sep 19, 2000
10,283
134
106
C as a language is easy. The stuff that C does gets arbitrarily, stupefyingly hard. Don't confuse the two and you'll be fine.

Arguably, assembly is pretty easy as well. It is when you start doing complex stuff with it that it becomes a nightmare.
 

tatteredpotato

Diamond Member
Jul 23, 2006
3,934
0
76
Arguably, assembly is pretty easy as well. It is when you start doing complex stuff with it that it becomes a nightmare.

I disagree, the entire C language spec is pretty small and easy to understand... to say the same about assembly would mean you understand all the nuances of the architecture and ISA on which you're programming (which is much larger that the C language).
 

Cogman

Lifer
Sep 19, 2000
10,283
134
106
I disagree, the entire C language spec is pretty small and easy to understand... to say the same about assembly would mean you understand all the nuances of the architecture and ISA on which you're programming (which is much larger that the C language).

The entire C99 spec is ~430 pages. I wouldn't call that small. Now, granted, the Intel x86-64 reference manual is ~720 pages, however, that is for every instruction and combination of instruction under the sun. Assembly programmers won't even use a quarter of that information. Not only that, but the x86-64 architecture is one of the most complex available.

On the other hand, the ARM Cortex A9 manual is 230 pages long. A much shorter read than the C99 standard.

Now, generally, when someone programs in assembly, they spend 90% of the time moving values and 10% of the time actually using processor instructions to do computations. They will use a very limited subset of the architecture unless they are specifically doing something that the advanced instructions do really well (Like the SSE instruction set).

You are much more likely to run into all of the niggly areas of C than you are to hit all of those areas in assembly. Things like Word size, array assignment, and undefined behaviors aren't uncommon in C. In Assembly, on the other hand, you very rarely mistakenly use undefined behavior.
 

tatteredpotato

Diamond Member
Jul 23, 2006
3,934
0
76
The entire C99 spec is ~430 pages. I wouldn't call that small. Now, granted, the Intel x86-64 reference manual is ~720 pages, however, that is for every instruction and combination of instruction under the sun. Assembly programmers won't even use a quarter of that information. Not only that, but the x86-64 architecture is one of the most complex available.

On the other hand, the ARM Cortex A9 manual is 230 pages long. A much shorter read than the C99 standard.

Now, generally, when someone programs in assembly, they spend 90% of the time moving values and 10% of the time actually using processor instructions to do computations. They will use a very limited subset of the architecture unless they are specifically doing something that the advanced instructions do really well (Like the SSE instruction set).

You are much more likely to run into all of the niggly areas of C than you are to hit all of those areas in assembly. Things like Word size, array assignment, and undefined behaviors aren't uncommon in C. In Assembly, on the other hand, you very rarely mistakenly use undefined behavior.

The armv7ARM is about 2800 pages, which would be the more appropriate document to compare against.
 

tatteredpotato

Diamond Member
Jul 23, 2006
3,934
0
76
I found this

http://www.galexander.org/stm32/cortex_m3-RM.pdf

But that is only 1020 pages and is the architecture file (which is WAY more information than an assembly programmer needs, this is the document on how to actually build an ARM processor).

Which document are you referring to?

It's in arm infocenter somewhere, but its probably similar to what you found just updated for the A15.

But my point is, in essence, you don't need to know the entire C spec to write C just as you don't have to know the entire ISA to write assembly, but the relative scale of C is much much smaller than any common architecture out there.
 

EvilManagedCare

Senior member
Nov 6, 2004
324
0
0
Do they not teach C programming anymore?

I can understand not bothering with assembly as C is basically easy to read assembly.

They do, but it's at the Bachelor's level. The OP is going into a Master's program where it is assumed you will have had all the basics like C or C++(and if you were coming from an outside field as I did you have to take several CS foundational courses e.g. data structures, operating systems, etc).
 
sale-70-410-exam    | Exam-200-125-pdf    | we-sale-70-410-exam    | hot-sale-70-410-exam    | Latest-exam-700-603-Dumps    | Dumps-98-363-exams-date    | Certs-200-125-date    | Dumps-300-075-exams-date    | hot-sale-book-C8010-726-book    | Hot-Sale-200-310-Exam    | Exam-Description-200-310-dumps?    | hot-sale-book-200-125-book    | Latest-Updated-300-209-Exam    | Dumps-210-260-exams-date    | Download-200-125-Exam-PDF    | Exam-Description-300-101-dumps    | Certs-300-101-date    | Hot-Sale-300-075-Exam    | Latest-exam-200-125-Dumps    | Exam-Description-200-125-dumps    | Latest-Updated-300-075-Exam    | hot-sale-book-210-260-book    | Dumps-200-901-exams-date    | Certs-200-901-date    | Latest-exam-1Z0-062-Dumps    | Hot-Sale-1Z0-062-Exam    | Certs-CSSLP-date    | 100%-Pass-70-383-Exams    | Latest-JN0-360-real-exam-questions    | 100%-Pass-4A0-100-Real-Exam-Questions    | Dumps-300-135-exams-date    | Passed-200-105-Tech-Exams    | Latest-Updated-200-310-Exam    | Download-300-070-Exam-PDF    | Hot-Sale-JN0-360-Exam    | 100%-Pass-JN0-360-Exams    | 100%-Pass-JN0-360-Real-Exam-Questions    | Dumps-JN0-360-exams-date    | Exam-Description-1Z0-876-dumps    | Latest-exam-1Z0-876-Dumps    | Dumps-HPE0-Y53-exams-date    | 2017-Latest-HPE0-Y53-Exam    | 100%-Pass-HPE0-Y53-Real-Exam-Questions    | Pass-4A0-100-Exam    | Latest-4A0-100-Questions    | Dumps-98-365-exams-date    | 2017-Latest-98-365-Exam    | 100%-Pass-VCS-254-Exams    | 2017-Latest-VCS-273-Exam    | Dumps-200-355-exams-date    | 2017-Latest-300-320-Exam    | Pass-300-101-Exam    | 100%-Pass-300-115-Exams    |
http://www.portvapes.co.uk/    | http://www.portvapes.co.uk/    |