3 ms·
Learn C programming and the rest will come
- ozzmotik 8y agoid probably be pretty inclined to agree with this, c was my first language back when i was like 12 and i pretty much thank that for my general ability to process programming languages (even ones unknown to me) as long as I can tie it back to that algol style of syntax. granted I haven't used it in over a decade now because I just haven't had the use case for it, but as an archetypal starting choice i think there isn't a better one for a beginner that wants a good and enriching challenge
- rramadass 8y agoWhile the premise of the article is very correct, i am afraid it doesn't make the necessary convincing arguments. C should be one of the very first languages one should learn because; C is a small, minimal language and hence it is quite easy to learn and keep everything in your head unlike a lot of modern languages which are too baroque and confusing. There is not much of "magic" in the language and thus "what-you- see-is-what-you-get". C is considered as "high-level assembly" and thus is the closest to the machine underneath. You will be forced to learn how computers actually work rather than treating it as a blackbox. Language Abstractions have well-defined limits. C is available everywhere, from very small embedded systems to large desktops/clusters/GPUs etc. This allows one to program literally anything. I personally have programmed Windows Desktop Apps, Network Protocols/Appliances and MCUs all in C. I had to only focus on learning the Problem Domain rather than the Language/Libraries/Tools which made the job much easier. C is the de-facto language for Systems programming. Thus one can avail of opportunities throughout the software spectrum both Systems and Applications. You can study and understand how "everything" works from Hardware all the way to Application Software. C is also the de-facto "glue" language i.e. every other language/system/tool gives you a way to link to a C module. This gives one the ability to extend the capabilities of one's chosen language/system/tool as needed. This is often quite useful in the real world. PS: To really understand how all the above come together through C, see the book; "Computer Systems: A Programmer's Perspective" (3rd edition:64-bit, 2nd edition:32+64-bit and 1st edition:32-bit).