tony hh
Badges: 3
Rep:
?
#1
Report Thread starter 2 years ago
#1
is there any advice or videos, apps for a beginner to start and pratice c language?
0
reply
winterscoming
Badges: 19
Rep:
?
#2
Report 2 years ago
#2
Firstly, I'd point out that programming itself isn't really about programming languages; the C language (just like all other languages) is just a tool; but programming is all about the skill of computational thinking, and using the language to solve problems. Keep this in mind because just learning the basic syntax and "grammar"/structure of a language isn't the same thing as learning to program. (although of course you do need to learn that syntax and structure as well).

Some of the best resources I can think of for the C language:

Free Introductory CompSci and Programming course from Harvard University using the C language (ignore paid-for certificate, choose "Audit"):
https://online-learning.harvard.edu/...mputer-science
(Excellent starting point because it teaches the underlying concepts of how to "think" like a programmer and solve problems using C.)

Series of free introductory C programming courses from Duke University (Again. ignore the paid options, click 'Enrol' and choose 'Audit'):
  1. https://www.coursera.org/learn/programming-fundamentals
  2. https://www.coursera.org/learn/writi...ng-fixing-code
  3. https://www.coursera.org/learn/point...rays-recursion
  4. https://www.coursera.org/learn/inter...anaging-memory

Free online interactive C lessons: https://www.learn-c.org/

Steve Summit's C FAQ: http://c-faq.com/
Steve's notes on the language: https://www.eskimo.com/~scs/cclass/notes/top.html

C Reference: https://en.cppreference.com/w/c

Youtube Series:

How to understand "Pointer Syntax" in the C language:
This is often one of the things which causes most confusion once you reach the topic of 'pointers'



Also, it's really useful to use an IDE (Integrated Development Environment - i.e. code editor) which allows you to easily run your code inside a 'debugger'. The debugger is a tool which you'll be able to use within the IDE (nicely tied into the code editor screen), and will help you a lot when your program runs but breaks or isn't working the way you expect.

To help you understand what's really happening, the C debugger lets you pause the program, step over the code line-by-line to see what instructions are really running, and and see what values your variables have really got. (You might find they contain some "junk", which is a common mistake when a variable has no value. Or it might be an "off-by-one" logic/counting error, etc)

There's a fairly simple easy-to-use IDE here called Code::Blocks:


One more thing. C and C++ are different programming languages so don't try to use parts of C++. The names of the files that you write your C code in need to end with .c and not .cpp nor .cxx. .c means the C language. .cpp and .cxx mean the C++ language. If you stick with the .c files then it'll stop you from using C++ code.
Last edited by winterscoming; 2 years ago
1
reply
tony hh
Badges: 3
Rep:
?
#3
Report Thread starter 2 years ago
#3
(Original post by winterscoming)
Firstly, I'd point out that programming itself isn't really about programming languages; the C language (just like all other languages) is just a tool; but programming is all about the skill of computational thinking, and using the language to solve problems. Keep this in mind because just learning the basic syntax and "grammar"/structure of a language isn't the same thing as learning to program. (although of course you do need to learn that syntax and structure as well).

Some of the best resources I can think of for the C language:

Free Introductory CompSci and Programming course from Harvard University using the C language (ignore paid-for certificate, choose "Audit"):
https://online-learning.harvard.edu/...mputer-science
(Excellent starting point because it teaches the underlying concepts of how to "think" like a programmer and solve problems using C.)

Series of free introductory C programming courses from Duke University (Again. ignore the paid options, click 'Enrol' and choose 'Audit'):
  1. https://www.coursera.org/learn/programming-fundamentals
  2. https://www.coursera.org/learn/writi...ng-fixing-code
  3. https://www.coursera.org/learn/point...rays-recursion
  4. https://www.coursera.org/learn/inter...anaging-memory

Free online interactive C lessons: https://www.learn-c.org/

Steve Summit's C FAQ: http://c-faq.com/
Steve's notes on the language: https://www.eskimo.com/~scs/cclass/notes/top.html

C Reference: https://en.cppreference.com/w/c

Youtube Series:

How to understand "Pointer Syntax" in the C language:
This is often one of the things which causes most confusion once you reach the topic of 'pointers'



Also, it's really useful to use an IDE (Integrated Development Environment - i.e. code editor) which allows you to easily run your code inside a 'debugger'. The debugger is a tool which you'll be able to use within the IDE (nicely tied into the code editor screen), and will help you a lot when your program runs but breaks or isn't working the way you expect.

To help you understand what's really happening, the C debugger lets you pause the program, step over the code line-by-line to see what instructions are really running, and and see what values your variables have really got. (You might find they contain some "junk", which is a common mistake when a variable has no value. Or it might be an "off-by-one" logic/counting error, etc)

There's a fairly simple easy-to-use IDE here called Code::Blocks:


One more thing. C and C++ are different programming languages so don't try to use parts of C++. The names of the files that you write your C code in need to end with .c and not .cpp nor .cxx. .c means the C language. .cpp and .cxx mean the C++ language. If you stick with the .c files then it'll stop you from using C++ code.
thx
1
reply
hasanraza90
Badges: 0
Rep:
?
#4
Report 1 year ago
#4
I believe that when it comes to coding in C, all depends on motivation of individual. Even if you are interested in learning C++ or C# I would suggest you to start with C language, as it’s very simple, easy and will help develop your concepts about the question, What is Coding?, then move on to C++, learn all about OOP (Object Oriented Programming), after you get perfect in prior languages now move on to C#, and after it you are good to program in any language you desire.

So, when I started to study C, I knew nothing and had no concepts what so ever. The C programming book that was very helpful for me to l understands C language concept was “Turbo C Programming for the PC” by Robert Lafore. This book is very good for self learning, examples and concepts are explained in a way that they become easier to grasp. Apart from this book I would suggest to take help from internet because there are lot of excellent C language learning sources available online.

