Why are so many peopel appearing to suddenly learn C as a first language?
-
I can't think of a much worse choice: and old fashioned language, that is only used for specialist stuff these days, and which needs a considerable amount of experience to get a job in? That just doesn't make a lot of sense to me ... but look at QA and there are loads of 'em ...
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt AntiTwitter: @DalekDave is now a follower!
-
Read their questions and you'll see just how wrong you are ... :sigh:
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt AntiTwitter: @DalekDave is now a follower!
hypothesis: peopel who post C-related QA questions here are the most confused, and/or least intelligent, peopel in the cohort of peopel (learning their first programming language) starting to learn C. :omg:
«One day it will have to be officially admitted that what we have christened reality is an even greater illusion than the world of dreams.» Salvador Dali
-
I will probably learn a lot more now that my dad got into rail modelling and is biting more than he can chew - he's a great electrician but knows nothing of digital programming. I got volountold to help him :D
GCS d--(d+) s-/++ a C++++ U+++ P- L+@ E-- W++ N+ o+ K- w+++ O? M-- V? PS+ PE- Y+ PGP t+ 5? X R+++ tv-- b+(+++) DI+++ D++ G e++ h--- r+++ y+++* Weapons extension: ma- k++ F+2 X
-
I can't think of a much worse choice: and old fashioned language, that is only used for specialist stuff these days, and which needs a considerable amount of experience to get a job in? That just doesn't make a lot of sense to me ... but look at QA and there are loads of 'em ...
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt AntiTwitter: @DalekDave is now a follower!
I feel like it's a consequence of not telling people where to start, often enough. They dig around the web / get an older professor at school and end up with outdated answers that don't make any sense. My professional recommendations is C#, by following the official Microsoft documentation[^] Short pages with hands-on examples. Branches out to every topic you might need. Used to suck 💯 but now it's above average consistently.
-
I can't think of a much worse choice: and old fashioned language, that is only used for specialist stuff these days, and which needs a considerable amount of experience to get a job in? That just doesn't make a lot of sense to me ... but look at QA and there are loads of 'em ...
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt AntiTwitter: @DalekDave is now a follower!
It could be because C and C++ make you realize the fundamentals of programming and how other languages work 'under their hoods'. And/or because most other languages actually have all of the fundamentals, but 'toned down'. For example, C# and Delegates (C's pointer to functions), Ref (pointers), and so on.
MeziLu
-
I can't think of a much worse choice: and old fashioned language, that is only used for specialist stuff these days, and which needs a considerable amount of experience to get a job in? That just doesn't make a lot of sense to me ... but look at QA and there are loads of 'em ...
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt AntiTwitter: @DalekDave is now a follower!
-
I can't think of a much worse choice: and old fashioned language, that is only used for specialist stuff these days, and which needs a considerable amount of experience to get a job in? That just doesn't make a lot of sense to me ... but look at QA and there are loads of 'em ...
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt AntiTwitter: @DalekDave is now a follower!
Wow, I would not have guessed that C is a popular first language. I worked in C around 35 years ago. I can't speak to whether it will be good for these people's careers. One positive is a better under-the-hood understanding of memory management and allocation that modern OO architectures just provide for you. I think that background helped me design better, more efficient classes in the OO world. I mean, if the developer truly understands what they're doing in C of course.
-
I can't think of a much worse choice: and old fashioned language, that is only used for specialist stuff these days, and which needs a considerable amount of experience to get a job in? That just doesn't make a lot of sense to me ... but look at QA and there are loads of 'em ...
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt AntiTwitter: @DalekDave is now a follower!
Not sure what makes a language old fashioned, but all you have to do is look at any performance chart to see that C is still the fastest. It embodies functional programming well, but then the question becomes "what is the best programming paradigm to begin with?" The argument used to be OOP, but like any tool in a toolbox, the purpose chooses the toolset and tool. What is the degree in computing preparing you for? Does understanding functional composition make more sense than inheritance as a staring point? What you learn first becomes the context into which all other concepts are framed. Personally, I think working with APIs rates as a solid first or second concept that you will use forever.
-
Yes. Specialist stuff. That you need good solid real-time embedded experience to work with, and if you don't have that ... you aren't going to produce anything the even works, let alone is useful. You and I both know how little desktop experience carries over to the embedded world where even using malloc is a recipe for fragmented memory and an app that crashes every week because there isn't a fragment of memory big enough left out of the tiny amount you started with. :laugh:
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt AntiTwitter: @DalekDave is now a follower!
I once got a "great" job offer doing that, but didn't want to work on weapons, so turned it down.
-
I can't think of a much worse choice: and old fashioned language, that is only used for specialist stuff these days, and which needs a considerable amount of experience to get a job in? That just doesn't make a lot of sense to me ... but look at QA and there are loads of 'em ...
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt AntiTwitter: @DalekDave is now a follower!
-
I can't think of a much worse choice: and old fashioned language, that is only used for specialist stuff these days, and which needs a considerable amount of experience to get a job in? That just doesn't make a lot of sense to me ... but look at QA and there are loads of 'em ...
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt AntiTwitter: @DalekDave is now a follower!
Hmm. I'll take the contrary position and disagree with you. I think C makes a good teaching language for a certain class of student who I will call, for lack of a more appropriate term, The Geek. The Geek wants to understand how everything works. They want to know how to tie bits together, and to make those collections of bits do new and exciting (aka :cool:) things. C has value for that sort of student. It's as bare metal as you can get without resorting to assembly language. C provides an understanding of certain fundamental building blocks that are givens in more sophisticated languages. The Geek can build those blocks in C, which provides a greater appreciation of their strengths and weaknesses. There are consequences for making mistakes, consequences that will make The Geek really think about what they are doing. I know this to be true, because back in the day I was The Geek :-D.
Software Zen:
delete this;
-
Yes. Specialist stuff. That you need good solid real-time embedded experience to work with, and if you don't have that ... you aren't going to produce anything the even works, let alone is useful. You and I both know how little desktop experience carries over to the embedded world where even using malloc is a recipe for fragmented memory and an app that crashes every week because there isn't a fragment of memory big enough left out of the tiny amount you started with. :laugh:
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt AntiTwitter: @DalekDave is now a follower!
Hah, you reminded me of some code I read where the guy did this BIG malloc() at startup... Because he managed his own memory for some data structure he had. It required Real-Time controller feedback, and different things writing to the memory. But the takeaway was that various conditions, beyond his control, would fragment total memory, and his otherwise more "timely/smaller" malloc() calls would fail. Causing Abends/Hard Faults. And requiring resets. This is where the "linux pride" of saying "my system has been running continuously for 640 days!" harkens back to. It used to be a positive sign. When software designs and hardware designs were more stable!
-
Hah, you reminded me of some code I read where the guy did this BIG malloc() at startup... Because he managed his own memory for some data structure he had. It required Real-Time controller feedback, and different things writing to the memory. But the takeaway was that various conditions, beyond his control, would fragment total memory, and his otherwise more "timely/smaller" malloc() calls would fail. Causing Abends/Hard Faults. And requiring resets. This is where the "linux pride" of saying "my system has been running continuously for 640 days!" harkens back to. It used to be a positive sign. When software designs and hardware designs were more stable!
Yep. I know of some of my real time embedded software that has been running continuously for over twenty years, with just ink tank swaps to keep it in consumables. Never use dynamic memory in real time projects! :laugh: Good grief, I just did the sums and that's over 7K days! I'm amazed the hardware has survived that long, particularly the ink side piping ... It's got to be brittle as heck by now ...
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt AntiTwitter: @DalekDave is now a follower!
-
I can't think of a much worse choice: and old fashioned language, that is only used for specialist stuff these days, and which needs a considerable amount of experience to get a job in? That just doesn't make a lot of sense to me ... but look at QA and there are loads of 'em ...
"I have no idea what I did, but I'm taking full credit for it." - ThisOldTony "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt AntiTwitter: @DalekDave is now a follower!