Also the optimal way to go for a beginner normal human being is to start with C then progress to C++ and finally C#. There is a reason to start with C, its that even though C is very primitive when it comes to programming languages out there, but its still very help full in making programming concepts strong.

Then go for C++, the reason to chose this programming language now is that after learning C you will be probably aware of many basic C operations, now you can start to learn and understand object oriented process using C++.

Once you get proficient in C++, then go for C#, mind here you will get to know many new things, but this will all be based on your previous understanding.

Most of the programmers I know say that C# is easier learn, understand or code then C or C++, but the truth my friends is that nothing in this world is easier, these guys had a very good understanding of both previous languages, and C# which was made to be friendly, seemed like a cake to these programmers.

Finally, only when you are good and proficient in C, then it’s time to scale up your programming skill then you should definitely go for C++, But I should tell you that in programming nothing should be forgotten, because while programming verity of methods can be used and certainly your prior knowledge in C will definitely be very helpful for you. I hope this helps
Last edited by hasanraza90; 1 year ago
0
reply
winterscoming
Badges: 19
Rep:
?
#5
Report 1 year ago
#5
(Original post by hasanraza90)
I believe that when it comes to programming, all depends on motivation of individual. Even if you are interested in learning C++ or C# I would suggest you to start with C language, as it’s very simple, easy and will help develop your concepts of programming, then move on to C++, learn all about OOP (Object Oriented Programming), after you get perfect in prior languages now move on to C#, and after it you are good to program in any language you desire.

So, when I started to study C, I knew nothing and had no concepts what so ever. The C programming book that was very helpful for me to l understands C language concept was “Turbo C Programming for the PC” by Robert Lafore. This book is very good for self learning, examples and concepts are explained in a way that they become easier to grasp. Apart from this book I would suggest to take help from internet because there are lot of excellent C language learning sources available online.

Also the optimal way to go for a beginner normal human being is to start with C then progress to C++ and finally C#. There is a reason to start with C, its that even though C is very primitive when it comes to programming languages out there, but its still very help full in making programming concepts strong.

Then go for C++, the reason to chose this programming language now is that after learning C you will be probably aware of many basic C operations, now you can start to learn and understand object oriented process using C++.

Once you get proficient in C++, then go for C#, mind here you will get to know many new things, but this will all be based on your previous understanding.

Most of the programmers I know say that C# is easier learn, understand or code then C or C++, but the truth my friends is that nothing in this world is easier, these guys had a very good understanding of both previous languages, and C# which was made to be friendly, seemed like a cake to these programmers.


Finally, only when you are good and proficient in C, then it’s time to scale up your programming skill then you should definitely go for C++, But I should tell you that in programming nothing should be forgotten, because while programming verity of methods can be used and certainly your prior knowledge in C will definitely be very helpful for you. I hope this helps
You may have learned the C language first, but that doesn't mean doing it that way is the easier or natural way learn programming. You seem to be confusing your personal preference/experience with the needs of a complete newcomer trying to learn the concepts of programming and computational thinking for the first time.

To learn the C language properly requires understanding quite a few advanced concepts which don't belong on an introductory programming course, and which beginners shouldn't have to deal with. (That's not to say it can't be done, but it's a much slower, less-efficient, and more burdensome way of learning). It would be analogous to attempting to teach latin to young children before trying to teach them to speak English.

There is a very good reason why schools, colleges and universities now choose languages like Python and Java to start out teaching the basic programming concepts, which is that languages such as C make the process of learning Computational Thinking (which is the key skill behind programming) less accessible by requiring learners to cope with more advanced topics such as pointers and memory management before they're able to even work through a lot of otherwise fairly simple problems related to things like arrays or strings.

Starting out with the C language adds a great deal of unnecessary frustration for newcomers who need to be focused on learning about how to think algorithmically and how to analyse/solve problems using programming constructs like variables/loops/if-else/etc, and not worrying about whether they have a dangling or uninitialised pointer in their program, or nitpicky compiler errors, issues with the C preprocessor syntax, concepts related to the underlying computer system such as memory addressing, etc. All of those things are a huge distraction and unnecessary for someone trying to get their head into Computational Thinking.

In the past, universities had started by teaching the C language to students from day one with no previous experience - the consequence/result of doing this was self-evident, since it tended to result in much higher "dropout" rates from computer science undergraduates who found it harder to cope, being overwhelmed by the need to learn a lot of low-level detail before they were even able to attempt to get try to work through the algorithmic thinking tasks. The end result of that approach is essentially that too many learners get frustrated and just give up rather than try to persist, since they're essentially needing to learn advanced topics and basic topics side-by-side rather than being able to focus on the basics.

Languages such as Java and Python have gained a great deal more popularity and universities have found a much higher success rate in teaching computational thinking and computer science by starting with high-level languages without needing to dive into more advanced low-level language detail. Students are facing less frustration by being able to defer on advanced low-level topics until they're already proficient in a high-level language like Java or Python.
Last edited by winterscoming; 1 year ago
0
reply
X

Quick Reply

Attached files
Write a reply...
Reply
new posts
Back
to top
Latest
My Feed

See more of what you like on
The Student Room

You can personalise what you see on TSR. Tell us a little about yourself to get started.

Personalise

What support do you need with your UCAS application?

I need help researching unis (19)
15.2%
I need help researching courses (8)
6.4%
I need help with filling out the application form (7)
5.6%
I need help with my personal statement (47)
37.6%
I need help with understanding how to make my application stand out (33)
26.4%
I need help with something else (let us know in the thread!) (3)
2.4%
I'm feeling confident about my application and don't need any help at the moment (8)
6.4%

Watched Threads

View All